1 |
- {"version":3,"file":"static/js/main.a0b94822.js","mappings":"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","sources":["../node_modules/@stencil/core/internal/client|lazy|/^/.//.*$/|include: //.entry/.js$/|exclude: //.system/.entry/.js$/|groupOptions: {}|namespace object","../node_modules/@ionic/core/components/animation.js","../node_modules/@ionic/core/components/dir.js","../node_modules/@ionic/core/components/focus-visible.js","../node_modules/@ionic/core/components/gesture-controller.js","../node_modules/@ionic/core/components/hardware-back-button.js","../node_modules/@ionic/core/components/helpers.js","../node_modules/@ionic/core/components/index2.js","../node_modules/@ionic/core/components/index4.js","../node_modules/@ionic/core/components/index6.js","../node_modules/@ionic/core/components/index8.js","../node_modules/@ionic/core/components/index9.js","../node_modules/@ionic/core/components/keyboard.js","../node_modules/@stencil/core/internal/client/index.js","../node_modules/@stencil/core/internal/app-data/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/@ionic/core/components/ionic-global.js","../node_modules/@ionic/core/components/overlays.js","../node_modules/tslib/tslib.es6.js","../node_modules/@ionic/core/components/icon.js","../node_modules/@ionic/core/components/index7.js","../node_modules/@ionic/core/components/ion-accordion.js","../node_modules/@ionic/core/components/ion-accordion-group.js","../node_modules/@ionic/core/components/ion-avatar.js","../node_modules/@ionic/core/components/backdrop.js","../node_modules/@ionic/core/components/ion-backdrop.js","../node_modules/@ionic/core/components/theme.js","../node_modules/@ionic/core/components/ion-badge.js","../node_modules/@ionic/core/components/ion-breadcrumbs.js","../node_modules/@ionic/core/components/buttons.js","../node_modules/@ionic/core/components/ion-buttons.js","../node_modules/@ionic/core/components/ion-card-content.js","../node_modules/@ionic/core/components/ion-card-header.js","../node_modules/@ionic/core/components/ion-card-subtitle.js","../node_modules/@ionic/core/components/ion-card-title.js","../node_modules/@ionic/core/components/checkbox.js","../node_modules/@ionic/core/components/ion-checkbox.js","../node_modules/@ionic/core/components/ripple-effect.js","../node_modules/@ionic/core/components/ion-chip.js","../node_modules/@ionic/core/components/ion-col.js","../node_modules/@ionic/core/components/ion-content.js","../node_modules/@ionic/core/components/data.js","../node_modules/@ionic/core/components/button.js","../node_modules/@ionic/core/components/note.js","../node_modules/@ionic/core/components/item.js","../node_modules/@ionic/core/components/label.js","../node_modules/@ionic/core/components/haptic.js","../node_modules/@ionic/core/components/picker-column-internal.js","../node_modules/@ionic/core/components/picker-internal.js","../node_modules/@ionic/core/components/framework-delegate.js","../node_modules/@ionic/core/components/popover.js","../node_modules/@ionic/core/components/ion-datetime.js","../node_modules/@ionic/core/components/ion-datetime-button.js","../node_modules/@ionic/core/components/ion-fab.js","../node_modules/@ionic/core/components/ion-fab-list.js","../node_modules/@ionic/core/components/keyboard-controller.js","../node_modules/@ionic/core/components/ion-footer.js","../node_modules/@ionic/core/components/ion-grid.js","../node_modules/@ionic/core/components/ion-header.js","../node_modules/@ionic/core/components/ion-img.js","../node_modules/@ionic/core/components/ion-infinite-scroll.js","../node_modules/@ionic/core/components/index3.js","../node_modules/@ionic/core/components/spinner.js","../node_modules/@ionic/core/components/ion-infinite-scroll-content.js","../node_modules/@ionic/core/components/ion-input.js","../node_modules/@ionic/core/components/ion-item-divider.js","../node_modules/@ionic/core/components/ion-item-group.js","../node_modules/@ionic/core/components/ion-item-options.js","../node_modules/@ionic/core/components/ion-item-sliding.js","../node_modules/@ionic/core/components/ion-label.js","../node_modules/@ionic/core/components/list.js","../node_modules/@ionic/core/components/list-header.js","../node_modules/@ionic/core/components/ion-list-header.js","../node_modules/@ionic/core/components/cubic-bezier.js","../node_modules/@ionic/core/components/index5.js","../node_modules/@ionic/core/components/ion-menu.js","../node_modules/@ionic/core/components/menu-toggle-util.js","../node_modules/@ionic/core/components/ion-menu-button.js","../node_modules/@ionic/core/components/ion-menu-toggle.js","../node_modules/@ionic/core/components/ion-nav.js","../node_modules/@ionic/core/components/ion-nav-link.js","../node_modules/@ionic/core/components/ion-progress-bar.js","../node_modules/@ionic/core/components/radio.js","../node_modules/@ionic/core/components/radio-group.js","../node_modules/@ionic/core/components/ion-radio.js","../node_modules/@ionic/core/components/ion-range.js","../node_modules/@ionic/core/components/ion-radio-group.js","../node_modules/@ionic/core/components/ion-refresher.js","../node_modules/@ionic/core/components/ion-refresher-content.js","../node_modules/@ionic/core/components/ion-reorder.js","../node_modules/@ionic/core/components/ion-reorder-group.js","../node_modules/@ionic/core/components/ion-row.js","../node_modules/@ionic/core/components/ion-searchbar.js","../node_modules/@ionic/core/components/ion-segment.js","../node_modules/@ionic/core/components/ion-segment-button.js","../node_modules/@ionic/core/components/button-active.js","../node_modules/@ionic/core/components/action-sheet.js","../node_modules/@ionic/core/components/alert.js","../node_modules/@ionic/core/components/select-popover.js","../node_modules/@ionic/core/components/ion-select.js","../node_modules/@ionic/core/components/ion-select-option.js","../node_modules/@ionic/core/components/ion-skeleton-text.js","../node_modules/@ionic/core/components/ion-slide.js","../node_modules/@ionic/core/components/ion-slides.js","../node_modules/@ionic/core/components/ion-split-pane.js","../node_modules/@ionic/core/components/ion-tab.js","../node_modules/@ionic/core/components/ion-text.js","../node_modules/@ionic/core/components/ion-textarea.js","../node_modules/@ionic/core/components/ion-thumbnail.js","../node_modules/@ionic/core/components/ion-title.js","../node_modules/@ionic/core/components/ion-toggle.js","../node_modules/@ionic/core/components/ion-toolbar.js","../node_modules/@ionic/core/components/ion-virtual-scroll.js","../node_modules/@ionic/core/components/ion-breadcrumb.js","../node_modules/@ionic/core/components/ion-button.js","../node_modules/@ionic/core/components/ion-card.js","../node_modules/@ionic/core/components/ion-fab-button.js","../node_modules/@ionic/core/components/ion-item-option.js","../node_modules/@ionic/core/components/ion-router-link.js","../node_modules/@ionic/core/components/ion-loading.js","../node_modules/@ionic/core/components/ion-toast.js","../node_modules/@ionic/core/components/picker-column.js","../node_modules/@ionic/core/components/ion-picker.js","../node_modules/@ionic/core/components/ion-modal.js","../node_modules/@ionic/core/components/ion-app.js","../node_modules/@ionic/core/components/ion-back-button.js","../node_modules/@ionic/core/components/ion-router-outlet.js","../node_modules/@ionic/core/components/ion-tab-bar.js","../node_modules/@ionic/core/components/ion-tab-button.js","../node_modules/ionicons/components/ion-icon.js","../node_modules/@ionic/react/src/contexts/IonLifeCycleContext.tsx","../node_modules/@ionic/react/src/contexts/NavContext.ts","../node_modules/@ionic/react/src/components/react-component-lib/utils/case.ts","../node_modules/@ionic/react/src/components/react-component-lib/utils/attachProps.ts","../node_modules/@ionic/react/src/components/react-component-lib/utils/index.tsx","../node_modules/@ionic/react/src/components/react-component-lib/createComponent.tsx","../node_modules/@ionic/react/src/components/proxies.ts","../node_modules/@ionic/react/src/components/utils/index.tsx","../node_modules/@ionic/react/src/components/createRoutingComponent.tsx","../node_modules/@ionic/react/src/components/routing-proxies.ts","../node_modules/@ionic/react/src/components/createInlineOverlayComponent.tsx","../node_modules/@ionic/react/src/components/IonModal.tsx","../node_modules/@ionic/react/src/contexts/IonContext.tsx","../node_modules/@ionic/react/src/components/IonOverlayManager.tsx","../node_modules/@ionic/react/src/components/inner-proxies.ts","../node_modules/@ionic/react/src/components/IonApp.tsx","../node_modules/@ionic/react/src/routing/StackContext.tsx","../node_modules/@ionic/react/src/routing/PageManager.tsx","../node_modules/@ionic/react/src/components/IonPage.tsx","../node_modules/@ionic/react/src/components/navigation/IonNav.tsx","../node_modules/@ionic/react/src/components/navigation/IonTabsContext.tsx","../node_modules/@ionic/react/src/framework-delegate.tsx","../node_modules/@ionic/react/src/utils/HTMLElementSSR.ts","../node_modules/@ionic/react/src/routing/OutletPageManager.tsx","../node_modules/@ionic/react/src/components/IonRouterOutlet.tsx","../node_modules/@ionic/react/src/components/navigation/IonTabButton.tsx","../node_modules/@ionic/react/src/components/navigation/IonTabBar.tsx","../node_modules/@ionic/react/src/components/navigation/IonTabs.tsx","../node_modules/@ionic/react/src/components/IonIcon.tsx","../node_modules/@ionic/react/src/components/IonRoute.tsx","../node_modules/@ionic/react/src/components/IonRouterContext.tsx","../node_modules/@ionic/react/src/components/IonRedirect.tsx","../node_modules/@ionic/react/src/components/CreateAnimation.tsx","../node_modules/@ionic/react/src/utils/generateId.ts","../node_modules/@ionic/react/src/routing/RouteManagerContext.ts","../node_modules/@ionic/react/src/routing/ViewLifeCycleManager.tsx","../node_modules/@ionic/react/src/routing/LocationHistory.ts","../node_modules/@ionic/react/src/routing/NavManager.tsx","../node_modules/@ionic/react/src/routing/ViewStacks.ts","../node_modules/@ionic/react-router/src/ReactRouter/IonRouteInner.tsx","../node_modules/@ionic/react-router/src/ReactRouter/ReactRouterViewStack.tsx","../node_modules/@ionic/react-router/src/ReactRouter/clonePageElement.ts","../node_modules/@ionic/react-router/src/ReactRouter/StackManager.tsx","../node_modules/@ionic/react-router/src/ReactRouter/IonRouter.tsx","../node_modules/react-router/modules/withRouter.js","../node_modules/@ionic/react-router/src/ReactRouter/IonReactRouter.tsx","../node_modules/@ionic/react-router/src/ReactRouter/IonReactMemoryRouter.tsx","../node_modules/@ionic/react-router/src/ReactRouter/IonReactHashRouter.tsx","pages/Home.tsx","pages/Flag.tsx","pages/Info.tsx","../node_modules/@ionic/react/src/components/index.ts","App.tsx","../node_modules/ionicons/icons/index.mjs","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 6031;\nmodule.exports = webpackEmptyAsyncContext;","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { r as raf } from './helpers.js';\nimport { w as win } from './index6.js';\n\nlet animationPrefix;\n/**\n * Web Animations requires hyphenated CSS properties\n * to be written in camelCase when animating\n */\nconst processKeyframes = (keyframes) => {\n keyframes.forEach((keyframe) => {\n for (const key in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(key)) {\n const value = keyframe[key];\n if (key === 'easing') {\n const newKey = 'animation-timing-function';\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n else {\n const newKey = convertCamelCaseToHypen(key);\n if (newKey !== key) {\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n }\n }\n }\n });\n return keyframes;\n};\nconst convertCamelCaseToHypen = (str) => {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n};\nconst getAnimationPrefix = (el) => {\n if (animationPrefix === undefined) {\n const supportsUnprefixed = el.style.animationName !== undefined;\n const supportsWebkitPrefix = el.style.webkitAnimationName !== undefined;\n animationPrefix = !supportsUnprefixed && supportsWebkitPrefix ? '-webkit-' : '';\n }\n return animationPrefix;\n};\nconst setStyleProperty = (element, propertyName, value) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.setProperty(prefix + propertyName, value);\n};\nconst removeStyleProperty = (element, propertyName) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.removeProperty(prefix + propertyName);\n};\nconst animationEnd = (el, callback) => {\n let unRegTrans;\n const opts = { passive: true };\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.addEventListener('animationend', onTransitionEnd, opts);\n unRegTrans = () => {\n el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.removeEventListener('animationend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\nconst generateKeyframeRules = (keyframes = []) => {\n return keyframes\n .map((keyframe) => {\n const offset = keyframe.offset;\n const frameString = [];\n for (const property in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(property) && property !== 'offset') {\n frameString.push(`${property}: ${keyframe[property]};`);\n }\n }\n return `${offset * 100}% { ${frameString.join(' ')} }`;\n })\n .join(' ');\n};\nconst keyframeIds = [];\nconst generateKeyframeName = (keyframeRules) => {\n let index = keyframeIds.indexOf(keyframeRules);\n if (index < 0) {\n index = keyframeIds.push(keyframeRules) - 1;\n }\n return `ion-animation-${index}`;\n};\nconst getStyleContainer = (element) => {\n // getRootNode is not always available in SSR environments.\n const rootNode = element.getRootNode !== undefined ? element.getRootNode() : element;\n return rootNode.head || rootNode;\n};\nconst createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {\n var _a;\n const styleContainer = getStyleContainer(element);\n const keyframePrefix = getAnimationPrefix(element);\n const existingStylesheet = styleContainer.querySelector('#' + keyframeName);\n if (existingStylesheet) {\n return existingStylesheet;\n }\n const stylesheet = ((_a = element.ownerDocument) !== null && _a !== void 0 ? _a : document).createElement('style');\n stylesheet.id = keyframeName;\n stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;\n styleContainer.appendChild(stylesheet);\n return stylesheet;\n};\nconst addClassToArray = (classes = [], className) => {\n if (className !== undefined) {\n const classNameToAppend = Array.isArray(className) ? className : [className];\n return [...classes, ...classNameToAppend];\n }\n return classes;\n};\n\nconst createAnimation = (animationId) => {\n let _delay;\n let _duration;\n let _easing;\n let _iterations;\n let _fill;\n let _direction;\n let _keyframes = [];\n let beforeAddClasses = [];\n let beforeRemoveClasses = [];\n let initialized = false;\n let parentAnimation;\n let beforeStylesValue = {};\n let afterAddClasses = [];\n let afterRemoveClasses = [];\n let afterStylesValue = {};\n let numAnimationsRunning = 0;\n let shouldForceLinearEasing = false;\n let shouldForceSyncPlayback = false;\n let cssAnimationsTimerFallback;\n let forceDirectionValue;\n let forceDurationValue;\n let forceDelayValue;\n let willComplete = true;\n let finished = false;\n let shouldCalculateNumAnimations = true;\n let keyframeName;\n let ani;\n let paused = false;\n const id = animationId;\n const onFinishCallbacks = [];\n const onFinishOneTimeCallbacks = [];\n const elements = [];\n const childAnimations = [];\n const stylesheets = [];\n const _beforeAddReadFunctions = [];\n const _beforeAddWriteFunctions = [];\n const _afterAddReadFunctions = [];\n const _afterAddWriteFunctions = [];\n const webAnimations = [];\n const supportsAnimationEffect = typeof AnimationEffect === 'function' ||\n (win !== undefined && typeof win.AnimationEffect === 'function');\n const supportsWebAnimations = typeof Element === 'function' &&\n typeof Element.prototype.animate === 'function' &&\n supportsAnimationEffect;\n const ANIMATION_END_FALLBACK_PADDING_MS = 100;\n const getWebAnimations = () => {\n return webAnimations;\n };\n const destroy = (clearStyleSheets) => {\n childAnimations.forEach((childAnimation) => {\n childAnimation.destroy(clearStyleSheets);\n });\n cleanUp(clearStyleSheets);\n elements.length = 0;\n childAnimations.length = 0;\n _keyframes.length = 0;\n clearOnFinish();\n initialized = false;\n shouldCalculateNumAnimations = true;\n return ani;\n };\n /**\n * Cancels any Web Animations, removes\n * any animation properties from the\n * animation's elements, and removes the\n * animation's stylesheets from the DOM.\n */\n const cleanUp = (clearStyleSheets) => {\n cleanUpElements();\n if (clearStyleSheets) {\n cleanUpStyleSheets();\n }\n };\n const resetFlags = () => {\n shouldForceLinearEasing = false;\n shouldForceSyncPlayback = false;\n shouldCalculateNumAnimations = true;\n forceDirectionValue = undefined;\n forceDurationValue = undefined;\n forceDelayValue = undefined;\n numAnimationsRunning = 0;\n finished = false;\n willComplete = true;\n paused = false;\n };\n const isRunning = () => {\n return numAnimationsRunning !== 0 && !paused;\n };\n const onFinish = (callback, opts) => {\n const callbacks = (opts === null || opts === void 0 ? void 0 : opts.oneTimeCallback) ? onFinishOneTimeCallbacks : onFinishCallbacks;\n callbacks.push({ c: callback, o: opts });\n return ani;\n };\n const clearOnFinish = () => {\n onFinishCallbacks.length = 0;\n onFinishOneTimeCallbacks.length = 0;\n return ani;\n };\n /**\n * Cancels any Web Animations and removes\n * any animation properties from the\n * the animation's elements.\n */\n const cleanUpElements = () => {\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.cancel();\n });\n webAnimations.length = 0;\n }\n else {\n const elementsArray = elements.slice();\n raf(() => {\n elementsArray.forEach((element) => {\n removeStyleProperty(element, 'animation-name');\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-timing-function');\n removeStyleProperty(element, 'animation-iteration-count');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n removeStyleProperty(element, 'animation-fill-mode');\n removeStyleProperty(element, 'animation-direction');\n });\n });\n }\n };\n /**\n * Removes the animation's stylesheets\n * from the DOM.\n */\n const cleanUpStyleSheets = () => {\n stylesheets.forEach((stylesheet) => {\n /**\n * When sharing stylesheets, it's possible\n * for another animation to have already\n * cleaned up a particular stylesheet\n */\n if (stylesheet === null || stylesheet === void 0 ? void 0 : stylesheet.parentNode) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n });\n stylesheets.length = 0;\n };\n const beforeAddRead = (readFn) => {\n _beforeAddReadFunctions.push(readFn);\n return ani;\n };\n const beforeAddWrite = (writeFn) => {\n _beforeAddWriteFunctions.push(writeFn);\n return ani;\n };\n const afterAddRead = (readFn) => {\n _afterAddReadFunctions.push(readFn);\n return ani;\n };\n const afterAddWrite = (writeFn) => {\n _afterAddWriteFunctions.push(writeFn);\n return ani;\n };\n const beforeAddClass = (className) => {\n beforeAddClasses = addClassToArray(beforeAddClasses, className);\n return ani;\n };\n const beforeRemoveClass = (className) => {\n beforeRemoveClasses = addClassToArray(beforeRemoveClasses, className);\n return ani;\n };\n /**\n * Set CSS inline styles to the animation's\n * elements before the animation begins.\n */\n const beforeStyles = (styles = {}) => {\n beforeStylesValue = styles;\n return ani;\n };\n /**\n * Clear CSS inline styles from the animation's\n * elements before the animation begins.\n */\n const beforeClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n beforeStylesValue[property] = '';\n }\n return ani;\n };\n const afterAddClass = (className) => {\n afterAddClasses = addClassToArray(afterAddClasses, className);\n return ani;\n };\n const afterRemoveClass = (className) => {\n afterRemoveClasses = addClassToArray(afterRemoveClasses, className);\n return ani;\n };\n const afterStyles = (styles = {}) => {\n afterStylesValue = styles;\n return ani;\n };\n const afterClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n afterStylesValue[property] = '';\n }\n return ani;\n };\n const getFill = () => {\n if (_fill !== undefined) {\n return _fill;\n }\n if (parentAnimation) {\n return parentAnimation.getFill();\n }\n return 'both';\n };\n const getDirection = () => {\n if (forceDirectionValue !== undefined) {\n return forceDirectionValue;\n }\n if (_direction !== undefined) {\n return _direction;\n }\n if (parentAnimation) {\n return parentAnimation.getDirection();\n }\n return 'normal';\n };\n const getEasing = () => {\n if (shouldForceLinearEasing) {\n return 'linear';\n }\n if (_easing !== undefined) {\n return _easing;\n }\n if (parentAnimation) {\n return parentAnimation.getEasing();\n }\n return 'linear';\n };\n const getDuration = () => {\n if (shouldForceSyncPlayback) {\n return 0;\n }\n if (forceDurationValue !== undefined) {\n return forceDurationValue;\n }\n if (_duration !== undefined) {\n return _duration;\n }\n if (parentAnimation) {\n return parentAnimation.getDuration();\n }\n return 0;\n };\n const getIterations = () => {\n if (_iterations !== undefined) {\n return _iterations;\n }\n if (parentAnimation) {\n return parentAnimation.getIterations();\n }\n return 1;\n };\n const getDelay = () => {\n if (forceDelayValue !== undefined) {\n return forceDelayValue;\n }\n if (_delay !== undefined) {\n return _delay;\n }\n if (parentAnimation) {\n return parentAnimation.getDelay();\n }\n return 0;\n };\n const getKeyframes = () => {\n return _keyframes;\n };\n const direction = (animationDirection) => {\n _direction = animationDirection;\n update(true);\n return ani;\n };\n const fill = (animationFill) => {\n _fill = animationFill;\n update(true);\n return ani;\n };\n const delay = (animationDelay) => {\n _delay = animationDelay;\n update(true);\n return ani;\n };\n const easing = (animationEasing) => {\n _easing = animationEasing;\n update(true);\n return ani;\n };\n const duration = (animationDuration) => {\n /**\n * CSS Animation Durations of 0ms work fine on Chrome\n * but do not run on Safari, so force it to 1ms to\n * get it to run on both platforms.\n */\n if (!supportsWebAnimations && animationDuration === 0) {\n animationDuration = 1;\n }\n _duration = animationDuration;\n update(true);\n return ani;\n };\n const iterations = (animationIterations) => {\n _iterations = animationIterations;\n update(true);\n return ani;\n };\n const parent = (animation) => {\n parentAnimation = animation;\n return ani;\n };\n const addElement = (el) => {\n if (el != null) {\n if (el.nodeType === 1) {\n elements.push(el);\n }\n else if (el.length >= 0) {\n for (let i = 0; i < el.length; i++) {\n elements.push(el[i]);\n }\n }\n else {\n console.error('Invalid addElement value');\n }\n }\n return ani;\n };\n const addAnimation = (animationToAdd) => {\n if (animationToAdd != null) {\n if (Array.isArray(animationToAdd)) {\n for (const animation of animationToAdd) {\n animation.parent(ani);\n childAnimations.push(animation);\n }\n }\n else {\n animationToAdd.parent(ani);\n childAnimations.push(animationToAdd);\n }\n }\n return ani;\n };\n const keyframes = (keyframeValues) => {\n const different = _keyframes !== keyframeValues;\n _keyframes = keyframeValues;\n if (different) {\n updateKeyframes(_keyframes);\n }\n return ani;\n };\n const updateKeyframes = (keyframeValues) => {\n if (supportsWebAnimations) {\n getWebAnimations().forEach((animation) => {\n if (animation.effect.setKeyframes) {\n animation.effect.setKeyframes(keyframeValues);\n }\n else {\n const newEffect = new KeyframeEffect(animation.effect.target, keyframeValues, animation.effect.getTiming());\n animation.effect = newEffect;\n }\n });\n }\n else {\n initializeCSSAnimation();\n }\n };\n /**\n * Run all \"before\" animation hooks.\n */\n const beforeAnimation = () => {\n // Runs all before read callbacks\n _beforeAddReadFunctions.forEach((callback) => callback());\n // Runs all before write callbacks\n _beforeAddWriteFunctions.forEach((callback) => callback());\n // Updates styles and classes before animation runs\n const addClasses = beforeAddClasses;\n const removeClasses = beforeRemoveClasses;\n const styles = beforeStylesValue;\n elements.forEach((el) => {\n const elementClassList = el.classList;\n addClasses.forEach((c) => elementClassList.add(c));\n removeClasses.forEach((c) => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n };\n /**\n * Run all \"after\" animation hooks.\n */\n const afterAnimation = () => {\n clearCSSAnimationsTimeout();\n // Runs all after read callbacks\n _afterAddReadFunctions.forEach((callback) => callback());\n // Runs all after write callbacks\n _afterAddWriteFunctions.forEach((callback) => callback());\n // Updates styles and classes before animation ends\n const currentStep = willComplete ? 1 : 0;\n const addClasses = afterAddClasses;\n const removeClasses = afterRemoveClasses;\n const styles = afterStylesValue;\n elements.forEach((el) => {\n const elementClassList = el.classList;\n addClasses.forEach((c) => elementClassList.add(c));\n removeClasses.forEach((c) => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n onFinishCallbacks.forEach((onFinishCallback) => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.forEach((onFinishCallback) => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.length = 0;\n shouldCalculateNumAnimations = true;\n if (willComplete) {\n finished = true;\n }\n willComplete = true;\n };\n const animationFinish = () => {\n if (numAnimationsRunning === 0) {\n return;\n }\n numAnimationsRunning--;\n if (numAnimationsRunning === 0) {\n afterAnimation();\n if (parentAnimation) {\n parentAnimation.animationFinish();\n }\n }\n };\n const initializeCSSAnimation = (toggleAnimationName = true) => {\n cleanUpStyleSheets();\n const processedKeyframes = processKeyframes(_keyframes);\n elements.forEach((element) => {\n if (processedKeyframes.length > 0) {\n const keyframeRules = generateKeyframeRules(processedKeyframes);\n keyframeName = animationId !== undefined ? animationId : generateKeyframeName(keyframeRules);\n const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);\n stylesheets.push(stylesheet);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill());\n setStyleProperty(element, 'animation-direction', getDirection());\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n setStyleProperty(element, 'animation-play-state', 'paused');\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', stylesheet.id || null);\n });\n }\n });\n };\n const initializeWebAnimation = () => {\n elements.forEach((element) => {\n const animation = element.animate(_keyframes, {\n id,\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection(),\n });\n animation.pause();\n webAnimations.push(animation);\n });\n if (webAnimations.length > 0) {\n webAnimations[0].onfinish = () => {\n animationFinish();\n };\n }\n };\n const initializeAnimation = (toggleAnimationName = true) => {\n beforeAnimation();\n if (_keyframes.length > 0) {\n if (supportsWebAnimations) {\n initializeWebAnimation();\n }\n else {\n initializeCSSAnimation(toggleAnimationName);\n }\n }\n initialized = true;\n };\n const setAnimationStep = (step) => {\n step = Math.min(Math.max(step, 0), 0.9999);\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;\n animation.pause();\n });\n }\n else {\n const animationDuration = `-${getDuration() * step}ms`;\n elements.forEach((element) => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-delay', animationDuration);\n setStyleProperty(element, 'animation-play-state', 'paused');\n }\n });\n }\n };\n const updateWebAnimation = (step) => {\n webAnimations.forEach((animation) => {\n animation.effect.updateTiming({\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection(),\n });\n });\n if (step !== undefined) {\n setAnimationStep(step);\n }\n };\n const updateCSSAnimation = (toggleAnimationName = true, step) => {\n raf(() => {\n elements.forEach((element) => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', step !== undefined ? `-${step * getDuration()}ms` : `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill() || null);\n setStyleProperty(element, 'animation-direction', getDirection() || null);\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n });\n });\n });\n };\n const update = (deep = false, toggleAnimationName = true, step) => {\n if (deep) {\n childAnimations.forEach((animation) => {\n animation.update(deep, toggleAnimationName, step);\n });\n }\n if (supportsWebAnimations) {\n updateWebAnimation(step);\n }\n else {\n updateCSSAnimation(toggleAnimationName, step);\n }\n return ani;\n };\n const progressStart = (forceLinearEasing = false, step) => {\n childAnimations.forEach((animation) => {\n animation.progressStart(forceLinearEasing, step);\n });\n pauseAnimation();\n shouldForceLinearEasing = forceLinearEasing;\n if (!initialized) {\n initializeAnimation();\n }\n update(false, true, step);\n return ani;\n };\n const progressStep = (step) => {\n childAnimations.forEach((animation) => {\n animation.progressStep(step);\n });\n setAnimationStep(step);\n return ani;\n };\n const progressEnd = (playTo, step, dur) => {\n shouldForceLinearEasing = false;\n childAnimations.forEach((animation) => {\n animation.progressEnd(playTo, step, dur);\n });\n if (dur !== undefined) {\n forceDurationValue = dur;\n }\n finished = false;\n willComplete = true;\n if (playTo === 0) {\n forceDirectionValue = getDirection() === 'reverse' ? 'normal' : 'reverse';\n if (forceDirectionValue === 'reverse') {\n willComplete = false;\n }\n if (supportsWebAnimations) {\n update();\n setAnimationStep(1 - step);\n }\n else {\n forceDelayValue = (1 - step) * getDuration() * -1;\n update(false, false);\n }\n }\n else if (playTo === 1) {\n if (supportsWebAnimations) {\n update();\n setAnimationStep(step);\n }\n else {\n forceDelayValue = step * getDuration() * -1;\n update(false, false);\n }\n }\n if (playTo !== undefined) {\n onFinish(() => {\n forceDurationValue = undefined;\n forceDirectionValue = undefined;\n forceDelayValue = undefined;\n }, {\n oneTimeCallback: true,\n });\n if (!parentAnimation) {\n play();\n }\n }\n return ani;\n };\n const pauseAnimation = () => {\n if (initialized) {\n if (supportsWebAnimations) {\n webAnimations.forEach((animation) => {\n animation.pause();\n });\n }\n else {\n elements.forEach((element) => {\n setStyleProperty(element, 'animation-play-state', 'paused');\n });\n }\n paused = true;\n }\n };\n const pause = () => {\n childAnimations.forEach((animation) => {\n animation.pause();\n });\n pauseAnimation();\n return ani;\n };\n const onAnimationEndFallback = () => {\n cssAnimationsTimerFallback = undefined;\n animationFinish();\n };\n const clearCSSAnimationsTimeout = () => {\n if (cssAnimationsTimerFallback) {\n clearTimeout(cssAnimationsTimerFallback);\n }\n };\n const playCSSAnimations = () => {\n clearCSSAnimationsTimeout();\n raf(() => {\n elements.forEach((element) => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-play-state', 'running');\n }\n });\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n else {\n /**\n * This is a catchall in the event that a CSS Animation did not finish.\n * The Web Animations API has mechanisms in place for preventing this.\n * CSS Animations will not fire an `animationend` event\n * for elements with `display: none`. The Web Animations API\n * accounts for this, but using raw CSS Animations requires\n * this workaround.\n */\n const animationDelay = getDelay() || 0;\n const animationDuration = getDuration() || 0;\n const animationIterations = getIterations() || 1;\n // No need to set a timeout when animation has infinite iterations\n if (isFinite(animationIterations)) {\n cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + animationDuration * animationIterations + ANIMATION_END_FALLBACK_PADDING_MS);\n }\n animationEnd(elements[0], () => {\n clearCSSAnimationsTimeout();\n /**\n * Ensure that clean up\n * is always done a frame\n * before the onFinish handlers\n * are fired. Otherwise, there\n * may be flickering if a new\n * animation is started on the same\n * element too quickly\n */\n raf(() => {\n clearCSSAnimationPlayState();\n raf(animationFinish);\n });\n });\n }\n };\n const clearCSSAnimationPlayState = () => {\n elements.forEach((element) => {\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n });\n };\n const playWebAnimations = () => {\n webAnimations.forEach((animation) => {\n animation.play();\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n };\n const resetAnimation = () => {\n if (supportsWebAnimations) {\n setAnimationStep(0);\n updateWebAnimation();\n }\n else {\n updateCSSAnimation();\n }\n };\n const play = (opts) => {\n return new Promise((resolve) => {\n if (opts === null || opts === void 0 ? void 0 : opts.sync) {\n shouldForceSyncPlayback = true;\n onFinish(() => (shouldForceSyncPlayback = false), { oneTimeCallback: true });\n }\n if (!initialized) {\n initializeAnimation();\n }\n if (finished) {\n resetAnimation();\n finished = false;\n }\n if (shouldCalculateNumAnimations) {\n numAnimationsRunning = childAnimations.length + 1;\n shouldCalculateNumAnimations = false;\n }\n onFinish(() => resolve(), { oneTimeCallback: true });\n childAnimations.forEach((animation) => {\n animation.play();\n });\n if (supportsWebAnimations) {\n playWebAnimations();\n }\n else {\n playCSSAnimations();\n }\n paused = false;\n });\n };\n const stop = () => {\n childAnimations.forEach((animation) => {\n animation.stop();\n });\n if (initialized) {\n cleanUpElements();\n initialized = false;\n }\n resetFlags();\n };\n const from = (property, value) => {\n const firstFrame = _keyframes[0];\n if (firstFrame !== undefined && (firstFrame.offset === undefined || firstFrame.offset === 0)) {\n firstFrame[property] = value;\n }\n else {\n _keyframes = [{ offset: 0, [property]: value }, ..._keyframes];\n }\n return ani;\n };\n const to = (property, value) => {\n const lastFrame = _keyframes[_keyframes.length - 1];\n if (lastFrame !== undefined && (lastFrame.offset === undefined || lastFrame.offset === 1)) {\n lastFrame[property] = value;\n }\n else {\n _keyframes = [..._keyframes, { offset: 1, [property]: value }];\n }\n return ani;\n };\n const fromTo = (property, fromValue, toValue) => {\n return from(property, fromValue).to(property, toValue);\n };\n return (ani = {\n parentAnimation,\n elements,\n childAnimations,\n id,\n animationFinish,\n from,\n to,\n fromTo,\n parent,\n play,\n pause,\n stop,\n destroy,\n keyframes,\n addAnimation,\n addElement,\n update,\n fill,\n direction,\n iterations,\n duration,\n easing,\n delay,\n getWebAnimations,\n getKeyframes,\n getFill,\n getDirection,\n getDelay,\n getIterations,\n getEasing,\n getDuration,\n afterAddRead,\n afterAddWrite,\n afterClearStyles,\n afterStyles,\n afterRemoveClass,\n afterAddClass,\n beforeAddRead,\n beforeAddWrite,\n beforeClearStyles,\n beforeStyles,\n beforeRemoveClass,\n beforeAddClass,\n onFinish,\n isRunning,\n progressStart,\n progressStep,\n progressEnd,\n });\n};\n\nexport { createAnimation as c };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\n\nexport { isRTL as i };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst ION_FOCUSED = 'ion-focused';\nconst ION_FOCUSABLE = 'ion-focusable';\nconst FOCUS_KEYS = [\n 'Tab',\n 'ArrowDown',\n 'Space',\n 'Escape',\n ' ',\n 'Shift',\n 'Enter',\n 'ArrowLeft',\n 'ArrowRight',\n 'ArrowUp',\n 'Home',\n 'End',\n];\nconst startFocusVisible = (rootEl) => {\n let currentFocus = [];\n let keyboardMode = true;\n const ref = rootEl ? rootEl.shadowRoot : document;\n const root = rootEl ? rootEl : document.body;\n const setFocus = (elements) => {\n currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));\n elements.forEach((el) => el.classList.add(ION_FOCUSED));\n currentFocus = elements;\n };\n const pointerDown = () => {\n keyboardMode = false;\n setFocus([]);\n };\n const onKeydown = (ev) => {\n keyboardMode = FOCUS_KEYS.includes(ev.key);\n if (!keyboardMode) {\n setFocus([]);\n }\n };\n const onFocusin = (ev) => {\n if (keyboardMode && ev.composedPath !== undefined) {\n const toFocus = ev.composedPath().filter((el) => {\n if (el.classList) {\n return el.classList.contains(ION_FOCUSABLE);\n }\n return false;\n });\n setFocus(toFocus);\n }\n };\n const onFocusout = () => {\n if (ref.activeElement === root) {\n setFocus([]);\n }\n };\n ref.addEventListener('keydown', onKeydown);\n ref.addEventListener('focusin', onFocusin);\n ref.addEventListener('focusout', onFocusout);\n ref.addEventListener('touchstart', pointerDown);\n ref.addEventListener('mousedown', pointerDown);\n const destroy = () => {\n ref.removeEventListener('keydown', onKeydown);\n ref.removeEventListener('focusin', onFocusin);\n ref.removeEventListener('focusout', onFocusout);\n ref.removeEventListener('touchstart', pointerDown);\n ref.removeEventListener('mousedown', pointerDown);\n };\n return {\n destroy,\n setFocus,\n };\n};\n\nexport { startFocusVisible };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nclass GestureController {\n constructor() {\n this.gestureId = 0;\n this.requestedStart = new Map();\n this.disabledGestures = new Map();\n this.disabledScroll = new Set();\n }\n /**\n * Creates a gesture delegate based on the GestureConfig passed\n */\n createGesture(config) {\n var _a;\n return new GestureDelegate(this, this.newID(), config.name, (_a = config.priority) !== null && _a !== void 0 ? _a : 0, !!config.disableScroll);\n }\n /**\n * Creates a blocker that will block any other gesture events from firing. Set in the ion-gesture component.\n */\n createBlocker(opts = {}) {\n return new BlockerDelegate(this, this.newID(), opts.disable, !!opts.disableScroll);\n }\n start(gestureName, id, priority) {\n if (!this.canStart(gestureName)) {\n this.requestedStart.delete(id);\n return false;\n }\n this.requestedStart.set(id, priority);\n return true;\n }\n capture(gestureName, id, priority) {\n if (!this.start(gestureName, id, priority)) {\n return false;\n }\n const requestedStart = this.requestedStart;\n let maxPriority = -10000;\n requestedStart.forEach((value) => {\n maxPriority = Math.max(maxPriority, value);\n });\n if (maxPriority === priority) {\n this.capturedId = id;\n requestedStart.clear();\n const event = new CustomEvent('ionGestureCaptured', { detail: { gestureName } });\n document.dispatchEvent(event);\n return true;\n }\n requestedStart.delete(id);\n return false;\n }\n release(id) {\n this.requestedStart.delete(id);\n if (this.capturedId === id) {\n this.capturedId = undefined;\n }\n }\n disableGesture(gestureName, id) {\n let set = this.disabledGestures.get(gestureName);\n if (set === undefined) {\n set = new Set();\n this.disabledGestures.set(gestureName, set);\n }\n set.add(id);\n }\n enableGesture(gestureName, id) {\n const set = this.disabledGestures.get(gestureName);\n if (set !== undefined) {\n set.delete(id);\n }\n }\n disableScroll(id) {\n this.disabledScroll.add(id);\n if (this.disabledScroll.size === 1) {\n document.body.classList.add(BACKDROP_NO_SCROLL);\n }\n }\n enableScroll(id) {\n this.disabledScroll.delete(id);\n if (this.disabledScroll.size === 0) {\n document.body.classList.remove(BACKDROP_NO_SCROLL);\n }\n }\n canStart(gestureName) {\n if (this.capturedId !== undefined) {\n // a gesture already captured\n return false;\n }\n if (this.isDisabled(gestureName)) {\n return false;\n }\n return true;\n }\n isCaptured() {\n return this.capturedId !== undefined;\n }\n isScrollDisabled() {\n return this.disabledScroll.size > 0;\n }\n isDisabled(gestureName) {\n const disabled = this.disabledGestures.get(gestureName);\n if (disabled && disabled.size > 0) {\n return true;\n }\n return false;\n }\n newID() {\n this.gestureId++;\n return this.gestureId;\n }\n}\nclass GestureDelegate {\n constructor(ctrl, id, name, priority, disableScroll) {\n this.id = id;\n this.name = name;\n this.disableScroll = disableScroll;\n this.priority = priority * 1000000 + id;\n this.ctrl = ctrl;\n }\n canStart() {\n if (!this.ctrl) {\n return false;\n }\n return this.ctrl.canStart(this.name);\n }\n start() {\n if (!this.ctrl) {\n return false;\n }\n return this.ctrl.start(this.name, this.id, this.priority);\n }\n capture() {\n if (!this.ctrl) {\n return false;\n }\n const captured = this.ctrl.capture(this.name, this.id, this.priority);\n if (captured && this.disableScroll) {\n this.ctrl.disableScroll(this.id);\n }\n return captured;\n }\n release() {\n if (this.ctrl) {\n this.ctrl.release(this.id);\n if (this.disableScroll) {\n this.ctrl.enableScroll(this.id);\n }\n }\n }\n destroy() {\n this.release();\n this.ctrl = undefined;\n }\n}\nclass BlockerDelegate {\n constructor(ctrl, id, disable, disableScroll) {\n this.id = id;\n this.disable = disable;\n this.disableScroll = disableScroll;\n this.ctrl = ctrl;\n }\n block() {\n if (!this.ctrl) {\n return;\n }\n if (this.disable) {\n for (const gesture of this.disable) {\n this.ctrl.disableGesture(gesture, this.id);\n }\n }\n if (this.disableScroll) {\n this.ctrl.disableScroll(this.id);\n }\n }\n unblock() {\n if (!this.ctrl) {\n return;\n }\n if (this.disable) {\n for (const gesture of this.disable) {\n this.ctrl.enableGesture(gesture, this.id);\n }\n }\n if (this.disableScroll) {\n this.ctrl.enableScroll(this.id);\n }\n }\n destroy() {\n this.unblock();\n this.ctrl = undefined;\n }\n}\nconst BACKDROP_NO_SCROLL = 'backdrop-no-scroll';\nconst GESTURE_CONTROLLER = new GestureController();\n\nexport { GESTURE_CONTROLLER as G };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * When hardwareBackButton: false in config,\n * we need to make sure we also block the default\n * webview behavior. If we don't then it will be\n * possible for users to navigate backward while\n * an overlay is still open. Additionally, it will\n * give the appearance that the hardwareBackButton\n * config is not working as the page transition\n * will still happen.\n */\nconst blockHardwareBackButton = () => {\n document.addEventListener('backbutton', () => { }); // eslint-disable-line\n};\nconst startHardwareBackButton = () => {\n const doc = document;\n let busy = false;\n doc.addEventListener('backbutton', () => {\n if (busy) {\n return;\n }\n let index = 0;\n let handlers = [];\n const ev = new CustomEvent('ionBackButton', {\n bubbles: false,\n detail: {\n register(priority, handler) {\n handlers.push({ priority, handler, id: index++ });\n },\n },\n });\n doc.dispatchEvent(ev);\n const executeAction = async (handlerRegister) => {\n try {\n if (handlerRegister === null || handlerRegister === void 0 ? void 0 : handlerRegister.handler) {\n const result = handlerRegister.handler(processHandlers);\n if (result != null) {\n await result;\n }\n }\n }\n catch (e) {\n console.error(e);\n }\n };\n const processHandlers = () => {\n if (handlers.length > 0) {\n let selectedHandler = {\n priority: Number.MIN_SAFE_INTEGER,\n handler: () => undefined,\n id: -1,\n };\n handlers.forEach((handler) => {\n if (handler.priority >= selectedHandler.priority) {\n selectedHandler = handler;\n }\n });\n busy = true;\n handlers = handlers.filter((handler) => handler.id !== selectedHandler.id);\n executeAction(selectedHandler).then(() => (busy = false));\n }\n };\n processHandlers();\n });\n};\nconst OVERLAY_BACK_BUTTON_PRIORITY = 100;\nconst MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays\n\nexport { MENU_BACK_BUTTON_PRIORITY, OVERLAY_BACK_BUTTON_PRIORITY, blockHardwareBackButton, startHardwareBackButton };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst transitionEndAsync = (el, expectedDuration = 0) => {\n return new Promise((resolve) => {\n transitionEnd(el, expectedDuration, resolve);\n });\n};\n/**\n * Allows developer to wait for a transition\n * to finish and fallback to a timer if the\n * transition is cancelled or otherwise\n * never finishes. Also see transitionEndAsync\n * which is an await-able version of this.\n */\nconst transitionEnd = (el, expectedDuration = 0, callback) => {\n let unRegTrans;\n let animationTimeout;\n const opts = { passive: true };\n const ANIMATION_FALLBACK_TIMEOUT = 500;\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (ev === undefined || el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.addEventListener('transitionend', onTransitionEnd, opts);\n animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);\n unRegTrans = () => {\n if (animationTimeout) {\n clearTimeout(animationTimeout);\n animationTimeout = undefined;\n }\n el.removeEventListener('webkitTransitionEnd', onTransitionEnd, opts);\n el.removeEventListener('transitionend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\n/**\n * Waits for a component to be ready for\n * both custom element and non-custom element builds.\n * If non-custom element build, el.componentOnReady\n * will be used.\n * For custom element builds, we wait a frame\n * so that the inner contents of the component\n * have a chance to render.\n *\n * Use this utility rather than calling\n * el.componentOnReady yourself.\n */\nconst componentOnReady = (el, callback) => {\n if (el.componentOnReady) {\n // eslint-disable-next-line custom-rules/no-component-on-ready-method\n el.componentOnReady().then((resolvedEl) => callback(resolvedEl));\n }\n else {\n raf(() => callback(el));\n }\n};\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach((attr) => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * List of available ARIA attributes + `role`.\n * Removed deprecated attributes.\n * https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes\n */\nconst ariaAttributes = [\n 'role',\n 'aria-activedescendant',\n 'aria-atomic',\n 'aria-autocomplete',\n 'aria-braillelabel',\n 'aria-brailleroledescription',\n 'aria-busy',\n 'aria-checked',\n 'aria-colcount',\n 'aria-colindex',\n 'aria-colindextext',\n 'aria-colspan',\n 'aria-controls',\n 'aria-current',\n 'aria-describedby',\n 'aria-description',\n 'aria-details',\n 'aria-disabled',\n 'aria-errormessage',\n 'aria-expanded',\n 'aria-flowto',\n 'aria-haspopup',\n 'aria-hidden',\n 'aria-invalid',\n 'aria-keyshortcuts',\n 'aria-label',\n 'aria-labelledby',\n 'aria-level',\n 'aria-live',\n 'aria-multiline',\n 'aria-multiselectable',\n 'aria-orientation',\n 'aria-owns',\n 'aria-placeholder',\n 'aria-posinset',\n 'aria-pressed',\n 'aria-readonly',\n 'aria-relevant',\n 'aria-required',\n 'aria-roledescription',\n 'aria-rowcount',\n 'aria-rowindex',\n 'aria-rowindextext',\n 'aria-rowspan',\n 'aria-selected',\n 'aria-setsize',\n 'aria-sort',\n 'aria-valuemax',\n 'aria-valuemin',\n 'aria-valuenow',\n 'aria-valuetext',\n];\n/**\n * Returns an array of aria attributes that should be copied from\n * the shadow host element to a target within the light DOM.\n * @param el The element that the attributes should be copied from.\n * @param ignoreList The list of aria-attributes to ignore reflecting and removing from the host.\n * Use this in instances where we manually specify aria attributes on the `<Host>` element.\n */\nconst inheritAriaAttributes = (el, ignoreList) => {\n let attributesToInherit = ariaAttributes;\n if (ignoreList && ignoreList.length > 0) {\n attributesToInherit = attributesToInherit.filter((attr) => !ignoreList.includes(attr));\n }\n return inheritAttributes(el, attributesToInherit);\n};\nconst addEventListener = (el, eventName, callback, opts) => {\n var _a;\n if (typeof window !== 'undefined') {\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n const ael = config.get('_ael');\n if (ael) {\n return ael(el, eventName, callback, opts);\n }\n else if (config._ael) {\n return config._ael(el, eventName, callback, opts);\n }\n }\n }\n return el.addEventListener(eventName, callback, opts);\n};\nconst removeEventListener = (el, eventName, callback, opts) => {\n var _a;\n if (typeof window !== 'undefined') {\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n const rel = config.get('_rel');\n if (rel) {\n return rel(el, eventName, callback, opts);\n }\n else if (config._rel) {\n return config._rel(el, eventName, callback, opts);\n }\n }\n }\n return el.removeEventListener(eventName, callback, opts);\n};\n/**\n * Gets the root context of a shadow dom element\n * On newer browsers this will be the shadowRoot,\n * but for older browser this may just be the\n * element itself.\n *\n * Useful for whenever you need to explicitly\n * do \"myElement.shadowRoot!.querySelector(...)\".\n */\nconst getElementRoot = (el, fallback = el) => {\n return el.shadowRoot || fallback;\n};\n/**\n * Patched version of requestAnimationFrame that avoids ngzone\n * Use only when you know ngzone should not run\n */\nconst raf = (h) => {\n if (typeof __zone_symbol__requestAnimationFrame === 'function') {\n return __zone_symbol__requestAnimationFrame(h);\n }\n if (typeof requestAnimationFrame === 'function') {\n return requestAnimationFrame(h);\n }\n return setTimeout(h);\n};\nconst hasShadowDom = (el) => {\n return !!el.shadowRoot && !!el.attachShadow;\n};\nconst findItemLabel = (componentEl) => {\n const itemEl = componentEl.closest('ion-item');\n if (itemEl) {\n return itemEl.querySelector('ion-label');\n }\n return null;\n};\nconst focusElement = (el) => {\n el.focus();\n /**\n * When programmatically focusing an element,\n * the focus-visible utility will not run because\n * it is expecting a keyboard event to have triggered this;\n * however, there are times when we need to manually control\n * this behavior so we call the `setFocus` method on ion-app\n * which will let us explicitly set the elements to focus.\n */\n if (el.classList.contains('ion-focusable')) {\n const app = el.closest('ion-app');\n if (app) {\n app.setFocus([el]);\n }\n }\n};\n/**\n * This method is used for Ionic's input components that use Shadow DOM. In\n * order to properly label the inputs to work with screen readers, we need\n * to get the text content of the label outside of the shadow root and pass\n * it to the input inside of the shadow root.\n *\n * Referencing label elements by id from outside of the component is\n * impossible due to the shadow boundary, read more here:\n * https://developer.salesforce.com/blogs/2020/01/accessibility-for-web-components.html\n *\n * @param componentEl The shadow element that needs the aria label\n * @param inputId The unique identifier for the input\n */\nconst getAriaLabel = (componentEl, inputId) => {\n let labelText;\n // If the user provides their own label via the aria-labelledby attr\n // we should use that instead of looking for an ion-label\n const labelledBy = componentEl.getAttribute('aria-labelledby');\n // Grab the id off of the component in case they are using\n // a custom label using the label element\n const componentId = componentEl.id;\n let labelId = labelledBy !== null && labelledBy.trim() !== '' ? labelledBy : inputId + '-lbl';\n let label = labelledBy !== null && labelledBy.trim() !== '' ? document.getElementById(labelledBy) : findItemLabel(componentEl);\n if (label) {\n if (labelledBy === null) {\n label.id = labelId;\n }\n labelText = label.textContent;\n label.setAttribute('aria-hidden', 'true');\n // if there is no label, check to see if the user has provided\n // one by setting an id on the component and using the label element\n }\n else if (componentId.trim() !== '') {\n label = document.querySelector(`label[for=\"${componentId}\"]`);\n if (label) {\n if (label.id !== '') {\n labelId = label.id;\n }\n else {\n label.id = labelId = `${componentId}-lbl`;\n }\n labelText = label.textContent;\n }\n }\n return { label, labelId, labelText };\n};\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nconst renderHiddenInput = (always, container, name, value, disabled) => {\n if (always || hasShadowDom(container)) {\n let input = container.querySelector('input.aux-input');\n if (!input) {\n input = container.ownerDocument.createElement('input');\n input.type = 'hidden';\n input.classList.add('aux-input');\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || '';\n }\n};\nconst clamp = (min, n, max) => {\n return Math.max(min, Math.min(n, max));\n};\nconst assert = (actual, reason) => {\n if (!actual) {\n const message = 'ASSERT: ' + reason;\n console.error(message);\n debugger; // eslint-disable-line\n throw new Error(message);\n }\n};\nconst now = (ev) => {\n return ev.timeStamp || Date.now();\n};\nconst pointerCoord = (ev) => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n return { x: touch.clientX, y: touch.clientY };\n }\n if (ev.pageX !== undefined) {\n return { x: ev.pageX, y: ev.pageY };\n }\n }\n return { x: 0, y: 0 };\n};\n/**\n * @hidden\n * Given a side, return if it should be on the end\n * based on the value of dir\n * @param side the side\n * @param isRTL whether the application dir is rtl\n */\nconst isEndSide = (side) => {\n const isRTL = document.dir === 'rtl';\n switch (side) {\n case 'start':\n return isRTL;\n case 'end':\n return !isRTL;\n default:\n throw new Error(`\"${side}\" is not a valid value for [side]. Use \"start\" or \"end\" instead.`);\n }\n};\nconst debounceEvent = (event, wait) => {\n const original = event._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n };\n};\nconst debounce = (func, wait = 0) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n/**\n * Check whether the two string maps are shallow equal.\n *\n * undefined is treated as an empty map.\n *\n * @returns whether the keys are the same and the values are shallow equal.\n */\nconst shallowEqualStringMap = (map1, map2) => {\n map1 !== null && map1 !== void 0 ? map1 : (map1 = {});\n map2 !== null && map2 !== void 0 ? map2 : (map2 = {});\n if (map1 === map2) {\n return true;\n }\n const keys1 = Object.keys(map1);\n if (keys1.length !== Object.keys(map2).length) {\n return false;\n }\n for (const k1 of keys1) {\n if (!(k1 in map2)) {\n return false;\n }\n if (map1[k1] !== map2[k1]) {\n return false;\n }\n }\n return true;\n};\n\nexport { addEventListener as a, removeEventListener as b, componentOnReady as c, inheritAttributes as d, renderHiddenInput as e, focusElement as f, getElementRoot as g, clamp as h, inheritAriaAttributes as i, debounceEvent as j, findItemLabel as k, isEndSide as l, assert as m, getAriaLabel as n, debounce as o, pointerCoord as p, hasShadowDom as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t, now as u };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { G as GESTURE_CONTROLLER } from './gesture-controller.js';\nexport { G as GESTURE_CONTROLLER } from './gesture-controller.js';\n\nconst addEventListener = (el, eventName, callback, opts) => {\n // use event listener options when supported\n // otherwise it's just a boolean for the \"capture\" arg\n const listenerOpts = supportsPassive(el)\n ? {\n capture: !!opts.capture,\n passive: !!opts.passive,\n }\n : !!opts.capture;\n let add;\n let remove;\n if (el['__zone_symbol__addEventListener']) {\n add = '__zone_symbol__addEventListener';\n remove = '__zone_symbol__removeEventListener';\n }\n else {\n add = 'addEventListener';\n remove = 'removeEventListener';\n }\n el[add](eventName, callback, listenerOpts);\n return () => {\n el[remove](eventName, callback, listenerOpts);\n };\n};\nconst supportsPassive = (node) => {\n if (_sPassive === undefined) {\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get: () => {\n _sPassive = true;\n },\n });\n node.addEventListener('optsTest', () => {\n return;\n }, opts);\n }\n catch (e) {\n _sPassive = false;\n }\n }\n return !!_sPassive;\n};\nlet _sPassive;\n\nconst MOUSE_WAIT = 2000;\nconst createPointerEvents = (el, pointerDown, pointerMove, pointerUp, options) => {\n let rmTouchStart;\n let rmTouchMove;\n let rmTouchEnd;\n let rmTouchCancel;\n let rmMouseStart;\n let rmMouseMove;\n let rmMouseUp;\n let lastTouchEvent = 0;\n const handleTouchStart = (ev) => {\n lastTouchEvent = Date.now() + MOUSE_WAIT;\n if (!pointerDown(ev)) {\n return;\n }\n if (!rmTouchMove && pointerMove) {\n rmTouchMove = addEventListener(el, 'touchmove', pointerMove, options);\n }\n /**\n * Events are dispatched on the element that is tapped and bubble up to\n * the reference element in the gesture. In the event that the element this\n * event was first dispatched on is removed from the DOM, the event will no\n * longer bubble up to our reference element. This leaves the gesture in an\n * unusable state. To account for this, the touchend and touchcancel listeners\n * should be added to the event target so that they still fire even if the target\n * is removed from the DOM.\n */\n if (!rmTouchEnd) {\n rmTouchEnd = addEventListener(ev.target, 'touchend', handleTouchEnd, options);\n }\n if (!rmTouchCancel) {\n rmTouchCancel = addEventListener(ev.target, 'touchcancel', handleTouchEnd, options);\n }\n };\n const handleMouseDown = (ev) => {\n if (lastTouchEvent > Date.now()) {\n return;\n }\n if (!pointerDown(ev)) {\n return;\n }\n if (!rmMouseMove && pointerMove) {\n rmMouseMove = addEventListener(getDocument(el), 'mousemove', pointerMove, options);\n }\n if (!rmMouseUp) {\n rmMouseUp = addEventListener(getDocument(el), 'mouseup', handleMouseUp, options);\n }\n };\n const handleTouchEnd = (ev) => {\n stopTouch();\n if (pointerUp) {\n pointerUp(ev);\n }\n };\n const handleMouseUp = (ev) => {\n stopMouse();\n if (pointerUp) {\n pointerUp(ev);\n }\n };\n const stopTouch = () => {\n if (rmTouchMove) {\n rmTouchMove();\n }\n if (rmTouchEnd) {\n rmTouchEnd();\n }\n if (rmTouchCancel) {\n rmTouchCancel();\n }\n rmTouchMove = rmTouchEnd = rmTouchCancel = undefined;\n };\n const stopMouse = () => {\n if (rmMouseMove) {\n rmMouseMove();\n }\n if (rmMouseUp) {\n rmMouseUp();\n }\n rmMouseMove = rmMouseUp = undefined;\n };\n const stop = () => {\n stopTouch();\n stopMouse();\n };\n const enable = (isEnabled = true) => {\n if (!isEnabled) {\n if (rmTouchStart) {\n rmTouchStart();\n }\n if (rmMouseStart) {\n rmMouseStart();\n }\n rmTouchStart = rmMouseStart = undefined;\n stop();\n }\n else {\n if (!rmTouchStart) {\n rmTouchStart = addEventListener(el, 'touchstart', handleTouchStart, options);\n }\n if (!rmMouseStart) {\n rmMouseStart = addEventListener(el, 'mousedown', handleMouseDown, options);\n }\n }\n };\n const destroy = () => {\n enable(false);\n pointerUp = pointerMove = pointerDown = undefined;\n };\n return {\n enable,\n stop,\n destroy,\n };\n};\nconst getDocument = (node) => {\n return node instanceof Document ? node : node.ownerDocument;\n};\n\nconst createPanRecognizer = (direction, thresh, maxAngle) => {\n const radians = maxAngle * (Math.PI / 180);\n const isDirX = direction === 'x';\n const maxCosine = Math.cos(radians);\n const threshold = thresh * thresh;\n let startX = 0;\n let startY = 0;\n let dirty = false;\n let isPan = 0;\n return {\n start(x, y) {\n startX = x;\n startY = y;\n isPan = 0;\n dirty = true;\n },\n detect(x, y) {\n if (!dirty) {\n return false;\n }\n const deltaX = x - startX;\n const deltaY = y - startY;\n const distance = deltaX * deltaX + deltaY * deltaY;\n if (distance < threshold) {\n return false;\n }\n const hypotenuse = Math.sqrt(distance);\n const cosine = (isDirX ? deltaX : deltaY) / hypotenuse;\n if (cosine > maxCosine) {\n isPan = 1;\n }\n else if (cosine < -maxCosine) {\n isPan = -1;\n }\n else {\n isPan = 0;\n }\n dirty = false;\n return true;\n },\n isGesture() {\n return isPan !== 0;\n },\n getDirection() {\n return isPan;\n },\n };\n};\n\nconst createGesture = (config) => {\n let hasCapturedPan = false;\n let hasStartedPan = false;\n let hasFiredStart = true;\n let isMoveQueued = false;\n const finalConfig = Object.assign({ disableScroll: false, direction: 'x', gesturePriority: 0, passive: true, maxAngle: 40, threshold: 10 }, config);\n const canStart = finalConfig.canStart;\n const onWillStart = finalConfig.onWillStart;\n const onStart = finalConfig.onStart;\n const onEnd = finalConfig.onEnd;\n const notCaptured = finalConfig.notCaptured;\n const onMove = finalConfig.onMove;\n const threshold = finalConfig.threshold;\n const passive = finalConfig.passive;\n const blurOnStart = finalConfig.blurOnStart;\n const detail = {\n type: 'pan',\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n event: undefined,\n data: undefined,\n };\n const pan = createPanRecognizer(finalConfig.direction, finalConfig.threshold, finalConfig.maxAngle);\n const gesture = GESTURE_CONTROLLER.createGesture({\n name: config.gestureName,\n priority: config.gesturePriority,\n disableScroll: config.disableScroll,\n });\n const pointerDown = (ev) => {\n const timeStamp = now(ev);\n if (hasStartedPan || !hasFiredStart) {\n return false;\n }\n updateDetail(ev, detail);\n detail.startX = detail.currentX;\n detail.startY = detail.currentY;\n detail.startTime = detail.currentTime = timeStamp;\n detail.velocityX = detail.velocityY = detail.deltaX = detail.deltaY = 0;\n detail.event = ev;\n // Check if gesture can start\n if (canStart && canStart(detail) === false) {\n return false;\n }\n // Release fallback\n gesture.release();\n // Start gesture\n if (!gesture.start()) {\n return false;\n }\n hasStartedPan = true;\n if (threshold === 0) {\n return tryToCapturePan();\n }\n pan.start(detail.startX, detail.startY);\n return true;\n };\n const pointerMove = (ev) => {\n // fast path, if gesture is currently captured\n // do minimum job to get user-land even dispatched\n if (hasCapturedPan) {\n if (!isMoveQueued && hasFiredStart) {\n isMoveQueued = true;\n calcGestureData(detail, ev);\n requestAnimationFrame(fireOnMove);\n }\n return;\n }\n // gesture is currently being detected\n calcGestureData(detail, ev);\n if (pan.detect(detail.currentX, detail.currentY)) {\n if (!pan.isGesture() || !tryToCapturePan()) {\n abortGesture();\n }\n }\n };\n const fireOnMove = () => {\n // Since fireOnMove is called inside a RAF, onEnd() might be called,\n // we must double check hasCapturedPan\n if (!hasCapturedPan) {\n return;\n }\n isMoveQueued = false;\n if (onMove) {\n onMove(detail);\n }\n };\n const tryToCapturePan = () => {\n if (!gesture.capture()) {\n return false;\n }\n hasCapturedPan = true;\n hasFiredStart = false;\n // reset start position since the real user-land event starts here\n // If the pan detector threshold is big, not resetting the start position\n // will cause a jump in the animation equal to the detector threshold.\n // the array of positions used to calculate the gesture velocity does not\n // need to be cleaned, more points in the positions array always results in a\n // more accurate value of the velocity.\n detail.startX = detail.currentX;\n detail.startY = detail.currentY;\n detail.startTime = detail.currentTime;\n if (onWillStart) {\n onWillStart(detail).then(fireOnStart);\n }\n else {\n fireOnStart();\n }\n return true;\n };\n const blurActiveElement = () => {\n if (typeof document !== 'undefined') {\n const activeElement = document.activeElement;\n if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) {\n activeElement.blur();\n }\n }\n };\n const fireOnStart = () => {\n if (blurOnStart) {\n blurActiveElement();\n }\n if (onStart) {\n onStart(detail);\n }\n hasFiredStart = true;\n };\n const reset = () => {\n hasCapturedPan = false;\n hasStartedPan = false;\n isMoveQueued = false;\n hasFiredStart = true;\n gesture.release();\n };\n // END *************************\n const pointerUp = (ev) => {\n const tmpHasCaptured = hasCapturedPan;\n const tmpHasFiredStart = hasFiredStart;\n reset();\n if (!tmpHasFiredStart) {\n return;\n }\n calcGestureData(detail, ev);\n // Try to capture press\n if (tmpHasCaptured) {\n if (onEnd) {\n onEnd(detail);\n }\n return;\n }\n // Not captured any event\n if (notCaptured) {\n notCaptured(detail);\n }\n };\n const pointerEvents = createPointerEvents(finalConfig.el, pointerDown, pointerMove, pointerUp, {\n capture: false,\n passive,\n });\n const abortGesture = () => {\n reset();\n pointerEvents.stop();\n if (notCaptured) {\n notCaptured(detail);\n }\n };\n return {\n enable(enable = true) {\n if (!enable) {\n if (hasCapturedPan) {\n pointerUp(undefined);\n }\n reset();\n }\n pointerEvents.enable(enable);\n },\n destroy() {\n gesture.destroy();\n pointerEvents.destroy();\n },\n };\n};\nconst calcGestureData = (detail, ev) => {\n if (!ev) {\n return;\n }\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n updateDetail(ev, detail);\n const currentX = detail.currentX;\n const currentY = detail.currentY;\n const timestamp = (detail.currentTime = now(ev));\n const timeDelta = timestamp - prevT;\n if (timeDelta > 0 && timeDelta < 100) {\n const velocityX = (currentX - prevX) / timeDelta;\n const velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n detail.event = ev;\n};\nconst updateDetail = (ev, detail) => {\n // get X coordinates for either a mouse click\n // or a touch depending on the given event\n let x = 0;\n let y = 0;\n if (ev) {\n const changedTouches = ev.changedTouches;\n if (changedTouches && changedTouches.length > 0) {\n const touch = changedTouches[0];\n x = touch.clientX;\n y = touch.clientY;\n }\n else if (ev.pageX !== undefined) {\n x = ev.pageX;\n y = ev.pageY;\n }\n }\n detail.currentX = x;\n detail.currentY = y;\n};\nconst now = (ev) => {\n return ev.timeStamp || Date.now();\n};\n\nexport { createGesture };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { writeTask, Build } from '@stencil/core/internal/client';\nimport { c as componentOnReady, r as raf } from './helpers.js';\n\nconst LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';\nconst LIFECYCLE_DID_ENTER = 'ionViewDidEnter';\nconst LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';\nconst LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';\nconst LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';\n\nconst iosTransitionAnimation = () => import('./ios.transition.js');\nconst mdTransitionAnimation = () => import('./md.transition.js');\nconst transition = (opts) => {\n return new Promise((resolve, reject) => {\n writeTask(() => {\n beforeTransition(opts);\n runTransition(opts).then((result) => {\n if (result.animation) {\n result.animation.destroy();\n }\n afterTransition(opts);\n resolve(result);\n }, (error) => {\n afterTransition(opts);\n reject(error);\n });\n });\n });\n};\nconst beforeTransition = (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n setZIndex(enteringEl, leavingEl, opts.direction);\n if (opts.showGoBack) {\n enteringEl.classList.add('can-go-back');\n }\n else {\n enteringEl.classList.remove('can-go-back');\n }\n setPageHidden(enteringEl, false);\n /**\n * When transitioning, the page should not\n * respond to click events. This resolves small\n * issues like users double tapping the ion-back-button.\n * These pointer events are removed in `afterTransition`.\n */\n enteringEl.style.setProperty('pointer-events', 'none');\n if (leavingEl) {\n setPageHidden(leavingEl, false);\n leavingEl.style.setProperty('pointer-events', 'none');\n }\n};\nconst runTransition = async (opts) => {\n const animationBuilder = await getAnimationBuilder(opts);\n const ani = animationBuilder && Build.isBrowser ? animation(animationBuilder, opts) : noAnimation(opts); // fast path for no animation\n return ani;\n};\nconst afterTransition = (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n enteringEl.classList.remove('ion-page-invisible');\n enteringEl.style.removeProperty('pointer-events');\n if (leavingEl !== undefined) {\n leavingEl.classList.remove('ion-page-invisible');\n leavingEl.style.removeProperty('pointer-events');\n }\n};\nconst getAnimationBuilder = async (opts) => {\n if (!opts.leavingEl || !opts.animated || opts.duration === 0) {\n return undefined;\n }\n if (opts.animationBuilder) {\n return opts.animationBuilder;\n }\n const getAnimation = opts.mode === 'ios'\n ? (await iosTransitionAnimation()).iosTransitionAnimation\n : (await mdTransitionAnimation()).mdTransitionAnimation;\n return getAnimation;\n};\nconst animation = async (animationBuilder, opts) => {\n await waitForReady(opts, true);\n const trans = animationBuilder(opts.baseEl, opts);\n fireWillEvents(opts.enteringEl, opts.leavingEl);\n const didComplete = await playTransition(trans, opts);\n if (opts.progressCallback) {\n opts.progressCallback(undefined);\n }\n if (didComplete) {\n fireDidEvents(opts.enteringEl, opts.leavingEl);\n }\n return {\n hasCompleted: didComplete,\n animation: trans,\n };\n};\nconst noAnimation = async (opts) => {\n const enteringEl = opts.enteringEl;\n const leavingEl = opts.leavingEl;\n await waitForReady(opts, false);\n fireWillEvents(enteringEl, leavingEl);\n fireDidEvents(enteringEl, leavingEl);\n return {\n hasCompleted: true,\n };\n};\nconst waitForReady = async (opts, defaultDeep) => {\n const deep = opts.deepWait !== undefined ? opts.deepWait : defaultDeep;\n const promises = deep\n ? [deepReady(opts.enteringEl), deepReady(opts.leavingEl)]\n : [shallowReady(opts.enteringEl), shallowReady(opts.leavingEl)];\n await Promise.all(promises);\n await notifyViewReady(opts.viewIsReady, opts.enteringEl);\n};\nconst notifyViewReady = async (viewIsReady, enteringEl) => {\n if (viewIsReady) {\n await viewIsReady(enteringEl);\n }\n};\nconst playTransition = (trans, opts) => {\n const progressCallback = opts.progressCallback;\n const promise = new Promise((resolve) => {\n trans.onFinish((currentStep) => resolve(currentStep === 1));\n });\n // cool, let's do this, start the transition\n if (progressCallback) {\n // this is a swipe to go back, just get the transition progress ready\n // kick off the swipe animation start\n trans.progressStart(true);\n progressCallback(trans);\n }\n else {\n // only the top level transition should actually start \"play\"\n // kick it off and let it play through\n // ******** DOM WRITE ****************\n trans.play();\n }\n // create a callback for when the animation is done\n return promise;\n};\nconst fireWillEvents = (enteringEl, leavingEl) => {\n lifecycle(leavingEl, LIFECYCLE_WILL_LEAVE);\n lifecycle(enteringEl, LIFECYCLE_WILL_ENTER);\n};\nconst fireDidEvents = (enteringEl, leavingEl) => {\n lifecycle(enteringEl, LIFECYCLE_DID_ENTER);\n lifecycle(leavingEl, LIFECYCLE_DID_LEAVE);\n};\nconst lifecycle = (el, eventName) => {\n if (el) {\n const ev = new CustomEvent(eventName, {\n bubbles: false,\n cancelable: false,\n });\n el.dispatchEvent(ev);\n }\n};\nconst shallowReady = (el) => {\n if (el) {\n return new Promise((resolve) => componentOnReady(el, resolve));\n }\n return Promise.resolve();\n};\nconst deepReady = async (el) => {\n const element = el;\n if (element) {\n if (element.componentOnReady != null) {\n // eslint-disable-next-line custom-rules/no-component-on-ready-method\n const stencilEl = await element.componentOnReady();\n if (stencilEl != null) {\n return;\n }\n /**\n * Custom elements in Stencil will have __registerHost.\n */\n }\n else if (element.__registerHost != null) {\n /**\n * Non-lazy loaded custom elements need to wait\n * one frame for component to be loaded.\n */\n const waitForCustomElement = new Promise((resolve) => raf(resolve));\n await waitForCustomElement;\n return;\n }\n await Promise.all(Array.from(element.children).map(deepReady));\n }\n};\nconst setPageHidden = (el, hidden) => {\n if (hidden) {\n el.setAttribute('aria-hidden', 'true');\n el.classList.add('ion-page-hidden');\n }\n else {\n el.hidden = false;\n el.removeAttribute('aria-hidden');\n el.classList.remove('ion-page-hidden');\n }\n};\nconst setZIndex = (enteringEl, leavingEl, direction) => {\n if (enteringEl !== undefined) {\n enteringEl.style.zIndex = direction === 'back' ? '99' : '101';\n }\n if (leavingEl !== undefined) {\n leavingEl.style.zIndex = '100';\n }\n};\nconst getIonPageElement = (element) => {\n if (element.classList.contains('ion-page')) {\n return element;\n }\n const ionPage = element.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs');\n if (ionPage) {\n return ionPage;\n }\n // idk, return the original element so at least something animates and we don't have a null pointer\n return element;\n};\n\nexport { LIFECYCLE_WILL_ENTER as L, LIFECYCLE_DID_ENTER as a, LIFECYCLE_WILL_LEAVE as b, LIFECYCLE_DID_LEAVE as c, LIFECYCLE_WILL_UNLOAD as d, deepReady as e, getIonPageElement as g, lifecycle as l, setPageHidden as s, transition as t };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * When accessing the window, it is important\n * to account for SSR applications where the\n * window is not available. Code that accesses\n * window when it is not available will crash.\n * Even checking if `window === undefined` will cause\n * apps to crash in SSR.\n *\n * Use win below to access an SSR-safe version\n * of the window.\n *\n * Example 1:\n * Before:\n * if (window.innerWidth > 768) { ... }\n *\n * After:\n * import { win } from 'path/to/this/file';\n * if (win?.innerWidth > 768) { ... }\n *\n * Note: Code inside of this if-block will\n * not run in an SSR environment.\n */\nconst win = typeof window !== 'undefined' ? window : undefined;\n\nexport { win as w };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Logs a warning to the console with an Ionic prefix\n * to indicate the library that is warning the developer.\n *\n * @param message - The string message to be logged to the console.\n */\nconst printIonWarning = (message, ...params) => {\n return console.warn(`[Ionic Warning]: ${message}`, ...params);\n};\n/*\n * Logs an error to the console with an Ionic prefix\n * to indicate the library that is warning the developer.\n *\n * @param message - The string message to be logged to the console.\n * @param params - Additional arguments to supply to the console.error.\n */\nconst printIonError = (message, ...params) => {\n return console.error(`[Ionic Error]: ${message}`, ...params);\n};\n/**\n * Prints an error informing developers that an implementation requires an element to be used\n * within a specific selector.\n *\n * @param el The web component element this is requiring the element.\n * @param targetSelectors The selector or selectors that were not found.\n */\nconst printRequiredElementError = (el, ...targetSelectors) => {\n return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);\n};\n\nexport { printIonError as a, printRequiredElementError as b, printIonWarning as p };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as componentOnReady } from './helpers.js';\nimport { b as printRequiredElementError } from './index8.js';\n\nconst ION_CONTENT_TAG_NAME = 'ION-CONTENT';\nconst ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';\nconst ION_CONTENT_CLASS_SELECTOR = '.ion-content-scroll-host';\n/**\n * Selector used for implementations reliant on `<ion-content>` for scroll event changes.\n *\n * Developers should use the `.ion-content-scroll-host` selector to target the element emitting\n * scroll events. With virtual scroll implementations this will be the host element for\n * the scroll viewport.\n */\nconst ION_CONTENT_SELECTOR = `${ION_CONTENT_ELEMENT_SELECTOR}, ${ION_CONTENT_CLASS_SELECTOR}`;\nconst isIonContent = (el) => el.tagName === ION_CONTENT_TAG_NAME;\n/**\n * Waits for the element host fully initialize before\n * returning the inner scroll element.\n *\n * For `ion-content` the scroll target will be the result\n * of the `getScrollElement` function.\n *\n * For custom implementations it will be the element host\n * or a selector within the host, if supplied through `scrollTarget`.\n */\nconst getScrollElement = async (el) => {\n if (isIonContent(el)) {\n await new Promise((resolve) => componentOnReady(el, resolve));\n return el.getScrollElement();\n }\n return el;\n};\n/**\n * Queries the element matching the selector for IonContent.\n * See ION_CONTENT_SELECTOR for the selector used.\n */\nconst findIonContent = (el) => {\n /**\n * First we try to query the custom scroll host selector in cases where\n * the implementation is using an outer `ion-content` with an inner custom\n * scroll container.\n */\n const customContentHost = el.querySelector(ION_CONTENT_CLASS_SELECTOR);\n if (customContentHost) {\n return customContentHost;\n }\n return el.querySelector(ION_CONTENT_SELECTOR);\n};\n/**\n * Queries the closest element matching the selector for IonContent.\n */\nconst findClosestIonContent = (el) => {\n return el.closest(ION_CONTENT_SELECTOR);\n};\n/**\n * Scrolls to the top of the element. If an `ion-content` is found, it will scroll\n * using the public API `scrollToTop` with a duration.\n */\nconst scrollToTop = (el, durationMs) => {\n if (isIonContent(el)) {\n const content = el;\n return content.scrollToTop(durationMs);\n }\n return Promise.resolve(el.scrollTo({\n top: 0,\n left: 0,\n behavior: durationMs > 0 ? 'smooth' : 'auto',\n }));\n};\n/**\n * Scrolls by a specified X/Y distance in the component. If an `ion-content` is found, it will scroll\n * using the public API `scrollByPoint` with a duration.\n */\nconst scrollByPoint = (el, x, y, durationMs) => {\n if (isIonContent(el)) {\n const content = el;\n return content.scrollByPoint(x, y, durationMs);\n }\n return Promise.resolve(el.scrollBy({\n top: y,\n left: x,\n behavior: durationMs > 0 ? 'smooth' : 'auto',\n }));\n};\n/**\n * Prints an error informing developers that an implementation requires an element to be used\n * within either the `ion-content` selector or the `.ion-content-scroll-host` class.\n */\nconst printIonContentErrorMsg = (el) => {\n return printRequiredElementError(el, ION_CONTENT_ELEMENT_SELECTOR);\n};\n/**\n * Several components in Ionic need to prevent scrolling\n * during a gesture (card modal, range, item sliding, etc).\n * Use this utility to account for ion-content and custom content hosts.\n */\nconst disableContentScrollY = (contentEl) => {\n if (isIonContent(contentEl)) {\n const ionContent = contentEl;\n const initialScrollY = ionContent.scrollY;\n ionContent.scrollY = false;\n /**\n * This should be passed into resetContentScrollY\n * so that we can revert ion-content's scrollY to the\n * correct state. For example, if scrollY = false\n * initially, we do not want to enable scrolling\n * when we call resetContentScrollY.\n */\n return initialScrollY;\n }\n else {\n contentEl.style.setProperty('overflow', 'hidden');\n return true;\n }\n};\nconst resetContentScrollY = (contentEl, initialScrollY) => {\n if (isIonContent(contentEl)) {\n contentEl.scrollY = initialScrollY;\n }\n else {\n contentEl.style.removeProperty('overflow');\n }\n};\n\nexport { ION_CONTENT_ELEMENT_SELECTOR as I, findClosestIonContent as a, ION_CONTENT_CLASS_SELECTOR as b, scrollByPoint as c, disableContentScrollY as d, findIonContent as f, getScrollElement as g, isIonContent as i, printIonContentErrorMsg as p, resetContentScrollY as r, scrollToTop as s };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst KEYBOARD_DID_OPEN = 'ionKeyboardDidShow';\nconst KEYBOARD_DID_CLOSE = 'ionKeyboardDidHide';\nconst KEYBOARD_THRESHOLD = 150;\nlet previousVisualViewport = {};\nlet currentVisualViewport = {};\nlet keyboardOpen = false;\n/**\n * This is only used for tests\n */\nconst resetKeyboardAssist = () => {\n previousVisualViewport = {};\n currentVisualViewport = {};\n keyboardOpen = false;\n};\nconst startKeyboardAssist = (win) => {\n startNativeListeners(win);\n if (!win.visualViewport) {\n return;\n }\n currentVisualViewport = copyVisualViewport(win.visualViewport);\n win.visualViewport.onresize = () => {\n trackViewportChanges(win);\n if (keyboardDidOpen() || keyboardDidResize(win)) {\n setKeyboardOpen(win);\n }\n else if (keyboardDidClose(win)) {\n setKeyboardClose(win);\n }\n };\n};\n/**\n * Listen for events fired by native keyboard plugin\n * in Capacitor/Cordova so devs only need to listen\n * in one place.\n */\nconst startNativeListeners = (win) => {\n win.addEventListener('keyboardDidShow', (ev) => setKeyboardOpen(win, ev));\n win.addEventListener('keyboardDidHide', () => setKeyboardClose(win));\n};\nconst setKeyboardOpen = (win, ev) => {\n fireKeyboardOpenEvent(win, ev);\n keyboardOpen = true;\n};\nconst setKeyboardClose = (win) => {\n fireKeyboardCloseEvent(win);\n keyboardOpen = false;\n};\n/**\n * Returns `true` if the `keyboardOpen` flag is not\n * set, the previous visual viewport width equal the current\n * visual viewport width, and if the scaled difference\n * of the previous visual viewport height minus the current\n * visual viewport height is greater than KEYBOARD_THRESHOLD\n *\n * We need to be able to accommodate users who have zooming\n * enabled in their browser (or have zoomed in manually) which\n * is why we take into account the current visual viewport's\n * scale value.\n */\nconst keyboardDidOpen = () => {\n const scaledHeightDifference = (previousVisualViewport.height - currentVisualViewport.height) * currentVisualViewport.scale;\n return (!keyboardOpen &&\n previousVisualViewport.width === currentVisualViewport.width &&\n scaledHeightDifference > KEYBOARD_THRESHOLD);\n};\n/**\n * Returns `true` if the keyboard is open,\n * but the keyboard did not close\n */\nconst keyboardDidResize = (win) => {\n return keyboardOpen && !keyboardDidClose(win);\n};\n/**\n * Determine if the keyboard was closed\n * Returns `true` if the `keyboardOpen` flag is set and\n * the current visual viewport height equals the\n * layout viewport height.\n */\nconst keyboardDidClose = (win) => {\n return keyboardOpen && currentVisualViewport.height === win.innerHeight;\n};\n/**\n * Dispatch a keyboard open event\n */\nconst fireKeyboardOpenEvent = (win, nativeEv) => {\n const keyboardHeight = nativeEv ? nativeEv.keyboardHeight : win.innerHeight - currentVisualViewport.height;\n const ev = new CustomEvent(KEYBOARD_DID_OPEN, {\n detail: { keyboardHeight },\n });\n win.dispatchEvent(ev);\n};\n/**\n * Dispatch a keyboard close event\n */\nconst fireKeyboardCloseEvent = (win) => {\n const ev = new CustomEvent(KEYBOARD_DID_CLOSE);\n win.dispatchEvent(ev);\n};\n/**\n * Given a window object, create a copy of\n * the current visual and layout viewport states\n * while also preserving the previous visual and\n * layout viewport states\n */\nconst trackViewportChanges = (win) => {\n previousVisualViewport = Object.assign({}, currentVisualViewport);\n currentVisualViewport = copyVisualViewport(win.visualViewport);\n};\n/**\n * Creates a deep copy of the visual viewport\n * at a given state\n */\nconst copyVisualViewport = (visualViewport) => {\n return {\n width: Math.round(visualViewport.width),\n height: Math.round(visualViewport.height),\n offsetTop: visualViewport.offsetTop,\n offsetLeft: visualViewport.offsetLeft,\n pageTop: visualViewport.pageTop,\n pageLeft: visualViewport.pageLeft,\n scale: visualViewport.scale,\n };\n};\n\nexport { KEYBOARD_DID_CLOSE, KEYBOARD_DID_OPEN, copyVisualViewport, keyboardDidClose, keyboardDidOpen, keyboardDidResize, resetKeyboardAssist, setKeyboardClose, setKeyboardOpen, startKeyboardAssist, trackViewportChanges };\n","/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet contentRef;\nlet hostTagName;\nlet customError;\nlet i = 0;\nlet useNativeShadowDom = false;\nlet checkSlotFallbackVisibility = false;\nlet checkSlotRelocate = false;\nlet isSvgMode = false;\nlet renderingRef = null;\nlet queueCongestion = 0;\nlet queuePending = false;\n/*\n Stencil Client Platform v2.19.3 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nconst Build = {\n isDev: BUILD.isDev ? true : false,\n isBrowser: true,\n isServer: false,\n isTesting: BUILD.isTesting ? true : false,\n};\nconst Context = {};\nconst getAssetPath = (path) => {\n const assetUrl = new URL(path, plt.$resourcesUrl$);\n return assetUrl.origin !== win.location.origin ? assetUrl.href : assetUrl.pathname;\n};\nconst setAssetPath = (path) => (plt.$resourcesUrl$ = path);\nconst createTime = (fnName, tagName = '') => {\n if (BUILD.profile && performance.mark) {\n const key = `st:${fnName}:${tagName}:${i++}`;\n // Start\n performance.mark(key);\n // End\n return () => performance.measure(`[Stencil] ${fnName}() <${tagName}>`, key);\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n if (BUILD.profile && performance.mark) {\n if (performance.getEntriesByName(key).length === 0) {\n performance.mark(key);\n }\n return () => {\n if (performance.getEntriesByName(measureText).length === 0) {\n performance.measure(measureText, key);\n }\n };\n }\n else {\n return () => {\n return;\n };\n }\n};\nconst inspect = (ref) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return undefined;\n }\n const flags = hostRef.$flags$;\n const hostElement = hostRef.$hostElement$;\n return {\n renderCount: hostRef.$renderCount$,\n flags: {\n hasRendered: !!(flags & 2 /* HOST_FLAGS.hasRendered */),\n hasConnected: !!(flags & 1 /* HOST_FLAGS.hasConnected */),\n isWaitingForChildren: !!(flags & 4 /* HOST_FLAGS.isWaitingForChildren */),\n isConstructingInstance: !!(flags & 8 /* HOST_FLAGS.isConstructingInstance */),\n isQueuedForUpdate: !!(flags & 16 /* HOST_FLAGS.isQueuedForUpdate */),\n hasInitializedComponent: !!(flags & 32 /* HOST_FLAGS.hasInitializedComponent */),\n hasLoadedComponent: !!(flags & 64 /* HOST_FLAGS.hasLoadedComponent */),\n isWatchReady: !!(flags & 128 /* HOST_FLAGS.isWatchReady */),\n isListenReady: !!(flags & 256 /* HOST_FLAGS.isListenReady */),\n needsRerender: !!(flags & 512 /* HOST_FLAGS.needsRerender */),\n },\n instanceValues: hostRef.$instanceValues$,\n ancestorComponent: hostRef.$ancestorComponent$,\n hostElement,\n lazyInstance: hostRef.$lazyInstance$,\n vnode: hostRef.$vnode$,\n modeName: hostRef.$modeName$,\n onReadyPromise: hostRef.$onReadyPromise$,\n onReadyResolve: hostRef.$onReadyResolve$,\n onInstancePromise: hostRef.$onInstancePromise$,\n onInstanceResolve: hostRef.$onInstanceResolve$,\n onRenderResolve: hostRef.$onRenderResolve$,\n queuedListeners: hostRef.$queuedListeners$,\n rmListeners: hostRef.$rmListeners$,\n ['s-id']: hostElement['s-id'],\n ['s-cr']: hostElement['s-cr'],\n ['s-lr']: hostElement['s-lr'],\n ['s-p']: hostElement['s-p'],\n ['s-rc']: hostElement['s-rc'],\n ['s-sc']: hostElement['s-sc'],\n };\n};\nconst installDevTools = () => {\n if (BUILD.devTools) {\n const stencil = (win.stencil = win.stencil || {});\n const originalInspect = stencil.inspect;\n stencil.inspect = (ref) => {\n let result = inspect(ref);\n if (!result && typeof originalInspect === 'function') {\n result = originalInspect(ref);\n }\n return result;\n };\n }\n};\nconst CONTENT_REF_ID = 'r';\nconst ORG_LOCATION_ID = 'o';\nconst SLOT_NODE_ID = 's';\nconst TEXT_NODE_ID = 't';\nconst HYDRATE_ID = 's-id';\nconst HYDRATED_STYLE_ID = 'sty-id';\nconst HYDRATE_CHILD_ID = 'c-id';\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\nconst XLINK_NS = 'http://www.w3.org/1999/xlink';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\n/**\n * Namespaces\n */\nconst SVG_NS = 'http://www.w3.org/2000/svg';\nconst HTML_NS = 'http://www.w3.org/1999/xhtml';\nconst isDef = (v) => v != null;\nconst isComplexType = (o) => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// const stack: any[] = [];\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = (nodeName, vnodeData, ...children) => {\n let child = null;\n let key = null;\n let slotName = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n }\n else if (child != null && typeof child !== 'boolean') {\n if ((simple = typeof nodeName !== 'function' && !isComplexType(child))) {\n child = String(child);\n }\n else if (BUILD.isDev && typeof nodeName !== 'function' && child.$flags$ === undefined) {\n consoleDevError(`vNode passed as children has unexpected type.\nMake sure it's using the correct h() function.\nEmpty objects can also be the cause, look for JSX comments that became objects.`);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n }\n else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (BUILD.isDev && nodeName === 'input') {\n validateInputProperties(vnodeData);\n }\n // normalize class / classname attributes\n if (BUILD.vdomKey && vnodeData.key) {\n key = vnodeData.key;\n }\n if (BUILD.slotRelocation && vnodeData.name) {\n slotName = vnodeData.name;\n }\n if (BUILD.vdomClass) {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class =\n typeof classData !== 'object'\n ? classData\n : Object.keys(classData)\n .filter((k) => classData[k])\n .join(' ');\n }\n }\n }\n if (BUILD.isDev && vNodeChildren.some(isHost)) {\n consoleDevError(`The <Host> must be the single root component. Make sure:\n- You are NOT using hostData() and <Host> in the same component.\n- <Host> is used once, and it's the single root component of the render() function.`);\n }\n if (BUILD.vdomFunctional && typeof nodeName === 'function') {\n // nodeName is a functional component\n return nodeName(vnodeData === null ? {} : vnodeData, vNodeChildren, vdomFnUtils);\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = key;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = slotName;\n }\n return vnode;\n};\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null,\n };\n if (BUILD.vdomAttribute) {\n vnode.$attrs$ = null;\n }\n if (BUILD.vdomKey) {\n vnode.$key$ = null;\n }\n if (BUILD.slotRelocation) {\n vnode.$name$ = null;\n }\n return vnode;\n};\nconst Host = {};\nconst isHost = (node) => node && node.$tag$ === Host;\nconst vdomFnUtils = {\n forEach: (children, cb) => children.map(convertToPublic).forEach(cb),\n map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),\n};\nconst convertToPublic = (node) => ({\n vattrs: node.$attrs$,\n vchildren: node.$children$,\n vkey: node.$key$,\n vname: node.$name$,\n vtag: node.$tag$,\n vtext: node.$text$,\n});\nconst convertToPrivate = (node) => {\n if (typeof node.vtag === 'function') {\n const vnodeData = Object.assign({}, node.vattrs);\n if (node.vkey) {\n vnodeData.key = node.vkey;\n }\n if (node.vname) {\n vnodeData.name = node.vname;\n }\n return h(node.vtag, vnodeData, ...(node.vchildren || []));\n }\n const vnode = newVNode(node.vtag, node.vtext);\n vnode.$attrs$ = node.vattrs;\n vnode.$children$ = node.vchildren;\n vnode.$key$ = node.vkey;\n vnode.$name$ = node.vname;\n return vnode;\n};\n/**\n * Validates the ordering of attributes on an input element\n * @param inputElm the element to validate\n */\nconst validateInputProperties = (inputElm) => {\n const props = Object.keys(inputElm);\n const value = props.indexOf('value');\n if (value === -1) {\n return;\n }\n const typeIndex = props.indexOf('type');\n const minIndex = props.indexOf('min');\n const maxIndex = props.indexOf('max');\n const stepIndex = props.indexOf('step');\n if (value < typeIndex || value < minIndex || value < maxIndex || value < stepIndex) {\n consoleDevWarn(`The \"value\" prop of <input> should be set after \"min\", \"max\", \"type\" and \"step\"`);\n }\n};\nconst initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {\n const endHydrate = createTime('hydrateClient', tagName);\n const shadowRoot = hostElm.shadowRoot;\n const childRenderNodes = [];\n const slotNodes = [];\n const shadowRootNodes = BUILD.shadowDom && shadowRoot ? [] : null;\n const vnode = (hostRef.$vnode$ = newVNode(tagName, null));\n if (!plt.$orgLocNodes$) {\n initializeDocumentHydrate(doc.body, (plt.$orgLocNodes$ = new Map()));\n }\n hostElm[HYDRATE_ID] = hostId;\n hostElm.removeAttribute(HYDRATE_ID);\n clientHydrate(vnode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, hostElm, hostId);\n childRenderNodes.map((c) => {\n const orgLocationId = c.$hostId$ + '.' + c.$nodeId$;\n const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);\n const node = c.$elm$;\n if (orgLocationNode && supportsShadow && orgLocationNode['s-en'] === '') {\n orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);\n }\n if (!shadowRoot) {\n node['s-hn'] = tagName;\n if (orgLocationNode) {\n node['s-ol'] = orgLocationNode;\n node['s-ol']['s-nr'] = node;\n }\n }\n plt.$orgLocNodes$.delete(orgLocationId);\n });\n if (BUILD.shadowDom && shadowRoot) {\n shadowRootNodes.map((shadowRootNode) => {\n if (shadowRootNode) {\n shadowRoot.appendChild(shadowRootNode);\n }\n });\n }\n endHydrate();\n};\nconst clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId) => {\n let childNodeType;\n let childIdSplt;\n let childVNode;\n let i;\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childNodeType = node.getAttribute(HYDRATE_CHILD_ID);\n if (childNodeType) {\n // got the node data from the element's attribute\n // `${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = childNodeType.split('.');\n if (childIdSplt[0] === hostId || childIdSplt[0] === '0') {\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[0],\n $nodeId$: childIdSplt[1],\n $depth$: childIdSplt[2],\n $index$: childIdSplt[3],\n $tag$: node.tagName.toLowerCase(),\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $text$: null,\n };\n childRenderNodes.push(childVNode);\n node.removeAttribute(HYDRATE_CHILD_ID);\n // this is a new child vnode\n // so ensure its parent vnode has the vchildren array\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n // add our child vnode to a specific index of the vnode's children\n parentVNode.$children$[childVNode.$index$] = childVNode;\n // this is now the new parent vnode for all the next child checks\n parentVNode = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n // recursively drill down, end to start so we can remove nodes\n for (i = node.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.childNodes[i], hostId);\n }\n if (node.shadowRoot) {\n // keep drilling down through the shadow root nodes\n for (i = node.shadowRoot.childNodes.length - 1; i >= 0; i--) {\n clientHydrate(parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node.shadowRoot.childNodes[i], hostId);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n // `${COMMENT_TYPE}.${hostId}.${nodeId}.${depth}.${index}`\n childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[1] === hostId || childIdSplt[1] === '0') {\n // comment node for either the host id or a 0 host id\n childNodeType = childIdSplt[0];\n childVNode = {\n $flags$: 0,\n $hostId$: childIdSplt[1],\n $nodeId$: childIdSplt[2],\n $depth$: childIdSplt[3],\n $index$: childIdSplt[4],\n $elm$: node,\n $attrs$: null,\n $children$: null,\n $key$: null,\n $name$: null,\n $tag$: null,\n $text$: null,\n };\n if (childNodeType === TEXT_NODE_ID) {\n childVNode.$elm$ = node.nextSibling;\n if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* NODE_TYPE.TextNode */) {\n childVNode.$text$ = childVNode.$elm$.textContent;\n childRenderNodes.push(childVNode);\n // remove the text comment since it's no longer needed\n node.remove();\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n if (shadowRootNodes && childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n }\n else if (childVNode.$hostId$ === hostId) {\n // this comment node is specifcally for this host id\n if (childNodeType === SLOT_NODE_ID) {\n // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;\n childVNode.$tag$ = 'slot';\n if (childIdSplt[5]) {\n node['s-sn'] = childVNode.$name$ = childIdSplt[5];\n }\n else {\n node['s-sn'] = '';\n }\n node['s-sr'] = true;\n if (BUILD.shadowDom && shadowRootNodes) {\n // browser support shadowRoot and this is a shadow dom component\n // create an actual slot element\n childVNode.$elm$ = doc.createElement(childVNode.$tag$);\n if (childVNode.$name$) {\n // add the slot name attribute\n childVNode.$elm$.setAttribute('name', childVNode.$name$);\n }\n // insert the new slot element before the slot comment\n node.parentNode.insertBefore(childVNode.$elm$, node);\n // remove the slot comment since it's not needed for shadow\n node.remove();\n if (childVNode.$depth$ === '0') {\n shadowRootNodes[childVNode.$index$] = childVNode.$elm$;\n }\n }\n slotNodes.push(childVNode);\n if (!parentVNode.$children$) {\n parentVNode.$children$ = [];\n }\n parentVNode.$children$[childVNode.$index$] = childVNode;\n }\n else if (childNodeType === CONTENT_REF_ID) {\n // `${CONTENT_REF_ID}.${hostId}`;\n if (BUILD.shadowDom && shadowRootNodes) {\n // remove the content ref comment since it's not needed for shadow\n node.remove();\n }\n else if (BUILD.slotRelocation) {\n hostElm['s-cr'] = node;\n node['s-cn'] = true;\n }\n }\n }\n }\n }\n else if (parentVNode && parentVNode.$tag$ === 'style') {\n const vnode = newVNode(null, node.textContent);\n vnode.$elm$ = node;\n vnode.$index$ = '0';\n parentVNode.$children$ = [vnode];\n }\n};\nconst initializeDocumentHydrate = (node, orgLocNodes) => {\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n let i = 0;\n for (; i < node.childNodes.length; i++) {\n initializeDocumentHydrate(node.childNodes[i], orgLocNodes);\n }\n if (node.shadowRoot) {\n for (i = 0; i < node.shadowRoot.childNodes.length; i++) {\n initializeDocumentHydrate(node.shadowRoot.childNodes[i], orgLocNodes);\n }\n }\n }\n else if (node.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n const childIdSplt = node.nodeValue.split('.');\n if (childIdSplt[0] === ORG_LOCATION_ID) {\n orgLocNodes.set(childIdSplt[1] + '.' + childIdSplt[2], node);\n node.nodeValue = '';\n // useful to know if the original location is\n // the root light-dom of a shadow dom component\n node['s-en'] = childIdSplt[3];\n }\n }\n};\n// Private\nconst computeMode = (elm) => modeResolutionChain.map((h) => h(elm)).find((m) => !!m);\n// Public\nconst setMode = (handler) => modeResolutionChain.push(handler);\nconst getMode = (ref) => getHostRef(ref).$modeName$;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * <my-cmp prop-val={0}></my-cmp>\n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (BUILD.propBoolean && propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (BUILD.propNumber && propType & 2 /* MEMBER_FLAGS.Number */) {\n // force it to be a number\n return parseFloat(propValue);\n }\n if (BUILD.propString && propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = (ref) => (BUILD.lazyLoad ? getHostRef(ref).$hostElement$ : ref);\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: (detail) => {\n if (BUILD.isDev && !elm.isConnected) {\n consoleDevWarn(`The \"${name}\" event was emitted, but the dispatcher node is no longer connected to the dom.`);\n }\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail,\n });\n },\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/ new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = (style || new CSSStyleSheet());\n if (typeof style === 'string') {\n style = cssText;\n }\n else {\n style.replaceSync(cssText);\n }\n }\n else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n let scopeId = getScopeId(cmpMeta, mode);\n const style = styles.get(scopeId);\n if (!BUILD.attachStyles) {\n return scopeId;\n }\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));\n }\n if (!appliedStyles.has(scopeId)) {\n if (BUILD.hydrateClientSide &&\n styleContainerNode.host &&\n (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}=\"${scopeId}\"]`))) {\n // This is only happening on native shadow-dom, do not needs CSS var shim\n styleElm.innerHTML = style;\n }\n else {\n if (BUILD.cssVarShim && plt.$cssShim$) {\n styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* CMP_FLAGS.needsScopedEncapsulation */));\n const newScopeId = styleElm['s-sc'];\n if (newScopeId) {\n scopeId = newScopeId;\n // we don't want to add this styleID to the appliedStyles Set\n // since the cssVarShim might need to apply several different\n // stylesheets for the same component\n appliedStyles = null;\n }\n }\n else {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n if (BUILD.hydrateServerSide || BUILD.hotModuleReplacement) {\n styleElm.setAttribute(HYDRATED_STYLE_ID, scopeId);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n }\n else if (BUILD.constructableCSS && !styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(BUILD.shadowDom && supportsShadow && elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);\n if ((BUILD.shadowDom || BUILD.scoped) && BUILD.cssAnnotations && flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n if (BUILD.scoped && flags & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm.classList.add(scopeId + '-s');\n }\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + (BUILD.mode && mode && cmp.$flags$ & 32 /* CMP_FLAGS.hasMode */ ? cmp.$tagName$ + '-' + mode : cmp.$tagName$);\nconst convertScopedToShadow = (css) => css.replace(/\\/\\*!@([^\\/]+)\\*\\/[^\\{]+\\{/g, '$1{');\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (BUILD.vdomClass && memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n else if (BUILD.vdomStyle && memberName === 'style') {\n // update style attribute, css properties and values\n if (BUILD.updatable) {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.removeProperty(prop);\n }\n else {\n elm.style[prop] = '';\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (!BUILD.hydrateServerSide && prop.includes('-')) {\n elm.style.setProperty(prop, newValue[prop]);\n }\n else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n }\n else if (BUILD.vdomKey && memberName === 'key')\n ;\n else if (BUILD.vdomRef && memberName === 'ref') {\n // minifier will clean this up\n if (newValue) {\n newValue(elm);\n }\n }\n else if (BUILD.vdomListener &&\n (BUILD.lazyLoad ? !isProp : !elm.__lookupSetter__(memberName)) &&\n memberName[0] === 'o' &&\n memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // <my-cmp on-click> // listens for \"click\"\n // <my-cmp on-Click> // listens for \"Click\"\n // <my-cmp on-ionChange> // listens for \"ionChange\"\n // <my-cmp on-EVENTS> // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n }\n else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n }\n else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n }\n else if (BUILD.vdomPropOrAttr) {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || (isComplex && newValue !== null)) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the <input> caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n }\n else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n }\n else {\n elm[memberName] = newValue;\n }\n }\n catch (e) { }\n }\n /**\n * Need to manually update attribute if:\n * - memberName is not an attribute\n * - if we are rendering the host element in order to reflect attribute\n * - if it's a SVG, since properties might not work in <svg>\n * - if the newValue is null/undefined or 'false'.\n */\n let xlink = false;\n if (BUILD.vdomXlink) {\n if (ln !== (ln = ln.replace(/^xlink\\:?/, ''))) {\n memberName = ln;\n xlink = true;\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n if (BUILD.vdomXlink && xlink) {\n elm.removeAttributeNS(XLINK_NS, memberName);\n }\n else {\n elm.removeAttribute(memberName);\n }\n }\n }\n else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n if (BUILD.vdomXlink && xlink) {\n elm.setAttributeNS(XLINK_NS, memberName, newValue);\n }\n else {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host\n ? newVnode.$elm$.host\n : newVnode.$elm$;\n const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n if (BUILD.updatable) {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n let oldVNode;\n if (BUILD.slotRelocation && !useNativeShadowDom) {\n // remember for later we need to check to relocate nodes\n checkSlotRelocate = true;\n if (newVNode.$tag$ === 'slot') {\n if (scopeId) {\n // scoped css needs to add its scoped id to the parent element\n parentElm.classList.add(scopeId + '-s');\n }\n newVNode.$flags$ |= newVNode.$children$\n ? // slot element has fallback content\n 2 /* VNODE_FLAGS.isSlotFallback */\n : // slot element does not have fallback content\n 1 /* VNODE_FLAGS.isSlotReference */;\n }\n }\n if (BUILD.isDev && newVNode.$elm$) {\n consoleDevError(`The JSX ${newVNode.$text$ !== null ? `\"${newVNode.$text$}\" text` : `\"${newVNode.$tag$}\" element`} node should not be shared within the same renderer. The renderer caches element lookups in order to improve performance. However, a side effect from this is that the exact same JSX node should not be reused. For more information please see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes`);\n }\n if (BUILD.vdomText && newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n }\n else if (BUILD.slotRelocation && newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {\n // create a slot reference node\n elm = newVNode.$elm$ =\n BUILD.isDebug || BUILD.hydrateServerSide ? slotReferenceDebugNode(newVNode) : doc.createTextNode('');\n }\n else {\n if (BUILD.svg && !isSvgMode) {\n isSvgMode = newVNode.$tag$ === 'svg';\n }\n // create element\n elm = newVNode.$elm$ = (BUILD.svg\n ? doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$)\n : doc.createElement(BUILD.slotRelocation && newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */\n ? 'slot-fb'\n : newVNode.$tag$));\n if (BUILD.svg && isSvgMode && newVNode.$tag$ === 'foreignObject') {\n isSvgMode = false;\n }\n // add css classes, attrs, props, listeners, etc.\n if (BUILD.vdomAttribute) {\n updateElement(null, newVNode, isSvgMode);\n }\n if ((BUILD.shadowDom || BUILD.scoped) && isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add((elm['s-si'] = scopeId));\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i, elm);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n if (BUILD.svg) {\n if (newVNode.$tag$ === 'svg') {\n // Only reset the SVG context when we're exiting <svg> element\n isSvgMode = false;\n }\n else if (elm.tagName === 'foreignObject') {\n // Reenter SVG context when we're exiting <foreignObject> element\n isSvgMode = true;\n }\n }\n }\n if (BUILD.slotRelocation) {\n elm['s-hn'] = hostTagName;\n if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {\n // remember the content reference comment\n elm['s-sr'] = true;\n // remember the content reference comment\n elm['s-cr'] = contentRef;\n // remember the slot name, or empty string for default slot\n elm['s-sn'] = newVNode.$name$ || '';\n // check if we've got an old vnode for this slot\n oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];\n if (oldVNode && oldVNode.$tag$ === newVNode.$tag$ && oldParentVNode.$elm$) {\n // we've got an old slot vnode and the wrapper is being replaced\n // so let's move the old slot content back to it's original location\n putBackInOriginalLocation(oldParentVNode.$elm$, false);\n }\n }\n }\n return elm;\n};\nconst putBackInOriginalLocation = (parentElm, recursive) => {\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n const oldSlotChildNodes = parentElm.childNodes;\n for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {\n const childNode = oldSlotChildNodes[i];\n if (childNode['s-hn'] !== hostTagName && childNode['s-ol']) {\n // // this child node in the old element is from another component\n // // remove this node from the old slot's parent\n // childNode.remove();\n // and relocate it back to it's original location\n parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));\n // remove the old original location comment entirely\n // later on the patch function will know what to do\n // and move this to the correct spot in need be\n childNode['s-ol'].remove();\n childNode['s-ol'] = undefined;\n checkSlotRelocate = true;\n }\n if (recursive) {\n putBackInOriginalLocation(childNode, recursive);\n }\n }\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n};\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = ((BUILD.slotRelocation && parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);\n let childNode;\n if (BUILD.shadowDom && containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx, parentElm);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, BUILD.slotRelocation ? referenceNode(before) : before);\n }\n }\n }\n};\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if ((vnode = vnodes[startIdx])) {\n elm = vnode.$elm$;\n callNodeRefs(vnode);\n if (BUILD.slotRelocation) {\n // we're removing this element\n // so it's possible we need to show slot fallback content now\n checkSlotFallbackVisibility = true;\n if (elm['s-ol']) {\n // remove the original location comment\n elm['s-ol'].remove();\n }\n else {\n // it's possible that child nodes of the node\n // that's being removed are slot nodes\n putBackInOriginalLocation(elm, true);\n }\n }\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `<div><p><span>HEY</span></p></div>`\n * newVNode: `<div><p><span>THERE</span></p></div>`\n *\n * Then when comparing the children of the `<div>` tag we check the equality\n * of the VNodes corresponding to the `<p>` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `<div><element-one /><element-two /></div>`\n * newVNode: `<div><element-two /><element-one /></div>`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n }\n else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n }\n else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldStartVnode, newEndVnode)) {\n // case: \"Vnode moved right\"\n //\n // We've found that the last node in our window on the new children is\n // the same VNode as the _first_ node in our window on the old children\n // we're dealing with now. Visually, this is the layout of these two\n // nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^^^\n //\n // In this situation we need to patch `newEndVnode` onto `oldStartVnode`\n // and move the DOM element for `oldStartVnode`.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);\n }\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // <old-start-node />\n // <some-intervening-node />\n // <old-end-node />\n // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here\n // <next-sibling />\n //\n // If instead `oldEndVnode.$elm$` has no sibling then we just want to put\n // the node for `oldStartVnode` at the end of the children of\n // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there\n // aren't any siblings, and passing `null` to `Node.insertBefore` will\n // append it to the children of the parent element.\n parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (isSameVnode(oldEndVnode, newStartVnode)) {\n // case: \"Vnode moved left\"\n //\n // We've found that the first node in our window on the new children is\n // the same VNode as the _last_ node in our window on the old children.\n // Visually, this is the layout of these two nodes:\n //\n // newCh: [..., newStartVnode , ... , newEndVnode , ...]\n // ^^^^^^^^^^^^^\n // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]\n // ^^^^^^^^^^^\n //\n // In this situation we need to patch `newStartVnode` onto `oldEndVnode`\n // (which will handle updating any changed attributes, reconciling their\n // children etc) but we also need to move the DOM node to which\n // `oldEndVnode` corresponds.\n if (BUILD.slotRelocation && (oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {\n putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);\n }\n patch(oldEndVnode, newStartVnode);\n // We've already checked above if `oldStartVnode` and `newStartVnode` are\n // the same node, so since we're here we know that they are not. Thus we\n // can move the element for `oldEndVnode` _before_ the element for\n // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the\n // future.\n parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // Here we do some checks to match up old and new nodes based on the\n // `$key$` attribute, which is set by putting a `key=\"my-key\"` attribute\n // in the JSX for a DOM element in the implementation of a Stencil\n // component.\n //\n // First we check to see if there are any nodes in the array of old\n // children which have the same key as the first node in the new\n // children.\n idxInOld = -1;\n if (BUILD.vdomKey) {\n for (i = oldStartIdx; i <= oldEndIdx; ++i) {\n if (oldCh[i] && oldCh[i].$key$ !== null && oldCh[i].$key$ === newStartVnode.$key$) {\n idxInOld = i;\n break;\n }\n }\n }\n if (BUILD.vdomKey && idxInOld >= 0) {\n // We found a node in the old children which matches up with the first\n // node in the new children! So let's deal with that\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n // the tag doesn't match so we'll need a new DOM element\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld, parentElm);\n }\n else {\n patch(elmToMove, newStartVnode);\n // invalidate the matching old node so that we won't try to update it\n // again later on\n oldCh[idxInOld] = undefined;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n // We either didn't find an element in the old children that matches\n // the key of the first new child OR the build is not using `key`\n // attributes at all. In either case we need to create a new element\n // for the new node.\n node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx, parentElm);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n // if we created a new node then handle inserting it to the DOM\n if (BUILD.slotRelocation) {\n parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));\n }\n else {\n oldStartVnode.$elm$.parentNode.insertBefore(node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n // we have some more new nodes to add which don't match up with old nodes\n addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);\n }\n else if (BUILD.updatable && newStartIdx > newEndIdx) {\n // there are nodes in the `oldCh` array which no longer correspond to nodes\n // in the new array, so lets remove them (which entails cleaning up the\n // relevant DOM nodes)\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\n/**\n * Compare two VNodes to determine if they are the same\n *\n * **NB**: This function is an equality _heuristic_ based on the available\n * information set on the two VNodes and can be misleading under certain\n * circumstances. In particular, if the two nodes do not have `key` attrs\n * (available under `$key$` on VNodes) then the function falls back on merely\n * checking that they have the same tag.\n *\n * So, in other words, if `key` attrs are not set on VNodes which may be\n * changing order within a `children` array or something along those lines then\n * we could obtain a false positive and then have to do needless re-rendering.\n *\n * @param leftVNode the first VNode to check\n * @param rightVNode the second VNode to check\n * @returns whether they're equal or not\n */\nconst isSameVnode = (leftVNode, rightVNode) => {\n // compare if two vnode to see if they're \"technically\" the same\n // need to have the same element tag, and same key to be the same\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (BUILD.slotRelocation && leftVNode.$tag$ === 'slot') {\n return leftVNode.$name$ === rightVNode.$name$;\n }\n // this will be set if components in the build have `key` attrs set on them\n if (BUILD.vdomKey) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nconst referenceNode = (node) => {\n // this node was relocated to a new location in the dom\n // because of some other component's slot\n // but we still have an html comment in place of where\n // it's original location was according to it's original vdom\n return (node && node['s-ol']) || node;\n};\nconst parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;\n/**\n * Handle reconciling an outdated VNode with a new one which corresponds to\n * it. This function handles flushing updates to the DOM and reconciling the\n * children of the two nodes (if any).\n *\n * @param oldVNode an old VNode whose DOM element and children we want to update\n * @param newVNode a new VNode representing an updated version of the old one\n */\nconst patch = (oldVNode, newVNode) => {\n const elm = (newVNode.$elm$ = oldVNode.$elm$);\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode.$children$;\n const tag = newVNode.$tag$;\n const text = newVNode.$text$;\n let defaultHolder;\n if (!BUILD.vdomText || text === null) {\n if (BUILD.svg) {\n // test if we're rendering an svg element, or still rendering nodes inside of one\n // only add this to the when the compiler sees we're using an svg somewhere\n isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;\n }\n if (BUILD.vdomAttribute || BUILD.reflect) {\n if (BUILD.slot && tag === 'slot')\n ;\n else {\n // either this is the first render of an element OR it's an update\n // AND we already know it's possible it could have changed\n // this updates the element's css classes, attrs, props, listeners, etc.\n updateElement(oldVNode, newVNode, isSvgMode);\n }\n }\n if (BUILD.updatable && oldChildren !== null && newChildren !== null) {\n // looks like there's child vnodes for both the old and new vnodes\n // so we need to call `updateChildren` to reconcile them\n updateChildren(elm, oldChildren, newVNode, newChildren);\n }\n else if (newChildren !== null) {\n // no old child vnodes, but there are new child vnodes to add\n if (BUILD.updatable && BUILD.vdomText && oldVNode.$text$ !== null) {\n // the old vnode was text, so be sure to clear it out\n elm.textContent = '';\n }\n // add the new vnode children\n addVnodes(elm, null, newVNode, newChildren, 0, newChildren.length - 1);\n }\n else if (BUILD.updatable && oldChildren !== null) {\n // no new child vnodes, but there are old child vnodes to remove\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n }\n if (BUILD.svg && isSvgMode && tag === 'svg') {\n isSvgMode = false;\n }\n }\n else if (BUILD.vdomText && BUILD.slotRelocation && (defaultHolder = elm['s-cr'])) {\n // this element has slotted content\n defaultHolder.parentNode.textContent = text;\n }\n else if (BUILD.vdomText && oldVNode.$text$ !== text) {\n // update the text content for the text only vnode\n // and also only if the text is different than before\n elm.data = text;\n }\n};\nconst updateFallbackSlotVisibility = (elm) => {\n // tslint:disable-next-line: prefer-const\n const childNodes = elm.childNodes;\n let childNode;\n let i;\n let ilen;\n let j;\n let slotNameAttr;\n let nodeType;\n for (i = 0, ilen = childNodes.length; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (childNode['s-sr']) {\n // this is a slot fallback node\n // get the slot name for this slot reference node\n slotNameAttr = childNode['s-sn'];\n // by default always show a fallback slot node\n // then hide it if there are other slots in the light dom\n childNode.hidden = false;\n for (j = 0; j < ilen; j++) {\n nodeType = childNodes[j].nodeType;\n if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {\n // this sibling node is from a different component OR is a named fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {\n childNode.hidden = true;\n break;\n }\n }\n else {\n // this is a default fallback slot node\n // any element or text node (with content)\n // should hide the default fallback slot node\n if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||\n (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {\n childNode.hidden = true;\n break;\n }\n }\n }\n }\n // keep drilling down\n updateFallbackSlotVisibility(childNode);\n }\n }\n};\nconst relocateNodes = [];\nconst relocateSlotContent = (elm) => {\n // tslint:disable-next-line: prefer-const\n let childNode;\n let node;\n let hostContentNodes;\n let slotNameAttr;\n let relocateNodeData;\n let j;\n let i = 0;\n const childNodes = elm.childNodes;\n const ilen = childNodes.length;\n for (; i < ilen; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {\n // first got the content reference comment node\n // then we got it's parent, which is where all the host content is in now\n hostContentNodes = node.parentNode.childNodes;\n slotNameAttr = childNode['s-sn'];\n for (j = hostContentNodes.length - 1; j >= 0; j--) {\n node = hostContentNodes[j];\n if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {\n // let's do some relocating to its new home\n // but never relocate a content reference node\n // that is suppose to always represent the original content location\n if (isNodeLocatedInSlot(node, slotNameAttr)) {\n // it's possible we've already decided to relocate this node\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n // made some changes to slots\n // let's make sure we also double check\n // fallbacks are correctly hidden or shown\n checkSlotFallbackVisibility = true;\n node['s-sn'] = node['s-sn'] || slotNameAttr;\n if (relocateNodeData) {\n // previously we never found a slot home for this node\n // but turns out we did, so let's remember it now\n relocateNodeData.$slotRefNode$ = childNode;\n }\n else {\n // add to our list of nodes to relocate\n relocateNodes.push({\n $slotRefNode$: childNode,\n $nodeToRelocate$: node,\n });\n }\n if (node['s-sr']) {\n relocateNodes.map((relocateNode) => {\n if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node['s-sn'])) {\n relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);\n if (relocateNodeData && !relocateNode.$slotRefNode$) {\n relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;\n }\n }\n });\n }\n }\n else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {\n // so far this element does not have a slot home, not setting slotRefNode on purpose\n // if we never find a home for this element then we'll need to hide it\n relocateNodes.push({\n $nodeToRelocate$: node,\n });\n }\n }\n }\n }\n if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n relocateSlotContent(childNode);\n }\n }\n};\nconst isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {\n return true;\n }\n if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {\n return true;\n }\n return false;\n }\n if (nodeToRelocate['s-sn'] === slotNameAttr) {\n return true;\n }\n return slotNameAttr === '';\n};\nconst callNodeRefs = (vNode) => {\n if (BUILD.vdomRef) {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(callNodeRefs);\n }\n};\nconst renderVdom = (hostRef, renderFnResults) => {\n const hostElm = hostRef.$hostElement$;\n const cmpMeta = hostRef.$cmpMeta$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n // <Host> runtime check\n if (BUILD.isDev && Array.isArray(renderFnResults) && renderFnResults.some(isHost)) {\n throw new Error(`The <Host> must be the single root component.\nLooks like the render() function of \"${hostTagName.toLowerCase()}\" is returning an array that contains the <Host>.\n\nThe render() function should look like this instead:\n\nrender() {\n // Do not return an array\n return (\n <Host>{content}</Host>\n );\n}\n `);\n }\n if (BUILD.reflect && cmpMeta.$attrsToReflect$) {\n rootVnode.$attrs$ = rootVnode.$attrs$ || {};\n cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = (BUILD.shadowDom ? hostElm.shadowRoot || hostElm : hostElm);\n if (BUILD.scoped || BUILD.shadowDom) {\n scopeId = hostElm['s-sc'];\n }\n if (BUILD.slotRelocation) {\n contentRef = hostElm['s-cr'];\n useNativeShadowDom = supportsShadow && (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;\n // always reset\n checkSlotFallbackVisibility = false;\n }\n // synchronous patch\n patch(oldVNode, rootVnode);\n if (BUILD.slotRelocation) {\n // while we're moving nodes around existing nodes, temporarily disable\n // the disconnectCallback from working\n plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n if (checkSlotRelocate) {\n relocateSlotContent(rootVnode.$elm$);\n let relocateData;\n let nodeToRelocate;\n let orgLocationNode;\n let parentNodeRef;\n let insertBeforeNode;\n let refNode;\n let i = 0;\n for (; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (!nodeToRelocate['s-ol']) {\n // add a reference node marking this node's original location\n // keep a reference to this node for later lookups\n orgLocationNode =\n BUILD.isDebug || BUILD.hydrateServerSide\n ? originalLocationDebugNode(nodeToRelocate)\n : doc.createTextNode('');\n orgLocationNode['s-nr'] = nodeToRelocate;\n nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);\n }\n }\n for (i = 0; i < relocateNodes.length; i++) {\n relocateData = relocateNodes[i];\n nodeToRelocate = relocateData.$nodeToRelocate$;\n if (relocateData.$slotRefNode$) {\n // by default we're just going to insert it directly\n // after the slot reference node\n parentNodeRef = relocateData.$slotRefNode$.parentNode;\n insertBeforeNode = relocateData.$slotRefNode$.nextSibling;\n orgLocationNode = nodeToRelocate['s-ol'];\n while ((orgLocationNode = orgLocationNode.previousSibling)) {\n refNode = orgLocationNode['s-nr'];\n if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {\n refNode = refNode.nextSibling;\n if (!refNode || !refNode['s-nr']) {\n insertBeforeNode = refNode;\n break;\n }\n }\n }\n if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||\n nodeToRelocate.nextSibling !== insertBeforeNode) {\n // we've checked that it's worth while to relocate\n // since that the node to relocate\n // has a different next sibling or parent relocated\n if (nodeToRelocate !== insertBeforeNode) {\n if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {\n // probably a component in the index.html that doesn't have it's hostname set\n nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;\n }\n // add it back to the dom but in its new home\n parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);\n }\n }\n }\n else {\n // this node doesn't have a slot home to go to, so let's hide it\n if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeToRelocate.hidden = true;\n }\n }\n }\n }\n if (checkSlotFallbackVisibility) {\n updateFallbackSlotVisibility(rootVnode.$elm$);\n }\n // done moving nodes around\n // allow the disconnect callback to work again\n plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;\n // always reset\n relocateNodes.length = 0;\n }\n};\n// slot comment debug nodes only created with the `--debug` flag\n// otherwise these nodes are text nodes w/out content\nconst slotReferenceDebugNode = (slotVNode) => doc.createComment(`<slot${slotVNode.$name$ ? ' name=\"' + slotVNode.$name$ + '\"' : ''}> (host=${hostTagName.toLowerCase()})`);\nconst originalLocationDebugNode = (nodeToRelocate) => doc.createComment(`org-location for ` +\n (nodeToRelocate.localName\n ? `<${nodeToRelocate.localName}> (host=${nodeToRelocate['s-hn']})`\n : `[${nodeToRelocate.textContent}]`));\nconst attachToAncestor = (hostRef, ancestorComponent) => {\n if (BUILD.asyncLoading && ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {\n ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));\n }\n};\nconst scheduleUpdate = (hostRef, isInitialLoad) => {\n if (BUILD.taskQueue && BUILD.updatable) {\n hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (BUILD.asyncLoading && hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n // there is no ancestor component or the ancestor component\n // has already fired off its lifecycle update then\n // fire off the initial update\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n return BUILD.taskQueue ? writeTask(dispatch) : dispatch();\n};\nconst dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n let promise;\n if (isInitialLoad) {\n if (BUILD.lazyLoad && BUILD.hostListener) {\n hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;\n if (hostRef.$queuedListeners$) {\n hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));\n hostRef.$queuedListeners$ = null;\n }\n }\n emitLifecycleEvent(elm, 'componentWillLoad');\n if (BUILD.cmpWillLoad) {\n promise = safeCall(instance, 'componentWillLoad');\n }\n }\n else {\n emitLifecycleEvent(elm, 'componentWillUpdate');\n if (BUILD.cmpWillUpdate) {\n promise = safeCall(instance, 'componentWillUpdate');\n }\n }\n emitLifecycleEvent(elm, 'componentWillRender');\n if (BUILD.cmpWillRender) {\n promise = then(promise, () => safeCall(instance, 'componentWillRender'));\n }\n endSchedule();\n return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nconst updateComponent = async (hostRef, instance, isInitialLoad) => {\n // updateComponent\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);\n const rc = elm['s-rc'];\n if (BUILD.style && isInitialLoad) {\n // DOM WRITE!\n attachStyles(hostRef);\n }\n const endRender = createTime('render', hostRef.$cmpMeta$.$tagName$);\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n await callRender(hostRef, instance, elm);\n }\n else {\n callRender(hostRef, instance, elm);\n }\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.updateHost(elm);\n }\n if (BUILD.isDev) {\n hostRef.$renderCount$++;\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n if (BUILD.hydrateServerSide) {\n try {\n // manually connected child components during server-side hydrate\n serverSideConnected(elm);\n if (isInitialLoad) {\n // using only during server-side hydrate\n if (hostRef.$cmpMeta$.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n elm['s-en'] = '';\n }\n else if (hostRef.$cmpMeta$.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n elm['s-en'] = 'c';\n }\n }\n }\n catch (e) {\n consoleError(e, elm);\n }\n }\n if (BUILD.asyncLoading && rc) {\n // ok, so turns out there are some child host elements\n // waiting on this parent element to load\n // let's fire off all update callbacks waiting\n rc.map((cb) => cb());\n elm['s-rc'] = undefined;\n }\n endRender();\n endUpdate();\n if (BUILD.asyncLoading) {\n const childrenPromises = elm['s-p'];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n }\n else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n else {\n postUpdateComponent(hostRef);\n }\n};\nconst callRender = (hostRef, instance, elm) => {\n // in order for bundlers to correctly treeshake the BUILD object\n // we need to ensure BUILD is not deoptimized within a try/catch\n // https://rollupjs.org/guide/en/#treeshake tryCatchDeoptimization\n const allRenderFn = BUILD.allRenderFn ? true : false;\n const lazyLoad = BUILD.lazyLoad ? true : false;\n const taskQueue = BUILD.taskQueue ? true : false;\n const updatable = BUILD.updatable ? true : false;\n try {\n renderingRef = instance;\n instance = allRenderFn ? instance.render() : instance.render && instance.render();\n if (updatable && taskQueue) {\n hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;\n }\n if (updatable || lazyLoad) {\n hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;\n }\n if (BUILD.hasRenderFn || BUILD.reflect) {\n if (BUILD.vdomRender || BUILD.reflect) {\n // looks like we've got child nodes to render into this host element\n // or we need to update the css class/attrs on the host element\n // DOM WRITE!\n if (BUILD.hydrateServerSide) {\n return Promise.resolve(instance).then((value) => renderVdom(hostRef, value));\n }\n else {\n renderVdom(hostRef, instance);\n }\n }\n else {\n elm.textContent = instance;\n }\n }\n }\n catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n renderingRef = null;\n return null;\n};\nconst getRenderingRef = () => renderingRef;\nconst postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime('postUpdate', tagName);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n const ancestorComponent = hostRef.$ancestorComponent$;\n if (BUILD.cmpDidRender) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidRender');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidRender');\n if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;\n if (BUILD.asyncLoading && BUILD.cssAnnotations) {\n // DOM WRITE!\n addHydratedFlag(elm);\n }\n if (BUILD.cmpDidLoad) {\n if (BUILD.isDev) {\n hostRef.$flags$ |= 2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n safeCall(instance, 'componentDidLoad');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~2048 /* HOST_FLAGS.devOnDidLoad */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidLoad');\n endPostUpdate();\n if (BUILD.asyncLoading) {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad(tagName);\n }\n }\n }\n else {\n if (BUILD.cmpDidUpdate) {\n // we've already loaded this component\n // fire off the user's componentDidUpdate method (if one was provided)\n // componentDidUpdate runs AFTER render() has been called\n // and all child components have finished updating\n if (BUILD.isDev) {\n hostRef.$flags$ |= 1024 /* HOST_FLAGS.devOnRender */;\n }\n safeCall(instance, 'componentDidUpdate');\n if (BUILD.isDev) {\n hostRef.$flags$ &= ~1024 /* HOST_FLAGS.devOnRender */;\n }\n }\n emitLifecycleEvent(elm, 'componentDidUpdate');\n endPostUpdate();\n }\n if (BUILD.hotModuleReplacement) {\n elm['s-hmr-load'] && elm['s-hmr-load']();\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstanceResolve$(elm);\n }\n // load events fire from bottom to top\n // the deepest elements load first then bubbles up\n if (BUILD.asyncLoading) {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = undefined;\n }\n if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);\n }\n // ( •_•)\n // ( •_•)>⌐■-■\n // (⌐■_■)\n};\nconst forceUpdate = (ref) => {\n if (BUILD.updatable) {\n const hostRef = getHostRef(ref);\n const isConnected = hostRef.$hostElement$.isConnected;\n if (isConnected &&\n (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n scheduleUpdate(hostRef, false);\n }\n // Returns \"true\" when the forced update was successfully scheduled\n return isConnected;\n }\n return false;\n};\nconst appDidLoad = (who) => {\n // on appload\n // we have finish the first big initial render\n if (BUILD.cssAnnotations) {\n addHydratedFlag(doc.documentElement);\n }\n if (BUILD.asyncQueue) {\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));\n if (BUILD.profile && performance.measure) {\n performance.measure(`[Stencil] ${NAMESPACE} initial load (by ${who})`, 'st:app:start');\n }\n};\nconst safeCall = (instance, method, arg) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n }\n catch (e) {\n consoleError(e);\n }\n }\n return undefined;\n};\nconst then = (promise, thenFn) => {\n return promise && promise.then ? promise.then(thenFn) : thenFn();\n};\nconst emitLifecycleEvent = (elm, lifecycleName) => {\n if (BUILD.lifecycleDOMEvents) {\n emitEvent(elm, 'stencil_' + lifecycleName, {\n bubbles: true,\n composed: true,\n detail: {\n namespace: NAMESPACE,\n },\n });\n }\n};\nconst addHydratedFlag = (elm) => BUILD.hydratedClass\n ? elm.classList.add('hydrated')\n : BUILD.hydratedAttribute\n ? elm.setAttribute('hydrated', '')\n : undefined;\nconst serverSideConnected = (elm) => {\n const children = elm.children;\n if (children != null) {\n for (let i = 0, ii = children.length; i < ii; i++) {\n const childElm = children[i];\n if (typeof childElm.connectedCallback === 'function') {\n childElm.connectedCallback();\n }\n serverSideConnected(childElm);\n }\n }\n};\nconst getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nconst setValue = (ref, propName, newVal, cmpMeta) => {\n // check our new property value against our internal value\n const hostRef = getHostRef(ref);\n const elm = BUILD.lazyLoad ? hostRef.$hostElement$ : ref;\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n newVal = parsePropertyValue(newVal, cmpMeta.$members$[propName][0]);\n // explicitly check for NaN on both sides, as `NaN === NaN` is always false\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!BUILD.lazyLoad || !(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {\n // gadzooks! the property's value has changed!!\n // set our new value!\n hostRef.$instanceValues$.set(propName, newVal);\n if (BUILD.isDev) {\n if (hostRef.$flags$ & 1024 /* HOST_FLAGS.devOnRender */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during rendering. This can potentially lead to infinite-loops and other bugs.`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n else if (hostRef.$flags$ & 2048 /* HOST_FLAGS.devOnDidLoad */) {\n consoleDevWarn(`The state/prop \"${propName}\" changed during \"componentDidLoad()\", this triggers extra re-renders, try to setup on \"componentWillLoad()\"`, '\\nElement', elm, '\\nNew value', newVal, '\\nOld value', oldVal);\n }\n }\n if (!BUILD.lazyLoad || instance) {\n // get an array of method names of watch functions to call\n if (BUILD.watchCallback && cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {\n const watchMethods = cmpMeta.$watchers$[propName];\n if (watchMethods) {\n // this instance is watching for when this property changed\n watchMethods.map((watchMethodName) => {\n try {\n // fire off each of the watch methods that are watching this property\n instance[watchMethodName](newVal, oldVal, propName);\n }\n catch (e) {\n consoleError(e, elm);\n }\n });\n }\n }\n if (BUILD.updatable &&\n (flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {\n if (BUILD.cmpShouldUpdate && instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n // looks like this value actually changed, so we've got work to do!\n // but only if we've already rendered, otherwise just chill out\n // queue that we need to do an update, but don't worry about queuing\n // up millions cuz this function ensures it only runs once\n scheduleUpdate(hostRef, false);\n }\n }\n }\n};\n/**\n * Attach a series of runtime constructs to a compiled Stencil component\n * constructor, including getters and setters for the `@Prop` and `@State`\n * decorators, callbacks for when attributes change, and so on.\n *\n * @param Cstr the constructor for a component that we need to process\n * @param cmpMeta metadata collected previously about the component\n * @param flags a number used to store a series of bit flags\n * @returns a reference to the same constructor passed in (but now mutated)\n */\nconst proxyComponent = (Cstr, cmpMeta, flags) => {\n if (BUILD.member && cmpMeta.$members$) {\n if (BUILD.watchCallback && Cstr.watchers) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n // It's better to have a const than two Object.entries()\n const members = Object.entries(cmpMeta.$members$);\n const prototype = Cstr.prototype;\n members.map(([memberName, [memberFlags]]) => {\n if ((BUILD.prop || BUILD.state) &&\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||\n ((!BUILD.lazyLoad || flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {\n // proxyComponent - prop\n Object.defineProperty(prototype, memberName, {\n get() {\n // proxyComponent, get value\n return getValue(this, memberName);\n },\n set(newValue) {\n // only during dev time\n if (BUILD.isDev) {\n const ref = getHostRef(this);\n if (\n // we are proxying the instance (not element)\n (flags & 1 /* PROXY_FLAGS.isElementConstructor */) === 0 &&\n // the element is not constructing\n (ref.$flags$ & 8 /* HOST_FLAGS.isConstructingInstance */) === 0 &&\n // the member is a prop\n (memberFlags & 31 /* MEMBER_FLAGS.Prop */) !== 0 &&\n // the member is not mutable\n (memberFlags & 1024 /* MEMBER_FLAGS.Mutable */) === 0) {\n consoleDevWarn(`@Prop() \"${memberName}\" on <${cmpMeta.$tagName$}> is immutable but was modified from within the component.\\nMore information: https://stenciljs.com/docs/properties#prop-mutability`);\n }\n }\n // proxyComponent, set value\n setValue(this, memberName, newValue, cmpMeta);\n },\n configurable: true,\n enumerable: true,\n });\n }\n else if (BUILD.lazyLoad &&\n BUILD.method &&\n flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&\n memberFlags & 64 /* MEMBER_FLAGS.Method */) {\n // proxyComponent - method\n Object.defineProperty(prototype, memberName, {\n value(...args) {\n const ref = getHostRef(this);\n return ref.$onInstancePromise$.then(() => ref.$lazyInstance$[memberName](...args));\n },\n });\n }\n });\n if (BUILD.observeAttribute && (!BUILD.lazyLoad || flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {\n const attrNameToPropName = new Map();\n prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {\n plt.jmp(() => {\n const propName = attrNameToPropName.get(attrName);\n // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback\n // in the case where an attribute was set inline.\n // ```html\n // <my-component some-attribute=\"some-value\"></my-component>\n // ```\n //\n // There is an edge case where a developer sets the attribute inline on a custom element and then\n // programmatically changes it before it has been upgraded as shown below:\n //\n // ```html\n // <!-- this component has _not_ been upgraded yet -->\n // <my-component id=\"test\" some-attribute=\"some-value\"></my-component>\n // <script>\n // // grab non-upgraded component\n // el = document.querySelector(\"#test\");\n // el.someAttribute = \"another-value\";\n // // upgrade component\n // customElements.define('my-component', MyComponent);\n // </script>\n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n }\n else if (prototype.hasOwnProperty(propName) &&\n typeof this[propName] === 'number' &&\n this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members\n .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n if (BUILD.reflect && m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {\n cmpMeta.$attrsToReflect$.push([propName, attrName]);\n }\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((BUILD.lazyLoad || BUILD.hydrateServerSide || BUILD.style) &&\n (hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n if (BUILD.lazyLoad || BUILD.hydrateClientSide) {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta, hostRef, hmrVersionId);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime(`st:load:${cmpMeta.$tagName$}:${hostRef.$modeName$}`, `[Stencil] Load module for <${cmpMeta.$tagName$}>`);\n Cstr = await Cstr;\n endLoad();\n }\n if ((BUILD.isDev || BUILD.isDebug) && !Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (BUILD.member && !Cstr.isProxied) {\n // we've never proxied this Constructor before\n // let's add the getters/setters to its prototype before\n // the first time we create an instance of the implementation\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.watchers;\n }\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n if (BUILD.member) {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n }\n catch (e) {\n consoleError(e);\n }\n if (BUILD.member) {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n if (BUILD.watchCallback) {\n hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n else {\n // sync constructor component\n Cstr = elm.constructor;\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // wait for the CustomElementRegistry to mark the component as ready before setting `isWatchReady`. Otherwise,\n // watchers may fire prematurely if `customElements.get()`/`customElements.whenDefined()` resolves _before_\n // Stencil has completed instantiating the component.\n customElements.whenDefined(cmpMeta.$tagName$).then(() => (hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */));\n }\n if (BUILD.style && Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n if (BUILD.mode && typeof style !== 'string') {\n style = style[(hostRef.$modeName$ = computeMode(elm))];\n if (BUILD.hydrateServerSide && hostRef.$modeName$) {\n elm.setAttribute('s-mode', hostRef.$modeName$);\n }\n }\n const scopeId = getScopeId(cmpMeta, hostRef.$modeName$);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n if (!BUILD.hydrateServerSide &&\n BUILD.shadowDom &&\n BUILD.shadowDomShim &&\n cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n style = await import('./shadow-css.js').then((m) => m.scopeCss(style, scopeId, false));\n }\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (BUILD.asyncLoading && ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n }\n else {\n schedule();\n }\n};\nconst fireConnectedCallback = (instance) => {\n if (BUILD.lazyLoad && BUILD.connectedCallback) {\n safeCall(instance, 'connectedCallback');\n }\n};\nconst connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (BUILD.hostListenerTargetParent) {\n // only run if we have listeners being attached to a parent\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, true);\n }\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n let hostId;\n if (BUILD.hydrateClientSide) {\n hostId = elm.getAttribute(HYDRATE_ID);\n if (hostId) {\n if (BUILD.shadowDom && supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n const scopeId = BUILD.mode\n ? addStyle(elm.shadowRoot, cmpMeta, elm.getAttribute('s-mode'))\n : addStyle(elm.shadowRoot, cmpMeta);\n elm.classList.remove(scopeId + '-h', scopeId + '-s');\n }\n initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);\n }\n }\n if (BUILD.slotRelocation && !hostId) {\n // initUpdate\n // if the slot polyfill is required we'll need to put some nodes\n // in here to act as original content anchors as we move nodes around\n // host element has been connected to the DOM\n if (BUILD.hydrateServerSide ||\n ((BUILD.slot || BUILD.shadowDom) &&\n cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {\n setContentReference(elm);\n }\n }\n if (BUILD.asyncLoading) {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while ((ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host)) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if ((BUILD.hydrateClientSide &&\n ancestorComponent.nodeType === 1 /* NODE_TYPE.ElementNode */ &&\n ancestorComponent.hasAttribute('s-id') &&\n ancestorComponent['s-p']) ||\n ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, (hostRef.$ancestorComponent$ = ancestorComponent));\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (BUILD.prop && !BUILD.hydrateServerSide && cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n if (BUILD.initializeNextTick) {\n // connectedCallback, taskQueue, initialLoad\n // angular sets attribute AFTER connectCallback\n // https://github.com/angular/angular/issues/18909\n // https://github.com/angular/angular/issues/19940\n nextTick(() => initializeComponent(elm, hostRef, cmpMeta));\n }\n else {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n }\n else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n // fire off connectedCallback() on component instance\n fireConnectedCallback(hostRef.$lazyInstance$);\n }\n endConnected();\n }\n};\nconst setContentReference = (elm) => {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n const contentRefElm = (elm['s-cr'] = doc.createComment(BUILD.isDebug ? `content-ref (host=${elm.localName})` : ''));\n contentRefElm['s-cn'] = true;\n elm.insertBefore(contentRefElm, elm.firstChild);\n};\nconst disconnectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const instance = BUILD.lazyLoad ? hostRef.$lazyInstance$ : elm;\n if (BUILD.hostListener) {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map((rmListener) => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n // clear CSS var-shim tracking\n if (BUILD.cssVarShim && plt.$cssShim$) {\n plt.$cssShim$.removeHost(elm);\n }\n if (BUILD.lazyLoad && BUILD.disconnectedCallback) {\n safeCall(instance, 'disconnectedCallback');\n }\n if (BUILD.cmpDidUnload) {\n safeCall(instance, 'componentDidUnload');\n }\n }\n};\nconst defineCustomElement = (Cstr, compactMeta) => {\n customElements.define(compactMeta[1], proxyCustomElement(Cstr, compactMeta));\n};\nconst proxyCustomElement = (Cstr, compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = Cstr.$watchers$;\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const originalConnectedCallback = Cstr.prototype.connectedCallback;\n const originalDisconnectedCallback = Cstr.prototype.disconnectedCallback;\n Object.assign(Cstr.prototype, {\n __registerHost() {\n registerHost(this, cmpMeta);\n },\n connectedCallback() {\n connectedCallback(this);\n if (BUILD.connectedCallback && originalConnectedCallback) {\n originalConnectedCallback.call(this);\n }\n },\n disconnectedCallback() {\n disconnectedCallback(this);\n if (BUILD.disconnectedCallback && originalDisconnectedCallback) {\n originalDisconnectedCallback.call(this);\n }\n },\n __attachShadow() {\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n this.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n this.attachShadow({ mode: 'open' });\n }\n }\n else {\n this.shadowRoot = this;\n }\n },\n });\n Cstr.is = cmpMeta.$tagName$;\n return proxyComponent(Cstr, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */ | 2 /* PROXY_FLAGS.proxyState */);\n};\nconst forceModeUpdate = (elm) => {\n if (BUILD.style && BUILD.mode && !BUILD.lazyLoad) {\n const mode = computeMode(elm);\n const hostRef = getHostRef(elm);\n if (hostRef.$modeName$ !== mode) {\n const cmpMeta = hostRef.$cmpMeta$;\n const oldScopeId = elm['s-sc'];\n const scopeId = getScopeId(cmpMeta, mode);\n const style = elm.constructor.style[mode];\n const flags = cmpMeta.$flags$;\n if (style) {\n if (!styles.has(scopeId)) {\n registerStyle(scopeId, style, !!(flags & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n }\n hostRef.$modeName$ = mode;\n elm.classList.remove(oldScopeId + '-h', oldScopeId + '-s');\n attachStyles(hostRef);\n forceUpdate(elm);\n }\n }\n }\n};\nconst patchCloneNode = (HostElementPrototype) => {\n const orgCloneNode = HostElementPrototype.cloneNode;\n HostElementPrototype.cloneNode = function (deep) {\n const srcNode = this;\n const isShadowDom = BUILD.shadowDom ? srcNode.shadowRoot && supportsShadow : false;\n const clonedNode = orgCloneNode.call(srcNode, isShadowDom ? deep : false);\n if (BUILD.slot && !isShadowDom && deep) {\n let i = 0;\n let slotted, nonStencilNode;\n const stencilPrivates = [\n 's-id',\n 's-cr',\n 's-lr',\n 's-rc',\n 's-sc',\n 's-p',\n 's-cn',\n 's-sr',\n 's-sn',\n 's-hn',\n 's-ol',\n 's-nr',\n 's-si',\n ];\n for (; i < srcNode.childNodes.length; i++) {\n slotted = srcNode.childNodes[i]['s-nr'];\n nonStencilNode = stencilPrivates.every((privateField) => !srcNode.childNodes[i][privateField]);\n if (slotted) {\n if (BUILD.appendChildSlotFix && clonedNode.__appendChild) {\n clonedNode.__appendChild(slotted.cloneNode(true));\n }\n else {\n clonedNode.appendChild(slotted.cloneNode(true));\n }\n }\n if (nonStencilNode) {\n clonedNode.appendChild(srcNode.childNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nconst patchSlotAppendChild = (HostElementPrototype) => {\n HostElementPrototype.__appendChild = HostElementPrototype.appendChild;\n HostElementPrototype.appendChild = function (newChild) {\n const slotName = (newChild['s-sn'] = getSlotName(newChild));\n const slotNode = getHostSlotNode(this.childNodes, slotName);\n if (slotNode) {\n const slotChildNodes = getHostSlotChildNodes(slotNode, slotName);\n const appendAfter = slotChildNodes[slotChildNodes.length - 1];\n return appendAfter.parentNode.insertBefore(newChild, appendAfter.nextSibling);\n }\n return this.__appendChild(newChild);\n };\n};\n/**\n * Patches the text content of an unnamed slotted node inside a scoped component\n * @param hostElementPrototype the `Element` to be patched\n * @param cmpMeta component runtime metadata used to determine if the component should be patched or not\n */\nconst patchTextContent = (hostElementPrototype, cmpMeta) => {\n if (BUILD.scoped && cmpMeta.$flags$ & 2 /* CMP_FLAGS.scopedCssEncapsulation */) {\n const descriptor = Object.getOwnPropertyDescriptor(Node.prototype, 'textContent');\n Object.defineProperty(hostElementPrototype, '__textContent', descriptor);\n Object.defineProperty(hostElementPrototype, 'textContent', {\n get() {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ be found in the next sibling (text) node, depending on how\n // nodes were reordered during the vdom render. first try to get the text content from the sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n return slotNode.nextSibling.textContent;\n }\n else if (slotNode) {\n return slotNode.textContent;\n }\n else {\n // fallback to the original implementation\n return this.__textContent;\n }\n },\n set(value) {\n var _a;\n // get the 'default slot', which would be the first slot in a shadow tree (if we were using one), whose name is\n // the empty string\n const slotNode = getHostSlotNode(this.childNodes, '');\n // when a slot node is found, the textContent _may_ need to be placed in the next sibling (text) node,\n // depending on how nodes were reordered during the vdom render. first try to set the text content on the\n // sibling.\n if (((_a = slotNode === null || slotNode === void 0 ? void 0 : slotNode.nextSibling) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* NODE_TYPES.TEXT_NODE */) {\n slotNode.nextSibling.textContent = value;\n }\n else if (slotNode) {\n slotNode.textContent = value;\n }\n else {\n // we couldn't find a slot, but that doesn't mean that there isn't one. if this check ran before the DOM\n // loaded, we could have missed it. check for a content reference element on the scoped component and insert\n // it there\n this.__textContent = value;\n const contentRefElm = this['s-cr'];\n if (contentRefElm) {\n this.insertBefore(contentRefElm, this.firstChild);\n }\n }\n },\n });\n }\n};\nconst patchChildSlotNodes = (elm, cmpMeta) => {\n class FakeNodeList extends Array {\n item(n) {\n return this[n];\n }\n }\n if (cmpMeta.$flags$ & 8 /* CMP_FLAGS.needsShadowDomShim */) {\n const childNodesFn = elm.__lookupGetter__('childNodes');\n Object.defineProperty(elm, 'children', {\n get() {\n return this.childNodes.map((n) => n.nodeType === 1);\n },\n });\n Object.defineProperty(elm, 'childElementCount', {\n get() {\n return elm.children.length;\n },\n });\n Object.defineProperty(elm, 'childNodes', {\n get() {\n const childNodes = childNodesFn.call(this);\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0 &&\n getHostRef(this).$flags$ & 2 /* HOST_FLAGS.hasRendered */) {\n const result = new FakeNodeList();\n for (let i = 0; i < childNodes.length; i++) {\n const slot = childNodes[i]['s-nr'];\n if (slot) {\n result.push(slot);\n }\n }\n return result;\n }\n return FakeNodeList.from(childNodes);\n },\n });\n }\n};\nconst getSlotName = (node) => node['s-sn'] || (node.nodeType === 1 && node.getAttribute('slot')) || '';\n/**\n * Recursively searches a series of child nodes for a slot with the provided name.\n * @param childNodes the nodes to search for a slot with a specific name.\n * @param slotName the name of the slot to match on.\n * @returns a reference to the slot node that matches the provided name, `null` otherwise\n */\nconst getHostSlotNode = (childNodes, slotName) => {\n let i = 0;\n let childNode;\n for (; i < childNodes.length; i++) {\n childNode = childNodes[i];\n if (childNode['s-sr'] && childNode['s-sn'] === slotName) {\n return childNode;\n }\n childNode = getHostSlotNode(childNode.childNodes, slotName);\n if (childNode) {\n return childNode;\n }\n }\n return null;\n};\nconst getHostSlotChildNodes = (n, slotName) => {\n const childNodes = [n];\n while ((n = n.nextSibling) && n['s-sn'] === slotName) {\n childNodes.push(n);\n }\n return childNodes;\n};\nconst hmrStart = (elm, cmpMeta, hmrVersionId) => {\n // ¯\\_(ツ)_/¯\n const hostRef = getHostRef(elm);\n // reset state flags to only have been connected\n hostRef.$flags$ = 1 /* HOST_FLAGS.hasConnected */;\n // TODO\n // detatch any event listeners that may have been added\n // because we're not passing an exact event name it'll\n // remove all of this element's event, which is good\n // create a callback for when this component finishes hmr\n elm['s-hmr-load'] = () => {\n // finished hmr for this element\n delete elm['s-hmr-load'];\n };\n // re-initialize the component\n initializeComponent(elm, hostRef, cmpMeta, hmrVersionId);\n};\nconst bootstrapLazy = (lazyBundles, options = {}) => {\n if (BUILD.profile && performance.mark) {\n performance.mark('st:app:start');\n }\n installDevTools();\n const endBootstrap = createTime('bootstrapLazy');\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/ doc.createElement('style');\n const deferredConnectedCallbacks = [];\n const styles = /*@__PURE__*/ doc.querySelectorAll(`[${HYDRATED_STYLE_ID}]`);\n let appLoadFallback;\n let isBootstrapping = true;\n let i = 0;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n if (BUILD.asyncQueue) {\n if (options.syncQueue) {\n plt.$flags$ |= 4 /* PLATFORM_FLAGS.queueSync */;\n }\n }\n if (BUILD.hydrateClientSide) {\n // If the app is already hydrated there is not point to disable the\n // async queue. This will improve the first input delay\n plt.$flags$ |= 2 /* PLATFORM_FLAGS.appLoaded */;\n }\n if (BUILD.hydrateClientSide && BUILD.shadowDom) {\n for (; i < styles.length; i++) {\n registerStyle(styles[i].getAttribute(HYDRATED_STYLE_ID), convertScopedToShadow(styles[i].innerHTML), true);\n }\n }\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3],\n };\n if (BUILD.member) {\n cmpMeta.$members$ = compactMeta[2];\n }\n if (BUILD.hostListener) {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n if (BUILD.reflect) {\n cmpMeta.$attrsToReflect$ = [];\n }\n if (BUILD.watchCallback) {\n cmpMeta.$watchers$ = {};\n }\n if (BUILD.shadowDom && !supportsShadow && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n cmpMeta.$flags$ |= 8 /* CMP_FLAGS.needsShadowDomShim */;\n }\n const tagName = BUILD.transformTagName && options.transformTagName\n ? options.transformTagName(cmpMeta.$tagName$)\n : cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (BUILD.shadowDom && cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n if (supportsShadow) {\n if (BUILD.shadowDelegatesFocus) {\n self.attachShadow({\n mode: 'open',\n delegatesFocus: !!(cmpMeta.$flags$ & 16 /* CMP_FLAGS.shadowDelegatesFocus */),\n });\n }\n else {\n self.attachShadow({ mode: 'open' });\n }\n }\n else if (!BUILD.hydrateServerSide && !('shadowRoot' in self)) {\n self.shadowRoot = self;\n }\n }\n if (BUILD.slotChildNodesFix) {\n patchChildSlotNodes(self, cmpMeta);\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n }\n else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n if (BUILD.cloneNodeFix) {\n patchCloneNode(HostElement.prototype);\n }\n if (BUILD.appendChildSlotFix) {\n patchSlotAppendChild(HostElement.prototype);\n }\n if (BUILD.hotModuleReplacement) {\n HostElement.prototype['s-hmr'] = function (hmrVersionId) {\n hmrStart(this, cmpMeta, hmrVersionId);\n };\n }\n if (BUILD.scopedSlotTextContentFix) {\n patchTextContent(HostElement.prototype, cmpMeta);\n }\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n if (BUILD.invisiblePrehydration && (BUILD.hydratedClass || BUILD.hydratedAttribute)) {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n }\n else {\n if (BUILD.profile) {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30, 'timeout')));\n }\n else {\n plt.jmp(() => (appLoadFallback = setTimeout(appDidLoad, 30)));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst getConnect = (_ref, tagName) => {\n const componentOnReady = () => {\n let elm = doc.querySelector(tagName);\n if (!elm) {\n elm = doc.createElement(tagName);\n doc.body.appendChild(elm);\n }\n return typeof elm.componentOnReady === 'function' ? elm.componentOnReady() : Promise.resolve(elm);\n };\n const create = (...args) => {\n return componentOnReady().then((el) => el.create(...args));\n };\n return {\n create,\n componentOnReady,\n };\n};\nconst getContext = (_elm, context) => {\n if (context in Context) {\n return Context[context];\n }\n else if (context === 'window') {\n return win;\n }\n else if (context === 'document') {\n return doc;\n }\n else if (context === 'isServer' || context === 'isPrerender') {\n return BUILD.hydrateServerSide ? true : false;\n }\n else if (context === 'isClient') {\n return BUILD.hydrateServerSide ? false : true;\n }\n else if (context === 'resourcesUrl' || context === 'publicPath') {\n return getAssetPath('.');\n }\n else if (context === 'queue') {\n return {\n write: writeTask,\n read: readTask,\n tick: {\n then(cb) {\n return nextTick(cb);\n },\n },\n };\n }\n return undefined;\n};\nconst Fragment = (_, children) => children;\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (BUILD.hostListener && listeners) {\n // this is called immediately within the element's constructor\n // initialize our event listeners on the host element\n // we do this now so that we can listen to events that may\n // have fired even before the instance is ready\n if (BUILD.hostListenerTargetParent) {\n // this component may have event listeners that should be attached to the parent\n if (attachParentListeners) {\n // this is being ran from within the connectedCallback\n // which is important so that we know the host element actually has a parent element\n // filter out the listeners to only have the ones that ARE being attached to the parent\n listeners = listeners.filter(([flags]) => flags & 32 /* LISTENER_FLAGS.TargetParent */);\n }\n else {\n // this is being ran from within the component constructor\n // everything BUT the parent element listeners should be attached at this time\n // filter out the listeners that are NOT being attached to the parent\n listeners = listeners.filter(([flags]) => !(flags & 32 /* LISTENER_FLAGS.TargetParent */));\n }\n }\n listeners.map(([flags, name, method]) => {\n const target = BUILD.hostListenerTarget ? getHostListenerTarget(elm, flags) : elm;\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => (ev) => {\n try {\n if (BUILD.lazyLoad) {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n }\n else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n else {\n hostRef.$hostElement$[methodName](ev);\n }\n }\n catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (BUILD.hostListenerTargetDocument && flags & 4 /* LISTENER_FLAGS.TargetDocument */)\n return doc;\n if (BUILD.hostListenerTargetWindow && flags & 8 /* LISTENER_FLAGS.TargetWindow */)\n return win;\n if (BUILD.hostListenerTargetBody && flags & 16 /* LISTENER_FLAGS.TargetBody */)\n return doc.body;\n if (BUILD.hostListenerTargetParent && flags & 32 /* LISTENER_FLAGS.TargetParent */)\n return elm.parentElement;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = (flags) => supportsListenerOptions\n ? ({\n passive: (flags & 1 /* LISTENER_FLAGS.Passive */) !== 0,\n capture: (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0,\n })\n : (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\nconst setPlatformOptions = (opts) => Object.assign(plt, opts);\nconst insertVdomAnnotations = (doc, staticComponents) => {\n if (doc != null) {\n const docData = {\n hostIds: 0,\n rootLevelIds: 0,\n staticComponents: new Set(staticComponents),\n };\n const orgLocationNodes = [];\n parseVNodeAnnotations(doc, doc.body, docData, orgLocationNodes);\n orgLocationNodes.forEach((orgLocationNode) => {\n if (orgLocationNode != null) {\n const nodeRef = orgLocationNode['s-nr'];\n let hostId = nodeRef['s-host-id'];\n let nodeId = nodeRef['s-node-id'];\n let childId = `${hostId}.${nodeId}`;\n if (hostId == null) {\n hostId = 0;\n docData.rootLevelIds++;\n nodeId = docData.rootLevelIds;\n childId = `${hostId}.${nodeId}`;\n if (nodeRef.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n nodeRef.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (nodeRef.nodeType === 3 /* NODE_TYPE.TextNode */) {\n if (hostId === 0) {\n const textContent = nodeRef.nodeValue.trim();\n if (textContent === '') {\n // useless whitespace node at the document root\n orgLocationNode.remove();\n return;\n }\n }\n const commentBeforeTextNode = doc.createComment(childId);\n commentBeforeTextNode.nodeValue = `${TEXT_NODE_ID}.${childId}`;\n nodeRef.parentNode.insertBefore(commentBeforeTextNode, nodeRef);\n }\n }\n let orgLocationNodeId = `${ORG_LOCATION_ID}.${childId}`;\n const orgLocationParentNode = orgLocationNode.parentElement;\n if (orgLocationParentNode) {\n if (orgLocationParentNode['s-en'] === '') {\n // ending with a \".\" means that the parent element\n // of this node's original location is a SHADOW dom element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.`;\n }\n else if (orgLocationParentNode['s-en'] === 'c') {\n // ending with a \".c\" means that the parent element\n // of this node's original location is a SCOPED element\n // and this node is apart of the root level light dom\n orgLocationNodeId += `.c`;\n }\n }\n orgLocationNode.nodeValue = orgLocationNodeId;\n }\n });\n }\n};\nconst parseVNodeAnnotations = (doc, node, docData, orgLocationNodes) => {\n if (node == null) {\n return;\n }\n if (node['s-nr'] != null) {\n orgLocationNodes.push(node);\n }\n if (node.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n node.childNodes.forEach((childNode) => {\n const hostRef = getHostRef(childNode);\n if (hostRef != null && !docData.staticComponents.has(childNode.nodeName.toLowerCase())) {\n const cmpData = {\n nodeIds: 0,\n };\n insertVNodeAnnotations(doc, childNode, hostRef.$vnode$, docData, cmpData);\n }\n parseVNodeAnnotations(doc, childNode, docData, orgLocationNodes);\n });\n }\n};\nconst insertVNodeAnnotations = (doc, hostElm, vnode, docData, cmpData) => {\n if (vnode != null) {\n const hostId = ++docData.hostIds;\n hostElm.setAttribute(HYDRATE_ID, hostId);\n if (hostElm['s-cr'] != null) {\n hostElm['s-cr'].nodeValue = `${CONTENT_REF_ID}.${hostId}`;\n }\n if (vnode.$children$ != null) {\n const depth = 0;\n vnode.$children$.forEach((vnodeChild, index) => {\n insertChildVNodeAnnotations(doc, vnodeChild, cmpData, hostId, depth, index);\n });\n }\n if (hostElm && vnode && vnode.$elm$ && !hostElm.hasAttribute('c-id')) {\n const parent = hostElm.parentElement;\n if (parent && parent.childNodes) {\n const parentChildNodes = Array.from(parent.childNodes);\n const comment = parentChildNodes.find((node) => node.nodeType === 8 /* NODE_TYPE.CommentNode */ && node['s-sr']);\n if (comment) {\n const index = parentChildNodes.indexOf(hostElm) - 1;\n vnode.$elm$.setAttribute(HYDRATE_CHILD_ID, `${comment['s-host-id']}.${comment['s-node-id']}.0.${index}`);\n }\n }\n }\n }\n};\nconst insertChildVNodeAnnotations = (doc, vnodeChild, cmpData, hostId, depth, index) => {\n const childElm = vnodeChild.$elm$;\n if (childElm == null) {\n return;\n }\n const nodeId = cmpData.nodeIds++;\n const childId = `${hostId}.${nodeId}.${depth}.${index}`;\n childElm['s-host-id'] = hostId;\n childElm['s-node-id'] = nodeId;\n if (childElm.nodeType === 1 /* NODE_TYPE.ElementNode */) {\n childElm.setAttribute(HYDRATE_CHILD_ID, childId);\n }\n else if (childElm.nodeType === 3 /* NODE_TYPE.TextNode */) {\n const parentNode = childElm.parentNode;\n const nodeName = parentNode.nodeName;\n if (nodeName !== 'STYLE' && nodeName !== 'SCRIPT') {\n const textNodeId = `${TEXT_NODE_ID}.${childId}`;\n const commentBeforeTextNode = doc.createComment(textNodeId);\n parentNode.insertBefore(commentBeforeTextNode, childElm);\n }\n }\n else if (childElm.nodeType === 8 /* NODE_TYPE.CommentNode */) {\n if (childElm['s-sr']) {\n const slotName = childElm['s-sn'] || '';\n const slotNodeId = `${SLOT_NODE_ID}.${childId}.${slotName}`;\n childElm.nodeValue = slotNodeId;\n }\n }\n if (vnodeChild.$children$ != null) {\n const childDepth = depth + 1;\n vnodeChild.$children$.forEach((vnode, index) => {\n insertChildVNodeAnnotations(doc, vnode, cmpData, hostId, childDepth, index);\n });\n }\n};\nconst hostRefs = /*@__PURE__*/ new WeakMap();\nconst getHostRef = (ref) => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map(),\n };\n if (BUILD.isDev) {\n hostRef.$renderCount$ = 0;\n }\n if (BUILD.method && BUILD.lazyLoad) {\n hostRef.$onInstancePromise$ = new Promise((r) => (hostRef.$onInstanceResolve$ = r));\n }\n if (BUILD.asyncLoading) {\n hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$, false);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (customError || console.error)(e, el);\nconst STENCIL_DEV_MODE = BUILD.isTesting\n ? ['STENCIL:'] // E2E testing\n : [\n '%cstencil',\n 'color: white;background:#4c47ff;font-weight: bold; font-size:10px; padding:2px 6px; border-radius: 5px',\n ];\nconst consoleDevError = (...m) => console.error(...STENCIL_DEV_MODE, ...m);\nconst consoleDevWarn = (...m) => console.warn(...STENCIL_DEV_MODE, ...m);\nconst consoleDevInfo = (...m) => console.info(...STENCIL_DEV_MODE, ...m);\nconst setErrorHandler = (handler) => (customError = handler);\nconst cmpModules = /*@__PURE__*/ new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n if (BUILD.isDev && typeof bundleId !== 'string') {\n consoleDevError(`Trying to lazily load component <${cmpMeta.$tagName$}> with style mode \"${hostRef.$modeName$}\", but it does not exist.`);\n return undefined;\n }\n const module = !BUILD.hotModuleReplacement ? cmpModules.get(bundleId) : false;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${BUILD.hotModuleReplacement && hmrVersionId ? '?s-hmr=' + hmrVersionId : ''}`).then((importedModule) => {\n if (!BUILD.hotModuleReplacement) {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/ new Map();\nconst modeResolutionChain = [];\nconst win = typeof window !== 'undefined' ? window : {};\nconst CSS = BUILD.cssVarShim ? win.CSS : null;\nconst doc = win.document || { head: {} };\nconst H = (win.HTMLElement || class {\n});\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: (h) => h(),\n raf: (h) => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts),\n};\nconst setPlatformHelpers = (helpers) => {\n Object.assign(plt, helpers);\n};\nconst supportsShadow = BUILD.shadowDomShim && BUILD.shadowDom\n ? /*@__PURE__*/ (() => (doc.head.attachShadow + '').indexOf('[native') > -1)()\n : true;\nconst supportsListenerOptions = /*@__PURE__*/ (() => {\n let supportsListenerOptions = false;\n try {\n doc.addEventListener('e', null, Object.defineProperty({}, 'passive', {\n get() {\n supportsListenerOptions = true;\n },\n }));\n }\n catch (e) { }\n return supportsListenerOptions;\n})();\nconst promiseResolve = (v) => Promise.resolve(v);\nconst supportsConstructableStylesheets = BUILD.constructableCSS\n ? /*@__PURE__*/ (() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n }\n catch (e) { }\n return false;\n })()\n : false;\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueDomWritesLow = [];\nconst queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n }\n else {\n plt.raf(flush);\n }\n }\n};\nconst consume = (queue) => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n }\n catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst consumeTimeout = (queue, timeout) => {\n let i = 0;\n let ts = 0;\n while (i < queue.length && (ts = performance.now()) < timeout) {\n try {\n queue[i++](ts);\n }\n catch (e) {\n consoleError(e);\n }\n }\n if (i === queue.length) {\n queue.length = 0;\n }\n else if (i !== 0) {\n queue.splice(0, i);\n }\n};\nconst flush = () => {\n if (BUILD.asyncQueue) {\n queueCongestion++;\n }\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n if (BUILD.asyncQueue) {\n const timeout = (plt.$flags$ & 6 /* PLATFORM_FLAGS.queueMask */) === 2 /* PLATFORM_FLAGS.appLoaded */\n ? performance.now() + 14 * Math.ceil(queueCongestion * (1.0 / 10.0))\n : Infinity;\n consumeTimeout(queueDomWrites, timeout);\n consumeTimeout(queueDomWritesLow, timeout);\n if (queueDomWrites.length > 0) {\n queueDomWritesLow.push(...queueDomWrites);\n queueDomWrites.length = 0;\n }\n if ((queuePending = queueDomReads.length + queueDomWrites.length + queueDomWritesLow.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n else {\n queueCongestion = 0;\n }\n }\n else {\n consume(queueDomWrites);\n if ((queuePending = queueDomReads.length > 0)) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);\nconst readTask = /*@__PURE__*/ queueTask(queueDomReads, false);\nconst writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);\nexport { BUILD, Env, NAMESPACE } from '@stencil/core/internal/app-data';\nexport { Build, CSS, Context, Fragment, H, H as HTMLElement, Host, STENCIL_DEV_MODE, addHostEventListeners, bootstrapLazy, cmpModules, connectedCallback, consoleDevError, consoleDevInfo, consoleDevWarn, consoleError, createEvent, defineCustomElement, disconnectedCallback, doc, forceModeUpdate, forceUpdate, getAssetPath, getConnect, getContext, getElement, getHostRef, getMode, getRenderingRef, getValue, h, insertVdomAnnotations, isMemberInElement, loadModule, modeResolutionChain, nextTick, parsePropertyValue, plt, postUpdateComponent, promiseResolve, proxyComponent, proxyCustomElement, readTask, registerHost, registerInstance, renderVdom, setAssetPath, setErrorHandler, setMode, setPlatformHelpers, setPlatformOptions, setValue, styles, supportsConstructableStylesheets, supportsListenerOptions, supportsShadow, win, writeTask };\n","const BUILD = {\n allRenderFn: false,\n cmpDidLoad: true,\n cmpDidUnload: false,\n cmpDidUpdate: true,\n cmpDidRender: true,\n cmpWillLoad: true,\n cmpWillUpdate: true,\n cmpWillRender: true,\n connectedCallback: true,\n disconnectedCallback: true,\n element: true,\n event: true,\n hasRenderFn: true,\n lifecycle: true,\n hostListener: true,\n hostListenerTargetWindow: true,\n hostListenerTargetDocument: true,\n hostListenerTargetBody: true,\n hostListenerTargetParent: false,\n hostListenerTarget: true,\n member: true,\n method: true,\n mode: true,\n observeAttribute: true,\n prop: true,\n propMutable: true,\n reflect: true,\n scoped: true,\n shadowDom: true,\n slot: true,\n cssAnnotations: true,\n state: true,\n style: true,\n svg: true,\n updatable: true,\n vdomAttribute: true,\n vdomXlink: true,\n vdomClass: true,\n vdomFunctional: true,\n vdomKey: true,\n vdomListener: true,\n vdomRef: true,\n vdomPropOrAttr: true,\n vdomRender: true,\n vdomStyle: true,\n vdomText: true,\n watchCallback: true,\n taskQueue: true,\n hotModuleReplacement: false,\n isDebug: false,\n isDev: false,\n isTesting: false,\n hydrateServerSide: false,\n hydrateClientSide: false,\n lifecycleDOMEvents: false,\n lazyLoad: false,\n profile: false,\n slotRelocation: true,\n appendChildSlotFix: false,\n cloneNodeFix: false,\n hydratedAttribute: false,\n hydratedClass: true,\n safari10: false,\n scriptDataOpts: false,\n scopedSlotTextContentFix: false,\n shadowDomShim: false,\n slotChildNodesFix: false,\n invisiblePrehydration: true,\n propBoolean: true,\n propNumber: true,\n propString: true,\n cssVarShim: false,\n constructableCSS: true,\n cmpShouldUpdate: true,\n devTools: false,\n dynamicImportShim: false,\n shadowDelegatesFocus: true,\n initializeNextTick: false,\n asyncLoading: false,\n asyncQueue: false,\n transformTagName: false,\n attachStyles: true,\n};\nconst Env = {};\nconst NAMESPACE = /* default */ 'app';\n\nexport { BUILD, Env, NAMESPACE };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"22\":\"7ec1dda8\",\"186\":\"09c3ea27\",\"272\":\"fc222ae9\",\"372\":\"1940d375\",\"377\":\"31684c30\",\"738\":\"aba3ba7d\",\"841\":\"bef26980\",\"851\":\"7ada53df\",\"856\":\"c55f21fe\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"TPCApp:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkTPCApp\"] = self[\"webpackChunkTPCApp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Redirect> outside a <Router>\");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n <Lifecycle\n onMount={() => {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Context, setPlatformHelpers, setMode, getMode } from '@stencil/core/internal/client';\n\nclass Config {\n constructor() {\n this.m = new Map();\n }\n reset(configObj) {\n this.m = new Map(Object.entries(configObj));\n }\n get(key, fallback) {\n const value = this.m.get(key);\n return value !== undefined ? value : fallback;\n }\n getBoolean(key, fallback = false) {\n const val = this.m.get(key);\n if (val === undefined) {\n return fallback;\n }\n if (typeof val === 'string') {\n return val === 'true';\n }\n return !!val;\n }\n getNumber(key, fallback) {\n const val = parseFloat(this.m.get(key));\n return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;\n }\n set(key, value) {\n this.m.set(key, value);\n }\n}\nconst config = /*@__PURE__*/ new Config();\nconst configFromSession = (win) => {\n try {\n const configStr = win.sessionStorage.getItem(IONIC_SESSION_KEY);\n return configStr !== null ? JSON.parse(configStr) : {};\n }\n catch (e) {\n return {};\n }\n};\nconst saveConfig = (win, c) => {\n try {\n win.sessionStorage.setItem(IONIC_SESSION_KEY, JSON.stringify(c));\n }\n catch (e) {\n return;\n }\n};\nconst configFromURL = (win) => {\n const configObj = {};\n win.location.search\n .slice(1)\n .split('&')\n .map((entry) => entry.split('='))\n .map(([key, value]) => [decodeURIComponent(key), decodeURIComponent(value)])\n .filter(([key]) => startsWith(key, IONIC_PREFIX))\n .map(([key, value]) => [key.slice(IONIC_PREFIX.length), value])\n .forEach(([key, value]) => {\n configObj[key] = value;\n });\n return configObj;\n};\nconst startsWith = (input, search) => {\n return input.substr(0, search.length) === search;\n};\nconst IONIC_PREFIX = 'ionic:';\nconst IONIC_SESSION_KEY = 'ionic-persist-config';\n\nconst getPlatforms = (win) => setupPlatforms(win);\nconst isPlatform = (winOrPlatform, platform) => {\n if (typeof winOrPlatform === 'string') {\n platform = winOrPlatform;\n winOrPlatform = undefined;\n }\n return getPlatforms(winOrPlatform).includes(platform);\n};\nconst setupPlatforms = (win = window) => {\n if (typeof win === 'undefined') {\n return [];\n }\n win.Ionic = win.Ionic || {};\n let platforms = win.Ionic.platforms;\n if (platforms == null) {\n platforms = win.Ionic.platforms = detectPlatforms(win);\n platforms.forEach((p) => win.document.documentElement.classList.add(`plt-${p}`));\n }\n return platforms;\n};\nconst detectPlatforms = (win) => {\n const customPlatformMethods = config.get('platform');\n return Object.keys(PLATFORMS_MAP).filter((p) => {\n const customMethod = customPlatformMethods === null || customPlatformMethods === void 0 ? void 0 : customPlatformMethods[p];\n return typeof customMethod === 'function' ? customMethod(win) : PLATFORMS_MAP[p](win);\n });\n};\nconst isMobileWeb = (win) => isMobile(win) && !isHybrid(win);\nconst isIpad = (win) => {\n // iOS 12 and below\n if (testUserAgent(win, /iPad/i)) {\n return true;\n }\n // iOS 13+\n if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {\n return true;\n }\n return false;\n};\nconst isIphone = (win) => testUserAgent(win, /iPhone/i);\nconst isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);\nconst isAndroid = (win) => testUserAgent(win, /android|sink/i);\nconst isAndroidTablet = (win) => {\n return isAndroid(win) && !testUserAgent(win, /mobile/i);\n};\nconst isPhablet = (win) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n return smallest > 390 && smallest < 520 && largest > 620 && largest < 800;\n};\nconst isTablet = (win) => {\n const width = win.innerWidth;\n const height = win.innerHeight;\n const smallest = Math.min(width, height);\n const largest = Math.max(width, height);\n return isIpad(win) || isAndroidTablet(win) || (smallest > 460 && smallest < 820 && largest > 780 && largest < 1400);\n};\nconst isMobile = (win) => matchMedia(win, '(any-pointer:coarse)');\nconst isDesktop = (win) => !isMobile(win);\nconst isHybrid = (win) => isCordova(win) || isCapacitorNative(win);\nconst isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);\nconst isCapacitorNative = (win) => {\n const capacitor = win['Capacitor'];\n return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);\n};\nconst isElectron = (win) => testUserAgent(win, /electron/i);\nconst isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };\nconst testUserAgent = (win, expr) => expr.test(win.navigator.userAgent);\nconst matchMedia = (win, query) => { var _a; return (_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, query).matches; };\nconst PLATFORMS_MAP = {\n ipad: isIpad,\n iphone: isIphone,\n ios: isIOS,\n android: isAndroid,\n phablet: isPhablet,\n tablet: isTablet,\n cordova: isCordova,\n capacitor: isCapacitorNative,\n electron: isElectron,\n pwa: isPWA,\n mobile: isMobile,\n mobileweb: isMobileWeb,\n desktop: isDesktop,\n hybrid: isHybrid,\n};\n\nlet defaultMode;\nconst getIonMode = (ref) => {\n return (ref && getMode(ref)) || defaultMode;\n};\nconst initialize = (userConfig = {}) => {\n if (typeof window === 'undefined') {\n return;\n }\n const doc = window.document;\n const win = window;\n Context.config = config;\n const Ionic = (win.Ionic = win.Ionic || {});\n const platformHelpers = {};\n if (userConfig._ael) {\n platformHelpers.ael = userConfig._ael;\n }\n if (userConfig._rel) {\n platformHelpers.rel = userConfig._rel;\n }\n if (userConfig._ce) {\n platformHelpers.ce = userConfig._ce;\n }\n setPlatformHelpers(platformHelpers);\n // create the Ionic.config from raw config object (if it exists)\n // and convert Ionic.config into a ConfigApi that has a get() fn\n const configObj = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configFromSession(win)), { persistConfig: false }), Ionic.config), configFromURL(win)), userConfig);\n config.reset(configObj);\n if (config.getBoolean('persistConfig')) {\n saveConfig(win, configObj);\n }\n // Setup platforms\n setupPlatforms(win);\n // first see if the mode was set as an attribute on <html>\n // which could have been set by the user, or by pre-rendering\n // otherwise get the mode via config settings, and fallback to md\n Ionic.config = config;\n Ionic.mode = defaultMode = config.get('mode', doc.documentElement.getAttribute('mode') || (isPlatform(win, 'ios') ? 'ios' : 'md'));\n config.set('mode', defaultMode);\n doc.documentElement.setAttribute('mode', defaultMode);\n doc.documentElement.classList.add(defaultMode);\n if (config.getBoolean('_testing')) {\n config.set('animated', false);\n }\n const isIonicElement = (elm) => { var _a; return (_a = elm.tagName) === null || _a === void 0 ? void 0 : _a.startsWith('ION-'); };\n const isAllowedIonicModeValue = (elmMode) => ['ios', 'md'].includes(elmMode);\n setMode((elm) => {\n while (elm) {\n const elmMode = elm.mode || elm.getAttribute('mode');\n if (elmMode) {\n if (isAllowedIonicModeValue(elmMode)) {\n return elmMode;\n }\n else if (isIonicElement(elm)) {\n console.warn('Invalid ionic mode: \"' + elmMode + '\", expected: \"ios\" or \"md\"');\n }\n }\n elm = elm.parentElement;\n }\n return defaultMode;\n });\n};\n\nexport { isPlatform as a, getIonMode as b, config as c, getPlatforms as g, initialize as i };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';\nimport { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';\n\nlet lastId = 0;\nconst activeAnimations = new WeakMap();\nconst createController = (tagName) => {\n return {\n create(options) {\n return createOverlay(tagName, options);\n },\n dismiss(data, role, id) {\n return dismissOverlay(document, data, role, tagName, id);\n },\n async getTop() {\n return getOverlay(document, tagName);\n },\n };\n};\nconst alertController = /*@__PURE__*/ createController('ion-alert');\nconst actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');\nconst loadingController = /*@__PURE__*/ createController('ion-loading');\nconst modalController = /*@__PURE__*/ createController('ion-modal');\nconst pickerController = /*@__PURE__*/ createController('ion-picker');\nconst popoverController = /*@__PURE__*/ createController('ion-popover');\nconst toastController = /*@__PURE__*/ createController('ion-toast');\nconst prepareOverlay = (el) => {\n if (typeof document !== 'undefined') {\n connectListeners(document);\n }\n const overlayIndex = lastId++;\n el.overlayIndex = overlayIndex;\n if (!el.hasAttribute('id')) {\n el.id = `ion-overlay-${overlayIndex}`;\n }\n};\nconst createOverlay = (tagName, opts) => {\n if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined') {\n return window.customElements.whenDefined(tagName).then(() => {\n const element = document.createElement(tagName);\n element.classList.add('overlay-hidden');\n /**\n * Convert the passed in overlay options into props\n * that get passed down into the new overlay.\n */\n Object.assign(element, Object.assign(Object.assign({}, opts), { hasController: true }));\n // append the overlay element to the document body\n getAppRoot(document).appendChild(element);\n return new Promise((resolve) => componentOnReady(element, resolve));\n });\n }\n return Promise.resolve();\n};\n/**\n * This query string selects elements that\n * are eligible to receive focus. We select\n * interactive elements that meet the following\n * criteria:\n * 1. Element does not have a negative tabindex\n * 2. Element does not have `hidden`\n * 3. Element does not have `disabled` for non-Ionic components.\n * 4. Element does not have `disabled` or `disabled=\"true\"` for Ionic components.\n * Note: We need this distinction because `disabled=\"false\"` is\n * valid usage for the disabled property on ion-button.\n */\nconst focusableQueryString = '[tabindex]:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^=\"-\"]):not([hidden]):not([disabled]), textarea:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), button:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), select:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable[disabled=\"false\"]:not([tabindex^=\"-\"]):not([hidden])';\nconst focusFirstDescendant = (ref, overlay) => {\n let firstInput = ref.querySelector(focusableQueryString);\n const shadowRoot = firstInput === null || firstInput === void 0 ? void 0 : firstInput.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n firstInput = shadowRoot.querySelector(focusableQueryString) || firstInput;\n }\n if (firstInput) {\n focusElement(firstInput);\n }\n else {\n // Focus overlay instead of letting focus escape\n overlay.focus();\n }\n};\nconst isOverlayHidden = (overlay) => overlay.classList.contains('overlay-hidden');\nconst focusLastDescendant = (ref, overlay) => {\n const inputs = Array.from(ref.querySelectorAll(focusableQueryString));\n let lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;\n const shadowRoot = lastInput === null || lastInput === void 0 ? void 0 : lastInput.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n lastInput = shadowRoot.querySelector(focusableQueryString) || lastInput;\n }\n if (lastInput) {\n lastInput.focus();\n }\n else {\n // Focus overlay instead of letting focus escape\n overlay.focus();\n }\n};\n/**\n * Traps keyboard focus inside of overlay components.\n * Based on https://w3c.github.io/aria-practices/examples/dialog-modal/alertdialog.html\n * This includes the following components: Action Sheet, Alert, Loading, Modal,\n * Picker, and Popover.\n * Should NOT include: Toast\n */\nconst trapKeyboardFocus = (ev, doc) => {\n const lastOverlay = getOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');\n const target = ev.target;\n /**\n * If no active overlay, ignore this event.\n *\n * If this component uses the shadow dom,\n * this global listener is pointless\n * since it will not catch the focus\n * traps as they are inside the shadow root.\n * We need to add a listener to the shadow root\n * itself to ensure the focus trap works.\n */\n if (!lastOverlay || !target) {\n return;\n }\n /**\n * If the ion-disable-focus-trap class\n * is present on an overlay, then this component\n * instance has opted out of focus trapping.\n * An example of this is when the sheet modal\n * has a backdrop that is disabled. The content\n * behind the sheet should be focusable until\n * the backdrop is enabled.\n */\n if (lastOverlay.classList.contains('ion-disable-focus-trap')) {\n return;\n }\n const trapScopedFocus = () => {\n /**\n * If we are focusing the overlay, clear\n * the last focused element so that hitting\n * tab activates the first focusable element\n * in the overlay wrapper.\n */\n if (lastOverlay === target) {\n lastOverlay.lastFocus = undefined;\n /**\n * Otherwise, we must be focusing an element\n * inside of the overlay. The two possible options\n * here are an input/button/etc or the ion-focus-trap\n * element. The focus trap element is used to prevent\n * the keyboard focus from leaving the overlay when\n * using Tab or screen assistants.\n */\n }\n else {\n /**\n * We do not want to focus the traps, so get the overlay\n * wrapper element as the traps live outside of the wrapper.\n */\n const overlayRoot = getElementRoot(lastOverlay);\n if (!overlayRoot.contains(target)) {\n return;\n }\n const overlayWrapper = overlayRoot.querySelector('.ion-overlay-wrapper');\n if (!overlayWrapper) {\n return;\n }\n /**\n * If the target is inside the wrapper, let the browser\n * focus as normal and keep a log of the last focused element.\n */\n if (overlayWrapper.contains(target)) {\n lastOverlay.lastFocus = target;\n }\n else {\n /**\n * Otherwise, we must have focused one of the focus traps.\n * We need to wrap the focus to either the first element\n * or the last element.\n */\n /**\n * Once we call `focusFirstDescendant` and focus the first\n * descendant, another focus event will fire which will\n * cause `lastOverlay.lastFocus` to be updated before\n * we can run the code after that. We will cache the value\n * here to avoid that.\n */\n const lastFocus = lastOverlay.lastFocus;\n // Focus the first element in the overlay wrapper\n focusFirstDescendant(overlayWrapper, lastOverlay);\n /**\n * If the cached last focused element is the\n * same as the active element, then we need\n * to wrap focus to the last descendant. This happens\n * when the first descendant is focused, and the user\n * presses Shift + Tab. The previous line will focus\n * the same descendant again (the first one), causing\n * last focus to equal the active element.\n */\n if (lastFocus === doc.activeElement) {\n focusLastDescendant(overlayWrapper, lastOverlay);\n }\n lastOverlay.lastFocus = doc.activeElement;\n }\n }\n };\n const trapShadowFocus = () => {\n /**\n * If the target is inside the wrapper, let the browser\n * focus as normal and keep a log of the last focused element.\n */\n if (lastOverlay.contains(target)) {\n lastOverlay.lastFocus = target;\n }\n else {\n /**\n * Otherwise, we are about to have focus\n * go out of the overlay. We need to wrap\n * the focus to either the first element\n * or the last element.\n */\n /**\n * Once we call `focusFirstDescendant` and focus the first\n * descendant, another focus event will fire which will\n * cause `lastOverlay.lastFocus` to be updated before\n * we can run the code after that. We will cache the value\n * here to avoid that.\n */\n const lastFocus = lastOverlay.lastFocus;\n // Focus the first element in the overlay wrapper\n focusFirstDescendant(lastOverlay, lastOverlay);\n /**\n * If the cached last focused element is the\n * same as the active element, then we need\n * to wrap focus to the last descendant. This happens\n * when the first descendant is focused, and the user\n * presses Shift + Tab. The previous line will focus\n * the same descendant again (the first one), causing\n * last focus to equal the active element.\n */\n if (lastFocus === doc.activeElement) {\n focusLastDescendant(lastOverlay, lastOverlay);\n }\n lastOverlay.lastFocus = doc.activeElement;\n }\n };\n if (lastOverlay.shadowRoot) {\n trapShadowFocus();\n }\n else {\n trapScopedFocus();\n }\n};\nconst connectListeners = (doc) => {\n if (lastId === 0) {\n lastId = 1;\n doc.addEventListener('focus', (ev) => {\n trapKeyboardFocus(ev, doc);\n }, true);\n // handle back-button click\n doc.addEventListener('ionBackButton', (ev) => {\n const lastOverlay = getOverlay(doc);\n if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {\n ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {\n return lastOverlay.dismiss(undefined, BACKDROP);\n });\n }\n });\n // handle ESC to close overlay\n doc.addEventListener('keyup', (ev) => {\n if (ev.key === 'Escape') {\n const lastOverlay = getOverlay(doc);\n if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {\n lastOverlay.dismiss(undefined, BACKDROP);\n }\n }\n });\n }\n};\nconst dismissOverlay = (doc, data, role, overlayTag, id) => {\n const overlay = getOverlay(doc, overlayTag, id);\n if (!overlay) {\n return Promise.reject('overlay does not exist');\n }\n return overlay.dismiss(data, role);\n};\nconst getOverlays = (doc, selector) => {\n if (selector === undefined) {\n selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';\n }\n return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);\n};\n/**\n * Returns an overlay element\n * @param doc The document to find the element within.\n * @param overlayTag The selector for the overlay, defaults to Ionic overlay components.\n * @param id The unique identifier for the overlay instance.\n * @returns The overlay element or `undefined` if no overlay element is found.\n */\nconst getOverlay = (doc, overlayTag, id) => {\n const overlays = getOverlays(doc, overlayTag).filter((o) => !isOverlayHidden(o));\n return id === undefined ? overlays[overlays.length - 1] : overlays.find((o) => o.id === id);\n};\n/**\n * When an overlay is presented, the main\n * focus is the overlay not the page content.\n * We need to remove the page content from the\n * accessibility tree otherwise when\n * users use \"read screen from top\" gestures with\n * TalkBack and VoiceOver, the screen reader will begin\n * to read the content underneath the overlay.\n *\n * We need a container where all page components\n * exist that is separate from where the overlays\n * are added in the DOM. For most apps, this element\n * is the top most ion-router-outlet. In the event\n * that devs are not using a router,\n * they will need to add the \"ion-view-container-root\"\n * id to the element that contains all of their views.\n *\n * TODO: If Framework supports having multiple top\n * level router outlets we would need to update this.\n * Example: One outlet for side menu and one outlet\n * for main content.\n */\nconst setRootAriaHidden = (hidden = false) => {\n const root = getAppRoot(document);\n const viewContainer = root.querySelector('ion-router-outlet, ion-nav, #ion-view-container-root');\n if (!viewContainer) {\n return;\n }\n if (hidden) {\n viewContainer.setAttribute('aria-hidden', 'true');\n }\n else {\n viewContainer.removeAttribute('aria-hidden');\n }\n};\nconst present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {\n var _a, _b;\n if (overlay.presented) {\n return;\n }\n setRootAriaHidden(true);\n overlay.presented = true;\n overlay.willPresent.emit();\n (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();\n const mode = getIonMode(overlay);\n // get the user's animation fn if one was provided\n const animationBuilder = overlay.enterAnimation\n ? overlay.enterAnimation\n : config.get(name, mode === 'ios' ? iosEnterAnimation : mdEnterAnimation);\n const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);\n if (completed) {\n overlay.didPresent.emit();\n (_b = overlay.didPresentShorthand) === null || _b === void 0 ? void 0 : _b.emit();\n }\n /**\n * When an overlay that steals focus\n * is dismissed, focus should be returned\n * to the element that was focused\n * prior to the overlay opening. Toast\n * does not steal focus and is excluded\n * from returning focus as a result.\n */\n if (overlay.el.tagName !== 'ION-TOAST') {\n focusPreviousElementOnDismiss(overlay.el);\n }\n /**\n * If the focused element is already\n * inside the overlay component then\n * focus should not be moved from that\n * to the overlay container.\n */\n if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {\n overlay.el.focus();\n }\n};\n/**\n * When an overlay component is dismissed,\n * focus should be returned to the element\n * that presented the overlay. Otherwise\n * focus will be set on the body which\n * means that people using screen readers\n * or tabbing will need to re-navigate\n * to where they were before they\n * opened the overlay.\n */\nconst focusPreviousElementOnDismiss = async (overlayEl) => {\n let previousElement = document.activeElement;\n if (!previousElement) {\n return;\n }\n const shadowRoot = previousElement === null || previousElement === void 0 ? void 0 : previousElement.shadowRoot;\n if (shadowRoot) {\n // If there are no inner focusable elements, just focus the host element.\n previousElement = shadowRoot.querySelector(focusableQueryString) || previousElement;\n }\n await overlayEl.onDidDismiss();\n previousElement.focus();\n};\nconst dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {\n var _a, _b;\n if (!overlay.presented) {\n return false;\n }\n setRootAriaHidden(false);\n overlay.presented = false;\n try {\n // Overlay contents should not be clickable during dismiss\n overlay.el.style.setProperty('pointer-events', 'none');\n overlay.willDismiss.emit({ data, role });\n (_a = overlay.willDismissShorthand) === null || _a === void 0 ? void 0 : _a.emit({ data, role });\n const mode = getIonMode(overlay);\n const animationBuilder = overlay.leaveAnimation\n ? overlay.leaveAnimation\n : config.get(name, mode === 'ios' ? iosLeaveAnimation : mdLeaveAnimation);\n // If dismissed via gesture, no need to play leaving animation again\n if (role !== 'gesture') {\n await overlayAnimation(overlay, animationBuilder, overlay.el, opts);\n }\n overlay.didDismiss.emit({ data, role });\n (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });\n activeAnimations.delete(overlay);\n /**\n * Make overlay hidden again in case it is being reused.\n * We can safely remove pointer-events: none as\n * overlay-hidden will set display: none.\n */\n overlay.el.classList.add('overlay-hidden');\n overlay.el.style.removeProperty('pointer-events');\n }\n catch (err) {\n console.error(err);\n }\n overlay.el.remove();\n return true;\n};\nconst getAppRoot = (doc) => {\n return doc.querySelector('ion-app') || doc.body;\n};\nconst overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {\n // Make overlay visible in case it's hidden\n baseEl.classList.remove('overlay-hidden');\n const aniRoot = overlay.el;\n const animation = animationBuilder(aniRoot, opts);\n if (!overlay.animated || !config.getBoolean('animated', true)) {\n animation.duration(0);\n }\n if (overlay.keyboardClose) {\n animation.beforeAddWrite(() => {\n const activeElement = baseEl.ownerDocument.activeElement;\n if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('input,ion-input, ion-textarea')) {\n activeElement.blur();\n }\n });\n }\n const activeAni = activeAnimations.get(overlay) || [];\n activeAnimations.set(overlay, [...activeAni, animation]);\n await animation.play();\n return true;\n};\nconst eventMethod = (element, eventName) => {\n let resolve;\n const promise = new Promise((r) => (resolve = r));\n onceEvent(element, eventName, (event) => {\n resolve(event.detail);\n });\n return promise;\n};\nconst onceEvent = (element, eventName, callback) => {\n const handler = (ev) => {\n removeEventListener(element, eventName, handler);\n callback(ev);\n };\n addEventListener(element, eventName, handler);\n};\nconst isCancel = (role) => {\n return role === 'cancel' || role === BACKDROP;\n};\nconst defaultGate = (h) => h();\n/**\n * Calls a developer provided method while avoiding\n * Angular Zones. Since the handler is provided by\n * the developer, we should throw any errors\n * received so that developer-provided bug\n * tracking software can log it.\n */\nconst safeCall = (handler, arg) => {\n if (typeof handler === 'function') {\n const jmp = config.get('_zoneGate', defaultGate);\n return jmp(() => {\n try {\n return handler(arg);\n }\n catch (e) {\n throw e;\n }\n });\n }\n return undefined;\n};\nconst BACKDROP = 'backdrop';\n\nexport { BACKDROP as B, alertController as a, actionSheetController as b, popoverController as c, prepareOverlay as d, present as e, dismiss as f, eventMethod as g, getOverlay as h, activeAnimations as i, isCancel as j, focusFirstDescendant as k, loadingController as l, modalController as m, pickerController as p, safeCall as s, toastController as t };\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { getAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\n\nlet CACHED_MAP;\nconst getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n else {\n if (!CACHED_MAP) {\n const win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nconst getUrl = (i) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nconst getNamedUrl = (iconName) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n return getAssetPath(`svg/${iconName}.svg`);\n};\nconst getName = (iconName, icon, mode, ios, md) => {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n iconName = toLower(ios);\n }\n else if (md && mode === 'md') {\n iconName = toLower(md);\n }\n else {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return iconName;\n};\nconst getSrc = (src) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nconst isSrc = (str) => str.length > 0 && /(\\/|\\.)/.test(str);\nconst isStr = (val) => typeof val === 'string';\nconst toLower = (val) => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\n\nconst validateContent = (svgContent) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n return '';\n};\nconst isValid = (elm) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (let i = 0; i < elm.attributes.length; i++) {\n const name = elm.attributes[i].name;\n if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\n\nconst ioniconContent = new Map();\nconst requests = new Map();\nconst getSvgContent = (url, sanitize) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n if (!req) {\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n // we don't already have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n ioniconContent.set(url, svgContent || '');\n });\n }\n ioniconContent.set(url, '');\n });\n // cache for the same requests\n requests.set(url, req);\n }\n else {\n // set to empty for ssr scenarios and resolve promise\n ioniconContent.set(url, '');\n return Promise.resolve();\n }\n }\n return req;\n};\n\nconst iconCss = \":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}\";\n\nlet parser;\nconst Icon = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.iconName = null;\n this.inheritedAttributes = {};\n this.isVisible = false;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode();\n /**\n * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n this.lazy = false;\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `<script>` elements, or any attributes\n * that start with `on`, such as `onclick`.\n * @default true\n */\n this.sanitize = true;\n this.hasAriaHidden = () => {\n const { el } = this;\n return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n waitUntilVisible(el, rootMargin, cb) {\n if (Build.isBrowser && this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {\n const io = (this.io = new window.IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin }));\n io.observe(el);\n }\n else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n if (!parser) {\n /**\n * Create an instance of the DOM parser. This creates a single\n * parser instance for the entire app, which is more efficient.\n */\n parser = new DOMParser();\n }\n const url = getUrl(this);\n if (url) {\n if (ioniconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = ioniconContent.get(url);\n }\n else if (url.startsWith('data:')) {\n const doc = parser.parseFromString(url, 'text/html');\n const svgEl = doc.body.querySelector('svg');\n if (svgEl !== null) {\n this.svgContent = svgEl.outerHTML;\n }\n else {\n this.svgContent = '';\n }\n }\n else {\n // async if it hasn't been loaded\n getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));\n }\n }\n }\n const label = this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);\n /**\n * Come up with a default label\n * in case user does not provide their own.\n */\n if (label) {\n this.ariaLabel = label.replace(/\\-/g, ' ');\n }\n }\n render() {\n const { iconName, ariaLabel, el, inheritedAttributes } = this;\n const mode = this.mode || 'md';\n const flipRtl = this.flipRtl ||\n (iconName &&\n (iconName.indexOf('arrow') > -1 || iconName.indexOf('chevron') > -1) &&\n this.flipRtl !== false);\n /**\n * Only set the aria-label if a) we have generated\n * one for the icon and if aria-hidden is not set to \"true\".\n * If developer wants to set their own aria-label, then\n * inheritedAttributes down below will override whatever\n * default label we have set.\n */\n return (h(Host, Object.assign({ \"aria-label\": ariaLabel !== undefined && !this.hasAriaHidden() ? ariaLabel : null, role: \"img\", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })) : (h(\"div\", { class: \"icon-inner\" }))));\n }\n static get assetsDirs() { return [\"svg\"]; }\n get el() { return this; }\n static get watchers() { return {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"]\n }; }\n static get style() { return iconCss; }\n}, [1, \"ion-icon\", {\n \"mode\": [1025],\n \"color\": [1],\n \"ios\": [1],\n \"md\": [1],\n \"flipRtl\": [4, \"flip-rtl\"],\n \"name\": [513],\n \"src\": [1],\n \"icon\": [8],\n \"size\": [1],\n \"lazy\": [4],\n \"sanitize\": [4],\n \"svgContent\": [32],\n \"isVisible\": [32],\n \"ariaLabel\": [32]\n }]);\nconst getIonMode = () => (Build.isBrowser && typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';\nconst createColorClasses = (color) => {\n return color\n ? {\n 'ion-color': true,\n [`ion-color-${color}`]: true,\n }\n : null;\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Icon);\n }\n break;\n } });\n}\n\nexport { Icon as I, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/* Ionicons v6.0.4, ES Modules */\nconst arrowBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>\";\nconst arrowDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>\";\nconst caretBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back</title><path d='M368 64L144 256l224 192V64z'/></svg>\";\nconst caretDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down</title><path d='M64 144l192 224 192-224H64z'/></svg>\";\nconst caretUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up</title><path d='M448 368L256 144 64 368h384z'/></svg>\";\nconst checkmarkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark</title><path stroke-linecap='round' stroke-linejoin='round' d='M416 128L192 384l-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst chevronBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>\";\nconst chevronDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>\";\nconst chevronForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>\";\nconst chevronForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>\";\nconst close = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z'/></svg>\";\nconst closeCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 11-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 01-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0122.62-22.62L256 233.37l52.69-52.68a16 16 0 0122.62 22.62L278.63 256z'/></svg>\";\nconst closeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M400 145.49L366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49z'/></svg>\";\nconst ellipseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipse</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst ellipsisHorizontal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal</title><circle cx='256' cy='256' r='48'/><circle cx='416' cy='256' r='48'/><circle cx='96' cy='256' r='48'/></svg>\";\nconst menuOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path stroke-linecap='round' stroke-miterlimit='10' d='M80 160h352M80 256h352M80 352h352' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst menuSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path d='M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z'/></svg>\";\nconst removeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst reorderThreeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Three</title><path stroke-linecap='round' stroke-linejoin='round' d='M96 256h320M96 176h320M96 336h320' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst reorderTwoSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Two</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='44' d='M118 304h276M118 208h276' class='ionicon-fill-none'/></svg>\";\nconst searchOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M338.29 338.29L448 448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\";\nconst searchSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z'/></svg>\";\n\nexport { chevronBack as a, arrowBackSharp as b, chevronDown as c, chevronForwardOutline as d, ellipsisHorizontal as e, chevronForward as f, caretUpSharp as g, caretDownSharp as h, close as i, menuSharp as j, caretBackSharp as k, arrowDown as l, menuOutline as m, reorderTwoSharp as n, closeCircle as o, closeSharp as p, searchSharp as q, reorderThreeOutline as r, searchOutline as s, checkmarkOutline as t, removeOutline as u, ellipseOutline as v };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { c as chevronDown } from './index7.js';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { r as raf, t as transitionEndAsync, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst accordionIosCss = \":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}\";\n\nconst accordionMdCss = \":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}\";\n\nconst Accordion = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.updateListener = () => this.updateState(false);\n this.state = 1 /* AccordionState.Collapsed */;\n this.isNext = false;\n this.isPrevious = false;\n /**\n * The value of the accordion. Defaults to an autogenerated\n * value.\n */\n this.value = `ion-accordion-${accordionIds++}`;\n /**\n * If `true`, the accordion cannot be interacted with.\n */\n this.disabled = false;\n /**\n * If `true`, the accordion cannot be interacted with,\n * but does not alter the opacity.\n */\n this.readonly = false;\n /**\n * The toggle icon to use. This icon will be\n * rotated when the accordion is expanded\n * or collapsed.\n */\n this.toggleIcon = chevronDown;\n /**\n * The slot inside of `ion-item` to\n * place the toggle icon. Defaults to `'end'`.\n */\n this.toggleIconSlot = 'end';\n this.setItemDefaults = () => {\n const ionItem = this.getSlottedHeaderIonItem();\n if (!ionItem) {\n return;\n }\n /**\n * For a11y purposes, we make\n * the ion-item a button so users\n * can tab to it and use keyboard\n * navigation to get around.\n */\n ionItem.button = true;\n ionItem.detail = false;\n /**\n * By default, the lines in an\n * item should be full here, but\n * only do that if a user has\n * not explicitly overridden them\n */\n if (ionItem.lines === undefined) {\n ionItem.lines = 'full';\n }\n };\n this.getSlottedHeaderIonItem = () => {\n const { headerEl } = this;\n if (!headerEl) {\n return;\n }\n /**\n * Get the first ion-item\n * slotted in the header slot\n */\n const slot = headerEl.querySelector('slot');\n if (!slot) {\n return;\n }\n // This is not defined in unit tests\n if (slot.assignedElements === undefined)\n return;\n return slot.assignedElements().find((el) => el.tagName === 'ION-ITEM');\n };\n this.setAria = (expanded = false) => {\n const ionItem = this.getSlottedHeaderIonItem();\n if (!ionItem) {\n return;\n }\n /**\n * Get the native <button> element inside of\n * ion-item because that is what will be focused\n */\n const root = getElementRoot(ionItem);\n const button = root.querySelector('button');\n if (!button) {\n return;\n }\n button.setAttribute('aria-expanded', `${expanded}`);\n };\n this.slotToggleIcon = () => {\n const ionItem = this.getSlottedHeaderIonItem();\n if (!ionItem) {\n return;\n }\n const { toggleIconSlot, toggleIcon } = this;\n /**\n * Check if there already is a toggle icon.\n * If so, do not add another one.\n */\n const existingToggleIcon = ionItem.querySelector('.ion-accordion-toggle-icon');\n if (existingToggleIcon) {\n return;\n }\n const iconEl = document.createElement('ion-icon');\n iconEl.slot = toggleIconSlot;\n iconEl.lazy = false;\n iconEl.classList.add('ion-accordion-toggle-icon');\n iconEl.icon = toggleIcon;\n iconEl.setAttribute('aria-hidden', 'true');\n ionItem.appendChild(iconEl);\n };\n this.expandAccordion = (initialUpdate = false) => {\n const { contentEl, contentElWrapper } = this;\n if (initialUpdate || contentEl === undefined || contentElWrapper === undefined) {\n this.state = 4 /* AccordionState.Expanded */;\n return;\n }\n if (this.state === 4 /* AccordionState.Expanded */) {\n return;\n }\n if (this.currentRaf !== undefined) {\n cancelAnimationFrame(this.currentRaf);\n }\n if (this.shouldAnimate()) {\n raf(() => {\n this.state = 8 /* AccordionState.Expanding */;\n this.currentRaf = raf(async () => {\n const contentHeight = contentElWrapper.offsetHeight;\n const waitForTransition = transitionEndAsync(contentEl, 2000);\n contentEl.style.setProperty('max-height', `${contentHeight}px`);\n await waitForTransition;\n this.state = 4 /* AccordionState.Expanded */;\n contentEl.style.removeProperty('max-height');\n });\n });\n }\n else {\n this.state = 4 /* AccordionState.Expanded */;\n }\n };\n this.collapseAccordion = (initialUpdate = false) => {\n const { contentEl } = this;\n if (initialUpdate || contentEl === undefined) {\n this.state = 1 /* AccordionState.Collapsed */;\n return;\n }\n if (this.state === 1 /* AccordionState.Collapsed */) {\n return;\n }\n if (this.currentRaf !== undefined) {\n cancelAnimationFrame(this.currentRaf);\n }\n if (this.shouldAnimate()) {\n this.currentRaf = raf(async () => {\n const contentHeight = contentEl.offsetHeight;\n contentEl.style.setProperty('max-height', `${contentHeight}px`);\n raf(async () => {\n const waitForTransition = transitionEndAsync(contentEl, 2000);\n this.state = 2 /* AccordionState.Collapsing */;\n await waitForTransition;\n this.state = 1 /* AccordionState.Collapsed */;\n contentEl.style.removeProperty('max-height');\n });\n });\n }\n else {\n this.state = 1 /* AccordionState.Collapsed */;\n }\n };\n /**\n * Helper function to determine if\n * something should animate.\n * If prefers-reduced-motion is set\n * then we should not animate, regardless\n * of what is set in the config.\n */\n this.shouldAnimate = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n const prefersReducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;\n if (prefersReducedMotion) {\n return false;\n }\n const animated = config.get('animated', true);\n if (!animated) {\n return false;\n }\n if (this.accordionGroupEl && !this.accordionGroupEl.animated) {\n return false;\n }\n return true;\n };\n this.updateState = async (initialUpdate = false) => {\n const accordionGroup = this.accordionGroupEl;\n const accordionValue = this.value;\n if (!accordionGroup) {\n return;\n }\n const value = accordionGroup.value;\n const shouldExpand = Array.isArray(value) ? value.includes(accordionValue) : value === accordionValue;\n if (shouldExpand) {\n this.expandAccordion(initialUpdate);\n this.isNext = this.isPrevious = false;\n }\n else {\n this.collapseAccordion(initialUpdate);\n /**\n * When using popout or inset,\n * the collapsed accordion items\n * may need additional border radius\n * applied. Check to see if the\n * next or previous accordion is selected.\n */\n const nextAccordion = this.getNextSibling();\n const nextAccordionValue = nextAccordion === null || nextAccordion === void 0 ? void 0 : nextAccordion.value;\n if (nextAccordionValue !== undefined) {\n this.isPrevious = Array.isArray(value) ? value.includes(nextAccordionValue) : value === nextAccordionValue;\n }\n const previousAccordion = this.getPreviousSibling();\n const previousAccordionValue = previousAccordion === null || previousAccordion === void 0 ? void 0 : previousAccordion.value;\n if (previousAccordionValue !== undefined) {\n this.isNext = Array.isArray(value) ? value.includes(previousAccordionValue) : value === previousAccordionValue;\n }\n }\n };\n this.getNextSibling = () => {\n if (!this.el) {\n return;\n }\n const nextSibling = this.el.nextElementSibling;\n if ((nextSibling === null || nextSibling === void 0 ? void 0 : nextSibling.tagName) !== 'ION-ACCORDION') {\n return;\n }\n return nextSibling;\n };\n this.getPreviousSibling = () => {\n if (!this.el) {\n return;\n }\n const previousSibling = this.el.previousElementSibling;\n if ((previousSibling === null || previousSibling === void 0 ? void 0 : previousSibling.tagName) !== 'ION-ACCORDION') {\n return;\n }\n return previousSibling;\n };\n }\n connectedCallback() {\n var _a;\n const accordionGroupEl = (this.accordionGroupEl = (_a = this.el) === null || _a === void 0 ? void 0 : _a.closest('ion-accordion-group'));\n if (accordionGroupEl) {\n this.updateState(true);\n addEventListener(accordionGroupEl, 'ionChange', this.updateListener);\n }\n }\n disconnectedCallback() {\n const accordionGroupEl = this.accordionGroupEl;\n if (accordionGroupEl) {\n removeEventListener(accordionGroupEl, 'ionChange', this.updateListener);\n }\n }\n componentDidLoad() {\n this.setItemDefaults();\n this.slotToggleIcon();\n /**\n * We need to wait a tick because we\n * just set ionItem.button = true and\n * the button has not have been rendered yet.\n */\n raf(() => {\n /**\n * Set aria label on button inside of ion-item\n * once the inner content has been rendered.\n */\n const expanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;\n this.setAria(expanded);\n });\n }\n toggleExpanded() {\n const { accordionGroupEl, value, state } = this;\n if (accordionGroupEl) {\n /**\n * Because the accordion group may or may\n * not allow multiple accordions open, we\n * need to request the toggling of this\n * accordion and the accordion group will\n * make the decision on whether or not\n * to allow it.\n */\n const expand = state === 1 /* AccordionState.Collapsed */ || state === 2 /* AccordionState.Collapsing */;\n accordionGroupEl.requestAccordionToggle(value, expand);\n }\n }\n render() {\n const { disabled, readonly } = this;\n const mode = getIonMode(this);\n const expanded = this.state === 4 /* AccordionState.Expanded */ || this.state === 8 /* AccordionState.Expanding */;\n const headerPart = expanded ? 'header expanded' : 'header';\n const contentPart = expanded ? 'content expanded' : 'content';\n this.setAria(expanded);\n return (h(Host, { class: {\n [mode]: true,\n 'accordion-expanding': this.state === 8 /* AccordionState.Expanding */,\n 'accordion-expanded': this.state === 4 /* AccordionState.Expanded */,\n 'accordion-collapsing': this.state === 2 /* AccordionState.Collapsing */,\n 'accordion-collapsed': this.state === 1 /* AccordionState.Collapsed */,\n 'accordion-next': this.isNext,\n 'accordion-previous': this.isPrevious,\n 'accordion-disabled': disabled,\n 'accordion-readonly': readonly,\n 'accordion-animated': config.getBoolean('animated', true),\n } }, h(\"div\", { onClick: () => this.toggleExpanded(), id: \"header\", part: headerPart, \"aria-controls\": \"content\", ref: (headerEl) => (this.headerEl = headerEl) }, h(\"slot\", { name: \"header\" })), h(\"div\", { id: \"content\", part: contentPart, role: \"region\", \"aria-labelledby\": \"header\", ref: (contentEl) => (this.contentEl = contentEl) }, h(\"div\", { id: \"content-wrapper\", ref: (contentElWrapper) => (this.contentElWrapper = contentElWrapper) }, h(\"slot\", { name: \"content\" })))));\n }\n static get delegatesFocus() { return true; }\n get el() { return this; }\n static get style() { return {\n ios: accordionIosCss,\n md: accordionMdCss\n }; }\n}, [49, \"ion-accordion\", {\n \"value\": [1],\n \"disabled\": [4],\n \"readonly\": [4],\n \"toggleIcon\": [1, \"toggle-icon\"],\n \"toggleIconSlot\": [1, \"toggle-icon-slot\"],\n \"state\": [32],\n \"isNext\": [32],\n \"isPrevious\": [32]\n }]);\nlet accordionIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-accordion\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-accordion\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Accordion);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonAccordion = Accordion;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonAccordion, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst accordionGroupIosCss = \":host{display:block}:host(.accordion-group-expand-inset){margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.accordion-group-expand-inset){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}\";\n\nconst accordionGroupMdCss = \":host{display:block}:host(.accordion-group-expand-inset){margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.accordion-group-expand-inset){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}:host(.accordion-group-expand-inset) ::slotted(ion-accordion){-webkit-box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){margin-left:0;margin-right:0;margin-top:16px;margin-bottom:16px;border-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous){border-bottom-right-radius:6px;border-bottom-left-radius:6px}:host-context([dir=rtl]):host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-previous),:host-context([dir=rtl]).accordion-group-expand-inset ::slotted(ion-accordion.accordion-previous){border-bottom-right-radius:6px;border-bottom-left-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next){border-top-left-radius:6px;border-top-right-radius:6px}:host-context([dir=rtl]):host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-next),:host-context([dir=rtl]).accordion-group-expand-inset ::slotted(ion-accordion.accordion-next){border-top-left-radius:6px;border-top-right-radius:6px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion):first-of-type{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}\";\n\nconst AccordionGroup = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n /**\n * If `true`, all accordions inside of the\n * accordion group will animate when expanding\n * or collapsing.\n */\n this.animated = true;\n /**\n * If `true`, the accordion group cannot be interacted with.\n */\n this.disabled = false;\n /**\n * If `true`, the accordion group cannot be interacted with,\n * but does not alter the opacity.\n */\n this.readonly = false;\n /**\n * Describes the expansion behavior for each accordion.\n * Possible values are `\"compact\"` and `\"inset\"`.\n * Defaults to `\"compact\"`.\n */\n this.expand = 'compact';\n }\n valueChanged() {\n const { value, multiple } = this;\n /**\n * If accordion group does not\n * let multiple accordions be open\n * at once, but user passes an array\n * just grab the first value.\n */\n if (!multiple && Array.isArray(value)) {\n this.value = value[0];\n }\n else {\n this.ionChange.emit({ value: this.value });\n }\n }\n async disabledChanged() {\n const { disabled } = this;\n const accordions = await this.getAccordions();\n for (const accordion of accordions) {\n accordion.disabled = disabled;\n }\n }\n async readonlyChanged() {\n const { readonly } = this;\n const accordions = await this.getAccordions();\n for (const accordion of accordions) {\n accordion.readonly = readonly;\n }\n }\n async onKeydown(ev) {\n const activeElement = document.activeElement;\n if (!activeElement) {\n return;\n }\n /**\n * Make sure focus is in the header, not the body, of the accordion. This ensures\n * that if there are any interactable elements in the body, their keyboard\n * interaction doesn't get stolen by the accordion. Example: using up/down keys\n * in ion-textarea.\n */\n const activeAccordionHeader = activeElement.closest('ion-accordion [slot=\"header\"]');\n if (!activeAccordionHeader) {\n return;\n }\n const accordionEl = activeElement.tagName === 'ION-ACCORDION' ? activeElement : activeElement.closest('ion-accordion');\n if (!accordionEl) {\n return;\n }\n const closestGroup = accordionEl.closest('ion-accordion-group');\n if (closestGroup !== this.el) {\n return;\n }\n // If the active accordion is not in the current array of accordions, do not do anything\n const accordions = await this.getAccordions();\n const startingIndex = accordions.findIndex((a) => a === accordionEl);\n if (startingIndex === -1) {\n return;\n }\n let accordion;\n if (ev.key === 'ArrowDown') {\n accordion = this.findNextAccordion(accordions, startingIndex);\n }\n else if (ev.key === 'ArrowUp') {\n accordion = this.findPreviousAccordion(accordions, startingIndex);\n }\n else if (ev.key === 'Home') {\n accordion = accordions[0];\n }\n else if (ev.key === 'End') {\n accordion = accordions[accordions.length - 1];\n }\n if (accordion !== undefined && accordion !== activeElement) {\n accordion.focus();\n }\n }\n async componentDidLoad() {\n if (this.disabled) {\n this.disabledChanged();\n }\n if (this.readonly) {\n this.readonlyChanged();\n }\n }\n /**\n * @internal\n */\n async requestAccordionToggle(accordionValue, accordionExpand) {\n const { multiple, value, readonly, disabled } = this;\n if (readonly || disabled) {\n return;\n }\n if (accordionExpand) {\n /**\n * If group accepts multiple values\n * check to see if value is already in\n * in values array. If not, add it\n * to the array.\n */\n if (multiple) {\n const groupValue = value !== null && value !== void 0 ? value : [];\n const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];\n const valueExists = processedValue.find((v) => v === accordionValue);\n if (valueExists === undefined && accordionValue !== undefined) {\n this.value = [...processedValue, accordionValue];\n }\n }\n else {\n this.value = accordionValue;\n }\n }\n else {\n /**\n * If collapsing accordion, either filter the value\n * out of the values array or unset the value.\n */\n if (multiple) {\n const groupValue = value !== null && value !== void 0 ? value : [];\n const processedValue = Array.isArray(groupValue) ? groupValue : [groupValue];\n this.value = processedValue.filter((v) => v !== accordionValue);\n }\n else {\n this.value = undefined;\n }\n }\n }\n findNextAccordion(accordions, startingIndex) {\n const nextAccordion = accordions[startingIndex + 1];\n if (nextAccordion === undefined) {\n return accordions[0];\n }\n return nextAccordion;\n }\n findPreviousAccordion(accordions, startingIndex) {\n const prevAccordion = accordions[startingIndex - 1];\n if (prevAccordion === undefined) {\n return accordions[accordions.length - 1];\n }\n return prevAccordion;\n }\n /**\n * @internal\n */\n async getAccordions() {\n return Array.from(this.el.querySelectorAll(':scope > ion-accordion'));\n }\n render() {\n const { disabled, readonly, expand } = this;\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'accordion-group-disabled': disabled,\n 'accordion-group-readonly': readonly,\n [`accordion-group-expand-${expand}`]: true,\n }, role: \"presentation\" }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"value\": [\"valueChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"readonly\": [\"readonlyChanged\"]\n }; }\n static get style() { return {\n ios: accordionGroupIosCss,\n md: accordionGroupMdCss\n }; }\n}, [33, \"ion-accordion-group\", {\n \"animated\": [4],\n \"multiple\": [4],\n \"value\": [1025],\n \"disabled\": [4],\n \"readonly\": [4],\n \"expand\": [1],\n \"requestAccordionToggle\": [64],\n \"getAccordions\": [64]\n }, [[0, \"keydown\", \"onKeydown\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-accordion-group\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-accordion-group\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, AccordionGroup);\n }\n break;\n } });\n}\n\nconst IonAccordionGroup = AccordionGroup;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonAccordionGroup, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst avatarIosCss = \":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}\";\n\nconst avatarMdCss = \":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:64px;height:64px}\";\n\nconst Avatar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n return (h(Host, { class: getIonMode(this) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: avatarIosCss,\n md: avatarMdCss\n }; }\n}, [33, \"ion-avatar\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-avatar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-avatar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Avatar);\n }\n break;\n } });\n}\n\nconst IonAvatar = Avatar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonAvatar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { G as GESTURE_CONTROLLER } from './gesture-controller.js';\n\nconst backdropIosCss = \":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}\";\n\nconst backdropMdCss = \":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}\";\n\nconst Backdrop = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionBackdropTap = createEvent(this, \"ionBackdropTap\", 7);\n this.blocker = GESTURE_CONTROLLER.createBlocker({\n disableScroll: true,\n });\n /**\n * If `true`, the backdrop will be visible.\n */\n this.visible = true;\n /**\n * If `true`, the backdrop will can be clicked and will emit the `ionBackdropTap` event.\n */\n this.tappable = true;\n /**\n * If `true`, the backdrop will stop propagation on tap.\n */\n this.stopPropagation = true;\n }\n connectedCallback() {\n if (this.stopPropagation) {\n this.blocker.block();\n }\n }\n disconnectedCallback() {\n this.blocker.unblock();\n }\n onMouseDown(ev) {\n this.emitTap(ev);\n }\n emitTap(ev) {\n if (this.stopPropagation) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.tappable) {\n this.ionBackdropTap.emit();\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { tabindex: \"-1\", \"aria-hidden\": \"true\", class: {\n [mode]: true,\n 'backdrop-hide': !this.visible,\n 'backdrop-no-tappable': !this.tappable,\n } }));\n }\n static get style() { return {\n ios: backdropIosCss,\n md: backdropMdCss\n }; }\n}, [33, \"ion-backdrop\", {\n \"visible\": [4],\n \"tappable\": [4],\n \"stopPropagation\": [4, \"stop-propagation\"]\n }, [[2, \"click\", \"onMouseDown\"]]]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-backdrop\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Backdrop);\n }\n break;\n } });\n}\n\nexport { Backdrop as B, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { B as Backdrop, d as defineCustomElement$1 } from './backdrop.js';\n\nconst IonBackdrop = Backdrop;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonBackdrop, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return typeof color === 'string' && color.length > 0\n ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter((c) => c != null)\n .map((c) => c.trim())\n .filter((c) => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach((c) => (map[c] = true));\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst badgeIosCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:13px;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{border-radius:10px}\";\n\nconst badgeMdCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:13px;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{--padding-top:3px;--padding-end:4px;--padding-bottom:4px;--padding-start:4px;border-radius:4px}\";\n\nconst Badge = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: badgeIosCss,\n md: badgeMdCss\n }; }\n}, [33, \"ion-badge\", {\n \"color\": [513]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-badge\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-badge\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Badge);\n }\n break;\n } });\n}\n\nconst IonBadge = Badge;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonBadge, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst breadcrumbsIosCss = \":host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator ion-icon{color:var(--ion-color-contrast)}:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator{background:rgba(var(--ion-color-contrast-rgb), 0.11)}:host(.in-toolbar){padding-left:20px;padding-right:20px;padding-top:0;padding-bottom:0;-ms-flex-pack:center;justify-content:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-toolbar){padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}\";\n\nconst breadcrumbsMdCss = \":host{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator ion-icon{color:var(--ion-color-contrast)}:host(.in-toolbar-color) .breadcrumbs-collapsed-indicator{background:rgba(var(--ion-color-contrast-rgb), 0.11)}:host(.in-toolbar){padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-toolbar){padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}\";\n\nconst Breadcrumbs = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionCollapsedClick = createEvent(this, \"ionCollapsedClick\", 7);\n /**\n * The number of breadcrumbs to show before the collapsed indicator.\n * If `itemsBeforeCollapse` + `itemsAfterCollapse` is greater than `maxItems`,\n * the breadcrumbs will not be collapsed.\n */\n this.itemsBeforeCollapse = 1;\n /**\n * The number of breadcrumbs to show after the collapsed indicator.\n * If `itemsBeforeCollapse` + `itemsAfterCollapse` is greater than `maxItems`,\n * the breadcrumbs will not be collapsed.\n */\n this.itemsAfterCollapse = 1;\n this.breadcrumbsInit = () => {\n this.setBreadcrumbSeparator();\n this.setMaxItems();\n };\n this.resetActiveBreadcrumb = () => {\n const breadcrumbs = this.getBreadcrumbs();\n // Only reset the active breadcrumb if we were the ones to change it\n // otherwise use the one set on the component\n const activeBreadcrumb = breadcrumbs.find((breadcrumb) => breadcrumb.active);\n if (activeBreadcrumb && this.activeChanged) {\n activeBreadcrumb.active = false;\n }\n };\n this.setMaxItems = () => {\n const { itemsAfterCollapse, itemsBeforeCollapse, maxItems } = this;\n const breadcrumbs = this.getBreadcrumbs();\n for (const breadcrumb of breadcrumbs) {\n breadcrumb.showCollapsedIndicator = false;\n breadcrumb.collapsed = false;\n }\n // If the number of breadcrumbs exceeds the maximum number of items\n // that should show and the items before / after collapse do not\n // exceed the maximum items then we need to collapse the breadcrumbs\n const shouldCollapse = maxItems !== undefined && breadcrumbs.length > maxItems && itemsBeforeCollapse + itemsAfterCollapse <= maxItems;\n if (shouldCollapse) {\n // Show the collapsed indicator in the first breadcrumb that collapses\n breadcrumbs.forEach((breadcrumb, index) => {\n if (index === itemsBeforeCollapse) {\n breadcrumb.showCollapsedIndicator = true;\n }\n // Collapse all breadcrumbs that have an index greater than or equal to\n // the number before collapse and an index less than the total number\n // of breadcrumbs minus the items that should show after the collapse\n if (index >= itemsBeforeCollapse && index < breadcrumbs.length - itemsAfterCollapse) {\n breadcrumb.collapsed = true;\n }\n });\n }\n };\n this.setBreadcrumbSeparator = () => {\n const { itemsAfterCollapse, itemsBeforeCollapse, maxItems } = this;\n const breadcrumbs = this.getBreadcrumbs();\n // Check if an active breadcrumb exists already\n const active = breadcrumbs.find((breadcrumb) => breadcrumb.active);\n // Set the separator on all but the last breadcrumb\n for (const breadcrumb of breadcrumbs) {\n // The only time the last breadcrumb changes is when\n // itemsAfterCollapse is set to 0, in this case the\n // last breadcrumb will be the collapsed indicator\n const last = maxItems !== undefined && itemsAfterCollapse === 0\n ? breadcrumb === breadcrumbs[itemsBeforeCollapse]\n : breadcrumb === breadcrumbs[breadcrumbs.length - 1];\n breadcrumb.last = last;\n // If the breadcrumb has defined whether or not to show the\n // separator then use that value, otherwise check if it's the\n // last breadcrumb\n const separator = breadcrumb.separator !== undefined ? breadcrumb.separator : last ? undefined : true;\n breadcrumb.separator = separator;\n // If there is not an active breadcrumb already\n // set the last one to active\n if (!active && last) {\n breadcrumb.active = true;\n this.activeChanged = true;\n }\n }\n };\n this.getBreadcrumbs = () => {\n return Array.from(this.el.querySelectorAll('ion-breadcrumb'));\n };\n }\n onCollapsedClick(ev) {\n const breadcrumbs = this.getBreadcrumbs();\n const collapsedBreadcrumbs = breadcrumbs.filter((breadcrumb) => breadcrumb.collapsed);\n this.ionCollapsedClick.emit(Object.assign(Object.assign({}, ev.detail), { collapsedBreadcrumbs }));\n }\n maxItemsChanged() {\n this.resetActiveBreadcrumb();\n this.breadcrumbsInit();\n }\n componentWillLoad() {\n this.breadcrumbsInit();\n }\n render() {\n const { color, collapsed } = this;\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(color, {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'breadcrumbs-collapsed': collapsed,\n }) }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"maxItems\": [\"maxItemsChanged\"],\n \"itemsBeforeCollapse\": [\"maxItemsChanged\"],\n \"itemsAfterCollapse\": [\"maxItemsChanged\"]\n }; }\n static get style() { return {\n ios: breadcrumbsIosCss,\n md: breadcrumbsMdCss\n }; }\n}, [33, \"ion-breadcrumbs\", {\n \"color\": [1],\n \"maxItems\": [2, \"max-items\"],\n \"itemsBeforeCollapse\": [2, \"items-before-collapse\"],\n \"itemsAfterCollapse\": [2, \"items-after-collapse\"],\n \"collapsed\": [32],\n \"activeChanged\": [32]\n }, [[0, \"collapsedClick\", \"onCollapsedClick\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-breadcrumbs\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-breadcrumbs\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Breadcrumbs);\n }\n break;\n } });\n}\n\nconst IonBreadcrumbs = Breadcrumbs;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonBreadcrumbs, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst buttonsIosCss = \".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-start:5px;--padding-end:5px;margin-left:2px;margin-right:2px;height:32px;font-size:17px;font-weight:400}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:28px;line-height:0.67}\";\n\nconst buttonsMdCss = \".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;--padding-start:8px;--padding-end:8px;--box-shadow:none;margin-left:2px;margin-right:2px;height:32px;font-size:14px;font-weight:500}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:48px;height:48px}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}\";\n\nconst Buttons = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n /**\n * If true, buttons will disappear when its\n * parent toolbar has fully collapsed if the toolbar\n * is not the first toolbar. If the toolbar is the\n * first toolbar, the buttons will be hidden and will\n * only be shown once all toolbars have fully collapsed.\n *\n * Only applies in `ios` mode with `collapse` set to\n * `true` on `ion-header`.\n *\n * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)\n */\n this.collapse = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n ['buttons-collapse']: this.collapse,\n } }));\n }\n static get style() { return {\n ios: buttonsIosCss,\n md: buttonsMdCss\n }; }\n}, [34, \"ion-buttons\", {\n \"collapse\": [4]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-buttons\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-buttons\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Buttons);\n }\n break;\n } });\n}\n\nexport { Buttons as B, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { B as Buttons, d as defineCustomElement$1 } from './buttons.js';\n\nconst IonButtons = Buttons;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonButtons, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst cardContentIosCss = \"ion-card-content{display:block;position:relative}.card-content-ios{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;font-size:16px;line-height:1.4}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.card-content-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}.card-content-ios h1{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}.card-content-ios h2{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:16px;font-weight:normal}.card-content-ios h3,.card-content-ios h4,.card-content-ios h5,.card-content-ios h6{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:14px;font-weight:normal}.card-content-ios p{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:14px}ion-card-header+.card-content-ios{padding-top:0}\";\n\nconst cardContentMdCss = \"ion-card-content{display:block;position:relative}.card-content-md{padding-left:16px;padding-right:16px;padding-top:13px;padding-bottom:13px;font-size:14px;line-height:1.5}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.card-content-md{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.card-content-md h1{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}.card-content-md h2{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:16px;font-weight:normal}.card-content-md h3,.card-content-md h4,.card-content-md h5,.card-content-md h6{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:14px;font-weight:normal}.card-content-md p{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:14px;font-weight:normal;line-height:1.5}ion-card-header+.card-content-md{padding-top:0}\";\n\nconst CardContent = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`card-content-${mode}`]: true,\n } }));\n }\n static get style() { return {\n ios: cardContentIosCss,\n md: cardContentMdCss\n }; }\n}, [32, \"ion-card-content\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-card-content\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-card-content\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, CardContent);\n }\n break;\n } });\n}\n\nconst IonCardContent = CardContent;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCardContent, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst cardHeaderIosCss = \":host{--background:transparent;--color:inherit;display:block;position:relative;background:var(--background);color:var(--color)}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.card-header-translucent){background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px)}}\";\n\nconst cardHeaderMdCss = \":host{--background:transparent;--color:inherit;display:block;position:relative;background:var(--background);color:var(--color)}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host{padding-left:16px;padding-right:16px;padding-top:16px;padding-bottom:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}::slotted(ion-card-title:not(:first-child)),::slotted(ion-card-subtitle:not(:first-child)){margin-top:8px}\";\n\nconst CardHeader = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the card header will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n 'card-header-translucent': this.translucent,\n 'ion-inherit-color': true,\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: cardHeaderIosCss,\n md: cardHeaderMdCss\n }; }\n}, [33, \"ion-card-header\", {\n \"color\": [513],\n \"translucent\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-card-header\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-card-header\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, CardHeader);\n }\n break;\n } });\n}\n\nconst IonCardHeader = CardHeader;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCardHeader, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst cardSubtitleIosCss = \":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-600, #666666);margin-left:0;margin-right:0;margin-top:0;margin-bottom:4px;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:12px;font-weight:700;letter-spacing:0.4px;text-transform:uppercase}\";\n\nconst cardSubtitleMdCss = \":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-550, #737373);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:14px;font-weight:500}\";\n\nconst CardSubtitle = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { role: \"heading\", \"aria-level\": \"3\", class: createColorClasses(this.color, {\n 'ion-inherit-color': true,\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: cardSubtitleIosCss,\n md: cardSubtitleMdCss\n }; }\n}, [33, \"ion-card-subtitle\", {\n \"color\": [513]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-card-subtitle\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-card-subtitle\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, CardSubtitle);\n }\n break;\n } });\n}\n\nconst IonCardSubtitle = CardSubtitle;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCardSubtitle, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst cardTitleIosCss = \":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-text-color, #000);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:28px;font-weight:700;line-height:1.2}\";\n\nconst cardTitleMdCss = \":host{display:block;position:relative;color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-850, #262626);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;line-height:1.2}\";\n\nconst CardTitle = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { role: \"heading\", \"aria-level\": \"2\", class: createColorClasses(this.color, {\n 'ion-inherit-color': true,\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: cardTitleIosCss,\n md: cardTitleMdCss\n }; }\n}, [33, \"ion-card-title\", {\n \"color\": [513]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-card-title\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-card-title\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, CardTitle);\n }\n break;\n } });\n}\n\nconst IonCardTitle = CardTitle;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCardTitle, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { n as getAriaLabel, e as renderHiddenInput } from './helpers.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst checkboxIosCss = \":host{--background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.ion-color){--background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.checkbox-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:1px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--background:var(--ion-item-background, var(--ion-background-color, #fff));--size:26px;width:var(--size);height:var(--size)}:host(.checkbox-disabled){opacity:0.3}:host(.in-item){margin-left:0;margin-right:8px;margin-top:10px;margin-bottom:9px;display:block;position:static}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.in-item[slot=start]){margin-left:2px;margin-right:20px;margin-top:8px;margin-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:20px;margin-inline-end:20px}}\";\n\nconst checkboxMdCss = \":host{--background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.ion-color){--background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.checkbox-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.51);--checkmark-width:3;--background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px;width:var(--size);height:var(--size)}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled){opacity:0.3}:host(.in-item){margin-left:0;margin-right:0;margin-top:18px;margin-bottom:18px;display:block;position:static}:host(.in-item[slot=start]){margin-left:4px;margin-right:36px;margin-top:18px;margin-bottom:18px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:36px;margin-inline-end:36px}}\";\n\nconst Checkbox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inputId = `ion-cb-${checkboxIds++}`;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the checkbox is selected.\n */\n this.checked = false;\n /**\n * If `true`, the checkbox will visually appear as indeterminate.\n */\n this.indeterminate = false;\n /**\n * If `true`, the user cannot interact with the checkbox.\n */\n this.disabled = false;\n /**\n * The value of the checkbox does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a checkbox is analogous to the value of an `<input type=\"checkbox\">`,\n * it's only used when the checkbox participates in a native `<form>`.\n */\n this.value = 'on';\n this.onClick = (ev) => {\n ev.preventDefault();\n this.setFocus();\n this.checked = !this.checked;\n this.indeterminate = false;\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n }\n componentWillLoad() {\n this.emitStyle();\n }\n checkedChanged(isChecked) {\n this.ionChange.emit({\n checked: isChecked,\n value: this.value,\n });\n this.emitStyle();\n }\n disabledChanged() {\n this.emitStyle();\n }\n emitStyle() {\n this.ionStyle.emit({\n 'checkbox-checked': this.checked,\n 'interactive-disabled': this.disabled,\n });\n }\n setFocus() {\n if (this.focusEl) {\n this.focusEl.focus();\n }\n }\n render() {\n const { color, checked, disabled, el, indeterminate, inputId, name, value } = this;\n const mode = getIonMode(this);\n const { label, labelId, labelText } = getAriaLabel(el, inputId);\n renderHiddenInput(true, el, name, checked ? value : '', disabled);\n let path = indeterminate ? (h(\"path\", { d: \"M6 12L18 12\", part: \"mark\" })) : (h(\"path\", { d: \"M5.9,12.5l3.8,3.8l8.8-8.8\", part: \"mark\" }));\n if (mode === 'md') {\n path = indeterminate ? (h(\"path\", { d: \"M2 12H22\", part: \"mark\" })) : (h(\"path\", { d: \"M1.73,12.91 8.1,19.28 22.79,4.59\", part: \"mark\" }));\n }\n return (h(Host, { onClick: this.onClick, \"aria-labelledby\": label ? labelId : null, \"aria-checked\": `${checked}`, \"aria-hidden\": disabled ? 'true' : null, role: \"checkbox\", class: createColorClasses(color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'checkbox-checked': checked,\n 'checkbox-disabled': disabled,\n 'checkbox-indeterminate': indeterminate,\n interactive: true,\n }) }, h(\"svg\", { class: \"checkbox-icon\", viewBox: \"0 0 24 24\", part: \"container\" }, path), h(\"label\", { htmlFor: inputId }, labelText), h(\"input\", { type: \"checkbox\", \"aria-checked\": `${checked}`, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"checked\": [\"checkedChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return {\n ios: checkboxIosCss,\n md: checkboxMdCss\n }; }\n}, [33, \"ion-checkbox\", {\n \"color\": [513],\n \"name\": [1],\n \"checked\": [1028],\n \"indeterminate\": [1028],\n \"disabled\": [4],\n \"value\": [8]\n }]);\nlet checkboxIds = 0;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-checkbox\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-checkbox\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Checkbox);\n }\n break;\n } });\n}\n\nexport { Checkbox as C, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { C as Checkbox, d as defineCustomElement$1 } from './checkbox.js';\n\nconst IonCheckbox = Checkbox;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCheckbox, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, readTask, writeTask, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst rippleEffectCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:strict;pointer-events:none}:host(.unbounded){contain:layout size style}.ripple-effect{border-radius:50%;position:absolute;background-color:currentColor;color:inherit;contain:strict;opacity:0;-webkit-animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;will-change:transform, opacity;pointer-events:none}.fade-out{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1));-webkit-animation:150ms fadeOutAnimation forwards;animation:150ms fadeOutAnimation forwards}@-webkit-keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@keyframes rippleAnimation{from{-webkit-animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:translate(var(--translate-end)) scale(var(--final-scale, 1));transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@-webkit-keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@keyframes fadeInAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:0.16}}@-webkit-keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}@keyframes fadeOutAnimation{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0.16}to{opacity:0}}\";\n\nconst RippleEffect = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * Sets the type of ripple-effect:\n *\n * - `bounded`: the ripple effect expands from the user's click position\n * - `unbounded`: the ripple effect expands from the center of the button and overflows the container.\n *\n * NOTE: Surfaces for bounded ripples should have the overflow property set to hidden,\n * while surfaces for unbounded ripples should have it set to visible.\n */\n this.type = 'bounded';\n }\n /**\n * Adds the ripple effect to the parent element.\n *\n * @param x The horizontal coordinate of where the ripple should start.\n * @param y The vertical coordinate of where the ripple should start.\n */\n async addRipple(x, y) {\n return new Promise((resolve) => {\n readTask(() => {\n const rect = this.el.getBoundingClientRect();\n const width = rect.width;\n const height = rect.height;\n const hypotenuse = Math.sqrt(width * width + height * height);\n const maxDim = Math.max(height, width);\n const maxRadius = this.unbounded ? maxDim : hypotenuse + PADDING;\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const finalScale = maxRadius / initialSize;\n let posX = x - rect.left;\n let posY = y - rect.top;\n if (this.unbounded) {\n posX = width * 0.5;\n posY = height * 0.5;\n }\n const styleX = posX - initialSize * 0.5;\n const styleY = posY - initialSize * 0.5;\n const moveX = width * 0.5 - posX;\n const moveY = height * 0.5 - posY;\n writeTask(() => {\n const div = document.createElement('div');\n div.classList.add('ripple-effect');\n const style = div.style;\n style.top = styleY + 'px';\n style.left = styleX + 'px';\n style.width = style.height = initialSize + 'px';\n style.setProperty('--final-scale', `${finalScale}`);\n style.setProperty('--translate-end', `${moveX}px, ${moveY}px`);\n const container = this.el.shadowRoot || this.el;\n container.appendChild(div);\n setTimeout(() => {\n resolve(() => {\n removeRipple(div);\n });\n }, 225 + 100);\n });\n });\n });\n }\n get unbounded() {\n return this.type === 'unbounded';\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { role: \"presentation\", class: {\n [mode]: true,\n unbounded: this.unbounded,\n } }));\n }\n get el() { return this; }\n static get style() { return rippleEffectCss; }\n}, [1, \"ion-ripple-effect\", {\n \"type\": [1],\n \"addRipple\": [64]\n }]);\nconst removeRipple = (ripple) => {\n ripple.classList.add('fade-out');\n setTimeout(() => {\n ripple.remove();\n }, 200);\n};\nconst PADDING = 10;\nconst INITIAL_ORIGIN_SCALE = 0.5;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RippleEffect);\n }\n break;\n } });\n}\n\nexport { RippleEffect as R, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst chipCss = \":host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.12);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.87);border-radius:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:4px;margin-right:4px;margin-top:4px;margin-bottom:4px;padding-left:12px;padding-right:12px;padding-top:7px;padding-bottom:7px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;height:32px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:14px;line-height:1;cursor:pointer;overflow:hidden;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:4px;margin-inline-end:4px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host(.chip-disabled){cursor:default;opacity:0.4;pointer-events:none}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.08);color:var(--ion-color-shade)}:host(.ion-color:focus){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.ion-color.ion-activated){background:rgba(var(--ion-color-base-rgb), 0.16)}:host(.chip-outline){border-width:1px;border-style:solid}:host(.chip-outline){border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.32);background:transparent}:host(.chip-outline.ion-color){border-color:rgba(var(--ion-color-base-rgb), 0.32)}:host(.chip-outline:not(.ion-color):focus){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}:host(.chip-outline.ion-activated:not(.ion-color)){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)}::slotted(ion-icon){font-size:20px}:host(:not(.ion-color)) ::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}::slotted(ion-icon:first-child){margin-left:-4px;margin-right:8px;margin-top:-4px;margin-bottom:-4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon:first-child){margin-left:unset;margin-right:unset;-webkit-margin-start:-4px;margin-inline-start:-4px;-webkit-margin-end:8px;margin-inline-end:8px}}::slotted(ion-icon:last-child){margin-left:8px;margin-right:-4px;margin-top:-4px;margin-bottom:-4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon:last-child){margin-left:unset;margin-right:unset;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-4px;margin-inline-end:-4px}}::slotted(ion-avatar){width:24px;height:24px}::slotted(ion-avatar:first-child){margin-left:-8px;margin-right:8px;margin-top:-4px;margin-bottom:-4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar:first-child){margin-left:unset;margin-right:unset;-webkit-margin-start:-8px;margin-inline-start:-8px;-webkit-margin-end:8px;margin-inline-end:8px}}::slotted(ion-avatar:last-child){margin-left:8px;margin-right:-8px;margin-top:-4px;margin-bottom:-4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar:last-child){margin-left:unset;margin-right:unset;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-8px;margin-inline-end:-8px}}:host(:focus){outline:none}:host(:focus){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-activated){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@media (any-hover: hover){:host(:hover){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-color:hover){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.chip-outline:not(.ion-color):hover){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}}\";\n\nconst Chip = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * Display an outline style button.\n */\n this.outline = false;\n /**\n * If `true`, the user cannot interact with the chip.\n */\n this.disabled = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { \"aria-disabled\": this.disabled ? 'true' : null, class: createColorClasses(this.color, {\n [mode]: true,\n 'chip-outline': this.outline,\n 'chip-disabled': this.disabled,\n 'ion-activatable': true,\n }) }, h(\"slot\", null), mode === 'md' && h(\"ion-ripple-effect\", null)));\n }\n static get style() { return chipCss; }\n}, [1, \"ion-chip\", {\n \"color\": [513],\n \"outline\": [4],\n \"disabled\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-chip\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-chip\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Chip);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonChip = Chip;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonChip, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst SIZE_TO_MEDIA = {\n xs: '(min-width: 0px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n};\n// Check if the window matches the media query\n// at the breakpoint passed\n// e.g. matchBreakpoint('sm') => true if screen width exceeds 576px\nconst matchBreakpoint = (breakpoint) => {\n if (breakpoint === undefined || breakpoint === '') {\n return true;\n }\n if (window.matchMedia) {\n const mediaQuery = SIZE_TO_MEDIA[breakpoint];\n return window.matchMedia(mediaQuery).matches;\n }\n return false;\n};\n\nconst colCss = \":host{padding-left:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;width:100%;max-width:100%;min-height:1px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xs, var(--ion-grid-column-padding, 5px))}}@media (min-width: 576px){:host{padding-left:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-sm, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 768px){:host{padding-left:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-md, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 992px){:host{padding-left:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-lg, var(--ion-grid-column-padding, 5px))}}}@media (min-width: 1200px){:host{padding-left:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-right:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-top:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-bottom:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-start:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));-webkit-padding-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px));padding-inline-end:var(--ion-grid-column-padding-xl, var(--ion-grid-column-padding, 5px))}}}\";\n\nconst win = typeof window !== 'undefined' ? window : undefined;\n// eslint-disable-next-line @typescript-eslint/prefer-optional-chain\nconst SUPPORTS_VARS = win && !!(win.CSS && win.CSS.supports && win.CSS.supports('--a: 0'));\nconst BREAKPOINTS = ['', 'xs', 'sm', 'md', 'lg', 'xl'];\nconst Col = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n onResize() {\n forceUpdate(this);\n }\n // Loop through all of the breakpoints to see if the media query\n // matches and grab the column value from the relevant prop if so\n getColumns(property) {\n let matched;\n for (const breakpoint of BREAKPOINTS) {\n const matches = matchBreakpoint(breakpoint);\n // Grab the value of the property, if it exists and our\n // media query matches we return the value\n const columns = this[property + breakpoint.charAt(0).toUpperCase() + breakpoint.slice(1)];\n if (matches && columns !== undefined) {\n matched = columns;\n }\n }\n // Return the last matched columns since the breakpoints\n // increase in size and we want to return the largest match\n return matched;\n }\n calculateSize() {\n const columns = this.getColumns('size');\n // If size wasn't set for any breakpoint\n // or if the user set the size without a value\n // it means we need to stick with the default and return\n // e.g. <ion-col size-md>\n if (!columns || columns === '') {\n return;\n }\n // If the size is set to auto then don't calculate a size\n const colSize = columns === 'auto'\n ? 'auto'\n : // If CSS supports variables we should use the grid columns var\n SUPPORTS_VARS\n ? `calc(calc(${columns} / var(--ion-grid-columns, 12)) * 100%)`\n : // Convert the columns to a percentage by dividing by the total number\n // of columns (12) and then multiplying by 100\n (columns / 12) * 100 + '%';\n return {\n flex: `0 0 ${colSize}`,\n width: `${colSize}`,\n 'max-width': `${colSize}`,\n };\n }\n // Called by push, pull, and offset since they use the same calculations\n calculatePosition(property, modifier) {\n const columns = this.getColumns(property);\n if (!columns) {\n return;\n }\n // If the number of columns passed are greater than 0 and less than\n // 12 we can position the column, else default to auto\n const amount = SUPPORTS_VARS\n ? // If CSS supports variables we should use the grid columns var\n `calc(calc(${columns} / var(--ion-grid-columns, 12)) * 100%)`\n : // Convert the columns to a percentage by dividing by the total number\n // of columns (12) and then multiplying by 100\n columns > 0 && columns < 12\n ? (columns / 12) * 100 + '%'\n : 'auto';\n return {\n [modifier]: amount,\n };\n }\n calculateOffset(isRTL) {\n return this.calculatePosition('offset', isRTL ? 'margin-right' : 'margin-left');\n }\n calculatePull(isRTL) {\n return this.calculatePosition('pull', isRTL ? 'left' : 'right');\n }\n calculatePush(isRTL) {\n return this.calculatePosition('push', isRTL ? 'right' : 'left');\n }\n render() {\n const isRTL = document.dir === 'rtl';\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, h(\"slot\", null)));\n }\n static get style() { return colCss; }\n}, [1, \"ion-col\", {\n \"offset\": [1],\n \"offsetXs\": [1, \"offset-xs\"],\n \"offsetSm\": [1, \"offset-sm\"],\n \"offsetMd\": [1, \"offset-md\"],\n \"offsetLg\": [1, \"offset-lg\"],\n \"offsetXl\": [1, \"offset-xl\"],\n \"pull\": [1],\n \"pullXs\": [1, \"pull-xs\"],\n \"pullSm\": [1, \"pull-sm\"],\n \"pullMd\": [1, \"pull-md\"],\n \"pullLg\": [1, \"pull-lg\"],\n \"pullXl\": [1, \"pull-xl\"],\n \"push\": [1],\n \"pushXs\": [1, \"push-xs\"],\n \"pushSm\": [1, \"push-sm\"],\n \"pushMd\": [1, \"push-md\"],\n \"pushLg\": [1, \"push-lg\"],\n \"pushXl\": [1, \"push-xl\"],\n \"size\": [1],\n \"sizeXs\": [1, \"size-xs\"],\n \"sizeSm\": [1, \"size-sm\"],\n \"sizeMd\": [1, \"size-md\"],\n \"sizeLg\": [1, \"size-lg\"],\n \"sizeXl\": [1, \"size-xl\"]\n }, [[9, \"resize\", \"onResize\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-col\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-col\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Col);\n }\n break;\n } });\n}\n\nconst IonCol = Col;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCol, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, readTask, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, a as isPlatform } from './ionic-global.js';\nimport { c as componentOnReady } from './helpers.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst contentCss = \":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\\\"\\\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}\";\n\nconst Content = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionScrollStart = createEvent(this, \"ionScrollStart\", 7);\n this.ionScroll = createEvent(this, \"ionScroll\", 7);\n this.ionScrollEnd = createEvent(this, \"ionScrollEnd\", 7);\n this.isScrolling = false;\n this.lastScroll = 0;\n this.queued = false;\n this.cTop = -1;\n this.cBottom = -1;\n this.isMainContent = true;\n // Detail is used in a hot loop in the scroll event, by allocating it here\n // V8 will be able to inline any read/write to it since it's a monomorphic class.\n // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html\n this.detail = {\n scrollTop: 0,\n scrollLeft: 0,\n type: 'scroll',\n event: undefined,\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n data: undefined,\n isScrolling: true,\n };\n /**\n * If `true`, the content will scroll behind the headers\n * and footers. This effect can easily be seen by setting the toolbar\n * to transparent.\n */\n this.fullscreen = false;\n /**\n * If you want to enable the content scrolling in the X axis, set this property to `true`.\n */\n this.scrollX = false;\n /**\n * If you want to disable the content scrolling in the Y axis, set this property to `false`.\n */\n this.scrollY = true;\n /**\n * Because of performance reasons, ionScroll events are disabled by default, in order to enable them\n * and start listening from (ionScroll), set this property to `true`.\n */\n this.scrollEvents = false;\n }\n connectedCallback() {\n this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;\n }\n disconnectedCallback() {\n this.onScrollEnd();\n }\n onAppLoad() {\n this.resize();\n }\n shouldForceOverscroll() {\n const { forceOverscroll } = this;\n const mode = getIonMode(this);\n return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;\n }\n resize() {\n if (this.fullscreen) {\n readTask(() => this.readDimensions());\n }\n else if (this.cTop !== 0 || this.cBottom !== 0) {\n this.cTop = this.cBottom = 0;\n forceUpdate(this);\n }\n }\n readDimensions() {\n const page = getPageElement(this.el);\n const top = Math.max(this.el.offsetTop, 0);\n const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);\n const dirty = top !== this.cTop || bottom !== this.cBottom;\n if (dirty) {\n this.cTop = top;\n this.cBottom = bottom;\n forceUpdate(this);\n }\n }\n onScroll(ev) {\n const timeStamp = Date.now();\n const shouldStart = !this.isScrolling;\n this.lastScroll = timeStamp;\n if (shouldStart) {\n this.onScrollStart();\n }\n if (!this.queued && this.scrollEvents) {\n this.queued = true;\n readTask((ts) => {\n this.queued = false;\n this.detail.event = ev;\n updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);\n this.ionScroll.emit(this.detail);\n });\n }\n }\n /**\n * Get the element where the actual scrolling takes place.\n * This element can be used to subscribe to `scroll` events or manually modify\n * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:\n *\n * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events\n * and `scrollToPoint()` to scroll the content into a certain point.\n */\n async getScrollElement() {\n /**\n * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),\n * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.\n */\n if (!this.scrollEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.scrollEl);\n }\n /**\n * Returns the background content element.\n * @internal\n */\n async getBackgroundElement() {\n if (!this.backgroundContentEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.backgroundContentEl);\n }\n /**\n * Scroll to the top of the component.\n *\n * @param duration The amount of time to take scrolling to the top. Defaults to `0`.\n */\n scrollToTop(duration = 0) {\n return this.scrollToPoint(undefined, 0, duration);\n }\n /**\n * Scroll to the bottom of the component.\n *\n * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.\n */\n async scrollToBottom(duration = 0) {\n const scrollEl = await this.getScrollElement();\n const y = scrollEl.scrollHeight - scrollEl.clientHeight;\n return this.scrollToPoint(undefined, y, duration);\n }\n /**\n * Scroll by a specified X/Y distance in the component.\n *\n * @param x The amount to scroll by on the horizontal axis.\n * @param y The amount to scroll by on the vertical axis.\n * @param duration The amount of time to take scrolling by that amount.\n */\n async scrollByPoint(x, y, duration) {\n const scrollEl = await this.getScrollElement();\n return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);\n }\n /**\n * Scroll to a specified X/Y location in the component.\n *\n * @param x The point to scroll to on the horizontal axis.\n * @param y The point to scroll to on the vertical axis.\n * @param duration The amount of time to take scrolling to that point. Defaults to `0`.\n */\n async scrollToPoint(x, y, duration = 0) {\n const el = await this.getScrollElement();\n if (duration < 32) {\n if (y != null) {\n el.scrollTop = y;\n }\n if (x != null) {\n el.scrollLeft = x;\n }\n return;\n }\n let resolve;\n let startTime = 0;\n const promise = new Promise((r) => (resolve = r));\n const fromY = el.scrollTop;\n const fromX = el.scrollLeft;\n const deltaY = y != null ? y - fromY : 0;\n const deltaX = x != null ? x - fromX : 0;\n // scroll loop\n const step = (timeStamp) => {\n const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;\n const easedT = Math.pow(linearTime, 3) + 1;\n if (deltaY !== 0) {\n el.scrollTop = Math.floor(easedT * deltaY + fromY);\n }\n if (deltaX !== 0) {\n el.scrollLeft = Math.floor(easedT * deltaX + fromX);\n }\n if (easedT < 1) {\n // do not use DomController here\n // must use nativeRaf in order to fire in the next frame\n requestAnimationFrame(step);\n }\n else {\n resolve();\n }\n };\n // chill out for a frame first\n requestAnimationFrame((ts) => {\n startTime = ts;\n step(ts);\n });\n return promise;\n }\n onScrollStart() {\n this.isScrolling = true;\n this.ionScrollStart.emit({\n isScrolling: true,\n });\n if (this.watchDog) {\n clearInterval(this.watchDog);\n }\n // watchdog\n this.watchDog = setInterval(() => {\n if (this.lastScroll < Date.now() - 120) {\n this.onScrollEnd();\n }\n }, 100);\n }\n onScrollEnd() {\n clearInterval(this.watchDog);\n this.watchDog = null;\n if (this.isScrolling) {\n this.isScrolling = false;\n this.ionScrollEnd.emit({\n isScrolling: false,\n });\n }\n }\n render() {\n const { isMainContent, scrollX, scrollY, el } = this;\n const rtl = isRTL(el) ? 'rtl' : 'ltr';\n const mode = getIonMode(this);\n const forceOverscroll = this.shouldForceOverscroll();\n const transitionShadow = mode === 'ios';\n const TagType = isMainContent ? 'main' : 'div';\n this.resize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'content-sizing': hostContext('ion-popover', this.el),\n overscroll: forceOverscroll,\n [`content-${rtl}`]: true,\n }), style: {\n '--offset-top': `${this.cTop}px`,\n '--offset-bottom': `${this.cBottom}px`,\n } }, h(\"div\", { ref: (el) => (this.backgroundContentEl = el), id: \"background-content\", part: \"background\" }), h(TagType, { class: {\n 'inner-scroll': true,\n 'scroll-x': scrollX,\n 'scroll-y': scrollY,\n overscroll: (scrollX || scrollY) && forceOverscroll,\n }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: \"scroll\" }, h(\"slot\", null)), transitionShadow ? (h(\"div\", { class: \"transition-effect\" }, h(\"div\", { class: \"transition-cover\" }), h(\"div\", { class: \"transition-shadow\" }))) : null, h(\"slot\", { name: \"fixed\" })));\n }\n get el() { return this; }\n static get style() { return contentCss; }\n}, [1, \"ion-content\", {\n \"color\": [513],\n \"fullscreen\": [4],\n \"forceOverscroll\": [1028, \"force-overscroll\"],\n \"scrollX\": [4, \"scroll-x\"],\n \"scrollY\": [4, \"scroll-y\"],\n \"scrollEvents\": [4, \"scroll-events\"],\n \"getScrollElement\": [64],\n \"getBackgroundElement\": [64],\n \"scrollToTop\": [64],\n \"scrollToBottom\": [64],\n \"scrollByPoint\": [64],\n \"scrollToPoint\": [64]\n }, [[8, \"appload\", \"onAppLoad\"]]]);\nconst getParentElement = (el) => {\n var _a;\n if (el.parentElement) {\n // normal element with a parent element\n return el.parentElement;\n }\n if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {\n // shadow dom's document fragment\n return el.parentNode.host;\n }\n return null;\n};\nconst getPageElement = (el) => {\n const tabs = el.closest('ion-tabs');\n if (tabs) {\n return tabs;\n }\n /**\n * If we're in a popover, we need to use its wrapper so we can account for space\n * between the popover and the edges of the screen. But if the popover contains\n * its own page element, we should use that instead.\n */\n const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');\n if (page) {\n return page;\n }\n return getParentElement(el);\n};\n// ******** DOM READ ****************\nconst updateScrollDetail = (detail, el, timestamp, shouldStart) => {\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n const currentX = el.scrollLeft;\n const currentY = el.scrollTop;\n const timeDelta = timestamp - prevT;\n if (shouldStart) {\n // remember the start positions\n detail.startTime = timestamp;\n detail.startX = currentX;\n detail.startY = currentY;\n detail.velocityX = detail.velocityY = 0;\n }\n detail.currentTime = timestamp;\n detail.currentX = detail.scrollLeft = currentX;\n detail.currentY = detail.scrollTop = currentY;\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n if (timeDelta > 0 && timeDelta < 100) {\n const velocityX = (currentX - prevX) / timeDelta;\n const velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-content\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-content\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Content);\n }\n break;\n } });\n}\n\nconst IonContent = Content;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonContent, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { p as printIonWarning } from './index8.js';\n\n/**\n * Returns true if the selected day is equal to the reference day\n */\nconst isSameDay = (baseParts, compareParts) => {\n return (baseParts.month === compareParts.month && baseParts.day === compareParts.day && baseParts.year === compareParts.year);\n};\n/**\n * Returns true is the selected day is before the reference day.\n */\nconst isBefore = (baseParts, compareParts) => {\n return !!(baseParts.year < compareParts.year ||\n (baseParts.year === compareParts.year && baseParts.month < compareParts.month) ||\n (baseParts.year === compareParts.year &&\n baseParts.month === compareParts.month &&\n baseParts.day !== null &&\n baseParts.day < compareParts.day));\n};\n/**\n * Returns true is the selected day is after the reference day.\n */\nconst isAfter = (baseParts, compareParts) => {\n return !!(baseParts.year > compareParts.year ||\n (baseParts.year === compareParts.year && baseParts.month > compareParts.month) ||\n (baseParts.year === compareParts.year &&\n baseParts.month === compareParts.month &&\n baseParts.day !== null &&\n baseParts.day > compareParts.day));\n};\nconst warnIfValueOutOfBounds = (value, min, max) => {\n const valueArray = Array.isArray(value) ? value : [value];\n for (const val of valueArray) {\n if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {\n printIonWarning('The value provided to ion-datetime is out of bounds.\\n\\n' +\n `Min: ${JSON.stringify(min)}\\n` +\n `Max: ${JSON.stringify(max)}\\n` +\n `Value: ${JSON.stringify(value)}`);\n break;\n }\n }\n};\n\n/**\n * Determines if given year is a\n * leap year. Returns `true` if year\n * is a leap year. Returns `false`\n * otherwise.\n */\nconst isLeapYear = (year) => {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n};\nconst is24Hour = (locale, hourCycle) => {\n /**\n * If developer has explicitly enabled h23 time\n * then return early and do not look at the system default.\n */\n if (hourCycle !== undefined) {\n return hourCycle === 'h23';\n }\n /**\n * If hourCycle was not specified, check the locale\n * that is set on the user's device. We first check the\n * Intl.DateTimeFormat hourCycle option as developers can encode this\n * option into the locale string. Example: `en-US-u-hc-h23`\n */\n const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });\n const options = formatted.resolvedOptions();\n if (options.hourCycle !== undefined) {\n return options.hourCycle === 'h23';\n }\n /**\n * If hourCycle is not specified (either through lack\n * of browser support or locale information) then fall\n * back to this slower hourCycle check.\n */\n const date = new Date('5/18/2021 00:00');\n const parts = formatted.formatToParts(date);\n const hour = parts.find((p) => p.type === 'hour');\n if (!hour) {\n throw new Error('Hour value not found from DateTimeFormat');\n }\n return hour.value === '00';\n};\n/**\n * Given a date object, returns the number\n * of days in that month.\n * Month value begin at 1, not 0.\n * i.e. January = month 1.\n */\nconst getNumDaysInMonth = (month, year) => {\n return month === 4 || month === 6 || month === 9 || month === 11\n ? 30\n : month === 2\n ? isLeapYear(year)\n ? 29\n : 28\n : 31;\n};\n/**\n * Certain locales display month then year while\n * others display year then month.\n * We can use Intl.DateTimeFormat to determine\n * the ordering for each locale.\n * The formatOptions param can be used to customize\n * which pieces of a date to compare against the month\n * with. For example, some locales render dd/mm/yyyy\n * while others render mm/dd/yyyy. This function can be\n * used for variations of the same \"month first\" check.\n */\nconst isMonthFirstLocale = (locale, formatOptions = {\n month: 'numeric',\n year: 'numeric',\n}) => {\n /**\n * By setting month and year we guarantee that only\n * month, year, and literal (slashes '/', for example)\n * values are included in the formatToParts results.\n *\n * The ordering of the parts will be determined by\n * the locale. So if the month is the first value,\n * then we know month should be shown first. If the\n * year is the first value, then we know year should be shown first.\n *\n * This ordering can be controlled by customizing the locale property.\n */\n const parts = new Intl.DateTimeFormat(locale, formatOptions).formatToParts(new Date());\n return parts[0].type === 'month';\n};\n/**\n * Determines if the given locale formats the day period (am/pm) to the\n * left or right of the hour.\n * @param locale The locale to check.\n * @returns `true` if the locale formats the day period to the left of the hour.\n */\nconst isLocaleDayPeriodRTL = (locale) => {\n const parts = new Intl.DateTimeFormat(locale, { hour: 'numeric' }).formatToParts(new Date());\n return parts[0].type === 'dayPeriod';\n};\n\nconst ISO_8601_REGEXP = \n// eslint-disable-next-line no-useless-escape\n/^(\\d{4}|[+\\-]\\d{6})(?:-(\\d{2})(?:-(\\d{2}))?)?(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:(Z)|([+\\-])(\\d{2})(?::(\\d{2}))?)?)?$/;\n// eslint-disable-next-line no-useless-escape\nconst TIME_REGEXP = /^((\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:(Z)|([+\\-])(\\d{2})(?::(\\d{2}))?)?)?$/;\n/**\n * Use to convert a string of comma separated numbers or\n * an array of numbers, and clean up any user input\n */\nconst convertToArrayOfNumbers = (input) => {\n if (input === undefined) {\n return;\n }\n let processedInput = input;\n if (typeof input === 'string') {\n // convert the string to an array of strings\n // auto remove any whitespace and [] characters\n processedInput = input.replace(/\\[|\\]|\\s/g, '').split(',');\n }\n let values;\n if (Array.isArray(processedInput)) {\n // ensure each value is an actual number in the returned array\n values = processedInput.map((num) => parseInt(num, 10)).filter(isFinite);\n }\n else {\n values = [processedInput];\n }\n return values;\n};\n/**\n * Extracts date information\n * from a .calendar-day element\n * into DatetimeParts.\n */\nconst getPartsFromCalendarDay = (el) => {\n return {\n month: parseInt(el.getAttribute('data-month'), 10),\n day: parseInt(el.getAttribute('data-day'), 10),\n year: parseInt(el.getAttribute('data-year'), 10),\n dayOfWeek: parseInt(el.getAttribute('data-day-of-week'), 10),\n };\n};\nfunction parseDate(val) {\n if (Array.isArray(val)) {\n return val.map((valStr) => parseDate(valStr));\n }\n // manually parse IS0 cuz Date.parse cannot be trusted\n // ISO 8601 format: 1994-12-15T13:47:20Z\n let parse = null;\n if (val != null && val !== '') {\n // try parsing for just time first, HH:MM\n parse = TIME_REGEXP.exec(val);\n if (parse) {\n // adjust the array so it fits nicely with the datetime parse\n parse.unshift(undefined, undefined);\n parse[2] = parse[3] = undefined;\n }\n else {\n // try parsing for full ISO datetime\n parse = ISO_8601_REGEXP.exec(val);\n }\n }\n if (parse === null) {\n // wasn't able to parse the ISO datetime\n return undefined;\n }\n // ensure all the parse values exist with at least 0\n for (let i = 1; i < 8; i++) {\n parse[i] = parse[i] !== undefined ? parseInt(parse[i], 10) : undefined;\n }\n let tzOffset = 0;\n if (parse[9] && parse[10]) {\n // hours\n tzOffset = parseInt(parse[10], 10) * 60;\n if (parse[11]) {\n // minutes\n tzOffset += parseInt(parse[11], 10);\n }\n if (parse[9] === '-') {\n // + or -\n tzOffset *= -1;\n }\n }\n // can also get second and millisecond from parse[6] and parse[7] if needed\n return {\n year: parse[1],\n month: parse[2],\n day: parse[3],\n hour: parse[4],\n minute: parse[5],\n tzOffset,\n ampm: parse[4] < 12 ? 'am' : 'pm',\n };\n}\nconst clampDate = (dateParts, minParts, maxParts) => {\n if (minParts && isBefore(dateParts, minParts)) {\n return minParts;\n }\n else if (maxParts && isAfter(dateParts, maxParts)) {\n return maxParts;\n }\n return dateParts;\n};\n/**\n * Parses an hour and returns if the value is in the morning (am) or afternoon (pm).\n * @param hour The hour to format, should be 0-23\n * @returns `pm` if the hour is greater than or equal to 12, `am` if less than 12.\n */\nconst parseAmPm = (hour) => {\n return hour >= 12 ? 'pm' : 'am';\n};\n/**\n * Takes a max date string and creates a DatetimeParts\n * object, filling in any missing information.\n * For example, max=\"2012\" would fill in the missing\n * month, day, hour, and minute information.\n */\nconst parseMaxParts = (max, todayParts) => {\n const { month, day, year, hour, minute } = parseDate(max);\n /**\n * When passing in `max` or `min`, developers\n * can pass in any ISO-8601 string. This means\n * that not all of the date/time fields are defined.\n * For example, passing max=\"2012\" is valid even though\n * there is no month, day, hour, or minute data.\n * However, all of this data is required when clamping the date\n * so that the correct initial value can be selected. As a result,\n * we need to fill in any omitted data with the min or max values.\n */\n const yearValue = year !== null && year !== void 0 ? year : todayParts.year;\n const monthValue = month !== null && month !== void 0 ? month : 12;\n return {\n month: monthValue,\n day: day !== null && day !== void 0 ? day : getNumDaysInMonth(monthValue, yearValue),\n /**\n * Passing in \"HH:mm\" is a valid ISO-8601\n * string, so we just default to the current year\n * in this case.\n */\n year: yearValue,\n hour: hour !== null && hour !== void 0 ? hour : 23,\n minute: minute !== null && minute !== void 0 ? minute : 59,\n };\n};\n/**\n * Takes a min date string and creates a DatetimeParts\n * object, filling in any missing information.\n * For example, min=\"2012\" would fill in the missing\n * month, day, hour, and minute information.\n */\nconst parseMinParts = (min, todayParts) => {\n const { month, day, year, hour, minute } = parseDate(min);\n /**\n * When passing in `max` or `min`, developers\n * can pass in any ISO-8601 string. This means\n * that not all of the date/time fields are defined.\n * For example, passing max=\"2012\" is valid even though\n * there is no month, day, hour, or minute data.\n * However, all of this data is required when clamping the date\n * so that the correct initial value can be selected. As a result,\n * we need to fill in any omitted data with the min or max values.\n */\n return {\n month: month !== null && month !== void 0 ? month : 1,\n day: day !== null && day !== void 0 ? day : 1,\n /**\n * Passing in \"HH:mm\" is a valid ISO-8601\n * string, so we just default to the current year\n * in this case.\n */\n year: year !== null && year !== void 0 ? year : todayParts.year,\n hour: hour !== null && hour !== void 0 ? hour : 0,\n minute: minute !== null && minute !== void 0 ? minute : 0,\n };\n};\n\nconst twoDigit = (val) => {\n return ('0' + (val !== undefined ? Math.abs(val) : '0')).slice(-2);\n};\nconst fourDigit = (val) => {\n return ('000' + (val !== undefined ? Math.abs(val) : '0')).slice(-4);\n};\nfunction convertDataToISO(data) {\n if (Array.isArray(data)) {\n return data.map((parts) => convertDataToISO(parts));\n }\n // https://www.w3.org/TR/NOTE-datetime\n let rtn = '';\n if (data.year !== undefined) {\n // YYYY\n rtn = fourDigit(data.year);\n if (data.month !== undefined) {\n // YYYY-MM\n rtn += '-' + twoDigit(data.month);\n if (data.day !== undefined) {\n // YYYY-MM-DD\n rtn += '-' + twoDigit(data.day);\n if (data.hour !== undefined) {\n // YYYY-MM-DDTHH:mm:SS\n rtn += `T${twoDigit(data.hour)}:${twoDigit(data.minute)}:00`;\n if (data.tzOffset === undefined) {\n // YYYY-MM-DDTHH:mm:SSZ\n rtn += 'Z';\n }\n else {\n // YYYY-MM-DDTHH:mm:SS+/-HH:mm\n rtn +=\n (data.tzOffset > 0 ? '+' : '-') +\n twoDigit(Math.floor(Math.abs(data.tzOffset / 60))) +\n ':' +\n twoDigit(data.tzOffset % 60);\n }\n }\n }\n }\n }\n else if (data.hour !== undefined) {\n // HH:mm\n rtn = twoDigit(data.hour) + ':' + twoDigit(data.minute);\n }\n return rtn;\n}\n/**\n * Converts an 12 hour value to 24 hours.\n */\nconst convert12HourTo24Hour = (hour, ampm) => {\n if (ampm === undefined) {\n return hour;\n }\n /**\n * If AM and 12am\n * then return 00:00.\n * Otherwise just return\n * the hour since it is\n * already in 24 hour format.\n */\n if (ampm === 'am') {\n if (hour === 12) {\n return 0;\n }\n return hour;\n }\n /**\n * If PM and 12pm\n * just return 12:00\n * since it is already\n * in 24 hour format.\n * Otherwise add 12 hours\n * to the time.\n */\n if (hour === 12) {\n return 12;\n }\n return hour + 12;\n};\nconst getStartOfWeek = (refParts) => {\n const { dayOfWeek } = refParts;\n if (dayOfWeek === null || dayOfWeek === undefined) {\n throw new Error('No day of week provided');\n }\n return subtractDays(refParts, dayOfWeek);\n};\nconst getEndOfWeek = (refParts) => {\n const { dayOfWeek } = refParts;\n if (dayOfWeek === null || dayOfWeek === undefined) {\n throw new Error('No day of week provided');\n }\n return addDays(refParts, 6 - dayOfWeek);\n};\nconst getNextDay = (refParts) => {\n return addDays(refParts, 1);\n};\nconst getPreviousDay = (refParts) => {\n return subtractDays(refParts, 1);\n};\nconst getPreviousWeek = (refParts) => {\n return subtractDays(refParts, 7);\n};\nconst getNextWeek = (refParts) => {\n return addDays(refParts, 7);\n};\n/**\n * Given datetime parts, subtract\n * numDays from the date.\n * Returns a new DatetimeParts object\n * Currently can only go backward at most 1 month.\n */\nconst subtractDays = (refParts, numDays) => {\n const { month, day, year } = refParts;\n if (day === null) {\n throw new Error('No day provided');\n }\n const workingParts = {\n month,\n day,\n year,\n };\n workingParts.day = day - numDays;\n /**\n * If wrapping to previous month\n * update days and decrement month\n */\n if (workingParts.day < 1) {\n workingParts.month -= 1;\n }\n /**\n * If moving to previous year, reset\n * month to December and decrement year\n */\n if (workingParts.month < 1) {\n workingParts.month = 12;\n workingParts.year -= 1;\n }\n /**\n * Determine how many days are in the current\n * month\n */\n if (workingParts.day < 1) {\n const daysInMonth = getNumDaysInMonth(workingParts.month, workingParts.year);\n /**\n * Take num days in month and add the\n * number of underflow days. This number will\n * be negative.\n * Example: 1 week before Jan 2, 2021 is\n * December 26, 2021 so:\n * 2 - 7 = -5\n * 31 + (-5) = 26\n */\n workingParts.day = daysInMonth + workingParts.day;\n }\n return workingParts;\n};\n/**\n * Given datetime parts, add\n * numDays to the date.\n * Returns a new DatetimeParts object\n * Currently can only go forward at most 1 month.\n */\nconst addDays = (refParts, numDays) => {\n const { month, day, year } = refParts;\n if (day === null) {\n throw new Error('No day provided');\n }\n const workingParts = {\n month,\n day,\n year,\n };\n const daysInMonth = getNumDaysInMonth(month, year);\n workingParts.day = day + numDays;\n /**\n * If wrapping to next month\n * update days and increment month\n */\n if (workingParts.day > daysInMonth) {\n workingParts.day -= daysInMonth;\n workingParts.month += 1;\n }\n /**\n * If moving to next year, reset\n * month to January and increment year\n */\n if (workingParts.month > 12) {\n workingParts.month = 1;\n workingParts.year += 1;\n }\n return workingParts;\n};\n/**\n * Given DatetimeParts, generate the previous month.\n */\nconst getPreviousMonth = (refParts) => {\n /**\n * If current month is January, wrap backwards\n * to December of the previous year.\n */\n const month = refParts.month === 1 ? 12 : refParts.month - 1;\n const year = refParts.month === 1 ? refParts.year - 1 : refParts.year;\n const numDaysInMonth = getNumDaysInMonth(month, year);\n const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;\n return { month, year, day };\n};\n/**\n * Given DatetimeParts, generate the next month.\n */\nconst getNextMonth = (refParts) => {\n /**\n * If current month is December, wrap forwards\n * to January of the next year.\n */\n const month = refParts.month === 12 ? 1 : refParts.month + 1;\n const year = refParts.month === 12 ? refParts.year + 1 : refParts.year;\n const numDaysInMonth = getNumDaysInMonth(month, year);\n const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;\n return { month, year, day };\n};\nconst changeYear = (refParts, yearDelta) => {\n const month = refParts.month;\n const year = refParts.year + yearDelta;\n const numDaysInMonth = getNumDaysInMonth(month, year);\n const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;\n return { month, year, day };\n};\n/**\n * Given DatetimeParts, generate the previous year.\n */\nconst getPreviousYear = (refParts) => {\n return changeYear(refParts, -1);\n};\n/**\n * Given DatetimeParts, generate the next year.\n */\nconst getNextYear = (refParts) => {\n return changeYear(refParts, 1);\n};\n/**\n * If PM, then internal value should\n * be converted to 24-hr time.\n * Does not apply when public\n * values are already 24-hr time.\n */\nconst getInternalHourValue = (hour, use24Hour, ampm) => {\n if (use24Hour) {\n return hour;\n }\n return convert12HourTo24Hour(hour, ampm);\n};\n/**\n * Unless otherwise stated, all month values are\n * 1 indexed instead of the typical 0 index in JS Date.\n * Example:\n * January = Month 0 when using JS Date\n * January = Month 1 when using this datetime util\n */\n/**\n * Given the current datetime parts and a new AM/PM value\n * calculate what the hour should be in 24-hour time format.\n * Used when toggling the AM/PM segment since we store our hours\n * in 24-hour time format internally.\n */\nconst calculateHourFromAMPM = (currentParts, newAMPM) => {\n const { ampm: currentAMPM, hour } = currentParts;\n let newHour = hour;\n /**\n * If going from AM --> PM, need to update the\n *\n */\n if (currentAMPM === 'am' && newAMPM === 'pm') {\n newHour = convert12HourTo24Hour(newHour, 'pm');\n /**\n * If going from PM --> AM\n */\n }\n else if (currentAMPM === 'pm' && newAMPM === 'am') {\n newHour = Math.abs(newHour - 12);\n }\n return newHour;\n};\n/**\n * Updates parts to ensure that month and day\n * values are valid. For days that do not exist,\n * the closest valid day is used.\n */\nconst validateParts = (parts, minParts, maxParts) => {\n const { month, day, year } = parts;\n const partsCopy = Object.assign({}, parts);\n const numDays = getNumDaysInMonth(month, year);\n /**\n * If the max number of days\n * is greater than the day we want\n * to set, update the DatetimeParts\n * day field to be the max days.\n */\n if (day !== null && numDays < day) {\n partsCopy.day = numDays;\n }\n /**\n * If value is same day as min day,\n * make sure the time value is in bounds.\n */\n if (minParts !== undefined && isSameDay(partsCopy, minParts)) {\n /**\n * If the hour is out of bounds,\n * update both the hour and minute.\n * This is done so that the new time\n * is closest to what the user selected.\n */\n if (partsCopy.hour !== undefined && minParts.hour !== undefined) {\n if (partsCopy.hour < minParts.hour) {\n partsCopy.hour = minParts.hour;\n partsCopy.minute = minParts.minute;\n /**\n * If only the minute is out of bounds,\n * set it to the min minute.\n */\n }\n else if (partsCopy.hour === minParts.hour &&\n partsCopy.minute !== undefined &&\n minParts.minute !== undefined &&\n partsCopy.minute < minParts.minute) {\n partsCopy.minute = minParts.minute;\n }\n }\n }\n /**\n * If value is same day as max day,\n * make sure the time value is in bounds.\n */\n if (maxParts !== undefined && isSameDay(parts, maxParts)) {\n /**\n * If the hour is out of bounds,\n * update both the hour and minute.\n * This is done so that the new time\n * is closest to what the user selected.\n */\n if (partsCopy.hour !== undefined && maxParts.hour !== undefined) {\n if (partsCopy.hour > maxParts.hour) {\n partsCopy.hour = maxParts.hour;\n partsCopy.minute = maxParts.minute;\n /**\n * If only the minute is out of bounds,\n * set it to the max minute.\n */\n }\n else if (partsCopy.hour === maxParts.hour &&\n partsCopy.minute !== undefined &&\n maxParts.minute !== undefined &&\n partsCopy.minute > maxParts.minute) {\n partsCopy.minute = maxParts.minute;\n }\n }\n }\n return partsCopy;\n};\n/**\n * Returns the closest date to refParts\n * that also meets the constraints of\n * the *Values params.\n * @param refParts The reference date\n * @param monthValues The allowed month values\n * @param dayValues The allowed day (of the month) values\n * @param yearValues The allowed year values\n * @param hourValues The allowed hour values\n * @param minuteValues The allowed minute values\n */\nconst getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourValues, minuteValues) => {\n const { hour, minute, day, month, year } = refParts;\n const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });\n if (monthValues !== undefined) {\n copyParts.month = findClosestValue(month, monthValues);\n }\n // Day is nullable but cannot be undefined\n if (day !== null && dayValues !== undefined) {\n copyParts.day = findClosestValue(day, dayValues);\n }\n if (yearValues !== undefined) {\n copyParts.year = findClosestValue(year, yearValues);\n }\n if (hour !== undefined && hourValues !== undefined) {\n copyParts.hour = findClosestValue(hour, hourValues);\n copyParts.ampm = parseAmPm(copyParts.hour);\n }\n if (minute !== undefined && minuteValues !== undefined) {\n copyParts.minute = findClosestValue(minute, minuteValues);\n }\n return copyParts;\n};\n/**\n * Finds the value in \"values\" that is\n * numerically closest to \"reference\".\n * This function assumes that \"values\" is\n * already sorted in ascending order.\n * @param reference The reference number to use\n * when finding the closest value\n * @param values The allowed values that will be\n * searched to find the closest value to \"reference\"\n */\nconst findClosestValue = (reference, values) => {\n let closestValue = values[0];\n let rank = Math.abs(closestValue - reference);\n for (let i = 1; i < values.length; i++) {\n const value = values[i];\n /**\n * This code prioritizes the first\n * closest result. Given two values\n * with the same distance from reference,\n * this code will prioritize the smaller of\n * the two values.\n */\n const valueRank = Math.abs(value - reference);\n if (valueRank < rank) {\n closestValue = value;\n rank = valueRank;\n }\n }\n return closestValue;\n};\n\nconst getFormattedDayPeriod = (dayPeriod) => {\n if (dayPeriod === undefined) {\n return '';\n }\n return dayPeriod.toUpperCase();\n};\nconst getLocalizedTime = (locale, refParts, use24Hour) => {\n if (refParts.hour === undefined || refParts.minute === undefined) {\n return 'Invalid Time';\n }\n return new Intl.DateTimeFormat(locale, {\n hour: 'numeric',\n minute: 'numeric',\n timeZone: 'UTC',\n /**\n * We use hourCycle here instead of hour12 due to:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2\n */\n hourCycle: use24Hour ? 'h23' : 'h12',\n }).format(new Date(convertDataToISO(Object.assign(Object.assign({}, refParts), { \n // TODO: FW-1831 will remove the need to manually set the tzOffset to undefined\n tzOffset: undefined }))));\n};\n/**\n * Adds padding to a time value so\n * that it is always 2 digits.\n */\nconst addTimePadding = (value) => {\n const valueToString = value.toString();\n if (valueToString.length > 1) {\n return valueToString;\n }\n return `0${valueToString}`;\n};\n/**\n * Formats 24 hour times so that\n * it always has 2 digits. For\n * 12 hour times it ensures that\n * hour 0 is formatted as '12'.\n */\nconst getFormattedHour = (hour, use24Hour) => {\n if (use24Hour) {\n return addTimePadding(hour);\n }\n /**\n * If using 12 hour\n * format, make sure hour\n * 0 is formatted as '12'.\n */\n if (hour === 0) {\n return '12';\n }\n return hour.toString();\n};\n/**\n * Generates an aria-label to be read by screen readers\n * given a local, a date, and whether or not that date is\n * today's date.\n */\nconst generateDayAriaLabel = (locale, today, refParts) => {\n if (refParts.day === null) {\n return null;\n }\n /**\n * MM/DD/YYYY will return midnight in the user's timezone.\n */\n const date = new Date(`${refParts.month}/${refParts.day}/${refParts.year} GMT+0000`);\n const labelString = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n timeZone: 'UTC',\n }).format(date);\n /**\n * If date is today, prepend \"Today\" so screen readers indicate\n * that the date is today.\n */\n return today ? `Today, ${labelString}` : labelString;\n};\n/**\n * Gets the day of the week, month, and day\n * Used for the header in MD mode.\n */\nconst getMonthAndDay = (locale, refParts) => {\n const date = new Date(`${refParts.month}/${refParts.day}/${refParts.year} GMT+0000`);\n return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);\n};\n/**\n * Given a locale and a date object,\n * return a formatted string that includes\n * the month name and full year.\n * Example: May 2021\n */\nconst getMonthAndYear = (locale, refParts) => {\n const date = new Date(`${refParts.month}/${refParts.day}/${refParts.year} GMT+0000`);\n return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);\n};\n/**\n * Given a locale and a date object,\n * return a formatted string that includes\n * the short month, numeric day, and full year.\n * Example: Apr 22, 2021\n */\nconst getMonthDayAndYear = (locale, refParts) => {\n return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });\n};\n/**\n * Given a locale and a date object,\n * return a formatted string that includes\n * the numeric day.\n * Note: Some languages will add literal characters\n * to the end. This function removes those literals.\n * Example: 29\n */\nconst getDay = (locale, refParts) => {\n return getLocalizedDateTimeParts(locale, refParts, { day: 'numeric' }).find((obj) => obj.type === 'day').value;\n};\n/**\n * Given a locale and a date object,\n * return a formatted string that includes\n * the numeric year.\n * Example: 2022\n */\nconst getYear = (locale, refParts) => {\n return getLocalizedDateTime(locale, refParts, { year: 'numeric' });\n};\nconst getNormalizedDate = (refParts) => {\n const timeString = refParts.hour !== undefined && refParts.minute !== undefined ? ` ${refParts.hour}:${refParts.minute}` : '';\n return new Date(`${refParts.month}/${refParts.day}/${refParts.year}${timeString} GMT+0000`);\n};\n/**\n * Given a locale, DatetimeParts, and options\n * format the DatetimeParts according to the options\n * and locale combination. This returns a string. If\n * you want an array of the individual pieces\n * that make up the localized date string, use\n * getLocalizedDateTimeParts.\n */\nconst getLocalizedDateTime = (locale, refParts, options) => {\n const date = getNormalizedDate(refParts);\n return getDateTimeFormat(locale, options).format(date);\n};\n/**\n * Given a locale, DatetimeParts, and options\n * format the DatetimeParts according to the options\n * and locale combination. This returns an array of\n * each piece of the date.\n */\nconst getLocalizedDateTimeParts = (locale, refParts, options) => {\n const date = getNormalizedDate(refParts);\n return getDateTimeFormat(locale, options).formatToParts(date);\n};\n/**\n * Wrapper function for Intl.DateTimeFormat.\n * Allows developers to apply an allowed format to DatetimeParts.\n * This function also has built in safeguards for older browser bugs\n * with Intl.DateTimeFormat.\n */\nconst getDateTimeFormat = (locale, options) => {\n return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));\n};\n/**\n * Gets a localized version of \"Today\"\n * Falls back to \"Today\" in English for\n * browsers that do not support RelativeTimeFormat.\n */\nconst getTodayLabel = (locale) => {\n if ('RelativeTimeFormat' in Intl) {\n const label = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(0, 'day');\n return label.charAt(0).toUpperCase() + label.slice(1);\n }\n else {\n return 'Today';\n }\n};\n/**\n * When calling toISOString(), the browser\n * will convert the date to UTC time by either adding\n * or subtracting the time zone offset.\n * To work around this, we need to either add\n * or subtract the time zone offset to the Date\n * object prior to calling toISOString().\n * This allows us to get an ISO string\n * that is in the user's time zone.\n *\n * Example:\n * Time zone offset is 240\n * Meaning: The browser needs to add 240 minutes\n * to the Date object to get UTC time.\n * What Ionic does: We subtract 240 minutes\n * from the Date object. The browser then adds\n * 240 minutes in toISOString(). The result\n * is a time that is in the user's time zone\n * and not UTC.\n *\n * Note: Some timezones include minute adjustments\n * such as 30 or 45 minutes. This is why we use setMinutes\n * instead of setHours.\n * Example: India Standard Time\n * Timezone offset: -330 = -5.5 hours.\n *\n * List of timezones with 30 and 45 minute timezones:\n * https://www.timeanddate.com/time/time-zones-interesting.html\n */\nconst removeDateTzOffset = (date) => {\n const tzOffset = date.getTimezoneOffset();\n date.setMinutes(date.getMinutes() - tzOffset);\n return date;\n};\nconst DATE_AM = removeDateTzOffset(new Date('2022T01:00'));\nconst DATE_PM = removeDateTzOffset(new Date('2022T13:00'));\n/**\n * Formats the locale's string representation of the day period (am/pm) for a given\n * ref parts day period.\n *\n * @param locale The locale to format the day period in.\n * @param value The date string, in ISO format.\n * @returns The localized day period (am/pm) representation of the given value.\n */\nconst getLocalizedDayPeriod = (locale, dayPeriod) => {\n const date = dayPeriod === 'am' ? DATE_AM : DATE_PM;\n const localizedDayPeriod = new Intl.DateTimeFormat(locale, {\n hour: 'numeric',\n timeZone: 'UTC',\n })\n .formatToParts(date)\n .find((part) => part.type === 'dayPeriod');\n if (localizedDayPeriod) {\n return localizedDayPeriod.value;\n }\n return getFormattedDayPeriod(dayPeriod);\n};\n/**\n * Formats the datetime's value to a string, for use in the native input.\n *\n * @param value The value to format, either an ISO string or an array thereof.\n */\nconst formatValue = (value) => {\n return Array.isArray(value) ? value.join(',') : value;\n};\n\n/**\n * Returns the current date as\n * an ISO string in the user's\n * time zone.\n */\nconst getToday = () => {\n /**\n * ion-datetime intentionally does not\n * parse time zones/do automatic time zone\n * conversion when accepting user input.\n * However when we get today's date string,\n * we want it formatted relative to the user's\n * time zone.\n *\n * When calling toISOString(), the browser\n * will convert the date to UTC time by either adding\n * or subtracting the time zone offset.\n * To work around this, we need to either add\n * or subtract the time zone offset to the Date\n * object prior to calling toISOString().\n * This allows us to get an ISO string\n * that is in the user's time zone.\n */\n return removeDateTzOffset(new Date()).toISOString();\n};\nconst minutes = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\n];\nconst hour12 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\nconst hour23 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23];\n/**\n * Given a locale and a mode,\n * return an array with formatted days\n * of the week. iOS should display days\n * such as \"Mon\" or \"Tue\".\n * MD should display days such as \"M\"\n * or \"T\".\n */\nconst getDaysOfWeek = (locale, mode, firstDayOfWeek = 0) => {\n /**\n * Nov 1st, 2020 starts on a Sunday.\n * ion-datetime assumes weeks start on Sunday,\n * but is configurable via `firstDayOfWeek`.\n */\n const weekdayFormat = mode === 'ios' ? 'short' : 'narrow';\n const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });\n const startDate = new Date('11/01/2020');\n const daysOfWeek = [];\n /**\n * For each day of the week,\n * get the day name.\n */\n for (let i = firstDayOfWeek; i < firstDayOfWeek + 7; i++) {\n const currentDate = new Date(startDate);\n currentDate.setDate(currentDate.getDate() + i);\n daysOfWeek.push(intl.format(currentDate));\n }\n return daysOfWeek;\n};\n/**\n * Returns an array containing all of the\n * days in a month for a given year. Values are\n * aligned with a week calendar starting on\n * the firstDayOfWeek value (Sunday by default)\n * using null values.\n */\nconst getDaysOfMonth = (month, year, firstDayOfWeek) => {\n const numDays = getNumDaysInMonth(month, year);\n const firstOfMonth = new Date(`${month}/1/${year}`).getDay();\n /**\n * To get the first day of the month aligned on the correct\n * day of the week, we need to determine how many \"filler\" days\n * to generate. These filler days as empty/disabled buttons\n * that fill the space of the days of the week before the first\n * of the month.\n *\n * There are two cases here:\n *\n * 1. If firstOfMonth = 4, firstDayOfWeek = 0 then the offset\n * is (4 - (0 + 1)) = 3. Since the offset loop goes from 0 to 3 inclusive,\n * this will generate 4 filler days (0, 1, 2, 3), and then day of week 4 will have\n * the first day of the month.\n *\n * 2. If firstOfMonth = 2, firstDayOfWeek = 4 then the offset\n * is (6 - (4 - 2)) = 4. Since the offset loop goes from 0 to 4 inclusive,\n * this will generate 5 filler days (0, 1, 2, 3, 4), and then day of week 5 will have\n * the first day of the month.\n */\n const offset = firstOfMonth >= firstDayOfWeek ? firstOfMonth - (firstDayOfWeek + 1) : 6 - (firstDayOfWeek - firstOfMonth);\n let days = [];\n for (let i = 1; i <= numDays; i++) {\n days.push({ day: i, dayOfWeek: (offset + i) % 7 });\n }\n for (let i = 0; i <= offset; i++) {\n days = [{ day: null, dayOfWeek: null }, ...days];\n }\n return days;\n};\n/**\n * Given a local, reference datetime parts and option\n * max/min bound datetime parts, calculate the acceptable\n * hour and minute values according to the bounds and locale.\n */\nconst generateTime = (refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {\n const use24Hour = hourCycle === 'h23';\n let processedHours = use24Hour ? hour23 : hour12;\n let processedMinutes = minutes;\n let isAMAllowed = true;\n let isPMAllowed = true;\n if (hourValues) {\n processedHours = processedHours.filter((hour) => hourValues.includes(hour));\n }\n if (minuteValues) {\n processedMinutes = processedMinutes.filter((minute) => minuteValues.includes(minute));\n }\n if (minParts) {\n /**\n * If ref day is the same as the\n * minimum allowed day, filter hour/minute\n * values according to min hour and minute.\n */\n if (isSameDay(refParts, minParts)) {\n /**\n * Users may not always set the hour/minute for\n * min value (i.e. 2021-06-02) so we should allow\n * all hours/minutes in that case.\n */\n if (minParts.hour !== undefined) {\n processedHours = processedHours.filter((hour) => {\n const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;\n return (use24Hour ? hour : convertedHour) >= minParts.hour;\n });\n isAMAllowed = minParts.hour < 13;\n }\n if (minParts.minute !== undefined) {\n /**\n * The minimum minute range should not be enforced when\n * the hour is greater than the min hour.\n *\n * For example with a minimum range of 09:30, users\n * should be able to select 10:00-10:29 and beyond.\n */\n let isPastMinHour = false;\n if (minParts.hour !== undefined && refParts.hour !== undefined) {\n if (refParts.hour > minParts.hour) {\n isPastMinHour = true;\n }\n }\n processedMinutes = processedMinutes.filter((minute) => {\n if (isPastMinHour) {\n return true;\n }\n return minute >= minParts.minute;\n });\n }\n /**\n * If ref day is before minimum\n * day do not render any hours/minute values\n */\n }\n else if (isBefore(refParts, minParts)) {\n processedHours = [];\n processedMinutes = [];\n isAMAllowed = isPMAllowed = false;\n }\n }\n if (maxParts) {\n /**\n * If ref day is the same as the\n * maximum allowed day, filter hour/minute\n * values according to max hour and minute.\n */\n if (isSameDay(refParts, maxParts)) {\n /**\n * Users may not always set the hour/minute for\n * max value (i.e. 2021-06-02) so we should allow\n * all hours/minutes in that case.\n */\n if (maxParts.hour !== undefined) {\n processedHours = processedHours.filter((hour) => {\n const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;\n return (use24Hour ? hour : convertedHour) <= maxParts.hour;\n });\n isPMAllowed = maxParts.hour >= 12;\n }\n if (maxParts.minute !== undefined && refParts.hour === maxParts.hour) {\n // The available minutes should only be filtered when the hour is the same as the max hour.\n // For example if the max hour is 10:30 and the current hour is 10:00,\n // users should be able to select 00-30 minutes.\n // If the current hour is 09:00, users should be able to select 00-60 minutes.\n processedMinutes = processedMinutes.filter((minute) => minute <= maxParts.minute);\n }\n /**\n * If ref day is after minimum\n * day do not render any hours/minute values\n */\n }\n else if (isAfter(refParts, maxParts)) {\n processedHours = [];\n processedMinutes = [];\n isAMAllowed = isPMAllowed = false;\n }\n }\n return {\n hours: processedHours,\n minutes: processedMinutes,\n am: isAMAllowed,\n pm: isPMAllowed,\n };\n};\n/**\n * Given DatetimeParts, generate the previous,\n * current, and and next months.\n */\nconst generateMonths = (refParts) => {\n return [\n getPreviousMonth(refParts),\n { month: refParts.month, year: refParts.year, day: refParts.day },\n getNextMonth(refParts),\n ];\n};\nconst getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {\n month: 'long',\n}) => {\n const { year } = refParts;\n const months = [];\n if (monthValues !== undefined) {\n let processedMonths = monthValues;\n if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.month) !== undefined) {\n processedMonths = processedMonths.filter((month) => month <= maxParts.month);\n }\n if ((minParts === null || minParts === void 0 ? void 0 : minParts.month) !== undefined) {\n processedMonths = processedMonths.filter((month) => month >= minParts.month);\n }\n processedMonths.forEach((processedMonth) => {\n const date = new Date(`${processedMonth}/1/${year} GMT+0000`);\n const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);\n months.push({ text: monthString, value: processedMonth });\n });\n }\n else {\n const maxMonth = maxParts && maxParts.year === year ? maxParts.month : 12;\n const minMonth = minParts && minParts.year === year ? minParts.month : 1;\n for (let i = minMonth; i <= maxMonth; i++) {\n /**\n *\n * There is a bug on iOS 14 where\n * Intl.DateTimeFormat takes into account\n * the local timezone offset when formatting dates.\n *\n * Forcing the timezone to 'UTC' fixes the issue. However,\n * we should keep this workaround as it is safer. In the event\n * this breaks in another browser, we will not be impacted\n * because all dates will be interpreted in UTC.\n *\n * Example:\n * new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // \"March\"\n * new Intl.DateTimeFormat('en-US', { month: 'long', timeZone: 'UTC' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // \"April\"\n *\n * In certain timezones, iOS 14 shows the wrong\n * date for .toUTCString(). To combat this, we\n * force all of the timezones to GMT+0000 (UTC).\n *\n * Example:\n * Time Zone: Central European Standard Time\n * new Date('1/1/1992').toUTCString() // \"Tue, 31 Dec 1991 23:00:00 GMT\"\n * new Date('1/1/1992 GMT+0000').toUTCString() // \"Wed, 01 Jan 1992 00:00:00 GMT\"\n */\n const date = new Date(`${i}/1/${year} GMT+0000`);\n const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);\n months.push({ text: monthString, value: i });\n }\n }\n return months;\n};\n/**\n * Returns information regarding\n * selectable dates (i.e 1st, 2nd, 3rd, etc)\n * within a reference month.\n * @param locale The locale to format the date with\n * @param refParts The reference month/year to generate dates for\n * @param minParts The minimum bound on the date that can be returned\n * @param maxParts The maximum bound on the date that can be returned\n * @param dayValues The allowed date values\n * @returns Date data to be used in ion-picker-column-internal\n */\nconst getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {\n day: 'numeric',\n}) => {\n const { month, year } = refParts;\n const days = [];\n /**\n * If we have max/min bounds that in the same\n * month/year as the refParts, we should\n * use the define day as the max/min day.\n * Otherwise, fallback to the max/min days in a month.\n */\n const numDaysInMonth = getNumDaysInMonth(month, year);\n const maxDay = (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== null && (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== undefined && maxParts.year === year && maxParts.month === month\n ? maxParts.day\n : numDaysInMonth;\n const minDay = (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== null && (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== undefined && minParts.year === year && minParts.month === month\n ? minParts.day\n : 1;\n if (dayValues !== undefined) {\n let processedDays = dayValues;\n processedDays = processedDays.filter((day) => day >= minDay && day <= maxDay);\n processedDays.forEach((processedDay) => {\n const date = new Date(`${month}/${processedDay}/${year} GMT+0000`);\n const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);\n days.push({ text: dayString, value: processedDay });\n });\n }\n else {\n for (let i = minDay; i <= maxDay; i++) {\n const date = new Date(`${month}/${i}/${year} GMT+0000`);\n const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);\n days.push({ text: dayString, value: i });\n }\n }\n return days;\n};\nconst getYearColumnData = (locale, refParts, minParts, maxParts, yearValues) => {\n var _a, _b;\n let processedYears = [];\n if (yearValues !== undefined) {\n processedYears = yearValues;\n if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== undefined) {\n processedYears = processedYears.filter((year) => year <= maxParts.year);\n }\n if ((minParts === null || minParts === void 0 ? void 0 : minParts.year) !== undefined) {\n processedYears = processedYears.filter((year) => year >= minParts.year);\n }\n }\n else {\n const { year } = refParts;\n const maxYear = (_a = maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== null && _a !== void 0 ? _a : year;\n const minYear = (_b = minParts === null || minParts === void 0 ? void 0 : minParts.year) !== null && _b !== void 0 ? _b : year - 100;\n for (let i = maxYear; i >= minYear; i--) {\n processedYears.push(i);\n }\n }\n return processedYears.map((year) => ({\n text: getYear(locale, { year, month: refParts.month, day: refParts.day }),\n value: year,\n }));\n};\n/**\n * Given a starting date and an upper bound,\n * this functions returns an array of all\n * month objects in that range.\n */\nconst getAllMonthsInRange = (currentParts, maxParts) => {\n if (currentParts.month === maxParts.month && currentParts.year === maxParts.year) {\n return [currentParts];\n }\n return [currentParts, ...getAllMonthsInRange(getNextMonth(currentParts), maxParts)];\n};\n/**\n * Creates and returns picker items\n * that represent the days in a month.\n * Example: \"Thu, Jun 2\"\n */\nconst getCombinedDateColumnData = (locale, todayParts, minParts, maxParts, dayValues, monthValues) => {\n let items = [];\n let parts = [];\n /**\n * Get all month objects from the min date\n * to the max date. Note: Do not use getMonthColumnData\n * as that function only generates dates within a\n * single year.\n */\n let months = getAllMonthsInRange(minParts, maxParts);\n /**\n * Filter out any disallowed month values.\n */\n if (monthValues) {\n months = months.filter(({ month }) => monthValues.includes(month));\n }\n /**\n * Get all of the days in the month.\n * From there, generate an array where\n * each item has the month, date, and day\n * of work as the text.\n */\n months.forEach((monthObject) => {\n const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };\n const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {\n month: 'short',\n day: 'numeric',\n weekday: 'short',\n });\n const dateParts = [];\n const dateColumnItems = [];\n monthDays.forEach((dayObject) => {\n const isToday = isSameDay(Object.assign(Object.assign({}, referenceMonth), { day: dayObject.value }), todayParts);\n /**\n * Today's date should read as \"Today\" (localized)\n * not the actual date string\n */\n dateColumnItems.push({\n text: isToday ? getTodayLabel(locale) : dayObject.text,\n value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,\n });\n /**\n * When selecting a date in the wheel picker\n * we need access to the raw datetime parts data.\n * The picker column only accepts values of\n * type string or number, so we need to return\n * two sets of data: A data set to be passed\n * to the picker column, and a data set to\n * be used to reference the raw data when\n * updating the picker column value.\n */\n dateParts.push({\n month: referenceMonth.month,\n year: referenceMonth.year,\n day: dayObject.value,\n });\n });\n parts = [...parts, ...dateParts];\n items = [...items, ...dateColumnItems];\n });\n return {\n parts,\n items,\n };\n};\nconst getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {\n const use24Hour = is24Hour(locale, hourCycle);\n const { hours, minutes, am, pm } = generateTime(refParts, use24Hour ? 'h23' : 'h12', minParts, maxParts, allowedHourValues, allowedMinuteValues);\n const hoursItems = hours.map((hour) => {\n return {\n text: getFormattedHour(hour, use24Hour),\n value: getInternalHourValue(hour, use24Hour, refParts.ampm),\n };\n });\n const minutesItems = minutes.map((minute) => {\n return {\n text: addTimePadding(minute),\n value: minute,\n };\n });\n const dayPeriodItems = [];\n if (am && !use24Hour) {\n dayPeriodItems.push({\n text: getLocalizedDayPeriod(locale, 'am'),\n value: 'am',\n });\n }\n if (pm && !use24Hour) {\n dayPeriodItems.push({\n text: getLocalizedDayPeriod(locale, 'pm'),\n value: 'pm',\n });\n }\n return {\n minutesData: minutesItems,\n hoursData: hoursItems,\n dayPeriodData: dayPeriodItems,\n };\n};\n\nexport { getDayColumnData as A, getYearColumnData as B, isMonthFirstLocale as C, getTimeColumnsData as D, isLocaleDayPeriodRTL as E, getMonthAndYear as F, getDaysOfWeek as G, getDaysOfMonth as H, generateMonths as I, is24Hour as J, getLocalizedTime as K, getMonthAndDay as L, formatValue as M, getNextYear as N, getPreviousYear as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getEndOfWeek as h, isBefore as i, getStartOfWeek as j, getPreviousDay as k, getNextDay as l, getPreviousWeek as m, getNextWeek as n, parseMaxParts as o, parseMinParts as p, parseDate as q, convertToArrayOfNumbers as r, convertDataToISO as s, getToday as t, getClosestValidDate as u, validateParts as v, warnIfValueOutOfBounds as w, getNumDaysInMonth as x, getCombinedDateColumnData as y, getMonthColumnData as z };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { q as hasShadowDom, i as inheritAriaAttributes } from './helpers.js';\nimport { p as printIonWarning } from './index8.js';\nimport { o as openURL, c as createColorClasses, h as hostContext } from './theme.js';\nimport { d as defineCustomElement$1 } from './ripple-effect.js';\n\nconst buttonIosCss = \":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-0.3em;margin-right:0.3em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}::slotted(ion-icon[slot=end]){margin-left:0.3em;margin-right:-0.2em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:10px;--padding-top:0;--padding-bottom:0;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:2.8em;font-size:16px;font-weight:500;letter-spacing:-0.03em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}:host(.button-outline){--border-radius:10px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:17px;font-weight:normal;letter-spacing:0}:host(.button-large){--border-radius:12px;--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--border-radius:6px;--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-strong){font-weight:600}:host(.button-clear.ion-activated){opacity:0.4}:host(.button-outline.ion-activated.ion-color) .button-native{color:var(--ion-color-contrast)}:host(.button-outline.ion-activated.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}:host(.button-outline.ion-focused.ion-color) .button-native,:host(.button-clear.ion-focused.ion-color) .button-native{color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native::after,:host(.button-clear.ion-focused.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.button-clear:hover),:host(.button-outline:hover){opacity:0.6}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{color:var(--ion-color-base)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:transparent}:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native::after{background:#fff;opacity:0.1}}\";\n\nconst buttonMdCss = \":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-0.3em;margin-right:0.3em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}::slotted(ion-icon[slot=end]){margin-left:0.3em;margin-right:-0.2em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:4px;--padding-top:0;--padding-bottom:0;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\\n background-color 15ms linear,\\n color 15ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:36px;font-size:14px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}:host(.button-solid.ion-activated){--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}:host(.button-outline){--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-outline.ion-activated.ion-color) .button-native{background:transparent}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-large){--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-strong){font-weight:bold}::slotted(ion-icon[slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color.ion-focused) .button-native::after,:host(.button-outline.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}\";\n\nconst Button = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.inItem = false;\n this.inListHeader = false;\n this.inToolbar = false;\n this.inheritedAttributes = {};\n /**\n * The type of button.\n */\n this.buttonType = 'button';\n /**\n * If `true`, the user cannot interact with the button.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n /**\n * If `true`, activates a button with a heavier font weight.\n */\n this.strong = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.handleClick = (ev) => {\n const { el } = this;\n if (this.type === 'button') {\n openURL(this.href, ev, this.routerDirection, this.routerAnimation);\n }\n else if (hasShadowDom(el)) {\n // this button wants to specifically submit a form\n // climb up the dom to see if we're in a <form>\n // and if so, then use JS to submit it\n let formEl = this.findForm();\n const { form } = this;\n if (!formEl && form !== undefined) {\n /**\n * The developer specified a form selector for\n * the button to submit, but it was not found.\n */\n if (typeof form === 'string') {\n printIonWarning(`Form with selector: \"#${form}\" could not be found. Verify that the id is correct and the form is rendered in the DOM.`, el);\n }\n else {\n printIonWarning(`The provided \"form\" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, el);\n }\n return;\n }\n if (!formEl) {\n /**\n * If the form element is not set, the button may be inside\n * of a form element. Query the closest form element to the button.\n */\n formEl = el.closest('form');\n }\n if (formEl) {\n ev.preventDefault();\n const fakeButton = document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n formEl.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n }\n componentWillLoad() {\n this.inToolbar = !!this.el.closest('ion-buttons');\n this.inListHeader = !!this.el.closest('ion-list-header');\n this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n get hasIconOnly() {\n return !!this.el.querySelector('[slot=\"icon-only\"]');\n }\n get rippleType() {\n const hasClearFill = this.fill === undefined || this.fill === 'clear';\n // If the button is in a toolbar, has a clear fill (which is the default)\n // and only has an icon we use the unbounded \"circular\" ripple effect\n if (hasClearFill && this.hasIconOnly && this.inToolbar) {\n return 'unbounded';\n }\n return 'bounded';\n }\n /**\n * Finds the form element based on the provided `form` selector\n * or element reference provided.\n */\n findForm() {\n const { form } = this;\n if (form instanceof HTMLFormElement) {\n return form;\n }\n if (typeof form === 'string') {\n const el = document.getElementById(form);\n if (el instanceof HTMLFormElement) {\n return el;\n }\n }\n return null;\n }\n render() {\n const mode = getIonMode(this);\n const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong, inheritedAttributes, } = this;\n const finalSize = size === undefined && this.inItem ? 'small' : size;\n const TagType = href === undefined ? 'button' : 'a';\n const attrs = TagType === 'button'\n ? { type }\n : {\n download: this.download,\n href,\n rel,\n target,\n };\n let fill = this.fill;\n if (fill === undefined) {\n fill = this.inToolbar || this.inListHeader ? 'clear' : 'solid';\n }\n return (h(Host, { onClick: this.handleClick, \"aria-disabled\": disabled ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n [buttonType]: true,\n [`${buttonType}-${expand}`]: expand !== undefined,\n [`${buttonType}-${finalSize}`]: finalSize !== undefined,\n [`${buttonType}-${shape}`]: shape !== undefined,\n [`${buttonType}-${fill}`]: true,\n [`${buttonType}-strong`]: strong,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'button-has-icon-only': hasIconOnly,\n 'button-disabled': disabled,\n 'ion-activatable': true,\n 'ion-focusable': true,\n }) }, h(TagType, Object.assign({}, attrs, { class: \"button-native\", part: \"native\", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h(\"span\", { class: \"button-inner\" }, h(\"slot\", { name: \"icon-only\" }), h(\"slot\", { name: \"start\" }), h(\"slot\", null), h(\"slot\", { name: \"end\" })), mode === 'md' && h(\"ion-ripple-effect\", { type: this.rippleType }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: buttonIosCss,\n md: buttonMdCss\n }; }\n}, [33, \"ion-button\", {\n \"color\": [513],\n \"buttonType\": [1025, \"button-type\"],\n \"disabled\": [516],\n \"expand\": [513],\n \"fill\": [1537],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16],\n \"download\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"shape\": [513],\n \"size\": [513],\n \"strong\": [4],\n \"target\": [1],\n \"type\": [1],\n \"form\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-button\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Button);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { Button as B, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst noteIosCss = \":host{color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-350, #a6a6a6)}\";\n\nconst noteMdCss = \":host{color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-base)}:host{--color:var(--ion-color-step-600, #666666);font-size:14px}\";\n\nconst Note = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return {\n ios: noteIosCss,\n md: noteMdCss\n }; }\n}, [33, \"ion-note\", {\n \"color\": [513]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-note\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-note\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Note);\n }\n break;\n } });\n}\n\nexport { Note as N, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { f as chevronForward } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { r as raf, d as inheritAttributes } from './helpers.js';\nimport { a as printIonError } from './index8.js';\nimport { h as hostContext, c as createColorClasses, o as openURL } from './theme.js';\nimport { d as defineCustomElement$3 } from './icon.js';\nimport { d as defineCustomElement$2 } from './note.js';\nimport { d as defineCustomElement$1 } from './ripple-effect.js';\n\nconst itemIosCss = \":host{--border-radius:0px;--border-width:0px;--border-style:solid;--padding-top:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--inner-border-width:0px;--inner-padding-top:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;--inner-padding-end:0px;--inner-box-shadow:none;--show-full-highlight:0;--show-inset-highlight:0;--detail-icon-color:initial;--detail-icon-font-size:20px;--detail-icon-opacity:0.25;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:initial;text-decoration:none;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-native,:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-inner{border-color:var(--ion-color-shade)}:host(.ion-activated) .item-native{color:var(--color-activated)}:host(.ion-activated) .item-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-color.ion-activated) .item-native{color:var(--ion-color-contrast)}:host(.ion-focused) .item-native{color:var(--color-focused)}:host(.ion-focused) .item-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-color.ion-focused) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .item-native::after{background:var(--ion-color-contrast)}@media (any-hover: hover){:host(.ion-activatable:not(.ion-focused):hover) .item-native{color:var(--color-hover)}:host(.ion-activatable:not(.ion-focused):hover) .item-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native::after{background:var(--ion-color-contrast)}}:host(.item-interactive-disabled:not(.item-multiple-inputs)){cursor:default;pointer-events:none}:host(.item-disabled){cursor:default;opacity:0.3;pointer-events:none}.item-native{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-native{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.item-native::-moz-focus-inner{border:0}.item-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;-webkit-transition:var(--transition);transition:var(--transition);z-index:-1}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.item-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);-webkit-box-shadow:var(--inner-box-shadow);box-shadow:var(--inner-box-shadow);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-bottom{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--inner-padding-end);padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-bottom{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--inner-padding-end);padding-inline-end:var(--inner-padding-end)}}.item-detail-icon{color:var(--detail-icon-color);font-size:var(--detail-icon-font-size);opacity:var(--detail-icon-opacity)}::slotted(ion-icon){font-size:1.6em}::slotted(ion-button){--margin-top:0;--margin-bottom:0;--margin-start:0;--margin-end:0;z-index:1}::slotted(ion-label:not([slot=end])){-ms-flex:1;flex:1}:host(.item-input){-ms-flex-align:center;align-items:center}.input-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;text-overflow:ellipsis;overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.item-label-stacked),:host(.item-label-floating){-ms-flex-align:start;align-items:start}:host(.item-label-stacked) .input-wrapper,:host(.item-label-floating) .input-wrapper{-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column}.item-highlight,.item-inner-highlight{left:0;right:0;top:0;bottom:0;border-radius:inherit;position:absolute;width:100%;height:100%;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transition:border-bottom-width 200ms, -webkit-transform 200ms;transition:border-bottom-width 200ms, -webkit-transform 200ms;transition:transform 200ms, border-bottom-width 200ms;transition:transform 200ms, border-bottom-width 200ms, -webkit-transform 200ms;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.item-interactive.ion-focused),:host(.item-interactive.item-has-focus),:host(.item-interactive.ion-touched.ion-invalid){--full-highlight-height:calc(var(--highlight-height) * var(--show-full-highlight));--inset-highlight-height:calc(var(--highlight-height) * var(--show-inset-highlight))}:host(.ion-focused) .item-highlight,:host(.ion-focused) .item-inner-highlight,:host(.item-has-focus) .item-highlight,:host(.item-has-focus) .item-inner-highlight{-webkit-transform:scaleX(1);transform:scaleX(1);border-style:var(--border-style);border-color:var(--highlight-background)}:host(.ion-focused) .item-highlight,:host(.item-has-focus) .item-highlight{border-width:var(--full-highlight-height);opacity:var(--show-full-highlight)}:host(.ion-focused) .item-inner-highlight,:host(.item-has-focus) .item-inner-highlight{border-bottom-width:var(--inset-highlight-height);opacity:var(--show-inset-highlight)}:host(.ion-focused.item-fill-solid) .item-highlight,:host(.item-has-focus.item-fill-solid) .item-highlight{border-width:calc(var(--full-highlight-height) - 1px)}:host(.ion-focused) .item-inner-highlight,:host(.ion-focused:not(.item-fill-outline)) .item-highlight,:host(.item-has-focus) .item-inner-highlight,:host(.item-has-focus:not(.item-fill-outline)) .item-highlight{border-top:none;border-right:none;border-left:none}:host(.item-interactive.ion-focused),:host(.item-interactive.item-has-focus){--highlight-background:var(--highlight-color-focused)}:host(.item-interactive.ion-valid){--highlight-background:var(--highlight-color-valid)}:host(.item-interactive.ion-invalid){--highlight-background:var(--highlight-color-invalid)}:host(.item-interactive.ion-invalid) ::slotted([slot=helper]){display:none}::slotted([slot=error]){display:none;color:var(--highlight-color-invalid)}:host(.item-interactive.ion-invalid) ::slotted([slot=error]){display:block}:host(:not(.item-label)) ::slotted(ion-select){--padding-start:0;max-width:none}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0;-ms-flex-item-align:stretch;align-self:stretch;width:100%;max-width:100%}:host(:not(.item-label)) ::slotted(ion-datetime){--padding-start:0}:host(.item-label-stacked) ::slotted(ion-datetime),:host(.item-label-floating) ::slotted(ion-datetime){--padding-start:0;width:100%}:host(.item-multiple-inputs) ::slotted(ion-checkbox),:host(.item-multiple-inputs) ::slotted(ion-datetime),:host(.item-multiple-inputs) ::slotted(ion-radio),:host(.item-multiple-inputs) ::slotted(ion-select){position:relative}:host(.item-textarea){-ms-flex-align:stretch;align-items:stretch}::slotted(ion-reorder[slot]){margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}:host(.item-fill-solid) ::slotted([slot=start]),:host(.item-fill-solid) ::slotted([slot=end]),:host(.item-fill-outline) ::slotted([slot=start]),:host(.item-fill-outline) ::slotted([slot=end]){-ms-flex-item-align:center;align-self:center}::slotted([slot=helper]),::slotted([slot=error]),.item-counter{padding-top:5px;font-size:12px;z-index:1}.item-counter{margin-left:auto;color:var(--ion-color-step-550, #737373);white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-counter{margin-left:unset;-webkit-margin-start:auto;margin-inline-start:auto}}@media (prefers-reduced-motion: reduce){.item-highlight,.item-inner-highlight{-webkit-transition:none;transition:none}}:host{--min-height:44px;--transition:background-color 200ms linear, opacity 200ms linear;--padding-start:20px;--inner-padding-end:10px;--inner-border-width:0px 0px 0.55px 0px;--background:var(--ion-item-background, var(--ion-background-color, #fff));--background-activated:#000;--background-focused:#000;--background-hover:currentColor;--background-activated-opacity:.12;--background-focused-opacity:.15;--background-hover-opacity:.04;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--color:var(--ion-item-color, var(--ion-text-color, #000));--highlight-height:0px;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--bottom-padding-start:0px;font-size:17px}:host(.ion-activated){--transition:none}:host(.ion-color.ion-focused) .item-native::after{background:#000;opacity:0.15}:host(.ion-color.ion-activated) .item-native::after{background:#000;opacity:0.12}:host(.item-interactive){--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-full){--border-width:0px 0px 0.55px 0px;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-inset){--inner-border-width:0px 0px 0.55px 0px;--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-inset),:host(.item-lines-none){--border-width:0px;--show-full-highlight:0}:host(.item-lines-full),:host(.item-lines-none){--inner-border-width:0px;--show-inset-highlight:0}.item-highlight,.item-inner-highlight{-webkit-transition:none;transition:none}:host(.item-has-focus) .item-inner-highlight,:host(.item-has-focus) .item-highlight{border-top:none;border-right:none;border-left:none}::slotted([slot=start]){margin-left:0;margin-right:20px;margin-top:2px;margin-bottom:2px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:20px;margin-inline-end:20px}}::slotted([slot=end]){margin-left:10px;margin-right:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}::slotted(ion-icon[slot=start]),::slotted(ion-icon[slot=end]){margin-top:7px;margin-bottom:7px}::slotted(ion-toggle[slot=start]),::slotted(ion-toggle[slot=end]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host(.item-label-stacked) ::slotted([slot=end]),:host(.item-label-floating) ::slotted([slot=end]){margin-top:7px;margin-bottom:7px}::slotted(.button-small){--padding-top:0px;--padding-bottom:0px;--padding-start:.5em;--padding-end:.5em;height:24px;font-size:13px}::slotted(ion-avatar){width:36px;height:36px}::slotted(ion-thumbnail){width:56px;height:56px}::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-radio) ::slotted(ion-label),:host(.item-toggle) ::slotted(ion-label){margin-left:0px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.item-radio) ::slotted(ion-label),:host(.item-toggle) ::slotted(ion-label){margin-left:unset;-webkit-margin-start:0px;margin-inline-start:0px}}::slotted(ion-label){margin-left:0;margin-right:8px;margin-top:10px;margin-bottom:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.item-label-floating),:host(.item-label-stacked){--min-height:68px}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0px}:host(.item-label-fixed) ::slotted(ion-select),:host(.item-label-fixed) ::slotted(ion-datetime){--padding-start:0}\";\n\nconst itemMdCss = \":host{--border-radius:0px;--border-width:0px;--border-style:solid;--padding-top:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--inner-border-width:0px;--inner-padding-top:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;--inner-padding-end:0px;--inner-box-shadow:none;--show-full-highlight:0;--show-inset-highlight:0;--detail-icon-color:initial;--detail-icon-font-size:20px;--detail-icon-opacity:0.25;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:initial;text-decoration:none;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-native,:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) .item-inner{border-color:var(--ion-color-shade)}:host(.ion-activated) .item-native{color:var(--color-activated)}:host(.ion-activated) .item-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-color.ion-activated) .item-native{color:var(--ion-color-contrast)}:host(.ion-focused) .item-native{color:var(--color-focused)}:host(.ion-focused) .item-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-color.ion-focused) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .item-native::after{background:var(--ion-color-contrast)}@media (any-hover: hover){:host(.ion-activatable:not(.ion-focused):hover) .item-native{color:var(--color-hover)}:host(.ion-activatable:not(.ion-focused):hover) .item-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-activatable:not(.ion-focused):hover) .item-native::after{background:var(--ion-color-contrast)}}:host(.item-interactive-disabled:not(.item-multiple-inputs)){cursor:default;pointer-events:none}:host(.item-disabled){cursor:default;opacity:0.3;pointer-events:none}.item-native{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-native{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.item-native::-moz-focus-inner{border:0}.item-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0;-webkit-transition:var(--transition);transition:var(--transition);z-index:-1}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}.item-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);-webkit-box-shadow:var(--inner-box-shadow);box-shadow:var(--inner-box-shadow);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-bottom{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--inner-padding-end);padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-bottom{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--inner-padding-end);padding-inline-end:var(--inner-padding-end)}}.item-detail-icon{color:var(--detail-icon-color);font-size:var(--detail-icon-font-size);opacity:var(--detail-icon-opacity)}::slotted(ion-icon){font-size:1.6em}::slotted(ion-button){--margin-top:0;--margin-bottom:0;--margin-start:0;--margin-end:0;z-index:1}::slotted(ion-label:not([slot=end])){-ms-flex:1;flex:1}:host(.item-input){-ms-flex-align:center;align-items:center}.input-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;text-overflow:ellipsis;overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.item-label-stacked),:host(.item-label-floating){-ms-flex-align:start;align-items:start}:host(.item-label-stacked) .input-wrapper,:host(.item-label-floating) .input-wrapper{-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column}.item-highlight,.item-inner-highlight{left:0;right:0;top:0;bottom:0;border-radius:inherit;position:absolute;width:100%;height:100%;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transition:border-bottom-width 200ms, -webkit-transform 200ms;transition:border-bottom-width 200ms, -webkit-transform 200ms;transition:transform 200ms, border-bottom-width 200ms;transition:transform 200ms, border-bottom-width 200ms, -webkit-transform 200ms;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.item-interactive.ion-focused),:host(.item-interactive.item-has-focus),:host(.item-interactive.ion-touched.ion-invalid){--full-highlight-height:calc(var(--highlight-height) * var(--show-full-highlight));--inset-highlight-height:calc(var(--highlight-height) * var(--show-inset-highlight))}:host(.ion-focused) .item-highlight,:host(.ion-focused) .item-inner-highlight,:host(.item-has-focus) .item-highlight,:host(.item-has-focus) .item-inner-highlight{-webkit-transform:scaleX(1);transform:scaleX(1);border-style:var(--border-style);border-color:var(--highlight-background)}:host(.ion-focused) .item-highlight,:host(.item-has-focus) .item-highlight{border-width:var(--full-highlight-height);opacity:var(--show-full-highlight)}:host(.ion-focused) .item-inner-highlight,:host(.item-has-focus) .item-inner-highlight{border-bottom-width:var(--inset-highlight-height);opacity:var(--show-inset-highlight)}:host(.ion-focused.item-fill-solid) .item-highlight,:host(.item-has-focus.item-fill-solid) .item-highlight{border-width:calc(var(--full-highlight-height) - 1px)}:host(.ion-focused) .item-inner-highlight,:host(.ion-focused:not(.item-fill-outline)) .item-highlight,:host(.item-has-focus) .item-inner-highlight,:host(.item-has-focus:not(.item-fill-outline)) .item-highlight{border-top:none;border-right:none;border-left:none}:host(.item-interactive.ion-focused),:host(.item-interactive.item-has-focus){--highlight-background:var(--highlight-color-focused)}:host(.item-interactive.ion-valid){--highlight-background:var(--highlight-color-valid)}:host(.item-interactive.ion-invalid){--highlight-background:var(--highlight-color-invalid)}:host(.item-interactive.ion-invalid) ::slotted([slot=helper]){display:none}::slotted([slot=error]){display:none;color:var(--highlight-color-invalid)}:host(.item-interactive.ion-invalid) ::slotted([slot=error]){display:block}:host(:not(.item-label)) ::slotted(ion-select){--padding-start:0;max-width:none}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0;-ms-flex-item-align:stretch;align-self:stretch;width:100%;max-width:100%}:host(:not(.item-label)) ::slotted(ion-datetime){--padding-start:0}:host(.item-label-stacked) ::slotted(ion-datetime),:host(.item-label-floating) ::slotted(ion-datetime){--padding-start:0;width:100%}:host(.item-multiple-inputs) ::slotted(ion-checkbox),:host(.item-multiple-inputs) ::slotted(ion-datetime),:host(.item-multiple-inputs) ::slotted(ion-radio),:host(.item-multiple-inputs) ::slotted(ion-select){position:relative}:host(.item-textarea){-ms-flex-align:stretch;align-items:stretch}::slotted(ion-reorder[slot]){margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}:host(.item-fill-solid) ::slotted([slot=start]),:host(.item-fill-solid) ::slotted([slot=end]),:host(.item-fill-outline) ::slotted([slot=start]),:host(.item-fill-outline) ::slotted([slot=end]){-ms-flex-item-align:center;align-self:center}::slotted([slot=helper]),::slotted([slot=error]),.item-counter{padding-top:5px;font-size:12px;z-index:1}.item-counter{margin-left:auto;color:var(--ion-color-step-550, #737373);white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-counter{margin-left:unset;-webkit-margin-start:auto;margin-inline-start:auto}}@media (prefers-reduced-motion: reduce){.item-highlight,.item-inner-highlight{-webkit-transition:none;transition:none}}:host{--min-height:48px;--background:var(--ion-item-background, var(--ion-background-color, #fff));--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--color:var(--ion-item-color, var(--ion-text-color, #000));--transition:opacity 15ms linear, background-color 15ms linear;--padding-start:16px;--inner-padding-end:16px;--inner-border-width:0 0 1px 0;--highlight-height:1px;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);font-size:16px;font-weight:normal;text-transform:none}:host(.item-fill-outline){--highlight-height:2px}:host(.item-fill-none.item-interactive.ion-focus) .item-highlight,:host(.item-fill-none.item-interactive.item-has-focus) .item-highlight,:host(.item-fill-none.item-interactive.ion-touched.ion-invalid) .item-highlight{-webkit-transform:scaleX(1);transform:scaleX(1);border-width:0 0 var(--full-highlight-height) 0;border-style:var(--border-style);border-color:var(--highlight-background)}:host(.item-fill-none.item-interactive.ion-focus) .item-native,:host(.item-fill-none.item-interactive.item-has-focus) .item-native,:host(.item-fill-none.item-interactive.ion-touched.ion-invalid) .item-native{border-bottom-color:var(--highlight-background)}:host(.item-fill-outline.item-interactive.ion-focus) .item-highlight,:host(.item-fill-outline.item-interactive.item-has-focus) .item-highlight{-webkit-transform:scaleX(1);transform:scaleX(1)}:host(.item-fill-outline.item-interactive.ion-focus) .item-highlight,:host(.item-fill-outline.item-interactive.item-has-focus) .item-highlight,:host(.item-fill-outline.item-interactive.ion-touched.ion-invalid) .item-highlight{border-width:var(--full-highlight-height);border-style:var(--border-style);border-color:var(--highlight-background)}:host(.item-fill-outline.item-interactive.ion-touched.ion-invalid) .item-native{border-color:var(--highlight-background)}:host(.item-fill-solid.item-interactive.ion-focus) .item-highlight,:host(.item-fill-solid.item-interactive.item-has-focus) .item-highlight,:host(.item-fill-solid.item-interactive.ion-touched.ion-invalid) .item-highlight{-webkit-transform:scaleX(1);transform:scaleX(1);border-width:0 0 var(--full-highlight-height) 0;border-style:var(--border-style);border-color:var(--highlight-background)}:host(.item-fill-solid.item-interactive.ion-focus) .item-native,:host(.item-fill-solid.item-interactive.item-has-focus) .item-native,:host(.item-fill-solid.item-interactive.ion-touched.ion-invalid) .item-native{border-bottom-color:var(--highlight-background)}:host(.ion-color.ion-activated) .item-native::after{background:transparent}:host(.item-has-focus) .item-native{caret-color:var(--highlight-background)}:host(.item-interactive){--border-width:0 0 1px 0;--inner-border-width:0;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-full){--border-width:0 0 1px 0;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-inset){--inner-border-width:0 0 1px 0;--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-inset),:host(.item-lines-none){--border-width:0;--show-full-highlight:0}:host(.item-lines-full),:host(.item-lines-none){--inner-border-width:0;--show-inset-highlight:0}:host(.item-fill-outline) .item-highlight{--position-offset:calc(-1 * var(--border-width));left:var(--position-offset);top:var(--position-offset);width:calc(100% + 2 * var(--border-width));height:calc(100% + 2 * var(--border-width));-webkit-transition:none;transition:none}:host-context([dir=rtl]):host(.item-fill-outline) .item-highlight,:host-context([dir=rtl]).item-fill-outline .item-highlight{left:unset;right:unset;right:var(--position-offset)}:host(.item-fill-outline.ion-focused) .item-native,:host(.item-fill-outline.item-has-focus) .item-native{border-color:transparent}:host(.item-multi-line) ::slotted([slot=start]),:host(.item-multi-line) ::slotted([slot=end]){margin-top:16px;margin-bottom:16px;-ms-flex-item-align:start;align-self:flex-start}::slotted([slot=start]){margin-right:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted([slot=end]){margin-left:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;-webkit-margin-start:32px;margin-inline-start:32px}}:host(.item-fill-solid) ::slotted([slot=start]),:host(.item-fill-solid) ::slotted([slot=end]),:host(.item-fill-outline) ::slotted([slot=start]),:host(.item-fill-outline) ::slotted([slot=end]){-ms-flex-item-align:center;align-self:center}::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);font-size:24px}:host(.ion-color:not(.item-fill-solid):not(.item-fill-outline)) ::slotted(ion-icon){color:var(--ion-color-contrast)}::slotted(ion-icon[slot]){margin-top:12px;margin-bottom:12px}::slotted(ion-icon[slot=start]){margin-right:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted(ion-icon[slot=end]){margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}:host(.item-fill-solid) ::slotted(ion-icon[slot=start]),:host(.item-fill-outline) ::slotted(ion-icon[slot=start]){margin-right:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.item-fill-solid) ::slotted(ion-icon[slot=start]),:host(.item-fill-outline) ::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:8px;margin-inline-end:8px}}::slotted(ion-toggle[slot=start]),::slotted(ion-toggle[slot=end]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}::slotted(ion-note){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-ms-flex-item-align:start;align-self:flex-start;font-size:11px}::slotted(ion-note[slot]:not([slot=helper]):not([slot=error])){padding-left:0;padding-right:0;padding-top:18px;padding-bottom:10px}::slotted(ion-note[slot=start]){padding-right:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-note[slot=start]){padding-right:unset;-webkit-padding-end:16px;padding-inline-end:16px}}::slotted(ion-note[slot=end]){padding-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-note[slot=end]){padding-left:unset;-webkit-padding-start:16px;padding-inline-start:16px}}::slotted(ion-avatar){width:40px;height:40px}::slotted(ion-thumbnail){width:56px;height:56px}::slotted(ion-avatar),::slotted(ion-thumbnail){margin-top:8px;margin-bottom:8px}::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:unset;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}::slotted(ion-label){margin-left:0;margin-right:0;margin-top:10px;margin-bottom:10px}:host(.item-label-stacked) ::slotted([slot=end]),:host(.item-label-floating) ::slotted([slot=end]){margin-top:7px;margin-bottom:7px}:host(.item-label-fixed) ::slotted(ion-select),:host(.item-label-fixed) ::slotted(ion-datetime){--padding-start:8px}:host(.item-toggle) ::slotted(ion-label),:host(.item-radio) ::slotted(ion-label){margin-left:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.item-toggle) ::slotted(ion-label),:host(.item-radio) ::slotted(ion-label){margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}::slotted(.button-small){--padding-top:0;--padding-bottom:0;--padding-start:.6em;--padding-end:.6em;height:25px;font-size:12px}:host(.item-label-floating),:host(.item-label-stacked){--min-height:55px}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0}:host(.ion-focused:not(.ion-color)) ::slotted(.label-stacked),:host(.ion-focused:not(.ion-color)) ::slotted(.label-floating),:host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),:host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating){color:var(--ion-color-primary, #3880ff)}:host(.ion-color){--highlight-color-focused:var(--ion-color-contrast)}:host(.item-label-color){--highlight-color-focused:var(--ion-color-base)}:host(.item-fill-solid.ion-color),:host(.item-fill-outline.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.item-fill-solid){--background:var(--ion-color-step-50, #f2f2f2);--background-hover:var(--ion-color-step-100, #e6e6e6);--background-focused:var(--ion-color-step-150, #d9d9d9);--border-width:0 0 1px 0;--inner-border-width:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.item-fill-solid),:host-context([dir=rtl]).item-fill-solid{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}:host(.item-fill-solid) .item-native{--border-color:var(--ion-color-step-500, gray)}:host(.item-fill-solid.ion-focused) .item-native,:host(.item-fill-solid.item-has-focus) .item-native{--background:var(--background-focused)}:host(.item-fill-solid.item-shape-round){border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.item-fill-solid.item-shape-round),:host-context([dir=rtl]).item-fill-solid.item-shape-round{border-top-left-radius:16px;border-top-right-radius:16px;border-bottom-right-radius:0;border-bottom-left-radius:0}@media (any-hover: hover){:host(.item-fill-solid:hover) .item-native{--background:var(--background-hover);--border-color:var(--ion-color-step-750, #404040)}}:host(.item-fill-outline){--ripple-color:transparent;--background-focused:transparent;--background-hover:transparent;--border-color:var(--ion-color-step-500, gray);--border-width:1px;border:none;overflow:visible}:host(.item-fill-outline) .item-native{--native-padding-left:16px;border-radius:4px}:host(.item-fill-outline.item-shape-round) .item-native{--inner-padding-start:16px;border-radius:28px}:host(.item-fill-outline.item-shape-round) .item-bottom{padding-left:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.item-fill-outline.item-shape-round) .item-bottom{padding-left:unset;-webkit-padding-start:32px;padding-inline-start:32px}}:host(.item-fill-outline.item-label-floating.ion-focused) .item-native ::slotted(ion-input:not(:first-child)),:host(.item-fill-outline.item-label-floating.ion-focused) .item-native ::slotted(ion-textarea:not(:first-child)),:host(.item-fill-outline.item-label-floating.item-has-focus) .item-native ::slotted(ion-input:not(:first-child)),:host(.item-fill-outline.item-label-floating.item-has-focus) .item-native ::slotted(ion-textarea:not(:first-child)),:host(.item-fill-outline.item-label-floating.item-has-value) .item-native ::slotted(ion-input:not(:first-child)),:host(.item-fill-outline.item-label-floating.item-has-value) .item-native ::slotted(ion-textarea:not(:first-child)){-webkit-transform:translateY(-14px);transform:translateY(-14px)}@media (any-hover: hover){:host(.item-fill-outline:hover) .item-native{--border-color:var(--ion-color-step-750, #404040)}}.item-counter{letter-spacing:0.0333333333em}\";\n\nconst Item = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.labelColorStyles = {};\n this.itemStyles = new Map();\n this.inheritedAriaAttributes = {};\n this.multipleInputs = false;\n this.focusable = true;\n /**\n * If `true`, a button tag will be rendered and the item will be tappable.\n */\n this.button = false;\n /**\n * The icon to use when `detail` is set to `true`.\n */\n this.detailIcon = chevronForward;\n /**\n * If `true`, the user cannot interact with the item.\n */\n this.disabled = false;\n /**\n * If `true`, a character counter will display the ratio of characters used and the total character limit. Only applies when the `maxlength` property is set on the inner `ion-input` or `ion-textarea`.\n */\n this.counter = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n /**\n * The type of the button. Only used when an `onclick` or `button` property is present.\n */\n this.type = 'button';\n }\n counterFormatterChanged() {\n this.updateCounterOutput(this.getFirstInput());\n }\n handleIonChange(ev) {\n if (this.counter && ev.target === this.getFirstInput()) {\n this.updateCounterOutput(ev.target);\n }\n }\n labelColorChanged(ev) {\n const { color } = this;\n // There will be a conflict with item color if\n // we apply the label color to item, so we ignore\n // the label color if the user sets a color on item\n if (color === undefined) {\n this.labelColorStyles = ev.detail;\n }\n }\n itemStyle(ev) {\n ev.stopPropagation();\n const tagName = ev.target.tagName;\n const updatedStyles = ev.detail;\n const newStyles = {};\n const childStyles = this.itemStyles.get(tagName) || {};\n let hasStyleChange = false;\n Object.keys(updatedStyles).forEach((key) => {\n if (updatedStyles[key]) {\n const itemKey = `item-${key}`;\n if (!childStyles[itemKey]) {\n hasStyleChange = true;\n }\n newStyles[itemKey] = true;\n }\n });\n if (!hasStyleChange && Object.keys(newStyles).length !== Object.keys(childStyles).length) {\n hasStyleChange = true;\n }\n if (hasStyleChange) {\n this.itemStyles.set(tagName, newStyles);\n forceUpdate(this);\n }\n }\n connectedCallback() {\n if (this.counter) {\n this.updateCounterOutput(this.getFirstInput());\n }\n this.hasStartEl();\n }\n componentDidUpdate() {\n // Do not use @Listen here to avoid making all items\n // appear as clickable to screen readers\n // https://github.com/ionic-team/ionic-framework/issues/22011\n const input = this.getFirstInput();\n if (input !== undefined && !this.clickListener) {\n this.clickListener = (ev) => this.delegateFocus(ev, input);\n this.el.addEventListener('click', this.clickListener);\n }\n }\n disconnectedCallback() {\n const input = this.getFirstInput();\n if (input !== undefined && this.clickListener) {\n this.el.removeEventListener('click', this.clickListener);\n this.clickListener = undefined;\n }\n }\n componentDidLoad() {\n raf(() => {\n this.inheritedAriaAttributes = inheritAttributes(this.el, ['aria-label']);\n this.setMultipleInputs();\n this.focusable = this.isFocusable();\n });\n }\n // If the item contains multiple clickable elements and/or inputs, then the item\n // should not have a clickable input cover over the entire item to prevent\n // interfering with their individual click events\n setMultipleInputs() {\n // The following elements have a clickable cover that is relative to the entire item\n const covers = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');\n // The following elements can accept focus alongside the previous elements\n // therefore if these elements are also a child of item, we don't want the\n // input cover on top of those interfering with their clicks\n const inputs = this.el.querySelectorAll('ion-input, ion-range, ion-searchbar, ion-segment, ion-textarea, ion-toggle');\n // The following elements should also stay clickable when an input with cover is present\n const clickables = this.el.querySelectorAll('ion-anchor, ion-button, a, button');\n // Check for multiple inputs to change the position of the input cover to relative\n // for all of the covered inputs above\n this.multipleInputs =\n covers.length + inputs.length > 1 ||\n covers.length + clickables.length > 1 ||\n (covers.length > 0 && this.isClickable());\n }\n // If the item contains an input including a checkbox, datetime, select, or radio\n // then the item will have a clickable input cover that covers the item\n // that should get the hover, focused and activated states UNLESS it has multiple\n // inputs, then those need to individually get each click\n hasCover() {\n const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');\n return inputs.length === 1 && !this.multipleInputs;\n }\n // If the item has an href or button property it will render a native\n // anchor or button that is clickable\n isClickable() {\n return this.href !== undefined || this.button;\n }\n canActivate() {\n return this.isClickable() || this.hasCover();\n }\n isFocusable() {\n const focusableChild = this.el.querySelector('.ion-focusable');\n return this.canActivate() || focusableChild !== null;\n }\n getFirstInput() {\n const inputs = this.el.querySelectorAll('ion-input, ion-textarea');\n return inputs[0];\n }\n // This is needed for WebKit due to a delegatesFocus bug where\n // clicking on the left padding of an item is not focusing the input\n // but is opening the keyboard. It will no longer be needed with\n // iOS 14.\n delegateFocus(ev, input) {\n const clickedItem = ev.target.tagName === 'ION-ITEM';\n let firstActive = false;\n // If the first input is the same as the active element we need\n // to focus the first input again, but if the active element\n // is another input inside of the item we shouldn't switch focus\n if (document.activeElement) {\n firstActive = input.querySelector('input, textarea') === document.activeElement;\n }\n // Only focus the first input if we clicked on an ion-item\n // and the first input exists\n if (clickedItem && (firstActive || !this.multipleInputs)) {\n input.fireFocusEvents = false;\n input.setBlur();\n input.setFocus();\n raf(() => {\n input.fireFocusEvents = true;\n });\n }\n }\n updateCounterOutput(inputEl) {\n var _a, _b;\n const { counter, counterFormatter, defaultCounterFormatter } = this;\n if (counter && !this.multipleInputs && (inputEl === null || inputEl === void 0 ? void 0 : inputEl.maxlength) !== undefined) {\n const length = (_b = (_a = inputEl === null || inputEl === void 0 ? void 0 : inputEl.value) === null || _a === void 0 ? void 0 : _a.toString().length) !== null && _b !== void 0 ? _b : 0;\n if (counterFormatter === undefined) {\n this.counterString = defaultCounterFormatter(length, inputEl.maxlength);\n }\n else {\n try {\n this.counterString = counterFormatter(length, inputEl.maxlength);\n }\n catch (e) {\n printIonError('Exception in provided `counterFormatter`.', e);\n // Fallback to the default counter formatter when an exception happens\n this.counterString = defaultCounterFormatter(length, inputEl.maxlength);\n }\n }\n }\n }\n defaultCounterFormatter(length, maxlength) {\n return `${length} / ${maxlength}`;\n }\n hasStartEl() {\n const startEl = this.el.querySelector('[slot=\"start\"]');\n if (startEl !== null) {\n this.el.classList.add('item-has-start-slot');\n }\n }\n render() {\n const { counterString, detail, detailIcon, download, fill, labelColorStyles, lines, disabled, href, rel, shape, target, routerAnimation, routerDirection, inheritedAriaAttributes, } = this;\n const childStyles = {};\n const mode = getIonMode(this);\n const clickable = this.isClickable();\n const canActivate = this.canActivate();\n const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';\n const attrs = TagType === 'button'\n ? { type: this.type }\n : {\n download,\n href,\n rel,\n target,\n };\n // Only set onClick if the item is clickable to prevent screen\n // readers from reading all items as clickable\n const clickFn = clickable\n ? {\n onClick: (ev) => {\n openURL(href, ev, routerDirection, routerAnimation);\n },\n }\n : {};\n const showDetail = detail !== undefined ? detail : mode === 'ios' && clickable;\n this.itemStyles.forEach((value) => {\n Object.assign(childStyles, value);\n });\n const ariaDisabled = disabled || childStyles['item-interactive-disabled'] ? 'true' : null;\n const fillValue = fill || 'none';\n const inList = hostContext('ion-list', this.el);\n return (h(Host, { \"aria-disabled\": ariaDisabled, class: Object.assign(Object.assign(Object.assign({}, childStyles), labelColorStyles), createColorClasses(this.color, {\n item: true,\n [mode]: true,\n [`item-lines-${lines}`]: lines !== undefined,\n [`item-fill-${fillValue}`]: true,\n [`item-shape-${shape}`]: shape !== undefined,\n 'item-disabled': disabled,\n 'in-list': inList,\n 'item-multiple-inputs': this.multipleInputs,\n 'ion-activatable': canActivate,\n 'ion-focusable': this.focusable,\n 'item-rtl': document.dir === 'rtl',\n })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({}, attrs, inheritedAriaAttributes, { class: \"item-native\", part: \"native\", disabled: disabled }, clickFn), h(\"slot\", { name: \"start\" }), h(\"div\", { class: \"item-inner\" }, h(\"div\", { class: \"input-wrapper\" }, h(\"slot\", null)), h(\"slot\", { name: \"end\" }), showDetail && (h(\"ion-icon\", { icon: detailIcon, lazy: false, class: \"item-detail-icon\", part: \"detail-icon\", \"aria-hidden\": \"true\", \"flip-rtl\": detailIcon === chevronForward })), h(\"div\", { class: \"item-inner-highlight\" })), canActivate && mode === 'md' && h(\"ion-ripple-effect\", null), h(\"div\", { class: \"item-highlight\" })), h(\"div\", { class: \"item-bottom\" }, h(\"slot\", { name: \"error\" }), h(\"slot\", { name: \"helper\" }), counterString && h(\"ion-note\", { class: \"item-counter\" }, counterString))));\n }\n static get delegatesFocus() { return true; }\n get el() { return this; }\n static get watchers() { return {\n \"counterFormatter\": [\"counterFormatterChanged\"]\n }; }\n static get style() { return {\n ios: itemIosCss,\n md: itemMdCss\n }; }\n}, [49, \"ion-item\", {\n \"color\": [513],\n \"button\": [4],\n \"detail\": [4],\n \"detailIcon\": [1, \"detail-icon\"],\n \"disabled\": [4],\n \"download\": [1],\n \"fill\": [1],\n \"shape\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"lines\": [1],\n \"counter\": [4],\n \"routerAnimation\": [16],\n \"routerDirection\": [1, \"router-direction\"],\n \"target\": [1],\n \"type\": [1],\n \"counterFormatter\": [16],\n \"multipleInputs\": [32],\n \"focusable\": [32],\n \"counterString\": [32]\n }, [[0, \"ionChange\", \"handleIonChange\"], [0, \"ionColor\", \"labelColorChanged\"], [0, \"ionStyle\", \"itemStyle\"]]]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item\", \"ion-icon\", \"ion-note\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Item);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-note\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { Item as I, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst labelIosCss = \".item.sc-ion-label-ios-h,.item .sc-ion-label-ios-h{--color:initial;display:block;color:var(--color);font-family:var(--ion-font-family, inherit);font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-label-ios-h{color:var(--ion-color-base)}.ion-text-wrap.sc-ion-label-ios-h,[text-wrap].sc-ion-label-ios-h{white-space:normal}.item-interactive-disabled.sc-ion-label-ios-h:not(.item-multiple-inputs),.item-interactive-disabled:not(.item-multiple-inputs) .sc-ion-label-ios-h{cursor:default;opacity:0.3;pointer-events:none}.item-input.sc-ion-label-ios-h,.item-input .sc-ion-label-ios-h{-ms-flex:initial;flex:initial;max-width:200px;pointer-events:none}.item-textarea.sc-ion-label-ios-h,.item-textarea .sc-ion-label-ios-h{-ms-flex-item-align:baseline;align-self:baseline}.label-fixed.sc-ion-label-ios-h{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.label-stacked.sc-ion-label-ios-h,.label-floating.sc-ion-label-ios-h{margin-bottom:0;-ms-flex-item-align:stretch;align-self:stretch;width:auto;max-width:100%}.label-no-animate.label-floating.sc-ion-label-ios-h{-webkit-transition:none;transition:none}.sc-ion-label-ios-s h1,.sc-ion-label-ios-s h2,.sc-ion-label-ios-s h3,.sc-ion-label-ios-s h4,.sc-ion-label-ios-s h5,.sc-ion-label-ios-s h6{text-overflow:inherit;overflow:inherit}.ion-text-wrap.sc-ion-label-ios-h,[text-wrap].sc-ion-label-ios-h{font-size:14px;line-height:1.5}.label-stacked.sc-ion-label-ios-h{margin-bottom:4px;font-size:14px}.label-floating.sc-ion-label-ios-h{margin-bottom:0;-webkit-transform:translate(0, 29px);transform:translate(0, 29px);-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 150ms ease-in-out;transition:-webkit-transform 150ms ease-in-out;transition:transform 150ms ease-in-out;transition:transform 150ms ease-in-out, -webkit-transform 150ms ease-in-out}[dir=rtl].sc-ion-label-ios-h -no-combinator.label-floating.sc-ion-label-ios-h,[dir=rtl] .sc-ion-label-ios-h -no-combinator.label-floating.sc-ion-label-ios-h,[dir=rtl].label-floating.sc-ion-label-ios-h,[dir=rtl] .label-floating.sc-ion-label-ios-h{-webkit-transform-origin:right top;transform-origin:right top}.item-textarea.label-floating.sc-ion-label-ios-h,.item-textarea .label-floating.sc-ion-label-ios-h{-webkit-transform:translate(0, 28px);transform:translate(0, 28px)}.item-has-focus.label-floating.sc-ion-label-ios-h,.item-has-focus .label-floating.sc-ion-label-ios-h,.item-has-placeholder.sc-ion-label-ios-h:not(.item-input).label-floating,.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-ios-h,.item-has-value.label-floating.sc-ion-label-ios-h,.item-has-value .label-floating.sc-ion-label-ios-h{-webkit-transform:scale(0.82);transform:scale(0.82)}.sc-ion-label-ios-s h1{margin-left:0;margin-right:0;margin-top:3px;margin-bottom:2px;font-size:22px;font-weight:normal}.sc-ion-label-ios-s h2{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:17px;font-weight:normal}.sc-ion-label-ios-s h3,.sc-ion-label-ios-s h4,.sc-ion-label-ios-s h5,.sc-ion-label-ios-s h6{margin-left:0;margin-right:0;margin-top:0;margin-bottom:3px;font-size:14px;font-weight:normal;line-height:normal}.sc-ion-label-ios-s p{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:14px;line-height:normal;text-overflow:inherit;overflow:inherit}.sc-ion-label-ios-s>p{color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.4)}.sc-ion-label-ios-h.in-item-color.sc-ion-label-ios-s>p{color:inherit}.sc-ion-label-ios-s h2:last-child,.sc-ion-label-ios-s h3:last-child,.sc-ion-label-ios-s h4:last-child,.sc-ion-label-ios-s h5:last-child,.sc-ion-label-ios-s h6:last-child,.sc-ion-label-ios-s p:last-child{margin-bottom:0}\";\n\nconst labelMdCss = \".item.sc-ion-label-md-h,.item .sc-ion-label-md-h{--color:initial;display:block;color:var(--color);font-family:var(--ion-font-family, inherit);font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-label-md-h{color:var(--ion-color-base)}.ion-text-wrap.sc-ion-label-md-h,[text-wrap].sc-ion-label-md-h{white-space:normal}.item-interactive-disabled.sc-ion-label-md-h:not(.item-multiple-inputs),.item-interactive-disabled:not(.item-multiple-inputs) .sc-ion-label-md-h{cursor:default;opacity:0.3;pointer-events:none}.item-input.sc-ion-label-md-h,.item-input .sc-ion-label-md-h{-ms-flex:initial;flex:initial;max-width:200px;pointer-events:none}.item-textarea.sc-ion-label-md-h,.item-textarea .sc-ion-label-md-h{-ms-flex-item-align:baseline;align-self:baseline}.label-fixed.sc-ion-label-md-h{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.label-stacked.sc-ion-label-md-h,.label-floating.sc-ion-label-md-h{margin-bottom:0;-ms-flex-item-align:stretch;align-self:stretch;width:auto;max-width:100%}.label-no-animate.label-floating.sc-ion-label-md-h{-webkit-transition:none;transition:none}.sc-ion-label-md-s h1,.sc-ion-label-md-s h2,.sc-ion-label-md-s h3,.sc-ion-label-md-s h4,.sc-ion-label-md-s h5,.sc-ion-label-md-s h6{text-overflow:inherit;overflow:inherit}.ion-text-wrap.sc-ion-label-md-h,[text-wrap].sc-ion-label-md-h{line-height:1.5}.label-stacked.sc-ion-label-md-h,.label-floating.sc-ion-label-md-h{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:top left;transform-origin:top left}.label-stacked.label-rtl.sc-ion-label-md-h,.label-floating.label-rtl.sc-ion-label-md-h{-webkit-transform-origin:top right;transform-origin:top right}.label-stacked.sc-ion-label-md-h{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.label-floating.sc-ion-label-md-h{-webkit-transform:translateY(96%);transform:translateY(96%);-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1)}.ion-focused.label-floating.sc-ion-label-md-h,.ion-focused .label-floating.sc-ion-label-md-h,.item-has-focus.label-floating.sc-ion-label-md-h,.item-has-focus .label-floating.sc-ion-label-md-h,.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating,.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h,.item-has-value.label-floating.sc-ion-label-md-h,.item-has-value .label-floating.sc-ion-label-md-h{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75)}.item-fill-outline.ion-focused.label-floating.sc-ion-label-md-h,.item-fill-outline.ion-focused .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-focus.label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-focus .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating,.item-fill-outline.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-value.label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-value .label-floating.sc-ion-label-md-h{-webkit-transform:translateY(-6px) scale(0.75);transform:translateY(-6px) scale(0.75);position:relative;max-width:-webkit-min-content;max-width:-moz-min-content;max-width:min-content;background-color:var(--ion-item-background, var(--ion-background-color, #fff));overflow:visible;z-index:3}.item-fill-outline.ion-focused.label-floating.sc-ion-label-md-h::before,.item-fill-outline.ion-focused .label-floating.sc-ion-label-md-h::before,.item-fill-outline.ion-focused.label-floating.sc-ion-label-md-h::after,.item-fill-outline.ion-focused .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-focus.label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-focus .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-focus.label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-focus .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating::before,.item-fill-outline.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating::after,.item-fill-outline.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-value.label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-value .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-value.label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-value .label-floating.sc-ion-label-md-h::after{position:absolute;width:4px;height:100%;background-color:var(--ion-item-background, var(--ion-background-color, #fff));content:\\\"\\\"}.item-fill-outline.ion-focused.label-floating.sc-ion-label-md-h::before,.item-fill-outline.ion-focused .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-focus.label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-focus .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating::before,.item-fill-outline.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-value.label-floating.sc-ion-label-md-h::before,.item-fill-outline.item-has-value .label-floating.sc-ion-label-md-h::before{left:calc(-1 * 4px)}.item-fill-outline.ion-focused.label-floating.sc-ion-label-md-h::after,.item-fill-outline.ion-focused .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-focus.label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-focus .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).label-floating::after,.item-fill-outline.item-has-placeholder:not(.item-input) .label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-value.label-floating.sc-ion-label-md-h::after,.item-fill-outline.item-has-value .label-floating.sc-ion-label-md-h::after{right:calc(-1 * 4px)}.item-fill-outline.ion-focused.item-has-start-slot.label-floating.sc-ion-label-md-h,.item-fill-outline.ion-focused.item-has-start-slot .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-focus.item-has-start-slot.label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-focus.item-has-start-slot .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).item-has-start-slot.label-floating,.item-fill-outline.item-has-placeholder:not(.item-input).item-has-start-slot .label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-value.item-has-start-slot.label-floating.sc-ion-label-md-h,.item-fill-outline.item-has-value.item-has-start-slot .label-floating.sc-ion-label-md-h{-webkit-transform:translateX(-32px) translateY(-6px) scale(0.75);transform:translateX(-32px) translateY(-6px) scale(0.75)}.item-fill-outline.ion-focused.item-has-start-slot.label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.ion-focused.item-has-start-slot .label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.item-has-focus.item-has-start-slot.label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.item-has-focus.item-has-start-slot .label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.item-has-placeholder.sc-ion-label-md-h:not(.item-input).item-has-start-slot.label-floating.label-rtl,.item-fill-outline.item-has-placeholder:not(.item-input).item-has-start-slot .label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.item-has-value.item-has-start-slot.label-floating.label-rtl.sc-ion-label-md-h,.item-fill-outline.item-has-value.item-has-start-slot .label-floating.label-rtl.sc-ion-label-md-h{-webkit-transform:translateX(calc(-1 * -32px)) translateY(-6px) scale(0.75);transform:translateX(calc(-1 * -32px)) translateY(-6px) scale(0.75)}.ion-focused.label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-focused .label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-focused.label-floating.sc-ion-label-md-h:not(.ion-color),.ion-focused .label-floating.sc-ion-label-md-h:not(.ion-color),.item-has-focus.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-has-focus .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-has-focus.label-floating.sc-ion-label-md-h:not(.ion-color),.item-has-focus .label-floating.sc-ion-label-md-h:not(.ion-color){color:var(--ion-color-primary, #3880ff)}.ion-focused.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-focused.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-focused.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.ion-focused.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color),.item-has-focus.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-has-focus.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-has-focus.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.item-has-focus.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color){color:var(--ion-color-contrast)}.item-fill-solid.ion-focused.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.ion-focused.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.ion-focused.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.ion-focused.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.ion-focused.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.ion-focused.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.ion-focused.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.ion-focused.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.item-has-focus.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.item-has-focus.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.item-has-focus.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-solid.item-has-focus.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.item-has-focus.ion-color.label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.item-has-focus.ion-color .label-stacked.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.item-has-focus.ion-color.label-floating.sc-ion-label-md-h:not(.ion-color),.item-fill-outline.item-has-focus.ion-color .label-floating.sc-ion-label-md-h:not(.ion-color){color:var(--ion-color-base)}.ion-invalid.ion-touched.label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-invalid.ion-touched .label-stacked.sc-ion-label-md-h:not(.ion-color),.ion-invalid.ion-touched.label-floating.sc-ion-label-md-h:not(.ion-color),.ion-invalid.ion-touched .label-floating.sc-ion-label-md-h:not(.ion-color){color:var(--highlight-color-invalid)}.sc-ion-label-md-s h1{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}.sc-ion-label-md-s h2{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:16px;font-weight:normal}.sc-ion-label-md-s h3,.sc-ion-label-md-s h4,.sc-ion-label-md-s h5,.sc-ion-label-md-s h6{margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:14px;font-weight:normal;line-height:normal}.sc-ion-label-md-s p{margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:14px;line-height:20px;text-overflow:inherit;overflow:inherit}.sc-ion-label-md-s>p{color:var(--ion-color-step-600, #666666)}.sc-ion-label-md-h.in-item-color.sc-ion-label-md-s>p{color:inherit}\";\n\nconst Label = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionColor = createEvent(this, \"ionColor\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inRange = false;\n this.noAnimate = false;\n }\n componentWillLoad() {\n this.inRange = !!this.el.closest('ion-range');\n this.noAnimate = this.position === 'floating';\n this.emitStyle();\n this.emitColor();\n }\n componentDidLoad() {\n if (this.noAnimate) {\n setTimeout(() => {\n this.noAnimate = false;\n }, 1000);\n }\n }\n colorChanged() {\n this.emitColor();\n }\n positionChanged() {\n this.emitStyle();\n }\n emitColor() {\n const { color } = this;\n this.ionColor.emit({\n 'item-label-color': color !== undefined,\n [`ion-color-${color}`]: color !== undefined,\n });\n }\n emitStyle() {\n const { inRange, position } = this;\n // If the label is inside of a range we don't want\n // to override the classes added by the label that\n // is a direct child of the item\n if (!inRange) {\n this.ionStyle.emit({\n label: true,\n [`label-${position}`]: position !== undefined,\n });\n }\n }\n render() {\n const position = this.position;\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'in-item-color': hostContext('ion-item.ion-color', this.el),\n [`label-${position}`]: position !== undefined,\n [`label-no-animate`]: this.noAnimate,\n 'label-rtl': document.dir === 'rtl',\n }) }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"color\": [\"colorChanged\"],\n \"position\": [\"positionChanged\"]\n }; }\n static get style() { return {\n ios: labelIosCss,\n md: labelMdCss\n }; }\n}, [34, \"ion-label\", {\n \"color\": [513],\n \"position\": [1],\n \"noAnimate\": [32]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-label\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-label\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Label);\n }\n break;\n } });\n}\n\nexport { Label as L, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nconst HapticEngine = {\n getEngine() {\n var _a;\n const win = window;\n return win.TapticEngine || (((_a = win.Capacitor) === null || _a === void 0 ? void 0 : _a.isPluginAvailable('Haptics')) && win.Capacitor.Plugins.Haptics);\n },\n available() {\n var _a;\n const win = window;\n const engine = this.getEngine();\n if (!engine) {\n return false;\n }\n /**\n * Developers can manually import the\n * Haptics plugin in their app which will cause\n * getEngine to return the Haptics engine. However,\n * the Haptics engine will throw an error if\n * used in a web browser that does not support\n * the Vibrate API. This check avoids that error\n * if the browser does not support the Vibrate API.\n */\n if (((_a = win.Capacitor) === null || _a === void 0 ? void 0 : _a.getPlatform()) === 'web') {\n return typeof navigator !== 'undefined' && navigator.vibrate !== undefined;\n }\n return true;\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n },\n};\n/**\n * Check to see if the Haptic Plugin is available\n * @return Returns `true` or false if the plugin is available\n */\nconst hapticAvailable = () => {\n return HapticEngine.available();\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n hapticAvailable() && HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n hapticAvailable() && HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n hapticAvailable() && HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n hapticAvailable() && HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n hapticAvailable() && HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelectionEnd as c, hapticSelection as d, hapticImpact as h };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { r as raf, g as getElementRoot } from './helpers.js';\nimport { a as hapticSelectionStart, b as hapticSelectionChanged, c as hapticSelectionEnd } from './haptic.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst pickerColumnInternalIosCss = \":host{padding-left:16px;padding-right:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.picker-item-disabled{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}\";\n\nconst pickerColumnInternalMdCss = \":host{padding-left:16px;padding-right:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.picker-item-disabled{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}:host .picker-item-active{color:var(--ion-color-base)}\";\n\nconst PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.isScrolling = false;\n this.isColumnVisible = false;\n this.isActive = false;\n /**\n * A list of options to be displayed in the picker\n */\n this.items = [];\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n * For more information on colors, see [theming](/docs/theming/basics).\n */\n this.color = 'primary';\n /**\n * If `true`, tapping the picker will\n * reveal a number input keyboard that lets\n * the user type in values for each picker\n * column. This is useful when working\n * with time pickers.\n *\n * @internal\n */\n this.numericInput = false;\n this.centerPickerItemInView = (target, smooth = true) => {\n const { el, isColumnVisible } = this;\n if (isColumnVisible) {\n // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)\n const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;\n if (el.scrollTop !== top) {\n el.scroll({\n top,\n left: 0,\n behavior: smooth ? 'smooth' : undefined,\n });\n }\n }\n };\n /**\n * When ionInputModeChange is emitted, each column\n * needs to check if it is the one being made available\n * for text entry.\n */\n this.inputModeChange = (ev) => {\n if (!this.numericInput) {\n return;\n }\n const { useInputMode, inputModeColumn } = ev.detail;\n /**\n * If inputModeColumn is undefined then this means\n * all numericInput columns are being selected.\n */\n const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;\n if (!useInputMode || !isColumnActive) {\n this.setInputModeActive(false);\n return;\n }\n this.setInputModeActive(true);\n };\n /**\n * Setting isActive will cause a re-render.\n * As a result, we do not want to cause the\n * re-render mid scroll as this will cause\n * the picker column to jump back to\n * whatever value was selected at the\n * start of the scroll interaction.\n */\n this.setInputModeActive = (state) => {\n if (this.isScrolling) {\n this.scrollEndCallback = () => {\n this.isActive = state;\n };\n return;\n }\n this.isActive = state;\n };\n /**\n * When the column scrolls, the component\n * needs to determine which item is centered\n * in the view and will emit an ionChange with\n * the item object.\n */\n this.initializeScrollListener = () => {\n const { el } = this;\n let timeout;\n let activeEl = this.activeItem;\n const scrollCallback = () => {\n raf(() => {\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n if (!this.isScrolling) {\n hapticSelectionStart();\n this.isScrolling = true;\n }\n /**\n * Select item in the center of the column\n * which is the month/year that we want to select\n */\n const bbox = el.getBoundingClientRect();\n const centerX = bbox.x + bbox.width / 2;\n const centerY = bbox.y + bbox.height / 2;\n const activeElement = el.shadowRoot.elementFromPoint(centerX, centerY);\n if (activeEl !== null) {\n activeEl.classList.remove(PICKER_COL_ACTIVE);\n }\n if (activeElement.disabled) {\n return;\n }\n /**\n * If we are selecting a new value,\n * we need to run haptics again.\n */\n if (activeElement !== activeEl) {\n hapticSelectionChanged();\n }\n activeEl = activeElement;\n activeElement.classList.add(PICKER_COL_ACTIVE);\n timeout = setTimeout(() => {\n this.isScrolling = false;\n hapticSelectionEnd();\n /**\n * Certain tasks (such as those that\n * cause re-renders) should only be done\n * once scrolling has finished, otherwise\n * flickering may occur.\n */\n const { scrollEndCallback } = this;\n if (scrollEndCallback) {\n scrollEndCallback();\n this.scrollEndCallback = undefined;\n }\n const dataIndex = activeElement.getAttribute('data-index');\n /**\n * If no value it is\n * possible we hit one of the\n * empty padding columns.\n */\n if (dataIndex === null) {\n return;\n }\n const index = parseInt(dataIndex, 10);\n const selectedItem = this.items[index];\n if (selectedItem.value !== this.value) {\n this.setValue(selectedItem.value);\n }\n }, 250);\n });\n };\n /**\n * Wrap this in an raf so that the scroll callback\n * does not fire when component is initially shown.\n */\n raf(() => {\n el.addEventListener('scroll', scrollCallback);\n this.destroyScrollListener = () => {\n el.removeEventListener('scroll', scrollCallback);\n };\n });\n };\n }\n valueChange() {\n if (this.isColumnVisible) {\n /**\n * Only scroll the active item into view when the picker column\n * is actively visible to the user.\n */\n this.scrollActiveItemIntoView();\n }\n }\n /**\n * Only setup scroll listeners\n * when the picker is visible, otherwise\n * the container will have a scroll\n * height of 0px.\n */\n componentWillLoad() {\n const visibleCallback = (entries) => {\n var _a;\n const ev = entries[0];\n if (ev.isIntersecting) {\n this.isColumnVisible = true;\n /**\n * Because this initial call to scrollActiveItemIntoView has to fire before\n * the scroll listener is set up, we need to manage the active class manually.\n */\n const oldActive = getElementRoot(this.el).querySelector(`.${PICKER_COL_ACTIVE}`);\n oldActive === null || oldActive === void 0 ? void 0 : oldActive.classList.remove(PICKER_COL_ACTIVE);\n this.scrollActiveItemIntoView();\n (_a = this.activeItem) === null || _a === void 0 ? void 0 : _a.classList.add(PICKER_COL_ACTIVE);\n this.initializeScrollListener();\n }\n else {\n this.isColumnVisible = false;\n if (this.destroyScrollListener) {\n this.destroyScrollListener();\n this.destroyScrollListener = undefined;\n }\n }\n };\n new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);\n const parentEl = this.el.closest('ion-picker-internal');\n if (parentEl !== null) {\n parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));\n }\n }\n componentDidRender() {\n var _a;\n const { activeItem, items, isColumnVisible, value } = this;\n if (isColumnVisible) {\n if (activeItem) {\n this.scrollActiveItemIntoView();\n }\n else if (((_a = items[0]) === null || _a === void 0 ? void 0 : _a.value) !== value) {\n /**\n * If the picker column does not have an active item and the current value\n * does not match the first item in the picker column, that means\n * the value is out of bounds. In this case, we assign the value to the\n * first item to match the scroll position of the column.\n *\n */\n this.setValue(items[0].value);\n }\n }\n }\n /** @internal */\n async scrollActiveItemIntoView() {\n const activeEl = this.activeItem;\n if (activeEl) {\n this.centerPickerItemInView(activeEl, false);\n }\n }\n /**\n * Sets the value prop and fires the ionChange event.\n * This is used when we need to fire ionChange from\n * user-generated events that cannot be caught with normal\n * input/change event listeners.\n * @internal\n */\n async setValue(value) {\n const { items } = this;\n this.value = value;\n const findItem = items.find((item) => item.value === value && item.disabled !== true);\n if (findItem) {\n this.ionChange.emit(findItem);\n }\n }\n get activeItem() {\n return getElementRoot(this.el).querySelector(`.picker-item[data-value=\"${this.value}\"]:not([disabled])`);\n }\n render() {\n const { items, color, isActive, numericInput } = this;\n const mode = getIonMode(this);\n return (h(Host, { tabindex: 0, class: createColorClasses(color, {\n [mode]: true,\n ['picker-column-active']: isActive,\n ['picker-column-numeric-input']: numericInput,\n }) }, h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\"), h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\"), h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\"), items.map((item, index) => {\n return (h(\"button\", { tabindex: \"-1\", class: {\n 'picker-item': true,\n 'picker-item-disabled': item.disabled || false,\n }, \"data-value\": item.value, \"data-index\": index, onClick: (ev) => {\n this.centerPickerItemInView(ev.target);\n }, disabled: item.disabled }, item.text));\n }), h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\"), h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\"), h(\"div\", { class: \"picker-item picker-item-empty\" }, \"\\u00A0\")));\n }\n get el() { return this; }\n static get watchers() { return {\n \"value\": [\"valueChange\"]\n }; }\n static get style() { return {\n ios: pickerColumnInternalIosCss,\n md: pickerColumnInternalMdCss\n }; }\n}, [33, \"ion-picker-column-internal\", {\n \"items\": [16],\n \"value\": [1032],\n \"color\": [513],\n \"numericInput\": [4, \"numeric-input\"],\n \"isActive\": [32],\n \"scrollActiveItemIntoView\": [64],\n \"setValue\": [64]\n }]);\nconst PICKER_COL_ACTIVE = 'picker-item-active';\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker-column-internal\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-picker-column-internal\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, PickerColumnInternal);\n }\n break;\n } });\n}\n\nexport { PickerColumnInternal as P, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { g as getElementRoot } from './helpers.js';\n\nconst pickerInternalIosCss = \":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{left:0;top:0;height:83px}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host .picker-after{left:0;top:116px;height:84px}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host .picker-highlight{border-radius:8px;left:0;right:0;top:50%;bottom:0;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:-1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .picker-highlight{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column-internal:first-of-type){text-align:start}:host ::slotted(ion-picker-column-internal:last-of-type){text-align:end}:host ::slotted(ion-picker-column-internal:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%)}:host .picker-highlight{background:var(--ion-color-step-150, #eeeeef)}\";\n\nconst pickerInternalMdCss = \":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{left:0;top:0;height:83px}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host .picker-after{left:0;top:116px;height:84px}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host .picker-highlight{border-radius:8px;left:0;right:0;top:50%;bottom:0;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:-1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .picker-highlight{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host ::slotted(ion-picker-column-internal:first-of-type){text-align:start}:host ::slotted(ion-picker-column-internal:last-of-type){text-align:end}:host ::slotted(ion-picker-column-internal:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), color-stop(90%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), color-stop(90%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0) 90%)}\";\n\nconst PickerInternal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionInputModeChange = createEvent(this, \"ionInputModeChange\", 7);\n this.useInputMode = false;\n this.isInHighlightBounds = (ev) => {\n const { highlightEl } = this;\n if (!highlightEl) {\n return false;\n }\n const bbox = highlightEl.getBoundingClientRect();\n /**\n * Check to see if the user clicked\n * outside the bounds of the highlight.\n */\n const outsideX = ev.clientX < bbox.left || ev.clientX > bbox.right;\n const outsideY = ev.clientY < bbox.top || ev.clientY > bbox.bottom;\n if (outsideX || outsideY) {\n return false;\n }\n return true;\n };\n /**\n * If we are no longer focused\n * on a picker column, then we should\n * exit input mode. An exception is made\n * for the input in the picker since having\n * that focused means we are still in input mode.\n */\n this.onFocusOut = (ev) => {\n const { relatedTarget } = ev;\n if (!relatedTarget || (relatedTarget.tagName !== 'ION-PICKER-COLUMN-INTERNAL' && relatedTarget !== this.inputEl)) {\n this.exitInputMode();\n }\n };\n /**\n * When picker columns receive focus\n * the parent picker needs to determine\n * whether to enter/exit input mode.\n */\n this.onFocusIn = (ev) => {\n const { target } = ev;\n /**\n * Due to browser differences in how/when focus\n * is dispatched on certain elements, we need to\n * make sure that this function only ever runs when\n * focusing a picker column.\n */\n if (target.tagName !== 'ION-PICKER-COLUMN-INTERNAL') {\n return;\n }\n /**\n * If we have actionOnClick\n * then this means the user focused\n * a picker column via mouse or\n * touch (i.e. a PointerEvent). As a result,\n * we should not enter/exit input mode\n * until the click event has fired, which happens\n * after the `focusin` event.\n *\n * Otherwise, the user likely focused\n * the column using their keyboard and\n * we should enter/exit input mode automatically.\n */\n if (!this.actionOnClick) {\n const columnEl = target;\n const allowInput = columnEl.numericInput;\n if (allowInput) {\n this.enterInputMode(columnEl, false);\n }\n else {\n this.exitInputMode();\n }\n }\n };\n /**\n * On click we need to run an actionOnClick\n * function that has been set in onPointerDown\n * so that we enter/exit input mode correctly.\n */\n this.onClick = () => {\n const { actionOnClick } = this;\n if (actionOnClick) {\n actionOnClick();\n this.actionOnClick = undefined;\n }\n };\n /**\n * Clicking a column also focuses the column on\n * certain browsers, so we use onPointerDown\n * to tell the onFocusIn function that users\n * are trying to click the column rather than\n * focus the column using the keyboard. When the\n * user completes the click, the onClick function\n * runs and runs the actionOnClick callback.\n */\n this.onPointerDown = (ev) => {\n const { useInputMode, inputModeColumn, el } = this;\n if (this.isInHighlightBounds(ev)) {\n /**\n * If we were already in\n * input mode, then we should determine\n * if we tapped a particular column and\n * should switch to input mode for\n * that specific column.\n */\n if (useInputMode) {\n /**\n * If we tapped a picker column\n * then we should either switch to input\n * mode for that column or all columns.\n * Otherwise we should exit input mode\n * since we just tapped the highlight and\n * not a column.\n */\n if (ev.target.tagName === 'ION-PICKER-COLUMN-INTERNAL') {\n /**\n * If user taps 2 different columns\n * then we should just switch to input mode\n * for the new column rather than switching to\n * input mode for all columns.\n */\n if (inputModeColumn && inputModeColumn === ev.target) {\n this.actionOnClick = () => {\n this.enterInputMode();\n };\n }\n else {\n this.actionOnClick = () => {\n this.enterInputMode(ev.target);\n };\n }\n }\n else {\n this.actionOnClick = () => {\n this.exitInputMode();\n };\n }\n /**\n * If we were not already in\n * input mode, then we should\n * enter input mode for all columns.\n */\n }\n else {\n /**\n * If there is only 1 numeric input column\n * then we should skip multi column input.\n */\n const columns = el.querySelectorAll('ion-picker-column-internal.picker-column-numeric-input');\n const columnEl = columns.length === 1 ? ev.target : undefined;\n this.actionOnClick = () => {\n this.enterInputMode(columnEl);\n };\n }\n return;\n }\n this.actionOnClick = () => {\n this.exitInputMode();\n };\n };\n /**\n * Enters input mode to allow\n * for text entry of numeric values.\n * If on mobile, we focus a hidden input\n * field so that the on screen keyboard\n * is brought up. When tabbing using a\n * keyboard, picker columns receive an outline\n * to indicate they are focused. As a result,\n * we should not focus the hidden input as it\n * would cause the outline to go away, preventing\n * users from having any visual indication of which\n * column is focused.\n */\n this.enterInputMode = (columnEl, focusInput = true) => {\n const { inputEl, el } = this;\n if (!inputEl) {\n return;\n }\n /**\n * Only active input mode if there is at\n * least one column that accepts numeric input.\n */\n const hasInputColumn = el.querySelector('ion-picker-column-internal.picker-column-numeric-input');\n if (!hasInputColumn) {\n return;\n }\n /**\n * If columnEl is undefined then\n * it is assumed that all numeric pickers\n * are eligible for text entry.\n * (i.e. hour and minute columns)\n */\n this.useInputMode = true;\n this.inputModeColumn = columnEl;\n /**\n * Users with a keyboard and mouse can\n * activate input mode where the input is\n * focused as well as when it is not focused,\n * so we need to make sure we clean up any\n * old listeners.\n */\n if (focusInput) {\n if (this.destroyKeypressListener) {\n this.destroyKeypressListener();\n this.destroyKeypressListener = undefined;\n }\n inputEl.focus();\n }\n else {\n el.addEventListener('keypress', this.onKeyPress);\n this.destroyKeypressListener = () => {\n el.removeEventListener('keypress', this.onKeyPress);\n };\n }\n this.emitInputModeChange();\n };\n this.exitInputMode = () => {\n const { inputEl, useInputMode } = this;\n if (!useInputMode || !inputEl) {\n return;\n }\n this.useInputMode = false;\n this.inputModeColumn = undefined;\n inputEl.blur();\n inputEl.value = '';\n if (this.destroyKeypressListener) {\n this.destroyKeypressListener();\n this.destroyKeypressListener = undefined;\n }\n this.emitInputModeChange();\n };\n this.onKeyPress = (ev) => {\n const { inputEl } = this;\n if (!inputEl) {\n return;\n }\n const parsedValue = parseInt(ev.key, 10);\n /**\n * Only numbers should be allowed\n */\n if (!Number.isNaN(parsedValue)) {\n inputEl.value += ev.key;\n this.onInputChange();\n }\n };\n this.selectSingleColumn = () => {\n const { inputEl, inputModeColumn, singleColumnSearchTimeout } = this;\n if (!inputEl || !inputModeColumn) {\n return;\n }\n const values = inputModeColumn.items.filter((item) => item.disabled !== true);\n /**\n * If users pause for a bit, the search\n * value should be reset similar to how a\n * <select> behaves. So typing \"34\", waiting,\n * then typing \"5\" should select \"05\".\n */\n if (singleColumnSearchTimeout) {\n clearTimeout(singleColumnSearchTimeout);\n }\n this.singleColumnSearchTimeout = setTimeout(() => {\n inputEl.value = '';\n this.singleColumnSearchTimeout = undefined;\n }, 1000);\n /**\n * For values that are longer than 2 digits long\n * we should shift the value over 1 character\n * to the left. So typing \"456\" would result in \"56\".\n * TODO: If we want to support more than just\n * time entry, we should update this value to be\n * the max length of all of the picker items.\n */\n if (inputEl.value.length >= 3) {\n const startIndex = inputEl.value.length - 2;\n const newString = inputEl.value.substring(startIndex);\n inputEl.value = newString;\n this.selectSingleColumn();\n return;\n }\n /**\n * Checking the value of the input gets priority\n * first. For example, if the value of the input\n * is \"1\" and we entered \"2\", then the complete value\n * is \"12\" and we should select hour 12.\n *\n * Regex removes any leading zeros from values like \"02\".\n */\n const findItemFromCompleteValue = values.find(({ text }) => text.replace(/^0+/, '') === inputEl.value);\n if (findItemFromCompleteValue) {\n inputModeColumn.setValue(findItemFromCompleteValue.value);\n return;\n }\n /**\n * If we typed \"56\" to get minute 56, then typed \"7\",\n * we should select \"07\" as \"567\" is not a valid minute.\n */\n if (inputEl.value.length === 2) {\n const changedCharacter = inputEl.value.substring(inputEl.value.length - 1);\n inputEl.value = changedCharacter;\n this.selectSingleColumn();\n }\n };\n /**\n * Searches a list of column items for a particular\n * value. This is currently used for numeric values.\n * The zeroBehavior can be set to account for leading\n * or trailing zeros when looking at the item text.\n */\n this.searchColumn = (colEl, value, zeroBehavior = 'start') => {\n const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/;\n const item = colEl.items.find(({ text, disabled }) => disabled !== true && text.replace(behavior, '') === value);\n if (item) {\n colEl.setValue(item.value);\n }\n };\n this.selectMultiColumn = () => {\n const { inputEl, el } = this;\n if (!inputEl) {\n return;\n }\n const numericPickers = Array.from(el.querySelectorAll('ion-picker-column-internal')).filter((col) => col.numericInput);\n const firstColumn = numericPickers[0];\n const lastColumn = numericPickers[1];\n let value = inputEl.value;\n let minuteValue;\n switch (value.length) {\n case 1:\n this.searchColumn(firstColumn, value);\n break;\n case 2:\n /**\n * If the first character is `0` or `1` it is\n * possible that users are trying to type `09`\n * or `11` into the hour field, so we should look\n * at that first.\n */\n const firstCharacter = inputEl.value.substring(0, 1);\n value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter;\n this.searchColumn(firstColumn, value);\n /**\n * If only checked the first value,\n * we can check the second value\n * for a match in the minutes column\n */\n if (value.length === 1) {\n minuteValue = inputEl.value.substring(inputEl.value.length - 1);\n this.searchColumn(lastColumn, minuteValue, 'end');\n }\n break;\n case 3:\n /**\n * If the first character is `0` or `1` it is\n * possible that users are trying to type `09`\n * or `11` into the hour field, so we should look\n * at that first.\n */\n const firstCharacterAgain = inputEl.value.substring(0, 1);\n value =\n firstCharacterAgain === '0' || firstCharacterAgain === '1'\n ? inputEl.value.substring(0, 2)\n : firstCharacterAgain;\n this.searchColumn(firstColumn, value);\n /**\n * If only checked the first value,\n * we can check the second value\n * for a match in the minutes column\n */\n minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2);\n this.searchColumn(lastColumn, minuteValue, 'end');\n break;\n case 4:\n /**\n * If the first character is `0` or `1` it is\n * possible that users are trying to type `09`\n * or `11` into the hour field, so we should look\n * at that first.\n */\n const firstCharacterAgainAgain = inputEl.value.substring(0, 1);\n value =\n firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1'\n ? inputEl.value.substring(0, 2)\n : firstCharacterAgainAgain;\n this.searchColumn(firstColumn, value);\n /**\n * If only checked the first value,\n * we can check the second value\n * for a match in the minutes column\n */\n const minuteValueAgain = value.length === 1\n ? inputEl.value.substring(1, inputEl.value.length)\n : inputEl.value.substring(2, inputEl.value.length);\n this.searchColumn(lastColumn, minuteValueAgain, 'end');\n break;\n default:\n const startIndex = inputEl.value.length - 4;\n const newString = inputEl.value.substring(startIndex);\n inputEl.value = newString;\n this.selectMultiColumn();\n break;\n }\n };\n /**\n * Searches the value of the active column\n * to determine which value users are trying\n * to select\n */\n this.onInputChange = () => {\n const { useInputMode, inputEl, inputModeColumn } = this;\n if (!useInputMode || !inputEl) {\n return;\n }\n if (inputModeColumn) {\n this.selectSingleColumn();\n }\n else {\n this.selectMultiColumn();\n }\n };\n /**\n * Emit ionInputModeChange. Picker columns\n * listen for this event to determine whether\n * or not their column is \"active\" for text input.\n */\n this.emitInputModeChange = () => {\n const { useInputMode, inputModeColumn } = this;\n this.ionInputModeChange.emit({\n useInputMode,\n inputModeColumn,\n });\n };\n }\n /**\n * When the picker is interacted with\n * we need to prevent touchstart so other\n * gestures do not fire. For example,\n * scrolling on the wheel picker\n * in ion-datetime should not cause\n * a card modal to swipe to close.\n */\n preventTouchStartPropagation(ev) {\n ev.stopPropagation();\n }\n componentWillLoad() {\n getElementRoot(this.el).addEventListener('focusin', this.onFocusIn);\n getElementRoot(this.el).addEventListener('focusout', this.onFocusOut);\n }\n render() {\n return (h(Host, { onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h(\"input\", { \"aria-hidden\": \"true\", tabindex: -1, inputmode: \"numeric\", type: \"number\", ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h(\"div\", { class: \"picker-before\" }), h(\"div\", { class: \"picker-after\" }), h(\"div\", { class: \"picker-highlight\", ref: (el) => (this.highlightEl = el) }), h(\"slot\", null)));\n }\n get el() { return this; }\n static get style() { return {\n ios: pickerInternalIosCss,\n md: pickerInternalMdCss\n }; }\n}, [33, \"ion-picker-internal\", undefined, [[1, \"touchstart\", \"preventTouchStartPropagation\"]]]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker-internal\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-picker-internal\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, PickerInternal);\n }\n break;\n } });\n}\n\nexport { PickerInternal as P, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { c as componentOnReady } from './helpers.js';\n\nconst attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {\n var _a;\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = typeof component === 'string' ? (_a = container.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(component) : component;\n if (cssClasses) {\n cssClasses.forEach((c) => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n await new Promise((resolve) => componentOnReady(el, resolve));\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\nconst CoreDelegate = () => {\n let BaseComponent;\n let Reference;\n const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {\n var _a, _b;\n BaseComponent = parentElement;\n /**\n * If passing in a component via the `component` props\n * we need to append it inside of our overlay component.\n */\n if (userComponent) {\n /**\n * If passing in the tag name, create\n * the element otherwise just get a reference\n * to the component.\n */\n const el = typeof userComponent === 'string' ? (_a = BaseComponent.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(userComponent) : userComponent;\n /**\n * Add any css classes passed in\n * via the cssClasses prop on the overlay.\n */\n cssClasses.forEach((c) => el.classList.add(c));\n /**\n * Add any props passed in\n * via the componentProps prop on the overlay.\n */\n Object.assign(el, userComponentProps);\n /**\n * Finally, append the component\n * inside of the overlay component.\n */\n BaseComponent.appendChild(el);\n await new Promise((resolve) => componentOnReady(el, resolve));\n }\n else if (BaseComponent.children.length > 0) {\n const root = BaseComponent.children[0];\n if (!root.classList.contains('ion-delegate-host')) {\n /**\n * If the root element is not a delegate host, it means\n * that the overlay has not been presented yet and we need\n * to create the containing element with the specified classes.\n */\n const el = (_b = BaseComponent.ownerDocument) === null || _b === void 0 ? void 0 : _b.createElement('div');\n // Add a class to track if the root element was created by the delegate.\n el.classList.add('ion-delegate-host');\n cssClasses.forEach((c) => el.classList.add(c));\n // Move each child from the original template to the new parent element.\n el.append(...BaseComponent.children);\n // Append the new parent element to the original parent element.\n BaseComponent.appendChild(el);\n }\n }\n /**\n * Get the root of the app and\n * add the overlay there.\n */\n const app = document.querySelector('ion-app') || document.body;\n /**\n * Create a placeholder comment so that\n * we can return this component to where\n * it was previously.\n */\n Reference = document.createComment('ionic teleport');\n BaseComponent.parentNode.insertBefore(Reference, BaseComponent);\n app.appendChild(BaseComponent);\n return BaseComponent;\n };\n const removeViewFromDom = () => {\n /**\n * Return component to where it was previously in the DOM.\n */\n if (BaseComponent && Reference) {\n Reference.parentNode.insertBefore(BaseComponent, Reference);\n Reference.remove();\n }\n return Promise.resolve();\n };\n return { attachViewToDom, removeViewFromDom };\n};\n\nexport { CoreDelegate as C, attachComponent as a, detachComponent as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, a as isPlatform } from './ionic-global.js';\nimport { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate.js';\nimport { r as raf, g as getElementRoot, a as addEventListener } from './helpers.js';\nimport { B as BACKDROP, d as prepareOverlay, e as present, k as focusFirstDescendant, f as dismiss, g as eventMethod } from './overlays.js';\nimport { g as getClassMap } from './theme.js';\nimport { e as deepReady } from './index4.js';\nimport { c as createAnimation } from './animation.js';\nimport { d as defineCustomElement$1 } from './backdrop.js';\n\n/**\n * Returns the dimensions of the popover\n * arrow on `ios` mode. If arrow is disabled\n * returns (0, 0).\n */\nconst getArrowDimensions = (arrowEl) => {\n if (!arrowEl) {\n return { arrowWidth: 0, arrowHeight: 0 };\n }\n const { width, height } = arrowEl.getBoundingClientRect();\n return { arrowWidth: width, arrowHeight: height };\n};\n/**\n * Returns the recommended dimensions of the popover\n * that takes into account whether or not the width\n * should match the trigger width.\n */\nconst getPopoverDimensions = (size, contentEl, triggerEl) => {\n const contentDimentions = contentEl.getBoundingClientRect();\n const contentHeight = contentDimentions.height;\n let contentWidth = contentDimentions.width;\n if (size === 'cover' && triggerEl) {\n const triggerDimensions = triggerEl.getBoundingClientRect();\n contentWidth = triggerDimensions.width;\n }\n return {\n contentWidth,\n contentHeight,\n };\n};\nconst configureDismissInteraction = (triggerEl, triggerAction, popoverEl, parentPopoverEl) => {\n let dismissCallbacks = [];\n const root = getElementRoot(parentPopoverEl);\n const parentContentEl = root.querySelector('.popover-content');\n switch (triggerAction) {\n case 'hover':\n dismissCallbacks = [\n {\n /**\n * Do not use mouseover here\n * as this will causes the event to\n * be dispatched on each underlying\n * element rather than on the popover\n * content as a whole.\n */\n eventName: 'mouseenter',\n callback: (ev) => {\n /**\n * Do not dismiss the popover is we\n * are hovering over its trigger.\n * This would be easier if we used mouseover\n * but this would cause the event to be dispatched\n * more often than we would like, potentially\n * causing performance issues.\n */\n const element = document.elementFromPoint(ev.clientX, ev.clientY);\n if (element === triggerEl) {\n return;\n }\n popoverEl.dismiss(undefined, undefined, false);\n },\n },\n ];\n break;\n case 'context-menu':\n case 'click':\n default:\n dismissCallbacks = [\n {\n eventName: 'click',\n callback: (ev) => {\n /**\n * Do not dismiss the popover is we\n * are hovering over its trigger.\n */\n const target = ev.target;\n const closestTrigger = target.closest('[data-ion-popover-trigger]');\n if (closestTrigger === triggerEl) {\n /**\n * stopPropagation here so if the\n * popover has dismissOnSelect=\"true\"\n * the popover does not dismiss since\n * we just clicked a trigger element.\n */\n ev.stopPropagation();\n return;\n }\n popoverEl.dismiss(undefined, undefined, false);\n },\n },\n ];\n break;\n }\n dismissCallbacks.forEach(({ eventName, callback }) => parentContentEl.addEventListener(eventName, callback));\n return () => {\n dismissCallbacks.forEach(({ eventName, callback }) => parentContentEl.removeEventListener(eventName, callback));\n };\n};\n/**\n * Configures the triggerEl to respond\n * to user interaction based upon the triggerAction\n * prop that devs have defined.\n */\nconst configureTriggerInteraction = (triggerEl, triggerAction, popoverEl) => {\n let triggerCallbacks = [];\n /**\n * Based upon the kind of trigger interaction\n * the user wants, we setup the correct event\n * listeners.\n */\n switch (triggerAction) {\n case 'hover':\n let hoverTimeout;\n triggerCallbacks = [\n {\n eventName: 'mouseenter',\n callback: async (ev) => {\n ev.stopPropagation();\n if (hoverTimeout) {\n clearTimeout(hoverTimeout);\n }\n /**\n * Hovering over a trigger should not\n * immediately open the next popover.\n */\n hoverTimeout = setTimeout(() => {\n raf(() => {\n popoverEl.presentFromTrigger(ev);\n hoverTimeout = undefined;\n });\n }, 100);\n },\n },\n {\n eventName: 'mouseleave',\n callback: (ev) => {\n if (hoverTimeout) {\n clearTimeout(hoverTimeout);\n }\n /**\n * If mouse is over another popover\n * that is not this popover then we should\n * close this popover.\n */\n const target = ev.relatedTarget;\n if (!target) {\n return;\n }\n if (target.closest('ion-popover') !== popoverEl) {\n popoverEl.dismiss(undefined, undefined, false);\n }\n },\n },\n {\n /**\n * stopPropagation here prevents the popover\n * from dismissing when dismiss-on-select=\"true\".\n */\n eventName: 'click',\n callback: (ev) => ev.stopPropagation(),\n },\n {\n eventName: 'ionPopoverActivateTrigger',\n callback: (ev) => popoverEl.presentFromTrigger(ev, true),\n },\n ];\n break;\n case 'context-menu':\n triggerCallbacks = [\n {\n eventName: 'contextmenu',\n callback: (ev) => {\n /**\n * Prevents the platform context\n * menu from appearing.\n */\n ev.preventDefault();\n popoverEl.presentFromTrigger(ev);\n },\n },\n {\n eventName: 'click',\n callback: (ev) => ev.stopPropagation(),\n },\n {\n eventName: 'ionPopoverActivateTrigger',\n callback: (ev) => popoverEl.presentFromTrigger(ev, true),\n },\n ];\n break;\n case 'click':\n default:\n triggerCallbacks = [\n {\n /**\n * Do not do a stopPropagation() here\n * because if you had two click triggers\n * then clicking the first trigger and then\n * clicking the second trigger would not cause\n * the first popover to dismiss.\n */\n eventName: 'click',\n callback: (ev) => popoverEl.presentFromTrigger(ev),\n },\n {\n eventName: 'ionPopoverActivateTrigger',\n callback: (ev) => popoverEl.presentFromTrigger(ev, true),\n },\n ];\n break;\n }\n triggerCallbacks.forEach(({ eventName, callback }) => triggerEl.addEventListener(eventName, callback));\n triggerEl.setAttribute('data-ion-popover-trigger', 'true');\n return () => {\n triggerCallbacks.forEach(({ eventName, callback }) => triggerEl.removeEventListener(eventName, callback));\n triggerEl.removeAttribute('data-ion-popover-trigger');\n };\n};\n/**\n * Returns the index of an ion-item in an array of ion-items.\n */\nconst getIndexOfItem = (items, item) => {\n if (!item || item.tagName !== 'ION-ITEM') {\n return -1;\n }\n return items.findIndex((el) => el === item);\n};\n/**\n * Given an array of elements and a currently focused ion-item\n * returns the next ion-item relative to the focused one or\n * undefined.\n */\nconst getNextItem = (items, currentItem) => {\n const currentItemIndex = getIndexOfItem(items, currentItem);\n return items[currentItemIndex + 1];\n};\n/**\n * Given an array of elements and a currently focused ion-item\n * returns the previous ion-item relative to the focused one or\n * undefined.\n */\nconst getPrevItem = (items, currentItem) => {\n const currentItemIndex = getIndexOfItem(items, currentItem);\n return items[currentItemIndex - 1];\n};\n/** Focus the internal button of the ion-item */\nconst focusItem = (item) => {\n const root = getElementRoot(item);\n const button = root.querySelector('button');\n if (button) {\n raf(() => button.focus());\n }\n};\n/**\n * Returns `true` if `el` has been designated\n * as a trigger element for an ion-popover.\n */\nconst isTriggerElement = (el) => el.hasAttribute('data-ion-popover-trigger');\nconst configureKeyboardInteraction = (popoverEl) => {\n const callback = async (ev) => {\n var _a;\n const activeElement = document.activeElement;\n let items = [];\n const targetTagName = (_a = ev.target) === null || _a === void 0 ? void 0 : _a.tagName;\n /**\n * Only handle custom keyboard interactions for the host popover element\n * and children ion-item elements.\n */\n if (targetTagName !== 'ION-POPOVER' && targetTagName !== 'ION-ITEM') {\n return;\n }\n /**\n * Complex selectors with :not() are :not supported\n * in older versions of Chromium so we need to do a\n * try/catch here so errors are not thrown.\n */\n try {\n /**\n * Select all ion-items that are not children of child popovers.\n * i.e. only select ion-item elements that are part of this popover\n */\n items = Array.from(popoverEl.querySelectorAll('ion-item:not(ion-popover ion-popover *):not([disabled])'));\n /* eslint-disable-next-line */\n }\n catch (_b) { }\n switch (ev.key) {\n /**\n * If we are in a child popover\n * then pressing the left arrow key\n * should close this popover and move\n * focus to the popover that presented\n * this one.\n */\n case 'ArrowLeft':\n const parentPopover = await popoverEl.getParentPopover();\n if (parentPopover) {\n popoverEl.dismiss(undefined, undefined, false);\n }\n break;\n /**\n * ArrowDown should move focus to the next focusable ion-item.\n */\n case 'ArrowDown':\n // Disable movement/scroll with keyboard\n ev.preventDefault();\n const nextItem = getNextItem(items, activeElement);\n if (nextItem !== undefined) {\n focusItem(nextItem);\n }\n break;\n /**\n * ArrowUp should move focus to the previous focusable ion-item.\n */\n case 'ArrowUp':\n // Disable movement/scroll with keyboard\n ev.preventDefault();\n const prevItem = getPrevItem(items, activeElement);\n if (prevItem !== undefined) {\n focusItem(prevItem);\n }\n break;\n /**\n * Home should move focus to the first focusable ion-item.\n */\n case 'Home':\n ev.preventDefault();\n const firstItem = items[0];\n if (firstItem !== undefined) {\n focusItem(firstItem);\n }\n break;\n /**\n * End should move focus to the last focusable ion-item.\n */\n case 'End':\n ev.preventDefault();\n const lastItem = items[items.length - 1];\n if (lastItem !== undefined) {\n focusItem(lastItem);\n }\n break;\n /**\n * ArrowRight, Spacebar, or Enter should activate\n * the currently focused trigger item to open a\n * popover if the element is a trigger item.\n */\n case 'ArrowRight':\n case ' ':\n case 'Enter':\n if (activeElement && isTriggerElement(activeElement)) {\n const rightEvent = new CustomEvent('ionPopoverActivateTrigger');\n activeElement.dispatchEvent(rightEvent);\n }\n break;\n }\n };\n popoverEl.addEventListener('keydown', callback);\n return () => popoverEl.removeEventListener('keydown', callback);\n};\n/**\n * Positions a popover by taking into account\n * the reference point, preferred side, alignment\n * and viewport dimensions.\n */\nconst getPopoverPosition = (isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, triggerEl, event) => {\n var _a;\n let referenceCoordinates = {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n };\n /**\n * Calculate position relative to the\n * x-y coordinates in the event that\n * was passed in\n */\n switch (reference) {\n case 'event':\n if (!event) {\n return defaultPosition;\n }\n const mouseEv = event;\n referenceCoordinates = {\n top: mouseEv.clientY,\n left: mouseEv.clientX,\n width: 1,\n height: 1,\n };\n break;\n /**\n * Calculate position relative to the bounding\n * box on either the trigger element\n * specified via the `trigger` prop or\n * the target specified on the event\n * that was passed in.\n */\n case 'trigger':\n default:\n const customEv = event;\n /**\n * ionShadowTarget is used when we need to align the\n * popover with an element inside of the shadow root\n * of an Ionic component. Ex: Presenting a popover\n * by clicking on the collapsed indicator inside\n * of `ion-breadcrumb` and centering it relative\n * to the indicator rather than `ion-breadcrumb`\n * as a whole.\n */\n const actualTriggerEl = (triggerEl ||\n ((_a = customEv === null || customEv === void 0 ? void 0 : customEv.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) ||\n (customEv === null || customEv === void 0 ? void 0 : customEv.target));\n if (!actualTriggerEl) {\n return defaultPosition;\n }\n const triggerBoundingBox = actualTriggerEl.getBoundingClientRect();\n referenceCoordinates = {\n top: triggerBoundingBox.top,\n left: triggerBoundingBox.left,\n width: triggerBoundingBox.width,\n height: triggerBoundingBox.height,\n };\n break;\n }\n /**\n * Get top/left offset that would allow\n * popover to be positioned on the\n * preferred side of the reference.\n */\n const coordinates = calculatePopoverSide(side, referenceCoordinates, contentWidth, contentHeight, arrowWidth, arrowHeight, isRTL);\n /**\n * Get the top/left adjustments that\n * would allow the popover content\n * to have the correct alignment.\n */\n const alignedCoordinates = calculatePopoverAlign(align, side, referenceCoordinates, contentWidth, contentHeight);\n const top = coordinates.top + alignedCoordinates.top;\n const left = coordinates.left + alignedCoordinates.left;\n const { arrowTop, arrowLeft } = calculateArrowPosition(side, arrowWidth, arrowHeight, top, left, contentWidth, contentHeight, isRTL);\n const { originX, originY } = calculatePopoverOrigin(side, align, isRTL);\n return { top, left, referenceCoordinates, arrowTop, arrowLeft, originX, originY };\n};\n/**\n * Determines the transform-origin\n * of the popover animation so that it\n * is in line with what the side and alignment\n * prop values are. Currently only used\n * with the MD animation.\n */\nconst calculatePopoverOrigin = (side, align, isRTL) => {\n switch (side) {\n case 'top':\n return { originX: getOriginXAlignment(align), originY: 'bottom' };\n case 'bottom':\n return { originX: getOriginXAlignment(align), originY: 'top' };\n case 'left':\n return { originX: 'right', originY: getOriginYAlignment(align) };\n case 'right':\n return { originX: 'left', originY: getOriginYAlignment(align) };\n case 'start':\n return { originX: isRTL ? 'left' : 'right', originY: getOriginYAlignment(align) };\n case 'end':\n return { originX: isRTL ? 'right' : 'left', originY: getOriginYAlignment(align) };\n }\n};\nconst getOriginXAlignment = (align) => {\n switch (align) {\n case 'start':\n return 'left';\n case 'center':\n return 'center';\n case 'end':\n return 'right';\n }\n};\nconst getOriginYAlignment = (align) => {\n switch (align) {\n case 'start':\n return 'top';\n case 'center':\n return 'center';\n case 'end':\n return 'bottom';\n }\n};\n/**\n * Calculates where the arrow positioning\n * should be relative to the popover content.\n */\nconst calculateArrowPosition = (side, arrowWidth, arrowHeight, top, left, contentWidth, contentHeight, isRTL) => {\n /**\n * Note: When side is left, right, start, or end, the arrow is\n * been rotated using a `transform`, so to move the arrow up or down\n * by its dimension, you need to use `arrowWidth`.\n */\n const leftPosition = {\n arrowTop: top + contentHeight / 2 - arrowWidth / 2,\n arrowLeft: left + contentWidth - arrowWidth / 2,\n };\n /**\n * Move the arrow to the left by arrowWidth and then\n * again by half of its width because we have rotated\n * the arrow using a transform.\n */\n const rightPosition = { arrowTop: top + contentHeight / 2 - arrowWidth / 2, arrowLeft: left - arrowWidth * 1.5 };\n switch (side) {\n case 'top':\n return { arrowTop: top + contentHeight, arrowLeft: left + contentWidth / 2 - arrowWidth / 2 };\n case 'bottom':\n return { arrowTop: top - arrowHeight, arrowLeft: left + contentWidth / 2 - arrowWidth / 2 };\n case 'left':\n return leftPosition;\n case 'right':\n return rightPosition;\n case 'start':\n return isRTL ? rightPosition : leftPosition;\n case 'end':\n return isRTL ? leftPosition : rightPosition;\n default:\n return { arrowTop: 0, arrowLeft: 0 };\n }\n};\n/**\n * Calculates the required top/left\n * values needed to position the popover\n * content on the side specified in the\n * `side` prop.\n */\nconst calculatePopoverSide = (side, triggerBoundingBox, contentWidth, contentHeight, arrowWidth, arrowHeight, isRTL) => {\n const sideLeft = {\n top: triggerBoundingBox.top,\n left: triggerBoundingBox.left - contentWidth - arrowWidth,\n };\n const sideRight = {\n top: triggerBoundingBox.top,\n left: triggerBoundingBox.left + triggerBoundingBox.width + arrowWidth,\n };\n switch (side) {\n case 'top':\n return {\n top: triggerBoundingBox.top - contentHeight - arrowHeight,\n left: triggerBoundingBox.left,\n };\n case 'right':\n return sideRight;\n case 'bottom':\n return {\n top: triggerBoundingBox.top + triggerBoundingBox.height + arrowHeight,\n left: triggerBoundingBox.left,\n };\n case 'left':\n return sideLeft;\n case 'start':\n return isRTL ? sideRight : sideLeft;\n case 'end':\n return isRTL ? sideLeft : sideRight;\n }\n};\n/**\n * Calculates the required top/left\n * offset values needed to provide the\n * correct alignment regardless while taking\n * into account the side the popover is on.\n */\nconst calculatePopoverAlign = (align, side, triggerBoundingBox, contentWidth, contentHeight) => {\n switch (align) {\n case 'center':\n return calculatePopoverCenterAlign(side, triggerBoundingBox, contentWidth, contentHeight);\n case 'end':\n return calculatePopoverEndAlign(side, triggerBoundingBox, contentWidth, contentHeight);\n case 'start':\n default:\n return { top: 0, left: 0 };\n }\n};\n/**\n * Calculate the end alignment for\n * the popover. If side is on the x-axis\n * then the align values refer to the top\n * and bottom margins of the content.\n * If side is on the y-axis then the\n * align values refer to the left and right\n * margins of the content.\n */\nconst calculatePopoverEndAlign = (side, triggerBoundingBox, contentWidth, contentHeight) => {\n switch (side) {\n case 'start':\n case 'end':\n case 'left':\n case 'right':\n return {\n top: -(contentHeight - triggerBoundingBox.height),\n left: 0,\n };\n case 'top':\n case 'bottom':\n default:\n return {\n top: 0,\n left: -(contentWidth - triggerBoundingBox.width),\n };\n }\n};\n/**\n * Calculate the center alignment for\n * the popover. If side is on the x-axis\n * then the align values refer to the top\n * and bottom margins of the content.\n * If side is on the y-axis then the\n * align values refer to the left and right\n * margins of the content.\n */\nconst calculatePopoverCenterAlign = (side, triggerBoundingBox, contentWidth, contentHeight) => {\n switch (side) {\n case 'start':\n case 'end':\n case 'left':\n case 'right':\n return {\n top: -(contentHeight / 2 - triggerBoundingBox.height / 2),\n left: 0,\n };\n case 'top':\n case 'bottom':\n default:\n return {\n top: 0,\n left: -(contentWidth / 2 - triggerBoundingBox.width / 2),\n };\n }\n};\n/**\n * Adjusts popover positioning coordinates\n * such that popover does not appear offscreen\n * or overlapping safe area bounds.\n */\nconst calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeAreaMargin, contentOriginX, contentOriginY, triggerCoordinates, coordArrowTop = 0, coordArrowLeft = 0, arrowHeight = 0) => {\n let arrowTop = coordArrowTop;\n const arrowLeft = coordArrowLeft;\n let left = coordLeft;\n let top = coordTop;\n let bottom;\n let originX = contentOriginX;\n let originY = contentOriginY;\n let checkSafeAreaLeft = false;\n let checkSafeAreaRight = false;\n const triggerTop = triggerCoordinates\n ? triggerCoordinates.top + triggerCoordinates.height\n : bodyHeight / 2 - contentHeight / 2;\n const triggerHeight = triggerCoordinates ? triggerCoordinates.height : 0;\n let addPopoverBottomClass = false;\n /**\n * Adjust popover so it does not\n * go off the left of the screen.\n */\n if (left < bodyPadding + safeAreaMargin) {\n left = bodyPadding;\n checkSafeAreaLeft = true;\n originX = 'left';\n /**\n * Adjust popover so it does not\n * go off the right of the screen.\n */\n }\n else if (contentWidth + bodyPadding + left + safeAreaMargin > bodyWidth) {\n checkSafeAreaRight = true;\n left = bodyWidth - contentWidth - bodyPadding;\n originX = 'right';\n }\n /**\n * Adjust popover so it does not\n * go off the top of the screen.\n * If popover is on the left or the right of\n * the trigger, then we should not adjust top\n * margins.\n */\n if (triggerTop + triggerHeight + contentHeight > bodyHeight && (side === 'top' || side === 'bottom')) {\n if (triggerTop - contentHeight > 0) {\n /**\n * While we strive to align the popover with the trigger\n * on smaller screens this is not always possible. As a result,\n * we adjust the popover up so that it does not hang\n * off the bottom of the screen. However, we do not want to move\n * the popover up so much that it goes off the top of the screen.\n *\n * We chose 12 here so that the popover position looks a bit nicer as\n * it is not right up against the edge of the screen.\n */\n top = Math.max(12, triggerTop - contentHeight - triggerHeight - (arrowHeight - 1));\n arrowTop = top + contentHeight;\n originY = 'bottom';\n addPopoverBottomClass = true;\n /**\n * If not enough room for popover to appear\n * above trigger, then cut it off.\n */\n }\n else {\n bottom = bodyPadding;\n }\n }\n return {\n top,\n left,\n bottom,\n originX,\n originY,\n checkSafeAreaLeft,\n checkSafeAreaRight,\n arrowTop,\n arrowLeft,\n addPopoverBottomClass,\n };\n};\nconst shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {\n /**\n * If no event provided and\n * we do not have a trigger,\n * then this popover was likely\n * presented via the popoverController\n * or users called `present` manually.\n * In this case, the arrow should not be\n * shown as we do not have a reference.\n */\n if (!ev && !trigger) {\n return false;\n }\n /**\n * If popover is on the left or the right\n * of a trigger, but we needed to adjust the\n * popover due to screen bounds, then we should\n * hide the arrow as it will never be pointing\n * at the trigger.\n */\n if (side !== 'top' && side !== 'bottom' && didAdjustBounds) {\n return false;\n }\n return true;\n};\n\nconst POPOVER_IOS_BODY_PADDING = 5;\n/**\n * iOS Popover Enter Animation\n */\nconst iosEnterAnimation = (baseEl, opts) => {\n var _a;\n const { event: ev, size, trigger, reference, side, align } = opts;\n const doc = baseEl.ownerDocument;\n const isRTL = doc.dir === 'rtl';\n const bodyWidth = doc.defaultView.innerWidth;\n const bodyHeight = doc.defaultView.innerHeight;\n const root = getElementRoot(baseEl);\n const contentEl = root.querySelector('.popover-content');\n const arrowEl = root.querySelector('.popover-arrow');\n const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);\n const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);\n const { arrowWidth, arrowHeight } = getArrowDimensions(arrowEl);\n const defaultPosition = {\n top: bodyHeight / 2 - contentHeight / 2,\n left: bodyWidth / 2 - contentWidth / 2,\n originX: isRTL ? 'right' : 'left',\n originY: 'top',\n };\n const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);\n const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;\n const margin = size === 'cover' ? 0 : 25;\n const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, arrowTop, arrowLeft, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, margin, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(root.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).fromTo('opacity', 0.01, 1);\n return baseAnimation\n .easing('ease')\n .duration(100)\n .beforeAddWrite(() => {\n if (size === 'cover') {\n baseEl.style.setProperty('--width', `${contentWidth}px`);\n }\n if (addPopoverBottomClass) {\n baseEl.classList.add('popover-bottom');\n }\n if (bottom !== undefined) {\n contentEl.style.setProperty('bottom', `${bottom}px`);\n }\n const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';\n const safeAreaRight = ' - var(--ion-safe-area-right, 0)';\n let leftValue = `${left}px`;\n if (checkSafeAreaLeft) {\n leftValue = `${left}px${safeAreaLeft}`;\n }\n if (checkSafeAreaRight) {\n leftValue = `${left}px${safeAreaRight}`;\n }\n contentEl.style.setProperty('top', `calc(${top}px + var(--offset-y, 0))`);\n contentEl.style.setProperty('left', `calc(${leftValue} + var(--offset-x, 0))`);\n contentEl.style.setProperty('transform-origin', `${originY} ${originX}`);\n if (arrowEl !== null) {\n const didAdjustBounds = results.top !== top || results.left !== left;\n const showArrow = shouldShowArrow(side, didAdjustBounds, ev, trigger);\n if (showArrow) {\n arrowEl.style.setProperty('top', `calc(${arrowTop}px + var(--offset-y, 0))`);\n arrowEl.style.setProperty('left', `calc(${arrowLeft}px + var(--offset-x, 0))`);\n }\n else {\n arrowEl.style.setProperty('display', 'none');\n }\n }\n })\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Popover Leave Animation\n */\nconst iosLeaveAnimation = (baseEl) => {\n const root = getElementRoot(baseEl);\n const contentEl = root.querySelector('.popover-content');\n const arrowEl = root.querySelector('.popover-arrow');\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(root.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).fromTo('opacity', 0.99, 0);\n return baseAnimation\n .easing('ease')\n .afterAddWrite(() => {\n baseEl.style.removeProperty('--width');\n baseEl.classList.remove('popover-bottom');\n contentEl.style.removeProperty('top');\n contentEl.style.removeProperty('left');\n contentEl.style.removeProperty('bottom');\n contentEl.style.removeProperty('transform-origin');\n if (arrowEl) {\n arrowEl.style.removeProperty('top');\n arrowEl.style.removeProperty('left');\n arrowEl.style.removeProperty('display');\n }\n })\n .duration(300)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst POPOVER_MD_BODY_PADDING = 12;\n/**\n * Md Popover Enter Animation\n */\nconst mdEnterAnimation = (baseEl, opts) => {\n var _a;\n const { event: ev, size, trigger, reference, side, align } = opts;\n const doc = baseEl.ownerDocument;\n const isRTL = doc.dir === 'rtl';\n const bodyWidth = doc.defaultView.innerWidth;\n const bodyHeight = doc.defaultView.innerHeight;\n const root = getElementRoot(baseEl);\n const contentEl = root.querySelector('.popover-content');\n const referenceSizeEl = trigger || ((_a = ev === null || ev === void 0 ? void 0 : ev.detail) === null || _a === void 0 ? void 0 : _a.ionShadowTarget) || (ev === null || ev === void 0 ? void 0 : ev.target);\n const { contentWidth, contentHeight } = getPopoverDimensions(size, contentEl, referenceSizeEl);\n const defaultPosition = {\n top: bodyHeight / 2 - contentHeight / 2,\n left: bodyWidth / 2 - contentWidth / 2,\n originX: isRTL ? 'right' : 'left',\n originY: 'top',\n };\n const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);\n const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;\n const { originX, originY, top, left, bottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n const contentAnimation = createAnimation();\n const viewportAnimation = createAnimation();\n backdropAnimation\n .addElement(root.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).duration(150).fromTo('opacity', 0.01, 1);\n contentAnimation\n .addElement(contentEl)\n .beforeStyles({\n top: `calc(${top}px + var(--offset-y, 0px))`,\n left: `calc(${left}px + var(--offset-x, 0px))`,\n 'transform-origin': `${originY} ${originX}`,\n })\n .beforeAddWrite(() => {\n if (bottom !== undefined) {\n contentEl.style.setProperty('bottom', `${bottom}px`);\n }\n })\n .fromTo('transform', 'scale(0.8)', 'scale(1)');\n viewportAnimation.addElement(root.querySelector('.popover-viewport')).fromTo('opacity', 0.01, 1);\n return baseAnimation\n .easing('cubic-bezier(0.36,0.66,0.04,1)')\n .duration(300)\n .beforeAddWrite(() => {\n if (size === 'cover') {\n baseEl.style.setProperty('--width', `${contentWidth}px`);\n }\n if (originY === 'bottom') {\n baseEl.classList.add('popover-bottom');\n }\n })\n .addAnimation([backdropAnimation, wrapperAnimation, contentAnimation, viewportAnimation]);\n};\n\n/**\n * Md Popover Leave Animation\n */\nconst mdLeaveAnimation = (baseEl) => {\n const root = getElementRoot(baseEl);\n const contentEl = root.querySelector('.popover-content');\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(root.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(root.querySelector('.popover-wrapper')).fromTo('opacity', 0.99, 0);\n return baseAnimation\n .easing('ease')\n .afterAddWrite(() => {\n baseEl.style.removeProperty('--width');\n baseEl.classList.remove('popover-bottom');\n contentEl.style.removeProperty('top');\n contentEl.style.removeProperty('left');\n contentEl.style.removeProperty('bottom');\n contentEl.style.removeProperty('transform-origin');\n })\n .duration(150)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst popoverIosCss = \":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{opacity:0;z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, #e6e6e6)}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden}.popover-arrow::after{left:3px;top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:\\\"\\\";z-index:10}[dir=rtl] .popover-arrow::after,:host-context([dir=rtl]) .popover-arrow::after{left:unset;right:unset;right:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}\";\n\nconst popoverMdCss = \":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{opacity:0;z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}[dir=rtl] .popover-content,:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}\";\n\nconst Popover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.didPresent = createEvent(this, \"ionPopoverDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionPopoverWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionPopoverWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionPopoverDidDismiss\", 7);\n this.didPresentShorthand = createEvent(this, \"didPresent\", 7);\n this.willPresentShorthand = createEvent(this, \"willPresent\", 7);\n this.willDismissShorthand = createEvent(this, \"willDismiss\", 7);\n this.didDismissShorthand = createEvent(this, \"didDismiss\", 7);\n this.ionMount = createEvent(this, \"ionMount\", 7);\n this.parentPopover = null;\n this.popoverIndex = popoverIds++;\n this.coreDelegate = CoreDelegate();\n this.inline = false;\n this.focusDescendantOnPresent = false;\n this.presented = false;\n /** @internal */\n this.hasController = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * If `true`, the popover will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, a backdrop will be displayed behind the popover.\n * This property controls whether or not the backdrop\n * darkens the screen when the popover is presented.\n * It does not control whether or not the backdrop\n * is active or present in the DOM.\n */\n this.showBackdrop = true;\n /**\n * If `true`, the popover will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the popover will animate.\n */\n this.animated = true;\n /**\n * Describes what kind of interaction with the trigger that\n * should cause the popover to open. Does not apply when the `trigger`\n * property is `undefined`.\n * If `'click'`, the popover will be presented when the trigger is left clicked.\n * If `'hover'`, the popover will be presented when a pointer hovers over the trigger.\n * If `'context-menu'`, the popover will be presented when the trigger is right\n * clicked on desktop and long pressed on mobile. This will also prevent your\n * device's normal context menu from appearing.\n */\n this.triggerAction = 'click';\n /**\n * Describes how to calculate the popover width.\n * If `'cover'`, the popover width will match the width of the trigger.\n * If `'auto'`, the popover width will be determined by the content in\n * the popover.\n */\n this.size = 'auto';\n /**\n * If `true`, the popover will be automatically\n * dismissed when the content has been clicked.\n */\n this.dismissOnSelect = false;\n /**\n * Describes what to position the popover relative to.\n * If `'trigger'`, the popover will be positioned relative\n * to the trigger button. If passing in an event, this is\n * determined via event.target.\n * If `'event'`, the popover will be positioned relative\n * to the x/y coordinates of the trigger action. If passing\n * in an event, this is determined via event.clientX and event.clientY.\n */\n this.reference = 'trigger';\n /**\n * Describes which side of the `reference` point to position\n * the popover on. The `'start'` and `'end'` values are RTL-aware,\n * and the `'left'` and `'right'` values are not.\n */\n this.side = 'bottom';\n /**\n * If `true`, the popover will display an arrow that points at the\n * `reference` when running in `ios` mode. Does not apply in `md` mode.\n */\n this.arrow = true;\n /**\n * If `true`, the popover will open. If `false`, the popover will close.\n * Use this if you need finer grained control over presentation, otherwise\n * just use the popoverController or the `trigger` property.\n * Note: `isOpen` will not automatically be set back to `false` when\n * the popover dismisses. You will need to do that in your code.\n */\n this.isOpen = false;\n /**\n * @internal\n *\n * If `true` the popover will not register its own keyboard event handlers.\n * This allows the contents of the popover to handle their own keyboard interactions.\n *\n * If `false`, the popover will register its own keyboard event handlers for\n * navigating `ion-list` items within a popover (up/down/home/end/etc.).\n * This will also cancel browser keyboard event bindings to prevent scroll\n * behavior in a popover using a list of items.\n */\n this.keyboardEvents = false;\n /**\n * If `true`, the component passed into `ion-popover` will\n * automatically be mounted when the popover is created. The\n * component will remain mounted even when the popover is dismissed.\n * However, the component will be destroyed when the popover is\n * destroyed. This property is not reactive and should only be\n * used when initially creating a popover.\n *\n * Note: This feature only applies to inline popovers in JavaScript\n * frameworks such as Angular, React, and Vue.\n */\n this.keepContentsMounted = false;\n this.onBackdropTap = () => {\n this.dismiss(undefined, BACKDROP);\n };\n this.onLifecycle = (modalEvent) => {\n const el = this.usersElement;\n const name = LIFECYCLE_MAP[modalEvent.type];\n if (el && name) {\n const event = new CustomEvent(name, {\n bubbles: false,\n cancelable: false,\n detail: modalEvent.detail,\n });\n el.dispatchEvent(event);\n }\n };\n this.configureTriggerInteraction = () => {\n const { trigger, triggerAction, el, destroyTriggerInteraction } = this;\n if (destroyTriggerInteraction) {\n destroyTriggerInteraction();\n }\n const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);\n if (!triggerEl) {\n return;\n }\n this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);\n };\n this.configureKeyboardInteraction = () => {\n const { destroyKeyboardInteraction, el } = this;\n if (destroyKeyboardInteraction) {\n destroyKeyboardInteraction();\n }\n this.destroyKeyboardInteraction = configureKeyboardInteraction(el);\n };\n this.configureDismissInteraction = () => {\n const { destroyDismissInteraction, parentPopover, triggerAction, triggerEl, el } = this;\n if (!parentPopover || !triggerEl) {\n return;\n }\n if (destroyDismissInteraction) {\n destroyDismissInteraction();\n }\n this.destroyDismissInteraction = configureDismissInteraction(triggerEl, triggerAction, el, parentPopover);\n };\n }\n onTriggerChange() {\n this.configureTriggerInteraction();\n }\n onIsOpenChange(newValue, oldValue) {\n if (newValue === true && oldValue === false) {\n this.present();\n }\n else if (newValue === false && oldValue === true) {\n this.dismiss();\n }\n }\n connectedCallback() {\n const { configureTriggerInteraction, el } = this;\n prepareOverlay(el);\n configureTriggerInteraction();\n }\n disconnectedCallback() {\n const { destroyTriggerInteraction } = this;\n if (destroyTriggerInteraction) {\n destroyTriggerInteraction();\n }\n }\n componentWillLoad() {\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n this.popoverId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-popover-${this.popoverIndex}`;\n this.parentPopover = this.el.closest(`ion-popover:not(#${this.popoverId})`);\n if (this.alignment === undefined) {\n this.alignment = getIonMode(this) === 'ios' ? 'center' : 'start';\n }\n }\n componentDidLoad() {\n const { parentPopover, isOpen } = this;\n /**\n * If popover was rendered with isOpen=\"true\"\n * then we should open popover immediately.\n */\n if (isOpen === true) {\n raf(() => this.present());\n }\n if (parentPopover) {\n addEventListener(parentPopover, 'ionPopoverWillDismiss', () => {\n this.dismiss(undefined, undefined, false);\n });\n }\n }\n /**\n * When opening a popover from a trigger, we should not be\n * modifying the `event` prop from inside the component.\n * Additionally, when pressing the \"Right\" arrow key, we need\n * to shift focus to the first descendant in the newly presented\n * popover.\n *\n * @internal\n */\n async presentFromTrigger(event, focusDescendant = false) {\n this.focusDescendantOnPresent = focusDescendant;\n await this.present(event);\n this.focusDescendantOnPresent = false;\n }\n /**\n * Determines whether or not an overlay\n * is being used inline or via a controller/JS\n * and returns the correct delegate.\n * By default, subsequent calls to getDelegate\n * will use a cached version of the delegate.\n * This is useful for calling dismiss after\n * present so that the correct delegate is given.\n */\n getDelegate(force = false) {\n if (this.workingDelegate && !force) {\n return {\n delegate: this.workingDelegate,\n inline: this.inline,\n };\n }\n /**\n * If using overlay inline\n * we potentially need to use the coreDelegate\n * so that this works in vanilla JS apps.\n * If a developer has presented this component\n * via a controller, then we can assume\n * the component is already in the\n * correct place.\n */\n const parentEl = this.el.parentNode;\n const inline = (this.inline = parentEl !== null && !this.hasController);\n const delegate = (this.workingDelegate = inline ? this.delegate || this.coreDelegate : this.delegate);\n return { inline, delegate };\n }\n /**\n * Present the popover overlay after it has been created.\n * Developers can pass a mouse, touch, or pointer event\n * to position the popover relative to where that event\n * was dispatched.\n */\n async present(event) {\n if (this.presented) {\n return;\n }\n /**\n * When using an inline popover\n * and dismissing a popover it is possible to\n * quickly present the popover while it is\n * dismissing. We need to await any current\n * transition to allow the dismiss to finish\n * before presenting again.\n */\n if (this.currentTransition !== undefined) {\n await this.currentTransition;\n }\n const data = Object.assign(Object.assign({}, this.componentProps), { popover: this.el });\n const { inline, delegate } = this.getDelegate(true);\n this.usersElement = await attachComponent(delegate, this.el, this.component, ['popover-viewport'], data, inline);\n await deepReady(this.usersElement);\n if (!this.keyboardEvents) {\n this.configureKeyboardInteraction();\n }\n this.configureDismissInteraction();\n this.ionMount.emit();\n return new Promise((resolve) => {\n /**\n * Wait two request animation frame loops before presenting the popover.\n * This allows the framework implementations enough time to mount\n * the popover contents, so the bounding box is set when the popover\n * transition starts.\n *\n * On Angular and React, a single raf is enough time, but for Vue\n * we need to wait two rafs. As a result we are using two rafs for\n * all frameworks to ensure the popover is presented correctly.\n */\n raf(() => {\n raf(async () => {\n this.currentTransition = present(this, 'popoverEnter', iosEnterAnimation, mdEnterAnimation, {\n event: event || this.event,\n size: this.size,\n trigger: this.triggerEl,\n reference: this.reference,\n side: this.side,\n align: this.alignment,\n });\n await this.currentTransition;\n this.currentTransition = undefined;\n /**\n * If popover is nested and was\n * presented using the \"Right\" arrow key,\n * we need to move focus to the first\n * descendant inside of the popover.\n */\n if (this.focusDescendantOnPresent) {\n focusFirstDescendant(this.el, this.el);\n }\n resolve();\n });\n });\n });\n }\n /**\n * Dismiss the popover overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.\n * @param dismissParentPopover If `true`, dismissing this popover will also dismiss\n * a parent popover if this popover is nested. Defaults to `true`.\n */\n async dismiss(data, role, dismissParentPopover = true) {\n /**\n * When using an inline popover\n * and presenting a popover it is possible to\n * quickly dismiss the popover while it is\n * presenting. We need to await any current\n * transition to allow the present to finish\n * before dismissing again.\n */\n if (this.currentTransition !== undefined) {\n await this.currentTransition;\n }\n const { destroyKeyboardInteraction, destroyDismissInteraction } = this;\n if (dismissParentPopover && this.parentPopover) {\n this.parentPopover.dismiss(data, role, dismissParentPopover);\n }\n this.currentTransition = dismiss(this, data, role, 'popoverLeave', iosLeaveAnimation, mdLeaveAnimation, this.event);\n const shouldDismiss = await this.currentTransition;\n if (shouldDismiss) {\n if (destroyKeyboardInteraction) {\n destroyKeyboardInteraction();\n this.destroyKeyboardInteraction = undefined;\n }\n if (destroyDismissInteraction) {\n destroyDismissInteraction();\n this.destroyDismissInteraction = undefined;\n }\n /**\n * If using popover inline\n * we potentially need to use the coreDelegate\n * so that this works in vanilla JS apps\n */\n const { delegate } = this.getDelegate();\n await detachComponent(delegate, this.usersElement);\n }\n this.currentTransition = undefined;\n return shouldDismiss;\n }\n /**\n * @internal\n */\n async getParentPopover() {\n return this.parentPopover;\n }\n /**\n * Returns a promise that resolves when the popover did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionPopoverDidDismiss');\n }\n /**\n * Returns a promise that resolves when the popover will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionPopoverWillDismiss');\n }\n render() {\n const mode = getIonMode(this);\n const { onLifecycle, popoverId, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;\n const desktop = isPlatform('desktop');\n const enableArrow = arrow && !parentPopover;\n return (h(Host, Object.assign({ \"aria-modal\": \"true\", \"no-router\": true, tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${20000 + this.overlayIndex}`,\n }, id: popoverId, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h(\"ion-backdrop\", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: \"backdrop\" }), h(\"div\", { class: \"popover-wrapper ion-overlay-wrapper\", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h(\"div\", { class: \"popover-arrow\", part: \"arrow\" }), h(\"div\", { class: \"popover-content\", part: \"content\" }, h(\"slot\", null)))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"trigger\": [\"onTriggerChange\"],\n \"triggerAction\": [\"onTriggerChange\"],\n \"isOpen\": [\"onIsOpenChange\"]\n }; }\n static get style() { return {\n ios: popoverIosCss,\n md: popoverMdCss\n }; }\n}, [33, \"ion-popover\", {\n \"hasController\": [4, \"has-controller\"],\n \"delegate\": [16],\n \"overlayIndex\": [2, \"overlay-index\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"component\": [1],\n \"componentProps\": [16],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"cssClass\": [1, \"css-class\"],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"event\": [8],\n \"showBackdrop\": [4, \"show-backdrop\"],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"triggerAction\": [1, \"trigger-action\"],\n \"trigger\": [1],\n \"size\": [1],\n \"dismissOnSelect\": [4, \"dismiss-on-select\"],\n \"reference\": [1],\n \"side\": [1],\n \"alignment\": [1025],\n \"arrow\": [4],\n \"isOpen\": [4, \"is-open\"],\n \"keyboardEvents\": [4, \"keyboard-events\"],\n \"keepContentsMounted\": [4, \"keep-contents-mounted\"],\n \"presented\": [32],\n \"presentFromTrigger\": [64],\n \"present\": [64],\n \"dismiss\": [64],\n \"getParentPopover\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n }]);\nconst LIFECYCLE_MAP = {\n ionPopoverDidPresent: 'ionViewDidEnter',\n ionPopoverWillPresent: 'ionViewWillEnter',\n ionPopoverWillDismiss: 'ionViewWillLeave',\n ionPopoverDidDismiss: 'ionViewDidLeave',\n};\nlet popoverIds = 0;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-popover\", \"ion-backdrop\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-popover\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Popover);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { Popover as P, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, h, Host } from '@stencil/core/internal/client';\nimport { a as chevronBack, f as chevronForward, c as chevronDown, g as caretUpSharp, h as caretDownSharp } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { startFocusVisible } from './focus-visible.js';\nimport { r as raf, e as renderHiddenInput, g as getElementRoot } from './helpers.js';\nimport { p as printIonWarning, a as printIonError } from './index8.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses } from './theme.js';\nimport { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getMonthAndYear, G as getDaysOfWeek, H as getDaysOfMonth, I as generateMonths, J as is24Hour, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data.js';\nimport { d as defineCustomElement$c } from './backdrop.js';\nimport { d as defineCustomElement$b } from './button.js';\nimport { d as defineCustomElement$a } from './buttons.js';\nimport { d as defineCustomElement$9 } from './icon.js';\nimport { d as defineCustomElement$8 } from './item.js';\nimport { d as defineCustomElement$7 } from './label.js';\nimport { d as defineCustomElement$6 } from './note.js';\nimport { d as defineCustomElement$5 } from './picker-column-internal.js';\nimport { d as defineCustomElement$4 } from './picker-internal.js';\nimport { d as defineCustomElement$3 } from './popover.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst isYearDisabled = (refYear, minParts, maxParts) => {\n if (minParts && minParts.year > refYear) {\n return true;\n }\n if (maxParts && maxParts.year < refYear) {\n return true;\n }\n return false;\n};\n/**\n * Returns true if a given day should\n * not be interactive according to its value,\n * or the max/min dates.\n */\nconst isDayDisabled = (refParts, minParts, maxParts, dayValues) => {\n /**\n * If this is a filler date (i.e. padding)\n * then the date is disabled.\n */\n if (refParts.day === null) {\n return true;\n }\n /**\n * If user passed in a list of acceptable day values\n * check to make sure that the date we are looking\n * at is in this array.\n */\n if (dayValues !== undefined && !dayValues.includes(refParts.day)) {\n return true;\n }\n /**\n * Given a min date, perform the following\n * checks. If any of them are true, then the\n * day should be disabled:\n * 1. Is the current year < the min allowed year?\n * 2. Is the current year === min allowed year,\n * but the current month < the min allowed month?\n * 3. Is the current year === min allowed year, the\n * current month === min allow month, but the current\n * day < the min allowed day?\n */\n if (minParts && isBefore(refParts, minParts)) {\n return true;\n }\n /**\n * Given a max date, perform the following\n * checks. If any of them are true, then the\n * day should be disabled:\n * 1. Is the current year > the max allowed year?\n * 2. Is the current year === max allowed year,\n * but the current month > the max allowed month?\n * 3. Is the current year === max allowed year, the\n * current month === max allow month, but the current\n * day > the max allowed day?\n */\n if (maxParts && isAfter(refParts, maxParts)) {\n return true;\n }\n /**\n * If none of these checks\n * passed then the date should\n * be interactive.\n */\n return false;\n};\n/**\n * Given a locale, a date, the selected date(s), and today's date,\n * generate the state for a given calendar day button.\n */\nconst getCalendarDayState = (locale, refParts, activeParts, todayParts, minParts, maxParts, dayValues) => {\n /**\n * activeParts signals what day(s) are currently selected in the datetime.\n * If multiple=\"true\", this will be an array, but the logic in this util\n * is the same whether we have one selected day or many because we're only\n * calculating the state for one button. So, we treat a single activeParts value\n * the same as an array of length one.\n */\n const activePartsArray = Array.isArray(activeParts) ? activeParts : [activeParts];\n /**\n * The day button is active if it is selected, or in other words, if refParts\n * matches at least one selected date.\n */\n const isActive = activePartsArray.find((parts) => isSameDay(refParts, parts)) !== undefined;\n const isToday = isSameDay(refParts, todayParts);\n const disabled = isDayDisabled(refParts, minParts, maxParts, dayValues);\n /**\n * Note that we always return one object regardless of whether activeParts\n * was an array, since we pare down to one value for isActive.\n */\n return {\n disabled,\n isActive,\n isToday,\n ariaSelected: isActive ? 'true' : null,\n ariaLabel: generateDayAriaLabel(locale, isToday, refParts),\n text: refParts.day != null ? getDay(locale, refParts) : null,\n };\n};\n/**\n * Returns `true` if the month is disabled given the\n * current date value and min/max date constraints.\n */\nconst isMonthDisabled = (refParts, { minParts, maxParts, }) => {\n // If the year is disabled then the month is disabled.\n if (isYearDisabled(refParts.year, minParts, maxParts)) {\n return true;\n }\n // If the date value is before the min date, then the month is disabled.\n // If the date value is after the max date, then the month is disabled.\n if ((minParts && isBefore(refParts, minParts)) || (maxParts && isAfter(refParts, maxParts))) {\n return true;\n }\n return false;\n};\n/**\n * Given a working date, an optional minimum date range,\n * and an optional maximum date range; determine if the\n * previous navigation button is disabled.\n */\nconst isPrevMonthDisabled = (refParts, minParts, maxParts) => {\n const prevMonth = Object.assign(Object.assign({}, getPreviousMonth(refParts)), { day: null });\n return isMonthDisabled(prevMonth, {\n minParts,\n maxParts,\n });\n};\n/**\n * Given a working date and a maximum date range,\n * determine if the next navigation button is disabled.\n */\nconst isNextMonthDisabled = (refParts, maxParts) => {\n const nextMonth = Object.assign(Object.assign({}, getNextMonth(refParts)), { day: null });\n return isMonthDisabled(nextMonth, {\n maxParts,\n });\n};\n\nconst datetimeIosCss = \":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr);height:100%}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}:host .calendar-day:after{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;top:50%;left:50%;width:32px;height:32px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\\\" \\\";z-index:-1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day:after{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{padding-left:16px;padding-right:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:14px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:16px;font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:12px;font-weight:600;line-height:24px;text-transform:uppercase}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;height:calc(100% - 16px)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .calendar-day{font-size:20px}:host .calendar-day:after{opacity:0.2}:host .calendar-day:focus:after{background:var(--ion-color-base)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-active:after{background:var(--ion-color-base)}:host .calendar-day.calendar-day-today.calendar-day-active{color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-today.calendar-day-active:after{background:var(--ion-color-base);opacity:1}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:16px;font-size:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}\";\n\nconst datetimeMdCss = \":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px;position:absolute;visibility:hidden;pointer-events:none}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-readonly),:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled){opacity:0.4}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .calendar-action-buttons ion-item ion-icon{padding-left:4px;padding-right:0;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-action-buttons ion-item ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr);height:100%}:host .calendar-day{padding-left:0px;padding-right:0px;padding-top:0px;padding-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day{margin-left:unset;margin-right:unset;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px}}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}:host .calendar-day:after{border-radius:32px;padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;top:50%;left:50%;width:32px;height:32px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\\\" \\\";z-index:-1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day:after{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .time-body{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-step-100, #ffffff);--title-color:var(--ion-color-contrast)}:host .datetime-header{padding-left:20px;padding-right:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-header{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host .datetime-header .datetime-title{font-size:12px;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:34px}:host .datetime-calendar .calendar-action-buttons ion-item{--padding-start:20px}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{color:var(--ion-color-step-650, #595959)}:host .calendar-days-of-week{padding-left:10px;padding-right:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, gray);font-size:14px;line-height:36px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-days-of-week{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-body .calendar-month .calendar-month-grid{padding-left:10px;padding-right:10px;padding-top:3px;padding-bottom:0px;grid-template-rows:repeat(6, 1fr)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-body .calendar-month .calendar-month-grid{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .calendar-day{padding-left:0px;padding-right:0;padding-top:13px;padding-bottom:13px;font-size:14px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .calendar-day{padding-left:unset;padding-right:unset;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0;padding-inline-end:0}}:host .calendar-day:focus:after{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-today:after{border:1px solid var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-active:after{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .datetime-time{padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-time{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host .time-header{color:var(--ion-color-step-650, #595959)}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{padding-left:10px;padding-right:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host .datetime-buttons{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}:host .datetime-view-buttons ion-button{color:var(--ion-color-step-800, #333333)}\";\n\nconst Datetime = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionCancel = createEvent(this, \"ionCancel\", 7);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionRender = createEvent(this, \"ionRender\", 7);\n this.inputId = `ion-dt-${datetimeIds++}`;\n this.prevPresentation = null;\n /**\n * Duplicate reference to `activeParts` that does not trigger a re-render of the component.\n * Allows caching an instance of the `activeParts` in between render cycles.\n */\n this.activePartsClone = [];\n this.showMonthAndYear = false;\n this.activeParts = [];\n this.workingParts = {\n month: 5,\n day: 28,\n year: 2021,\n hour: 13,\n minute: 52,\n ampm: 'pm',\n };\n this.isPresented = false;\n this.isTimePopoverOpen = false;\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n * For more information on colors, see [theming](/docs/theming/basics).\n */\n this.color = 'primary';\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the user cannot interact with the datetime.\n */\n this.disabled = false;\n /**\n * If `true`, the datetime appears normal but is not interactive.\n */\n this.readonly = false;\n /**\n * Which values you want to select. `'date'` will show\n * a calendar picker to select the month, day, and year. `'time'`\n * will show a time picker to select the hour, minute, and (optionally)\n * AM/PM. `'date-time'` will show the date picker first and time picker second.\n * `'time-date'` will show the time picker first and date picker second.\n */\n this.presentation = 'date-time';\n /**\n * The text to display on the picker's cancel button.\n */\n this.cancelText = 'Cancel';\n /**\n * The text to display on the picker's \"Done\" button.\n */\n this.doneText = 'Done';\n /**\n * The text to display on the picker's \"Clear\" button.\n */\n this.clearText = 'Clear';\n /**\n * The locale to use for `ion-datetime`. This\n * impacts month and day name formatting.\n * The `'default'` value refers to the default\n * locale set by your device.\n */\n this.locale = 'default';\n /**\n * The first day of the week to use for `ion-datetime`. The\n * default value is `0` and represents Sunday.\n */\n this.firstDayOfWeek = 0;\n /**\n * If `true`, multiple dates can be selected at once. Only\n * applies to `presentation=\"date\"` and `preferWheel=\"false\"`.\n */\n this.multiple = false;\n /**\n * If `true`, a header will be shown above the calendar\n * picker. This will include both the slotted title, and\n * the selected date.\n */\n this.showDefaultTitle = false;\n /**\n * If `true`, the default \"Cancel\" and \"OK\" buttons\n * will be rendered at the bottom of the `ion-datetime`\n * component. Developers can also use the `button` slot\n * if they want to customize these buttons. If custom\n * buttons are set in the `button` slot then the\n * default buttons will not be rendered.\n */\n this.showDefaultButtons = false;\n /**\n * If `true`, a \"Clear\" button will be rendered alongside\n * the default \"Cancel\" and \"OK\" buttons at the bottom of the `ion-datetime`\n * component. Developers can also use the `button` slot\n * if they want to customize these buttons. If custom\n * buttons are set in the `button` slot then the\n * default buttons will not be rendered.\n */\n this.showClearButton = false;\n /**\n * If `true`, the default \"Time\" label will be rendered\n * for the time selector of the `ion-datetime` component.\n * Developers can also use the `time-label` slot\n * if they want to customize this label. If a custom\n * label is set in the `time-label` slot then the\n * default label will not be rendered.\n */\n this.showDefaultTimeLabel = true;\n /**\n * If `cover`, the `ion-datetime` will expand to cover the full width of its container.\n * If `fixed`, the `ion-datetime` will have a fixed width.\n */\n this.size = 'fixed';\n /**\n * If `true`, a wheel picker will be rendered instead of a calendar grid\n * where possible. If `false`, a calendar grid will be rendered instead of\n * a wheel picker where possible.\n *\n * A wheel picker can be rendered instead of a grid when `presentation` is\n * one of the following values: `'date'`, `'date-time'`, or `'time-date'`.\n *\n * A wheel picker will always be rendered regardless of\n * the `preferWheel` value when `presentation` is one of the following values:\n * `'time'`, `'month'`, `'month-year'`, or `'year'`.\n */\n this.preferWheel = false;\n /**\n * Returns the DatetimePart interface\n * to use when rendering an initial set of\n * data. This should be used when rendering an\n * interface in an environment where the `value`\n * may not be set. This function works\n * by returning the first selected date in\n * \"activePartsClone\" and then falling back to\n * defaultParts if no active date is selected.\n */\n this.getActivePartsWithFallback = () => {\n var _a;\n const { defaultParts } = this;\n return (_a = this.getActivePart()) !== null && _a !== void 0 ? _a : defaultParts;\n };\n this.getActivePart = () => {\n const { activePartsClone } = this;\n return Array.isArray(activePartsClone) ? activePartsClone[0] : activePartsClone;\n };\n this.closeParentOverlay = () => {\n const popoverOrModal = this.el.closest('ion-modal, ion-popover');\n if (popoverOrModal) {\n popoverOrModal.dismiss();\n }\n };\n this.setWorkingParts = (parts) => {\n this.workingParts = Object.assign({}, parts);\n };\n this.setActiveParts = (parts, removeDate = false) => {\n const { multiple, minParts, maxParts, activePartsClone } = this;\n /**\n * When setting the active parts, it is possible\n * to set invalid data. For example,\n * when updating January 31 to February,\n * February 31 does not exist. As a result\n * we need to validate the active parts and\n * ensure that we are only setting valid dates.\n * Additionally, we need to update the working parts\n * too in the event that the validated parts are different.\n */\n const validatedParts = validateParts(parts, minParts, maxParts);\n this.setWorkingParts(validatedParts);\n if (multiple) {\n /**\n * We read from activePartsClone here because valueChanged() only updates that,\n * so it's the more reliable source of truth. If we read from activeParts, then\n * if you click July 1, manually set the value to July 2, and then click July 3,\n * the new value would be [July 1, July 3], ignoring the value set.\n *\n * We can then pass the new value to activeParts (rather than activePartsClone)\n * since the clone will be updated automatically by activePartsChanged().\n */\n const activePartsArray = Array.isArray(activePartsClone) ? activePartsClone : [activePartsClone];\n if (removeDate) {\n this.activeParts = activePartsArray.filter((p) => !isSameDay(p, validatedParts));\n }\n else {\n this.activeParts = [...activePartsArray, validatedParts];\n }\n }\n else {\n this.activeParts = Object.assign({}, validatedParts);\n }\n const hasSlottedButtons = this.el.querySelector('[slot=\"buttons\"]') !== null;\n if (hasSlottedButtons || this.showDefaultButtons) {\n return;\n }\n this.confirm();\n };\n this.initializeKeyboardListeners = () => {\n const calendarBodyRef = this.calendarBodyRef;\n if (!calendarBodyRef) {\n return;\n }\n const root = this.el.shadowRoot;\n /**\n * Get a reference to the month\n * element we are currently viewing.\n */\n const currentMonth = calendarBodyRef.querySelector('.calendar-month:nth-of-type(2)');\n /**\n * When focusing the calendar body, we want to pass focus\n * to the working day, but other days should\n * only be accessible using the arrow keys. Pressing\n * Tab should jump between bodies of selectable content.\n */\n const checkCalendarBodyFocus = (ev) => {\n var _a;\n const record = ev[0];\n /**\n * If calendar body was already focused\n * when this fired or if the calendar body\n * if not currently focused, we should not re-focus\n * the inner day.\n */\n if (((_a = record.oldValue) === null || _a === void 0 ? void 0 : _a.includes('ion-focused')) || !calendarBodyRef.classList.contains('ion-focused')) {\n return;\n }\n this.focusWorkingDay(currentMonth);\n };\n const mo = new MutationObserver(checkCalendarBodyFocus);\n mo.observe(calendarBodyRef, { attributeFilter: ['class'], attributeOldValue: true });\n this.destroyKeyboardMO = () => {\n mo === null || mo === void 0 ? void 0 : mo.disconnect();\n };\n /**\n * We must use keydown not keyup as we want\n * to prevent scrolling when using the arrow keys.\n */\n calendarBodyRef.addEventListener('keydown', (ev) => {\n const activeElement = root.activeElement;\n if (!activeElement || !activeElement.classList.contains('calendar-day')) {\n return;\n }\n const parts = getPartsFromCalendarDay(activeElement);\n let partsToFocus;\n switch (ev.key) {\n case 'ArrowDown':\n ev.preventDefault();\n partsToFocus = getNextWeek(parts);\n break;\n case 'ArrowUp':\n ev.preventDefault();\n partsToFocus = getPreviousWeek(parts);\n break;\n case 'ArrowRight':\n ev.preventDefault();\n partsToFocus = getNextDay(parts);\n break;\n case 'ArrowLeft':\n ev.preventDefault();\n partsToFocus = getPreviousDay(parts);\n break;\n case 'Home':\n ev.preventDefault();\n partsToFocus = getStartOfWeek(parts);\n break;\n case 'End':\n ev.preventDefault();\n partsToFocus = getEndOfWeek(parts);\n break;\n case 'PageUp':\n ev.preventDefault();\n partsToFocus = ev.shiftKey ? getPreviousYear(parts) : getPreviousMonth(parts);\n break;\n case 'PageDown':\n ev.preventDefault();\n partsToFocus = ev.shiftKey ? getNextYear(parts) : getNextMonth(parts);\n break;\n /**\n * Do not preventDefault here\n * as we do not want to override other\n * browser defaults such as pressing Enter/Space\n * to select a day.\n */\n default:\n return;\n }\n /**\n * If the day we want to move focus to is\n * disabled, do not do anything.\n */\n if (isDayDisabled(partsToFocus, this.minParts, this.maxParts)) {\n return;\n }\n this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), partsToFocus));\n /**\n * Give view a chance to re-render\n * then move focus to the new working day\n */\n requestAnimationFrame(() => this.focusWorkingDay(currentMonth));\n });\n };\n this.focusWorkingDay = (currentMonth) => {\n /**\n * Get the number of padding days so\n * we know how much to offset our next selector by\n * to grab the correct calenday-day element.\n */\n const padding = currentMonth.querySelectorAll('.calendar-day-padding');\n const { day } = this.workingParts;\n if (day === null) {\n return;\n }\n /**\n * Get the calendar day element\n * and focus it.\n */\n const dayEl = currentMonth.querySelector(`.calendar-day:nth-of-type(${padding.length + day})`);\n if (dayEl) {\n dayEl.focus();\n }\n };\n this.processMinParts = () => {\n const { min, defaultParts } = this;\n if (min === undefined) {\n this.minParts = undefined;\n return;\n }\n this.minParts = parseMinParts(min, defaultParts);\n };\n this.processMaxParts = () => {\n const { max, defaultParts } = this;\n if (max === undefined) {\n this.maxParts = undefined;\n return;\n }\n this.maxParts = parseMaxParts(max, defaultParts);\n };\n this.initializeCalendarListener = () => {\n const calendarBodyRef = this.calendarBodyRef;\n if (!calendarBodyRef) {\n return;\n }\n /**\n * For performance reasons, we only render 3\n * months at a time: The current month, the previous\n * month, and the next month. We have a scroll listener\n * on the calendar body to append/prepend new months.\n *\n * We can do this because Stencil is smart enough to not\n * re-create the .calendar-month containers, but rather\n * update the content within those containers.\n *\n * As an added bonus, WebKit has some troubles with\n * scroll-snap-stop: always, so not rendering all of\n * the months in a row allows us to mostly sidestep\n * that issue.\n */\n const months = calendarBodyRef.querySelectorAll('.calendar-month');\n const startMonth = months[0];\n const workingMonth = months[1];\n const endMonth = months[2];\n const mode = getIonMode(this);\n const needsiOSRubberBandFix = mode === 'ios' && typeof navigator !== 'undefined' && navigator.maxTouchPoints > 1;\n /**\n * Before setting up the scroll listener,\n * scroll the middle month into view.\n * scrollIntoView() will scroll entire page\n * if element is not in viewport. Use scrollLeft instead.\n */\n writeTask(() => {\n calendarBodyRef.scrollLeft = startMonth.clientWidth * (isRTL(this.el) ? -1 : 1);\n const getChangedMonth = (parts) => {\n const box = calendarBodyRef.getBoundingClientRect();\n const root = this.el.shadowRoot;\n /**\n * Get the element that is in the center of the calendar body.\n * This will be an element inside of the active month.\n */\n const elementAtCenter = root.elementFromPoint(box.x + box.width / 2, box.y + box.height / 2);\n /**\n * If there is no element then the\n * component may be re-rendering on a slow device.\n */\n if (!elementAtCenter)\n return;\n const month = elementAtCenter.closest('.calendar-month');\n if (!month)\n return;\n /**\n * The edge of the month must be lined up with\n * the edge of the calendar body in order for\n * the component to update. Otherwise, it\n * may be the case that the user has paused their\n * swipe or the browser has not finished snapping yet.\n * Rather than check if the x values are equal,\n * we give it a tolerance of 2px to account for\n * sub pixel rendering.\n */\n const monthBox = month.getBoundingClientRect();\n if (Math.abs(monthBox.x - box.x) > 2)\n return;\n /**\n * From here, we can determine if the start\n * month or the end month was scrolled into view.\n * If no month was changed, then we can return from\n * the scroll callback early.\n */\n if (month === startMonth) {\n return getPreviousMonth(parts);\n }\n else if (month === endMonth) {\n return getNextMonth(parts);\n }\n else {\n return;\n }\n };\n const updateActiveMonth = () => {\n if (needsiOSRubberBandFix) {\n calendarBodyRef.style.removeProperty('pointer-events');\n appliediOSRubberBandFix = false;\n }\n /**\n * If the month did not change\n * then we can return early.\n */\n const newDate = getChangedMonth(this.workingParts);\n if (!newDate)\n return;\n const { month, day, year } = newDate;\n if (isMonthDisabled({ month, year, day: null }, {\n minParts: Object.assign(Object.assign({}, this.minParts), { day: null }),\n maxParts: Object.assign(Object.assign({}, this.maxParts), { day: null }),\n })) {\n return;\n }\n /**\n * Prevent scrolling for other browsers\n * to give the DOM time to update and the container\n * time to properly snap.\n */\n calendarBodyRef.style.setProperty('overflow', 'hidden');\n /**\n * Use a writeTask here to ensure\n * that the state is updated and the\n * correct month is scrolled into view\n * in the same frame. This is not\n * typically a problem on newer devices\n * but older/slower device may have a flicker\n * if we did not do this.\n */\n writeTask(() => {\n this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), { month, day: day, year }));\n calendarBodyRef.scrollLeft = workingMonth.clientWidth * (isRTL(this.el) ? -1 : 1);\n calendarBodyRef.style.removeProperty('overflow');\n });\n };\n /**\n * When the container finishes scrolling we\n * need to update the DOM with the selected month.\n */\n let scrollTimeout;\n /**\n * We do not want to attempt to set pointer-events\n * multiple times within a single swipe gesture as\n * that adds unnecessary work to the main thread.\n */\n let appliediOSRubberBandFix = false;\n const scrollCallback = () => {\n if (scrollTimeout) {\n clearTimeout(scrollTimeout);\n }\n /**\n * On iOS it is possible to quickly rubber band\n * the scroll area before the scroll timeout has fired.\n * This results in users reaching the end of the scrollable\n * container before the DOM has updated.\n * By setting `pointer-events: none` we can ensure that\n * subsequent swipes do not happen while the container\n * is snapping.\n */\n if (!appliediOSRubberBandFix && needsiOSRubberBandFix) {\n calendarBodyRef.style.setProperty('pointer-events', 'none');\n appliediOSRubberBandFix = true;\n }\n // Wait ~3 frames\n scrollTimeout = setTimeout(updateActiveMonth, 50);\n };\n calendarBodyRef.addEventListener('scroll', scrollCallback);\n this.destroyCalendarListener = () => {\n calendarBodyRef.removeEventListener('scroll', scrollCallback);\n };\n });\n };\n /**\n * Clean up all listeners except for the overlay\n * listener. This is so that we can re-create the listeners\n * if the datetime has been hidden/presented by a modal or popover.\n */\n this.destroyInteractionListeners = () => {\n const { destroyCalendarListener, destroyKeyboardMO } = this;\n if (destroyCalendarListener !== undefined) {\n destroyCalendarListener();\n }\n if (destroyKeyboardMO !== undefined) {\n destroyKeyboardMO();\n }\n };\n this.processValue = (value) => {\n /**\n * TODO FW-2646 remove value !== ''\n */\n const hasValue = value !== '' && value !== null && value !== undefined;\n let valueToProcess = hasValue ? parseDate(value) : this.defaultParts;\n const { minParts, maxParts, multiple } = this;\n if (!multiple && Array.isArray(value)) {\n this.value = value[0];\n valueToProcess = valueToProcess[0];\n }\n /**\n * Datetime should only warn of out of bounds values\n * if set by the user. If the `value` is undefined,\n * we will default to today's date which may be out\n * of bounds. In this case, the warning makes it look\n * like the developer did something wrong which is\n * not true.\n */\n if (hasValue) {\n warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);\n }\n /**\n * If there are multiple values, pick an arbitrary one to clamp to. This way,\n * if the values are across months, we always show at least one of them. Note\n * that the values don't necessarily have to be in order.\n */\n const singleValue = Array.isArray(valueToProcess) ? valueToProcess[0] : valueToProcess;\n const { month, day, year, hour, minute, tzOffset } = clampDate(singleValue, minParts, maxParts);\n const ampm = parseAmPm(hour);\n this.setWorkingParts({\n month,\n day,\n year,\n hour,\n minute,\n tzOffset,\n ampm,\n });\n /**\n * Since `activeParts` indicates a value that\n * been explicitly selected either by the\n * user or the app, only update `activeParts`\n * if the `value` property is set.\n */\n if (hasValue) {\n if (Array.isArray(valueToProcess)) {\n this.activeParts = [...valueToProcess];\n }\n else {\n this.activeParts = {\n month,\n day,\n year,\n hour,\n minute,\n tzOffset,\n ampm,\n };\n }\n }\n else {\n /**\n * Reset the active parts if the value is not set.\n * This will clear the selected calendar day when\n * performing a clear action or using the reset() method.\n */\n this.activeParts = [];\n }\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n this.hasValue = () => {\n return this.value != null && this.value !== '';\n };\n this.nextMonth = () => {\n const calendarBodyRef = this.calendarBodyRef;\n if (!calendarBodyRef) {\n return;\n }\n const nextMonth = calendarBodyRef.querySelector('.calendar-month:last-of-type');\n if (!nextMonth) {\n return;\n }\n const left = nextMonth.offsetWidth * 2;\n calendarBodyRef.scrollTo({\n top: 0,\n left: left * (isRTL(this.el) ? -1 : 1),\n behavior: 'smooth',\n });\n };\n this.prevMonth = () => {\n const calendarBodyRef = this.calendarBodyRef;\n if (!calendarBodyRef) {\n return;\n }\n const prevMonth = calendarBodyRef.querySelector('.calendar-month:first-of-type');\n if (!prevMonth) {\n return;\n }\n calendarBodyRef.scrollTo({\n top: 0,\n left: 0,\n behavior: 'smooth',\n });\n };\n this.toggleMonthAndYearView = () => {\n this.showMonthAndYear = !this.showMonthAndYear;\n };\n }\n disabledChanged() {\n this.emitStyle();\n }\n minChanged() {\n this.processMinParts();\n }\n maxChanged() {\n this.processMaxParts();\n }\n yearValuesChanged() {\n this.parsedYearValues = convertToArrayOfNumbers(this.yearValues);\n }\n monthValuesChanged() {\n this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues);\n }\n dayValuesChanged() {\n this.parsedDayValues = convertToArrayOfNumbers(this.dayValues);\n }\n hourValuesChanged() {\n this.parsedHourValues = convertToArrayOfNumbers(this.hourValues);\n }\n minuteValuesChanged() {\n this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues);\n }\n activePartsChanged() {\n this.activePartsClone = this.activeParts;\n }\n /**\n * Update the datetime value when the value changes\n */\n valueChanged() {\n const { value, minParts, maxParts, workingParts, multiple } = this;\n if (this.hasValue()) {\n if (!multiple && Array.isArray(value)) {\n this.value = value[0];\n return; // setting this.value will trigger re-run of this function\n }\n /**\n * Clones the value of the `activeParts` to the private clone, to update\n * the date display on the current render cycle without causing another render.\n *\n * This allows us to update the current value's date/time display without\n * refocusing or shifting the user's display (leaves the user in place).\n */\n const valueDateParts = parseDate(value);\n if (valueDateParts) {\n warnIfValueOutOfBounds(valueDateParts, minParts, maxParts);\n if (Array.isArray(valueDateParts)) {\n this.activePartsClone = [...valueDateParts];\n }\n else {\n const { month, day, year, hour, minute } = valueDateParts;\n const ampm = hour != null ? (hour >= 12 ? 'pm' : 'am') : undefined;\n this.activePartsClone = Object.assign(Object.assign({}, this.activeParts), { month,\n day,\n year,\n hour,\n minute,\n ampm });\n /**\n * The working parts am/pm value must be updated when the value changes, to\n * ensure the time picker hour column values are generated correctly.\n *\n * Note that we don't need to do this if valueDateParts is an array, since\n * multiple=\"true\" does not apply to time pickers.\n */\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm }));\n }\n }\n else {\n printIonWarning(`Unable to parse date string: ${value}. Please provide a valid ISO 8601 datetime string.`);\n }\n }\n this.emitStyle();\n this.ionChange.emit({ value });\n }\n /**\n * Confirms the selected datetime value, updates the\n * `value` property, and optionally closes the popover\n * or modal that the datetime was presented in.\n */\n async confirm(closeOverlay = false) {\n const { isCalendarPicker, activeParts } = this;\n /**\n * We only update the value if the presentation is not a calendar picker.\n */\n if (activeParts !== undefined || !isCalendarPicker) {\n const activePartsIsArray = Array.isArray(activeParts);\n if (activePartsIsArray && activeParts.length === 0) {\n this.value = undefined;\n }\n else {\n /**\n * Prevent convertDataToISO from doing any\n * kind of transformation based on timezone\n * This cancels out any change it attempts to make\n *\n * Important: Take the timezone offset based on\n * the date that is currently selected, otherwise\n * there can be 1 hr difference when dealing w/ DST\n */\n if (activePartsIsArray) {\n const dates = convertDataToISO(activeParts).map((str) => new Date(str));\n for (let i = 0; i < dates.length; i++) {\n activeParts[i].tzOffset = dates[i].getTimezoneOffset() * -1;\n }\n }\n else {\n const date = new Date(convertDataToISO(activeParts));\n activeParts.tzOffset = date.getTimezoneOffset() * -1;\n }\n this.value = convertDataToISO(activeParts);\n }\n }\n if (closeOverlay) {\n this.closeParentOverlay();\n }\n }\n /**\n * Resets the internal state of the datetime but does not update the value.\n * Passing a valid ISO-8601 string will reset the state of the component to the provided date.\n * If no value is provided, the internal state will be reset to the clamped value of the min, max and today.\n */\n async reset(startDate) {\n this.processValue(startDate);\n }\n /**\n * Emits the ionCancel event and\n * optionally closes the popover\n * or modal that the datetime was\n * presented in.\n */\n async cancel(closeOverlay = false) {\n this.ionCancel.emit();\n if (closeOverlay) {\n this.closeParentOverlay();\n }\n }\n get isCalendarPicker() {\n const { presentation } = this;\n return presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';\n }\n connectedCallback() {\n this.clearFocusVisible = startFocusVisible(this.el).destroy;\n }\n disconnectedCallback() {\n if (this.clearFocusVisible) {\n this.clearFocusVisible();\n this.clearFocusVisible = undefined;\n }\n }\n initializeListeners() {\n this.initializeCalendarListener();\n this.initializeKeyboardListeners();\n }\n componentDidLoad() {\n /**\n * If a scrollable element is hidden using `display: none`,\n * it will not have a scroll height meaning we cannot scroll elements\n * into view. As a result, we will need to wait for the datetime to become\n * visible if used inside of a modal or a popover otherwise the scrollable\n * areas will not have the correct values snapped into place.\n */\n const visibleCallback = (entries) => {\n const ev = entries[0];\n if (!ev.isIntersecting) {\n return;\n }\n this.initializeListeners();\n /**\n * TODO FW-2793: Datetime needs a frame to ensure that it\n * can properly scroll contents into view. As a result\n * we hide the scrollable content until after that frame\n * so users do not see the content quickly shifting. The downside\n * is that the content will pop into view a frame after. Maybe there\n * is a better way to handle this?\n */\n writeTask(() => {\n this.el.classList.add('datetime-ready');\n });\n };\n const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });\n /**\n * Use raf to avoid a race condition between the component loading and\n * its display animation starting (such as when shown in a modal). This\n * could cause the datetime to start at a visibility of 0, erroneously\n * triggering the `hiddenIO` observer below.\n */\n raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));\n /**\n * We need to clean up listeners when the datetime is hidden\n * in a popover/modal so that we can properly scroll containers\n * back into view if they are re-presented. When the datetime is hidden\n * the scroll areas have scroll widths/heights of 0px, so any snapping\n * we did originally has been lost.\n */\n const hiddenCallback = (entries) => {\n const ev = entries[0];\n if (ev.isIntersecting) {\n return;\n }\n this.destroyInteractionListeners();\n /**\n * When datetime is hidden, we need to make sure that\n * the month/year picker is closed. Otherwise,\n * it will be open when the datetime re-appears\n * and the scroll area of the calendar grid will be 0.\n * As a result, the wrong month will be shown.\n */\n this.showMonthAndYear = false;\n writeTask(() => {\n this.el.classList.remove('datetime-ready');\n });\n };\n const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });\n raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));\n /**\n * Datetime uses Ionic components that emit\n * ionFocus and ionBlur. These events are\n * composed meaning they will cross\n * the shadow dom boundary. We need to\n * stop propagation on these events otherwise\n * developers will see 2 ionFocus or 2 ionBlur\n * events at a time.\n */\n const root = getElementRoot(this.el);\n root.addEventListener('ionFocus', (ev) => ev.stopPropagation());\n root.addEventListener('ionBlur', (ev) => ev.stopPropagation());\n }\n /**\n * When the presentation is changed, all calendar content is recreated,\n * so we need to re-init behavior with the new elements.\n */\n componentDidRender() {\n const { presentation, prevPresentation, calendarBodyRef, minParts, preferWheel } = this;\n /**\n * TODO(FW-2165)\n * Remove this when https://bugs.webkit.org/show_bug.cgi?id=235960 is fixed.\n * When using `min`, we add `scroll-snap-align: none`\n * to the disabled month so that users cannot scroll to it.\n * This triggers a bug in WebKit where the scroll position is reset.\n * Since the month change logic is handled by a scroll listener,\n * this causes the month to change leading to `scroll-snap-align`\n * changing again, thus changing the scroll position again and causing\n * an infinite loop.\n * This issue only applies to the calendar grid, so we can disable\n * it if the calendar grid is not being used.\n */\n const hasCalendarGrid = !preferWheel && ['date-time', 'time-date', 'date'].includes(presentation);\n if (minParts !== undefined && hasCalendarGrid && calendarBodyRef) {\n const workingMonth = calendarBodyRef.querySelector('.calendar-month:nth-of-type(1)');\n if (workingMonth) {\n calendarBodyRef.scrollLeft = workingMonth.clientWidth * (isRTL(this.el) ? -1 : 1);\n }\n }\n if (prevPresentation === null) {\n this.prevPresentation = presentation;\n return;\n }\n if (presentation === prevPresentation) {\n return;\n }\n this.prevPresentation = presentation;\n this.destroyInteractionListeners();\n this.initializeListeners();\n /**\n * The month/year picker from the date interface\n * should be closed as it is not available in non-date\n * interfaces.\n */\n this.showMonthAndYear = false;\n raf(() => {\n this.ionRender.emit();\n });\n }\n componentWillLoad() {\n const { el, multiple, presentation, preferWheel } = this;\n if (multiple) {\n if (presentation !== 'date') {\n printIonWarning('Multiple date selection is only supported for presentation=\"date\".', el);\n }\n if (preferWheel) {\n printIonWarning('Multiple date selection is not supported with preferWheel=\"true\".', el);\n }\n }\n this.processMinParts();\n this.processMaxParts();\n const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));\n const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));\n const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));\n const yearValues = (this.parsedYearValues = convertToArrayOfNumbers(this.yearValues));\n const dayValues = (this.parsedDayValues = convertToArrayOfNumbers(this.dayValues));\n const todayParts = (this.todayParts = parseDate(getToday()));\n this.defaultParts = getClosestValidDate(todayParts, monthValues, dayValues, yearValues, hourValues, minuteValues);\n this.processValue(this.value);\n this.emitStyle();\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n datetime: true,\n 'interactive-disabled': this.disabled,\n });\n }\n /**\n * Universal render methods\n * These are pieces of datetime that\n * are rendered independently of presentation.\n */\n renderFooter() {\n const { showDefaultButtons, showClearButton } = this;\n const hasSlottedButtons = this.el.querySelector('[slot=\"buttons\"]') !== null;\n if (!hasSlottedButtons && !showDefaultButtons && !showClearButton) {\n return;\n }\n const clearButtonClick = () => {\n this.reset();\n this.value = undefined;\n };\n /**\n * By default we render two buttons:\n * Cancel - Dismisses the datetime and\n * does not update the `value` prop.\n * OK - Dismisses the datetime and\n * updates the `value` prop.\n */\n return (h(\"div\", { class: \"datetime-footer\" }, h(\"div\", { class: \"datetime-buttons\" }, h(\"div\", { class: {\n ['datetime-action-buttons']: true,\n ['has-clear-button']: this.showClearButton,\n } }, h(\"slot\", { name: \"buttons\" }, h(\"ion-buttons\", null, showDefaultButtons && (h(\"ion-button\", { id: \"cancel-button\", color: this.color, onClick: () => this.cancel(true) }, this.cancelText)), h(\"div\", null, showClearButton && (h(\"ion-button\", { id: \"clear-button\", color: this.color, onClick: () => clearButtonClick() }, this.clearText)), showDefaultButtons && (h(\"ion-button\", { id: \"confirm-button\", color: this.color, onClick: () => this.confirm(true) }, this.doneText)))))))));\n }\n /**\n * Wheel picker render methods\n */\n renderWheelPicker(forcePresentation = this.presentation) {\n /**\n * If presentation=\"time-date\" we switch the\n * order of the render array here instead of\n * manually reordering each date/time picker\n * column with CSS. This allows for additional\n * flexibility if we need to render subsets\n * of the date/time data or do additional ordering\n * within the child render functions.\n */\n const renderArray = forcePresentation === 'time-date'\n ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]\n : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];\n return h(\"ion-picker-internal\", null, renderArray);\n }\n renderDatePickerColumns(forcePresentation) {\n return forcePresentation === 'date-time' || forcePresentation === 'time-date'\n ? this.renderCombinedDatePickerColumn()\n : this.renderIndividualDatePickerColumns(forcePresentation);\n }\n renderCombinedDatePickerColumn() {\n const { defaultParts, workingParts, locale, minParts, maxParts, todayParts, isDateEnabled } = this;\n const activePart = this.getActivePartsWithFallback();\n /**\n * By default, generate a range of 3 months:\n * Previous month, current month, and next month\n */\n const monthsToRender = generateMonths(workingParts);\n const lastMonth = monthsToRender[monthsToRender.length - 1];\n /**\n * Ensure that users can select the entire window of dates.\n */\n monthsToRender[0].day = 1;\n lastMonth.day = getNumDaysInMonth(lastMonth.month, lastMonth.year);\n /**\n * Narrow the dates rendered based on min/max dates (if any).\n * The `min` date is used if the min is after the generated min month.\n * The `max` date is used if the max is before the generated max month.\n * This ensures that the sliding window always stays at 3 months\n * but still allows future dates to be lazily rendered based on any min/max\n * constraints.\n */\n const min = minParts !== undefined && isAfter(minParts, monthsToRender[0]) ? minParts : monthsToRender[0];\n const max = maxParts !== undefined && isBefore(maxParts, lastMonth) ? maxParts : lastMonth;\n const result = getCombinedDateColumnData(locale, todayParts, min, max, this.parsedDayValues, this.parsedMonthValues);\n let items = result.items;\n const parts = result.parts;\n if (isDateEnabled) {\n items = items.map((itemObject, index) => {\n const referenceParts = parts[index];\n let disabled;\n try {\n /**\n * The `isDateEnabled` implementation is try-catch wrapped\n * to prevent exceptions in the user's function from\n * interrupting the calendar rendering.\n */\n disabled = !isDateEnabled(convertDataToISO(referenceParts));\n }\n catch (e) {\n printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);\n }\n return Object.assign(Object.assign({}, itemObject), { disabled });\n });\n }\n /**\n * If we have selected a day already, then default the column\n * to that value. Otherwise, set it to the default date.\n */\n const todayString = workingParts.day !== null\n ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`\n : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;\n return (h(\"ion-picker-column-internal\", { class: \"date-column\", color: this.color, items: items, value: todayString, onIonChange: (ev) => {\n // TODO(FW-1823) Remove this when iOS 14 support is dropped.\n // Due to a Safari 14 issue we need to destroy\n // the scroll listener before we update state\n // and trigger a re-render.\n if (this.destroyCalendarListener) {\n this.destroyCalendarListener();\n }\n const { value } = ev.detail;\n const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), findPart));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), findPart));\n // We can re-attach the scroll listener after\n // the working parts have been updated.\n this.initializeCalendarListener();\n ev.stopPropagation();\n } }));\n }\n renderIndividualDatePickerColumns(forcePresentation) {\n const { workingParts, isDateEnabled } = this;\n const shouldRenderMonths = forcePresentation !== 'year' && forcePresentation !== 'time';\n const months = shouldRenderMonths\n ? getMonthColumnData(this.locale, workingParts, this.minParts, this.maxParts, this.parsedMonthValues)\n : [];\n const shouldRenderDays = forcePresentation === 'date';\n let days = shouldRenderDays\n ? getDayColumnData(this.locale, workingParts, this.minParts, this.maxParts, this.parsedDayValues)\n : [];\n if (isDateEnabled) {\n days = days.map((dayObject) => {\n const { value } = dayObject;\n const valueNum = typeof value === 'string' ? parseInt(value) : value;\n const referenceParts = {\n month: workingParts.month,\n day: valueNum,\n year: workingParts.year,\n };\n let disabled;\n try {\n /**\n * The `isDateEnabled` implementation is try-catch wrapped\n * to prevent exceptions in the user's function from\n * interrupting the calendar rendering.\n */\n disabled = !isDateEnabled(convertDataToISO(referenceParts));\n }\n catch (e) {\n printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);\n }\n return Object.assign(Object.assign({}, dayObject), { disabled });\n });\n }\n const shouldRenderYears = forcePresentation !== 'month' && forcePresentation !== 'time';\n const years = shouldRenderYears\n ? getYearColumnData(this.locale, this.defaultParts, this.minParts, this.maxParts, this.parsedYearValues)\n : [];\n /**\n * Certain locales show the day before the month.\n */\n const showMonthFirst = isMonthFirstLocale(this.locale, { month: 'numeric', day: 'numeric' });\n let renderArray = [];\n if (showMonthFirst) {\n renderArray = [\n this.renderMonthPickerColumn(months),\n this.renderDayPickerColumn(days),\n this.renderYearPickerColumn(years),\n ];\n }\n else {\n renderArray = [\n this.renderDayPickerColumn(days),\n this.renderMonthPickerColumn(months),\n this.renderYearPickerColumn(years),\n ];\n }\n return renderArray;\n }\n renderDayPickerColumn(days) {\n var _a;\n if (days.length === 0) {\n return [];\n }\n const { workingParts } = this;\n const activePart = this.getActivePartsWithFallback();\n return (h(\"ion-picker-column-internal\", { class: \"day-column\", color: this.color, items: days, value: (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined, onIonChange: (ev) => {\n // TODO(FW-1823) Remove this when iOS 14 support is dropped.\n // Due to a Safari 14 issue we need to destroy\n // the scroll listener before we update state\n // and trigger a re-render.\n if (this.destroyCalendarListener) {\n this.destroyCalendarListener();\n }\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { day: ev.detail.value }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { day: ev.detail.value }));\n // We can re-attach the scroll listener after\n // the working parts have been updated.\n this.initializeCalendarListener();\n ev.stopPropagation();\n } }));\n }\n renderMonthPickerColumn(months) {\n if (months.length === 0) {\n return [];\n }\n const { workingParts } = this;\n const activePart = this.getActivePartsWithFallback();\n return (h(\"ion-picker-column-internal\", { class: \"month-column\", color: this.color, items: months, value: workingParts.month, onIonChange: (ev) => {\n // TODO(FW-1823) Remove this when iOS 14 support is dropped.\n // Due to a Safari 14 issue we need to destroy\n // the scroll listener before we update state\n // and trigger a re-render.\n if (this.destroyCalendarListener) {\n this.destroyCalendarListener();\n }\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { month: ev.detail.value }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { month: ev.detail.value }));\n // We can re-attach the scroll listener after\n // the working parts have been updated.\n this.initializeCalendarListener();\n ev.stopPropagation();\n } }));\n }\n renderYearPickerColumn(years) {\n if (years.length === 0) {\n return [];\n }\n const { workingParts } = this;\n const activePart = this.getActivePartsWithFallback();\n return (h(\"ion-picker-column-internal\", { class: \"year-column\", color: this.color, items: years, value: workingParts.year, onIonChange: (ev) => {\n // TODO(FW-1823) Remove this when iOS 14 support is dropped.\n // Due to a Safari 14 issue we need to destroy\n // the scroll listener before we update state\n // and trigger a re-render.\n if (this.destroyCalendarListener) {\n this.destroyCalendarListener();\n }\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { year: ev.detail.value }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { year: ev.detail.value }));\n // We can re-attach the scroll listener after\n // the working parts have been updated.\n this.initializeCalendarListener();\n ev.stopPropagation();\n } }));\n }\n renderTimePickerColumns(forcePresentation) {\n if (['date', 'month', 'month-year', 'year'].includes(forcePresentation)) {\n return [];\n }\n /**\n * If a user has not selected a date,\n * then we should show all times. If the\n * user has selected a date (even if it has\n * not been confirmed yet), we should apply\n * the max and min restrictions so that the\n * time picker shows values that are\n * appropriate for the selected date.\n */\n const activePart = this.getActivePart();\n const userHasSelectedDate = activePart !== undefined;\n const { hoursData, minutesData, dayPeriodData } = getTimeColumnsData(this.locale, this.workingParts, this.hourCycle, userHasSelectedDate ? this.minParts : undefined, userHasSelectedDate ? this.maxParts : undefined, this.parsedHourValues, this.parsedMinuteValues);\n return [\n this.renderHourPickerColumn(hoursData),\n this.renderMinutePickerColumn(minutesData),\n this.renderDayPeriodPickerColumn(dayPeriodData),\n ];\n }\n renderHourPickerColumn(hoursData) {\n const { workingParts } = this;\n if (hoursData.length === 0)\n return [];\n const activePart = this.getActivePartsWithFallback();\n return (h(\"ion-picker-column-internal\", { color: this.color, value: activePart.hour, items: hoursData, numericInput: true, onIonChange: (ev) => {\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));\n ev.stopPropagation();\n } }));\n }\n renderMinutePickerColumn(minutesData) {\n const { workingParts } = this;\n if (minutesData.length === 0)\n return [];\n const activePart = this.getActivePartsWithFallback();\n return (h(\"ion-picker-column-internal\", { color: this.color, value: activePart.minute, items: minutesData, numericInput: true, onIonChange: (ev) => {\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));\n ev.stopPropagation();\n } }));\n }\n renderDayPeriodPickerColumn(dayPeriodData) {\n const { workingParts } = this;\n if (dayPeriodData.length === 0) {\n return [];\n }\n const activePart = this.getActivePartsWithFallback();\n const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);\n return (h(\"ion-picker-column-internal\", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, value: activePart.ampm, items: dayPeriodData, onIonChange: (ev) => {\n const hour = calculateHourFromAMPM(workingParts, ev.detail.value);\n this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));\n ev.stopPropagation();\n } }));\n }\n renderWheelView(forcePresentation) {\n const { locale } = this;\n const showMonthFirst = isMonthFirstLocale(locale);\n const columnOrder = showMonthFirst ? 'month-first' : 'year-first';\n return (h(\"div\", { class: {\n [`wheel-order-${columnOrder}`]: true,\n } }, this.renderWheelPicker(forcePresentation)));\n }\n /**\n * Grid Render Methods\n */\n renderCalendarHeader(mode) {\n const expandedIcon = mode === 'ios' ? chevronDown : caretUpSharp;\n const collapsedIcon = mode === 'ios' ? chevronForward : caretDownSharp;\n const prevMonthDisabled = isPrevMonthDisabled(this.workingParts, this.minParts, this.maxParts);\n const nextMonthDisabled = isNextMonthDisabled(this.workingParts, this.maxParts);\n // don't use the inheritAttributes util because it removes dir from the host, and we still need that\n const hostDir = this.el.getAttribute('dir') || undefined;\n return (h(\"div\", { class: \"calendar-header\" }, h(\"div\", { class: \"calendar-action-buttons\" }, h(\"div\", { class: \"calendar-month-year\" }, h(\"ion-item\", { button: true, detail: false, lines: \"none\", onClick: () => this.toggleMonthAndYearView() }, h(\"ion-label\", null, getMonthAndYear(this.locale, this.workingParts), ' ', h(\"ion-icon\", { \"aria-hidden\": \"true\", icon: this.showMonthAndYear ? expandedIcon : collapsedIcon, lazy: false })))), h(\"div\", { class: \"calendar-next-prev\" }, h(\"ion-buttons\", null, h(\"ion-button\", { \"aria-label\": \"previous month\", disabled: prevMonthDisabled, onClick: () => this.prevMonth() }, h(\"ion-icon\", { dir: hostDir, \"aria-hidden\": \"true\", slot: \"icon-only\", icon: chevronBack, lazy: false, flipRtl: true })), h(\"ion-button\", { \"aria-label\": \"next month\", disabled: nextMonthDisabled, onClick: () => this.nextMonth() }, h(\"ion-icon\", { dir: hostDir, \"aria-hidden\": \"true\", slot: \"icon-only\", icon: chevronForward, lazy: false, flipRtl: true }))))), h(\"div\", { class: \"calendar-days-of-week\" }, getDaysOfWeek(this.locale, mode, this.firstDayOfWeek % 7).map((d) => {\n return h(\"div\", { class: \"day-of-week\" }, d);\n }))));\n }\n renderMonth(month, year) {\n const yearAllowed = this.parsedYearValues === undefined || this.parsedYearValues.includes(year);\n const monthAllowed = this.parsedMonthValues === undefined || this.parsedMonthValues.includes(month);\n const isCalMonthDisabled = !yearAllowed || !monthAllowed;\n const swipeDisabled = isMonthDisabled({\n month,\n year,\n day: null,\n }, {\n // The day is not used when checking if a month is disabled.\n // Users should be able to access the min or max month, even if the\n // min/max date is out of bounds (e.g. min is set to Feb 15, Feb should not be disabled).\n minParts: Object.assign(Object.assign({}, this.minParts), { day: null }),\n maxParts: Object.assign(Object.assign({}, this.maxParts), { day: null }),\n });\n // The working month should never have swipe disabled.\n // Otherwise the CSS scroll snap will not work and the user\n // can free-scroll the calendar.\n const isWorkingMonth = this.workingParts.month === month && this.workingParts.year === year;\n const activePart = this.getActivePartsWithFallback();\n return (h(\"div\", { \"aria-hidden\": !isWorkingMonth ? 'true' : null, class: {\n 'calendar-month': true,\n // Prevents scroll snap swipe gestures for months outside of the min/max bounds\n 'calendar-month-disabled': !isWorkingMonth && swipeDisabled,\n } }, h(\"div\", { class: \"calendar-month-grid\" }, getDaysOfMonth(month, year, this.firstDayOfWeek % 7).map((dateObject, index) => {\n const { day, dayOfWeek } = dateObject;\n const { isDateEnabled, multiple } = this;\n const referenceParts = { month, day, year };\n const { isActive, isToday, ariaLabel, ariaSelected, disabled, text } = getCalendarDayState(this.locale, referenceParts, this.activePartsClone, this.todayParts, this.minParts, this.maxParts, this.parsedDayValues);\n let isCalDayDisabled = isCalMonthDisabled || disabled;\n if (!isCalDayDisabled && isDateEnabled !== undefined) {\n try {\n /**\n * The `isDateEnabled` implementation is try-catch wrapped\n * to prevent exceptions in the user's function from\n * interrupting the calendar rendering.\n */\n isCalDayDisabled = !isDateEnabled(convertDataToISO(referenceParts));\n }\n catch (e) {\n printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);\n }\n }\n return (h(\"button\", { tabindex: \"-1\", \"data-day\": day, \"data-month\": month, \"data-year\": year, \"data-index\": index, \"data-day-of-week\": dayOfWeek, disabled: isCalDayDisabled, class: {\n 'calendar-day-padding': day === null,\n 'calendar-day': true,\n 'calendar-day-active': isActive,\n 'calendar-day-today': isToday,\n }, \"aria-selected\": ariaSelected, \"aria-label\": ariaLabel, onClick: () => {\n if (day === null) {\n return;\n }\n this.setWorkingParts(Object.assign(Object.assign({}, this.workingParts), { month,\n day,\n year }));\n // multiple only needs date info, so we can wipe out other fields like time\n if (multiple) {\n this.setActiveParts({\n month,\n day,\n year,\n }, isActive);\n }\n else {\n this.setActiveParts(Object.assign(Object.assign({}, activePart), { month,\n day,\n year }));\n }\n } }, text));\n }))));\n }\n renderCalendarBody() {\n return (h(\"div\", { class: \"calendar-body ion-focusable\", ref: (el) => (this.calendarBodyRef = el), tabindex: \"0\" }, generateMonths(this.workingParts).map(({ month, year }) => {\n return this.renderMonth(month, year);\n })));\n }\n renderCalendar(mode) {\n return (h(\"div\", { class: \"datetime-calendar\", key: \"datetime-calendar\" }, this.renderCalendarHeader(mode), this.renderCalendarBody()));\n }\n renderTimeLabel() {\n const hasSlottedTimeLabel = this.el.querySelector('[slot=\"time-label\"]') !== null;\n if (!hasSlottedTimeLabel && !this.showDefaultTimeLabel) {\n return;\n }\n return h(\"slot\", { name: \"time-label\" }, \"Time\");\n }\n renderTimeOverlay() {\n const use24Hour = is24Hour(this.locale, this.hourCycle);\n const activePart = this.getActivePartsWithFallback();\n return [\n h(\"div\", { class: \"time-header\" }, this.renderTimeLabel()),\n h(\"button\", { class: {\n 'time-body': true,\n 'time-body-active': this.isTimePopoverOpen,\n }, \"aria-expanded\": \"false\", \"aria-haspopup\": \"true\", onClick: async (ev) => {\n const { popoverRef } = this;\n if (popoverRef) {\n this.isTimePopoverOpen = true;\n popoverRef.present(new CustomEvent('ionShadowTarget', {\n detail: {\n ionShadowTarget: ev.target,\n },\n }));\n await popoverRef.onWillDismiss();\n this.isTimePopoverOpen = false;\n }\n } }, getLocalizedTime(this.locale, activePart, use24Hour)),\n h(\"ion-popover\", { alignment: \"center\", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {\n /**\n * Intersection Observers do not consistently fire between Blink and Webkit\n * when toggling the visibility of the popover and trying to scroll the picker\n * column to the correct time value.\n *\n * This will correctly scroll the element position to the correct time value,\n * before the popover is fully presented.\n */\n const cols = ev.target.querySelectorAll('ion-picker-column-internal');\n // TODO (FW-615): Potentially remove this when intersection observers are fixed in picker column\n cols.forEach((col) => col.scrollActiveItemIntoView());\n }, style: {\n '--offset-y': '-10px',\n '--min-width': 'fit-content',\n },\n // Allow native browser keyboard events to support up/down/home/end key\n // navigation within the time picker.\n keyboardEvents: true, ref: (el) => (this.popoverRef = el) }, this.renderWheelPicker('time')),\n ];\n }\n getHeaderSelectedDateText() {\n const { activeParts, multiple, titleSelectedDatesFormatter } = this;\n const isArray = Array.isArray(activeParts);\n let headerText;\n if (multiple && isArray && activeParts.length !== 1) {\n headerText = `${activeParts.length} days`; // default/fallback for multiple selection\n if (titleSelectedDatesFormatter !== undefined) {\n try {\n headerText = titleSelectedDatesFormatter(convertDataToISO(activeParts));\n }\n catch (e) {\n printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);\n }\n }\n }\n else {\n // for exactly 1 day selected (multiple set or not), show a formatted version of that\n headerText = getMonthAndDay(this.locale, this.getActivePartsWithFallback());\n }\n return headerText;\n }\n renderCalendarViewHeader(showExpandedHeader = true) {\n const hasSlottedTitle = this.el.querySelector('[slot=\"title\"]') !== null;\n if (!hasSlottedTitle && !this.showDefaultTitle) {\n return;\n }\n return (h(\"div\", { class: \"datetime-header\" }, h(\"div\", { class: \"datetime-title\" }, h(\"slot\", { name: \"title\" }, \"Select Date\")), showExpandedHeader && h(\"div\", { class: \"datetime-selected-date\" }, this.getHeaderSelectedDateText())));\n }\n /**\n * Render time picker inside of datetime.\n * Do not pass color prop to segment on\n * iOS mode. MD segment has been customized and\n * should take on the color prop, but iOS\n * should just be the default segment.\n */\n renderTime() {\n const { presentation } = this;\n const timeOnlyPresentation = presentation === 'time';\n return (h(\"div\", { class: \"datetime-time\" }, timeOnlyPresentation ? this.renderWheelPicker() : this.renderTimeOverlay()));\n }\n /**\n * Renders the month/year picker that is\n * displayed on the calendar grid.\n * The .datetime-year class has additional\n * styles that let us show/hide the\n * picker when the user clicks on the\n * toggle in the calendar header.\n */\n renderCalendarViewMonthYearPicker() {\n return h(\"div\", { class: \"datetime-year\" }, this.renderWheelView('month-year'));\n }\n /**\n * Render entry point\n * All presentation types are rendered from here.\n */\n renderDatetime(mode) {\n const { presentation, preferWheel } = this;\n /**\n * Certain presentation types have separate grid and wheel displays.\n * If preferWheel is true then we should show a wheel picker instead.\n */\n const hasWheelVariant = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';\n if (preferWheel && hasWheelVariant) {\n return [this.renderCalendarViewHeader(false), this.renderWheelView(), this.renderFooter()];\n }\n switch (presentation) {\n case 'date-time':\n return [\n this.renderCalendarViewHeader(),\n this.renderCalendar(mode),\n this.renderCalendarViewMonthYearPicker(),\n this.renderTime(),\n this.renderFooter(),\n ];\n case 'time-date':\n return [\n this.renderCalendarViewHeader(),\n this.renderTime(),\n this.renderCalendar(mode),\n this.renderCalendarViewMonthYearPicker(),\n this.renderFooter(),\n ];\n case 'time':\n return [this.renderTime(), this.renderFooter()];\n case 'month':\n case 'month-year':\n case 'year':\n return [this.renderWheelView(), this.renderFooter()];\n default:\n return [\n this.renderCalendarViewHeader(),\n this.renderCalendar(mode),\n this.renderCalendarViewMonthYearPicker(),\n this.renderFooter(),\n ];\n }\n }\n render() {\n const { name, value, disabled, el, color, isPresented, readonly, showMonthAndYear, preferWheel, presentation, size, } = this;\n const mode = getIonMode(this);\n const isMonthAndYearPresentation = presentation === 'year' || presentation === 'month' || presentation === 'month-year';\n const shouldShowMonthAndYear = showMonthAndYear || isMonthAndYearPresentation;\n const monthYearPickerOpen = showMonthAndYear && !isMonthAndYearPresentation;\n const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';\n const hasWheelVariant = hasDatePresentation && preferWheel;\n const hasGrid = hasDatePresentation && !preferWheel;\n renderHiddenInput(true, el, name, formatValue(value), disabled);\n return (h(Host, { \"aria-disabled\": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {\n [mode]: true,\n ['datetime-presented']: isPresented,\n ['datetime-readonly']: readonly,\n ['datetime-disabled']: disabled,\n 'show-month-and-year': shouldShowMonthAndYear,\n 'month-year-picker-open': monthYearPickerOpen,\n [`datetime-presentation-${presentation}`]: true,\n [`datetime-size-${size}`]: true,\n [`datetime-prefer-wheel`]: hasWheelVariant,\n [`datetime-grid`]: hasGrid,\n })) }, this.renderDatetime(mode)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"],\n \"min\": [\"minChanged\"],\n \"max\": [\"maxChanged\"],\n \"yearValues\": [\"yearValuesChanged\"],\n \"monthValues\": [\"monthValuesChanged\"],\n \"dayValues\": [\"dayValuesChanged\"],\n \"hourValues\": [\"hourValuesChanged\"],\n \"minuteValues\": [\"minuteValuesChanged\"],\n \"activeParts\": [\"activePartsChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: datetimeIosCss,\n md: datetimeMdCss\n }; }\n}, [33, \"ion-datetime\", {\n \"color\": [1],\n \"name\": [1],\n \"disabled\": [4],\n \"readonly\": [4],\n \"isDateEnabled\": [16],\n \"min\": [1025],\n \"max\": [1025],\n \"presentation\": [1],\n \"cancelText\": [1, \"cancel-text\"],\n \"doneText\": [1, \"done-text\"],\n \"clearText\": [1, \"clear-text\"],\n \"yearValues\": [8, \"year-values\"],\n \"monthValues\": [8, \"month-values\"],\n \"dayValues\": [8, \"day-values\"],\n \"hourValues\": [8, \"hour-values\"],\n \"minuteValues\": [8, \"minute-values\"],\n \"locale\": [1],\n \"firstDayOfWeek\": [2, \"first-day-of-week\"],\n \"titleSelectedDatesFormatter\": [16],\n \"multiple\": [4],\n \"value\": [1025],\n \"showDefaultTitle\": [4, \"show-default-title\"],\n \"showDefaultButtons\": [4, \"show-default-buttons\"],\n \"showClearButton\": [4, \"show-clear-button\"],\n \"showDefaultTimeLabel\": [4, \"show-default-time-label\"],\n \"hourCycle\": [1, \"hour-cycle\"],\n \"size\": [1],\n \"preferWheel\": [4, \"prefer-wheel\"],\n \"showMonthAndYear\": [32],\n \"activeParts\": [32],\n \"workingParts\": [32],\n \"isPresented\": [32],\n \"isTimePopoverOpen\": [32],\n \"confirm\": [64],\n \"reset\": [64],\n \"cancel\": [64]\n }]);\nlet datetimeIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-datetime\", \"ion-backdrop\", \"ion-button\", \"ion-buttons\", \"ion-icon\", \"ion-item\", \"ion-label\", \"ion-note\", \"ion-picker-column-internal\", \"ion-picker-internal\", \"ion-popover\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-datetime\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Datetime);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$c();\n }\n break;\n case \"ion-button\":\n if (!customElements.get(tagName)) {\n defineCustomElement$b();\n }\n break;\n case \"ion-buttons\":\n if (!customElements.get(tagName)) {\n defineCustomElement$a();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$9();\n }\n break;\n case \"ion-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"ion-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"ion-note\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"ion-picker-column-internal\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"ion-picker-internal\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"ion-popover\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonDatetime = Datetime;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonDatetime, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as addEventListener, c as componentOnReady } from './helpers.js';\nimport { a as printIonError } from './index8.js';\nimport { c as createColorClasses } from './theme.js';\nimport { q as parseDate, t as getToday, J as is24Hour, S as getLocalizedDateTime, F as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst iosDatetimeButtonCss = \":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;margin-left:2px;margin-right:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host button{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}\";\n\nconst mdDatetimeButtonCss = \":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px;margin-left:2px;margin-right:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host button{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}\";\n\nconst DatetimeButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.datetimeEl = null;\n this.overlayEl = null;\n this.datetimePresentation = 'date-time';\n this.datetimeActive = false;\n /**\n * The color to use from your application's color palette.\n * Default options are: `\"primary\"`, `\"secondary\"`, `\"tertiary\"`, `\"success\"`, `\"warning\"`, `\"danger\"`, `\"light\"`, `\"medium\"`, and `\"dark\"`.\n * For more information on colors, see [theming](/docs/theming/basics).\n */\n this.color = 'primary';\n /**\n * If `true`, the user cannot interact with the button.\n */\n this.disabled = false;\n /**\n * Accepts one or more string values and converts\n * them to DatetimeParts. This is done so datetime-button\n * can work with an array internally and not need\n * to keep checking if the datetime value is `string` or `string[]`.\n */\n this.getParsedDateValues = (value) => {\n // TODO FW-2646 Remove value === ''\n if (value === '' || value === undefined || value === null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value;\n }\n return [value];\n };\n /**\n * Check the value property on the linked\n * ion-datetime and then format it according\n * to the locale specified on ion-datetime.\n */\n this.setDateTimeText = () => {\n const { datetimeEl, datetimePresentation } = this;\n if (!datetimeEl) {\n return;\n }\n const { value, locale, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;\n const parsedValues = this.getParsedDateValues(value);\n /**\n * Both ion-datetime and ion-datetime-button default\n * to today's date and time if no value is set.\n */\n const parsedDatetimes = parseDate(parsedValues.length > 0 ? parsedValues : [getToday()]);\n /**\n * If developers incorrectly use multiple=\"true\"\n * with non \"date\" datetimes, then just select\n * the first value so the interface does\n * not appear broken. Datetime will provide a\n * warning in the console.\n */\n const firstParsedDatetime = parsedDatetimes[0];\n const use24Hour = is24Hour(locale, hourCycle);\n // TODO(FW-1865) - Remove once FW-1831 is fixed.\n parsedDatetimes.forEach((parsedDatetime) => {\n parsedDatetime.tzOffset = undefined;\n });\n this.dateText = this.timeText = undefined;\n switch (datetimePresentation) {\n case 'date-time':\n case 'time-date':\n const dateText = getMonthDayAndYear(locale, firstParsedDatetime);\n const timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);\n if (preferWheel) {\n this.dateText = `${dateText} ${timeText}`;\n }\n else {\n this.dateText = dateText;\n this.timeText = timeText;\n }\n break;\n case 'date':\n if (multiple && parsedValues.length !== 1) {\n let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection\n if (titleSelectedDatesFormatter !== undefined) {\n try {\n headerText = titleSelectedDatesFormatter(parsedValues);\n }\n catch (e) {\n printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);\n }\n }\n this.dateText = headerText;\n }\n else {\n this.dateText = getMonthDayAndYear(locale, firstParsedDatetime);\n }\n break;\n case 'time':\n this.timeText = getLocalizedTime(locale, firstParsedDatetime, use24Hour);\n break;\n case 'month-year':\n this.dateText = getMonthAndYear(locale, firstParsedDatetime);\n break;\n case 'month':\n this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { month: 'long' });\n break;\n case 'year':\n this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { year: 'numeric' });\n break;\n }\n };\n /**\n * Waits for the ion-datetime to re-render.\n * This is needed in order to correctly position\n * a popover relative to the trigger element.\n */\n this.waitForDatetimeChanges = async () => {\n const { datetimeEl } = this;\n if (!datetimeEl) {\n return Promise.resolve();\n }\n return new Promise((resolve) => {\n addEventListener(datetimeEl, 'ionRender', resolve, { once: true });\n });\n };\n this.handleDateClick = async (ev) => {\n const { datetimeEl, datetimePresentation } = this;\n if (!datetimeEl) {\n return;\n }\n let needsPresentationChange = false;\n /**\n * When clicking the date button,\n * we need to make sure that only a date\n * picker is displayed. For presentation styles\n * that display content other than a date picker,\n * we need to update the presentation style.\n */\n switch (datetimePresentation) {\n case 'date-time':\n case 'time-date':\n const needsChange = datetimeEl.presentation !== 'date';\n /**\n * The date+time wheel picker\n * shows date and time together,\n * so do not adjust the presentation\n * in that case.\n */\n if (!datetimeEl.preferWheel && needsChange) {\n datetimeEl.presentation = 'date';\n needsPresentationChange = true;\n }\n break;\n }\n /**\n * Track which button was clicked\n * so that it can have the correct\n * activated styles applied when\n * the modal/popover containing\n * the datetime is opened.\n */\n this.selectedButton = 'date';\n this.presentOverlay(ev, needsPresentationChange, this.dateTargetEl);\n };\n this.handleTimeClick = (ev) => {\n const { datetimeEl, datetimePresentation } = this;\n if (!datetimeEl) {\n return;\n }\n let needsPresentationChange = false;\n /**\n * When clicking the time button,\n * we need to make sure that only a time\n * picker is displayed. For presentation styles\n * that display content other than a time picker,\n * we need to update the presentation style.\n */\n switch (datetimePresentation) {\n case 'date-time':\n case 'time-date':\n const needsChange = datetimeEl.presentation !== 'time';\n if (needsChange) {\n datetimeEl.presentation = 'time';\n needsPresentationChange = true;\n }\n break;\n }\n /**\n * Track which button was clicked\n * so that it can have the correct\n * activated styles applied when\n * the modal/popover containing\n * the datetime is opened.\n */\n this.selectedButton = 'time';\n this.presentOverlay(ev, needsPresentationChange, this.timeTargetEl);\n };\n /**\n * If the datetime is presented in an\n * overlay, the datetime and overlay\n * should be appropriately sized.\n * These classes provide default sizing values\n * that developers can customize.\n * The goal is to provide an overlay that is\n * reasonably sized with a datetime that\n * fills the entire container.\n */\n this.presentOverlay = async (ev, needsPresentationChange, triggerEl) => {\n const { overlayEl } = this;\n if (!overlayEl) {\n return;\n }\n if (overlayEl.tagName === 'ION-POPOVER') {\n /**\n * When the presentation on datetime changes,\n * we need to wait for the component to re-render\n * otherwise the computed width/height of the\n * popover content will be wrong, causing\n * the popover to not align with the trigger element.\n */\n if (needsPresentationChange) {\n await this.waitForDatetimeChanges();\n }\n /**\n * We pass the trigger button element\n * so that the popover aligns with the individual\n * button that was clicked, not the component container.\n */\n overlayEl.present(Object.assign(Object.assign({}, ev), { detail: {\n ionShadowTarget: triggerEl,\n } }));\n }\n else {\n overlayEl.present();\n }\n };\n }\n async componentWillLoad() {\n const { datetime } = this;\n if (!datetime) {\n printIonError('An ID associated with an ion-datetime instance is required for ion-datetime-button to function properly.', this.el);\n return;\n }\n const datetimeEl = (this.datetimeEl = document.getElementById(datetime));\n if (!datetimeEl) {\n printIonError(`No ion-datetime instance found for ID '${datetime}'.`, this.el);\n return;\n }\n /**\n * Since the datetime can be used in any context (overlays, accordion, etc)\n * we track when it is visible to determine when it is active.\n * This informs which button is highlighted as well as the\n * aria-expanded state.\n */\n const io = new IntersectionObserver((entries) => {\n const ev = entries[0];\n this.datetimeActive = ev.isIntersecting;\n }, {\n threshold: 0.01,\n });\n io.observe(datetimeEl);\n /**\n * Get a reference to any modal/popover\n * the datetime is being used in so we can\n * correctly size it when it is presented.\n */\n const overlayEl = (this.overlayEl = datetimeEl.closest('ion-modal, ion-popover'));\n /**\n * The .ion-datetime-button-overlay class contains\n * styles that allow any modal/popover to be\n * sized according to the dimensions of the datetime.\n * If developers want a smaller/larger overlay all they need\n * to do is change the width/height of the datetime.\n * Additionally, this lets us avoid having to set\n * explicit widths on each variant of datetime.\n */\n if (overlayEl) {\n overlayEl.classList.add('ion-datetime-button-overlay');\n }\n componentOnReady(datetimeEl, () => {\n const datetimePresentation = (this.datetimePresentation = datetimeEl.presentation || 'date-time');\n /**\n * Set the initial display\n * in the rendered buttons.\n *\n * From there, we need to listen\n * for ionChange to be emitted\n * from datetime so we know when\n * to re-render the displayed\n * text in the buttons.\n */\n this.setDateTimeText();\n addEventListener(datetimeEl, 'ionChange', this.setDateTimeText);\n /**\n * Configure the initial selected button\n * in the event that the datetime is displayed\n * without clicking one of the datetime buttons.\n * For example, a datetime could be expanded\n * in an accordion. In this case users only\n * need to click the accordion header to show\n * the datetime.\n */\n switch (datetimePresentation) {\n case 'date-time':\n case 'date':\n case 'month-year':\n case 'month':\n case 'year':\n this.selectedButton = 'date';\n break;\n case 'time-date':\n case 'time':\n this.selectedButton = 'time';\n break;\n }\n });\n }\n render() {\n const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(color, {\n [mode]: true,\n [`${selectedButton}-active`]: datetimeActive,\n ['datetime-button-disabled']: disabled,\n }) }, dateText && (h(\"button\", { class: \"ion-activatable\", id: \"date-button\", \"aria-expanded\": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: \"native\", ref: (el) => (this.dateTargetEl = el) }, h(\"slot\", { name: \"date-target\" }, dateText), mode === 'md' && h(\"ion-ripple-effect\", null))), timeText && (h(\"button\", { class: \"ion-activatable\", id: \"time-button\", \"aria-expanded\": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: \"native\", ref: (el) => (this.timeTargetEl = el) }, h(\"slot\", { name: \"time-target\" }, timeText), mode === 'md' && h(\"ion-ripple-effect\", null)))));\n }\n get el() { return this; }\n static get style() { return {\n ios: iosDatetimeButtonCss,\n md: mdDatetimeButtonCss\n }; }\n}, [33, \"ion-datetime-button\", {\n \"color\": [513],\n \"disabled\": [516],\n \"datetime\": [1],\n \"datetimePresentation\": [32],\n \"dateText\": [32],\n \"timeText\": [32],\n \"datetimeActive\": [32],\n \"selectedButton\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-datetime-button\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-datetime-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, DatetimeButton);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonDatetimeButton = DatetimeButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonDatetimeButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst fabCss = \":host{position:absolute;z-index:999}:host(.fab-horizontal-center){left:50%;margin-left:-28px}:host-context([dir=rtl]):host(.fab-horizontal-center),:host-context([dir=rtl]).fab-horizontal-center{left:unset;right:unset;right:50%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-horizontal-center){margin-left:unset;-webkit-margin-start:-28px;margin-inline-start:-28px}}:host(.fab-horizontal-start){left:calc(10px + var(--ion-safe-area-left, 0px))}:host-context([dir=rtl]):host(.fab-horizontal-start),:host-context([dir=rtl]).fab-horizontal-start{left:unset;right:unset;right:calc(10px + var(--ion-safe-area-left, 0px))}:host(.fab-horizontal-end){right:calc(10px + var(--ion-safe-area-right, 0px))}:host-context([dir=rtl]):host(.fab-horizontal-end),:host-context([dir=rtl]).fab-horizontal-end{left:unset;right:unset;left:calc(10px + var(--ion-safe-area-right, 0px))}:host(.fab-vertical-top){top:10px}:host(.fab-vertical-top.fab-edge){top:-28px}:host(.fab-vertical-bottom){bottom:10px}:host(.fab-vertical-bottom.fab-edge){bottom:-28px}:host(.fab-vertical-center){margin-top:-28px;top:50%}\";\n\nconst Fab = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the fab will display on the edge of the header if\n * `vertical` is `\"top\"`, and on the edge of the footer if\n * it is `\"bottom\"`. Should be used with a `fixed` slot.\n */\n this.edge = false;\n /**\n * If `true`, both the `ion-fab-button` and all `ion-fab-list` inside `ion-fab` will become active.\n * That means `ion-fab-button` will become a `close` icon and `ion-fab-list` will become visible.\n */\n this.activated = false;\n }\n activatedChanged() {\n const activated = this.activated;\n const fab = this.getFab();\n if (fab) {\n fab.activated = activated;\n }\n Array.from(this.el.querySelectorAll('ion-fab-list')).forEach((list) => {\n list.activated = activated;\n });\n }\n componentDidLoad() {\n if (this.activated) {\n this.activatedChanged();\n }\n }\n /**\n * Close an active FAB list container.\n */\n async close() {\n this.activated = false;\n }\n getFab() {\n return this.el.querySelector('ion-fab-button');\n }\n /**\n * Opens/Closes the FAB list container.\n * @internal\n */\n async toggle() {\n const hasList = !!this.el.querySelector('ion-fab-list');\n if (hasList) {\n this.activated = !this.activated;\n }\n }\n render() {\n const { horizontal, vertical, edge } = this;\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n [`fab-horizontal-${horizontal}`]: horizontal !== undefined,\n [`fab-vertical-${vertical}`]: vertical !== undefined,\n 'fab-edge': edge,\n } }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"activated\": [\"activatedChanged\"]\n }; }\n static get style() { return fabCss; }\n}, [1, \"ion-fab\", {\n \"horizontal\": [1],\n \"vertical\": [1],\n \"edge\": [4],\n \"activated\": [1028],\n \"close\": [64],\n \"toggle\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-fab\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-fab\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Fab);\n }\n break;\n } });\n}\n\nconst IonFab = Fab;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonFab, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst fabListCss = \":host{margin-left:0;margin-right:0;margin-top:66px;margin-bottom:66px;display:none;position:absolute;top:0;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;min-width:56px;min-height:56px}:host(.fab-list-active){display:-ms-flexbox;display:flex}::slotted(.fab-button-in-list){margin-left:0;margin-right:0;margin-top:8px;margin-bottom:8px;width:40px;height:40px;-webkit-transform:scale(0);transform:scale(0);opacity:0;visibility:hidden}:host(.fab-list-side-top) ::slotted(.fab-button-in-list),:host(.fab-list-side-bottom) ::slotted(.fab-button-in-list){margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px}:host(.fab-list-side-start) ::slotted(.fab-button-in-list),:host(.fab-list-side-end) ::slotted(.fab-button-in-list){margin-left:5px;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-list-side-start) ::slotted(.fab-button-in-list),:host(.fab-list-side-end) ::slotted(.fab-button-in-list){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted(.fab-button-in-list.fab-button-show){-webkit-transform:scale(1);transform:scale(1);opacity:1;visibility:visible}:host(.fab-list-side-top){top:auto;bottom:0;-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.fab-list-side-start){margin-left:66px;margin-right:66px;margin-top:0;margin-bottom:0;right:0;-ms-flex-direction:row-reverse;flex-direction:row-reverse}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-list-side-start){margin-left:unset;margin-right:unset;-webkit-margin-start:66px;margin-inline-start:66px;-webkit-margin-end:66px;margin-inline-end:66px}}:host-context([dir=rtl]):host(.fab-list-side-start),:host-context([dir=rtl]).fab-list-side-start{left:unset;right:unset;left:0}:host(.fab-list-side-end){margin-left:66px;margin-right:66px;margin-top:0;margin-bottom:0;left:0;-ms-flex-direction:row;flex-direction:row}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-list-side-end){margin-left:unset;margin-right:unset;-webkit-margin-start:66px;margin-inline-start:66px;-webkit-margin-end:66px;margin-inline-end:66px}}:host-context([dir=rtl]):host(.fab-list-side-end),:host-context([dir=rtl]).fab-list-side-end{left:unset;right:unset;right:0}\";\n\nconst FabList = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the fab list will show all fab buttons in the list.\n */\n this.activated = false;\n /**\n * The side the fab list will show on relative to the main fab button.\n */\n this.side = 'bottom';\n }\n activatedChanged(activated) {\n const fabs = Array.from(this.el.querySelectorAll('ion-fab-button'));\n // if showing the fabs add a timeout, else show immediately\n const timeout = activated ? 30 : 0;\n fabs.forEach((fab, i) => {\n setTimeout(() => (fab.show = activated), i * timeout);\n });\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'fab-list-active': this.activated,\n [`fab-list-side-${this.side}`]: true,\n } }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"activated\": [\"activatedChanged\"]\n }; }\n static get style() { return fabListCss; }\n}, [1, \"ion-fab-list\", {\n \"activated\": [4],\n \"side\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-fab-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-fab-list\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, FabList);\n }\n break;\n } });\n}\n\nconst IonFabList = FabList;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonFabList, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { w as win } from './index6.js';\n\n/**\n * Creates a controller that tracks and reacts to opening or closing the keyboard.\n *\n * @internal\n * @param keyboardChangeCallback A function to call when the keyboard opens or closes.\n */\nconst createKeyboardController = (keyboardChangeCallback) => {\n let keyboardWillShowHandler;\n let keyboardWillHideHandler;\n let keyboardVisible;\n const init = () => {\n keyboardWillShowHandler = () => {\n keyboardVisible = true;\n if (keyboardChangeCallback)\n keyboardChangeCallback(true);\n };\n keyboardWillHideHandler = () => {\n keyboardVisible = false;\n if (keyboardChangeCallback)\n keyboardChangeCallback(false);\n };\n win === null || win === void 0 ? void 0 : win.addEventListener('keyboardWillShow', keyboardWillShowHandler);\n win === null || win === void 0 ? void 0 : win.addEventListener('keyboardWillHide', keyboardWillHideHandler);\n };\n const destroy = () => {\n win === null || win === void 0 ? void 0 : win.removeEventListener('keyboardWillShow', keyboardWillShowHandler);\n win === null || win === void 0 ? void 0 : win.removeEventListener('keyboardWillHide', keyboardWillHideHandler);\n keyboardWillShowHandler = keyboardWillHideHandler = undefined;\n };\n const isKeyboardVisible = () => keyboardVisible;\n init();\n return { init, destroy, isKeyboardVisible };\n};\n\nexport { createKeyboardController as c };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { readTask, writeTask, proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { f as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index9.js';\nimport { c as createKeyboardController } from './keyboard-controller.js';\nimport { h as clamp } from './helpers.js';\n\nconst handleFooterFade = (scrollEl, baseEl) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const maxScroll = scrollEl.scrollHeight - scrollEl.clientHeight;\n /**\n * Toolbar background will fade\n * out over fadeDuration in pixels.\n */\n const fadeDuration = 10;\n /**\n * Begin fading out maxScroll - 30px\n * from the bottom of the content.\n * Also determine how close we are\n * to starting the fade. If we are\n * before the starting point, the\n * scale value will get clamped to 0.\n * If we are after the maxScroll (rubber\n * band scrolling), the scale value will\n * get clamped to 1.\n */\n const fadeStart = maxScroll - fadeDuration;\n const distanceToStart = scrollTop - fadeStart;\n const scale = clamp(0, 1 - distanceToStart / fadeDuration, 1);\n writeTask(() => {\n baseEl.style.setProperty('--opacity-scale', scale.toString());\n });\n });\n};\n\nconst footerIosCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}\";\n\nconst footerMdCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md::before{left:0;top:-2px;bottom:auto;background-position:left 0 top 0;position:absolute;width:100%;height:2px;background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==\\\");background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{left:unset;right:unset;right:0}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{background-position:right 0 top 0}.footer-md.ion-no-border::before{display:none}\";\n\nconst Footer = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.keyboardCtrl = null;\n this.keyboardVisible = false;\n /**\n * If `true`, the footer will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the footer, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n this.checkCollapsibleFooter = () => {\n const mode = getIonMode(this);\n if (mode !== 'ios') {\n return;\n }\n const { collapse } = this;\n const hasFade = collapse === 'fade';\n this.destroyCollapsibleFooter();\n if (hasFade) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n this.setupFadeFooter(contentEl);\n }\n };\n this.setupFadeFooter = async (contentEl) => {\n const scrollEl = (this.scrollEl = await getScrollElement(contentEl));\n /**\n * Handle fading of toolbars on scroll\n */\n this.contentScrollCallback = () => {\n handleFooterFade(scrollEl, this.el);\n };\n scrollEl.addEventListener('scroll', this.contentScrollCallback);\n handleFooterFade(scrollEl, this.el);\n };\n }\n componentDidLoad() {\n this.checkCollapsibleFooter();\n }\n componentDidUpdate() {\n this.checkCollapsibleFooter();\n }\n connectedCallback() {\n this.keyboardCtrl = createKeyboardController((keyboardOpen) => {\n this.keyboardVisible = keyboardOpen; // trigger re-render by updating state\n });\n }\n disconnectedCallback() {\n if (this.keyboardCtrl) {\n this.keyboardCtrl.destroy();\n }\n }\n destroyCollapsibleFooter() {\n if (this.scrollEl && this.contentScrollCallback) {\n this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);\n this.contentScrollCallback = undefined;\n }\n }\n render() {\n const { translucent, collapse } = this;\n const mode = getIonMode(this);\n const tabs = this.el.closest('ion-tabs');\n const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');\n return (h(Host, { role: \"contentinfo\", class: {\n [mode]: true,\n // Used internally for styling\n [`footer-${mode}`]: true,\n [`footer-translucent`]: translucent,\n [`footer-translucent-${mode}`]: translucent,\n ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),\n [`footer-collapse-${collapse}`]: collapse !== undefined,\n } }, mode === 'ios' && translucent && h(\"div\", { class: \"footer-background\" }), h(\"slot\", null)));\n }\n get el() { return this; }\n static get style() { return {\n ios: footerIosCss,\n md: footerMdCss\n }; }\n}, [36, \"ion-footer\", {\n \"collapse\": [1],\n \"translucent\": [4],\n \"keyboardVisible\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-footer\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-footer\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Footer);\n }\n break;\n } });\n}\n\nconst IonFooter = Footer;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonFooter, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst gridCss = \":host{padding-left:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));margin-left:auto;margin-right:auto;display:block;-ms-flex:1;flex:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xs, var(--ion-grid-padding, 5px))}}@media (min-width: 576px){:host{padding-left:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-sm, var(--ion-grid-padding, 5px))}}}@media (min-width: 768px){:host{padding-left:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-md, var(--ion-grid-padding, 5px))}}}@media (min-width: 992px){:host{padding-left:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-lg, var(--ion-grid-padding, 5px))}}}@media (min-width: 1200px){:host{padding-left:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-right:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-top:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-bottom:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-start:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));-webkit-padding-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px));padding-inline-end:var(--ion-grid-padding-xl, var(--ion-grid-padding, 5px))}}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.grid-fixed){width:var(--ion-grid-width-xs, var(--ion-grid-width, 100%));max-width:100%}@media (min-width: 576px){:host(.grid-fixed){width:var(--ion-grid-width-sm, var(--ion-grid-width, 540px))}}@media (min-width: 768px){:host(.grid-fixed){width:var(--ion-grid-width-md, var(--ion-grid-width, 720px))}}@media (min-width: 992px){:host(.grid-fixed){width:var(--ion-grid-width-lg, var(--ion-grid-width, 960px))}}@media (min-width: 1200px){:host(.grid-fixed){width:var(--ion-grid-width-xl, var(--ion-grid-width, 1140px))}}:host(.ion-no-padding){--ion-grid-column-padding:0;--ion-grid-column-padding-xs:0;--ion-grid-column-padding-sm:0;--ion-grid-column-padding-md:0;--ion-grid-column-padding-lg:0;--ion-grid-column-padding-xl:0}\";\n\nconst Grid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the grid will have a fixed width based on the screen size.\n */\n this.fixed = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'grid-fixed': this.fixed,\n } }, h(\"slot\", null)));\n }\n static get style() { return gridCss; }\n}, [1, \"ion-grid\", {\n \"fixed\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-grid\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-grid\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Grid);\n }\n break;\n } });\n}\n\nconst IonGrid = Grid;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonGrid, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { readTask, writeTask, proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { g as getScrollElement, f as findIonContent, p as printIonContentErrorMsg } from './index9.js';\nimport { h as clamp, i as inheritAriaAttributes } from './helpers.js';\nimport { h as hostContext } from './theme.js';\n\nconst TRANSITION = 'all 0.2s ease-in-out';\nconst cloneElement = (tagName) => {\n const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`);\n if (getCachedEl !== null) {\n return getCachedEl;\n }\n const clonedEl = document.createElement(tagName);\n clonedEl.classList.add('ion-cloned-element');\n clonedEl.style.setProperty('display', 'none');\n document.body.appendChild(clonedEl);\n return clonedEl;\n};\nconst createHeaderIndex = (headerEl) => {\n if (!headerEl) {\n return;\n }\n const toolbars = headerEl.querySelectorAll('ion-toolbar');\n return {\n el: headerEl,\n toolbars: Array.from(toolbars).map((toolbar) => {\n const ionTitleEl = toolbar.querySelector('ion-title');\n return {\n el: toolbar,\n background: toolbar.shadowRoot.querySelector('.toolbar-background'),\n ionTitleEl,\n innerTitleEl: ionTitleEl ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null,\n ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')),\n };\n }),\n };\n};\nconst handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const scale = clamp(1, 1 + -scrollTop / 500, 1.1);\n // Native refresher should not cause titles to scale\n const nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native');\n if (nativeRefresher === null) {\n writeTask(() => {\n scaleLargeTitles(scrollHeaderIndex.toolbars, scale);\n });\n }\n });\n};\nconst setToolbarBackgroundOpacity = (headerEl, opacity) => {\n /**\n * Fading in the backdrop opacity\n * should happen after the large title\n * has collapsed, so it is handled\n * by handleHeaderFade()\n */\n if (headerEl.collapse === 'fade') {\n return;\n }\n if (opacity === undefined) {\n headerEl.style.removeProperty('--opacity-scale');\n }\n else {\n headerEl.style.setProperty('--opacity-scale', opacity.toString());\n }\n};\nconst handleToolbarBorderIntersection = (ev, mainHeaderIndex, scrollTop) => {\n if (!ev[0].isIntersecting) {\n return;\n }\n /**\n * There is a bug in Safari where overflow scrolling on a non-body element\n * does not always reset the scrollTop position to 0 when letting go. It will\n * set to 1 once the rubber band effect has ended. This causes the background to\n * appear slightly on certain app setups.\n *\n * Additionally, we check if user is rubber banding (scrolling is negative)\n * as this can mean they are using pull to refresh. Once the refresher starts,\n * the content is transformed which can cause the intersection observer to erroneously\n * fire here as well.\n */\n const scale = ev[0].intersectionRatio > 0.9 || scrollTop <= 0 ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;\n setToolbarBackgroundOpacity(mainHeaderIndex.el, scale === 1 ? undefined : scale);\n};\n/**\n * If toolbars are intersecting, hide the scrollable toolbar content\n * and show the primary toolbar content. If the toolbars are not intersecting,\n * hide the primary toolbar content and show the scrollable toolbar content\n */\nconst handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex, scrollEl) => {\n writeTask(() => {\n const scrollTop = scrollEl.scrollTop;\n handleToolbarBorderIntersection(ev, mainHeaderIndex, scrollTop);\n const event = ev[0];\n const intersection = event.intersectionRect;\n const intersectionArea = intersection.width * intersection.height;\n const rootArea = event.rootBounds.width * event.rootBounds.height;\n const isPageHidden = intersectionArea === 0 && rootArea === 0;\n const leftDiff = Math.abs(intersection.left - event.boundingClientRect.left);\n const rightDiff = Math.abs(intersection.right - event.boundingClientRect.right);\n const isPageTransitioning = intersectionArea > 0 && (leftDiff >= 5 || rightDiff >= 5);\n if (isPageHidden || isPageTransitioning) {\n return;\n }\n if (event.isIntersecting) {\n setHeaderActive(mainHeaderIndex, false);\n setHeaderActive(scrollHeaderIndex);\n }\n else {\n /**\n * There is a bug with IntersectionObserver on Safari\n * where `event.isIntersecting === false` when cancelling\n * a swipe to go back gesture. Checking the intersection\n * x, y, width, and height provides a workaround. This bug\n * does not happen when using Safari + Web Animations,\n * only Safari + CSS Animations.\n */\n const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);\n if (hasValidIntersection && scrollTop > 0) {\n setHeaderActive(mainHeaderIndex);\n setHeaderActive(scrollHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.el);\n }\n }\n });\n};\nconst setHeaderActive = (headerIndex, active = true) => {\n const headerEl = headerIndex.el;\n if (active) {\n headerEl.classList.remove('header-collapse-condense-inactive');\n headerEl.removeAttribute('aria-hidden');\n }\n else {\n headerEl.classList.add('header-collapse-condense-inactive');\n headerEl.setAttribute('aria-hidden', 'true');\n }\n};\nconst scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {\n toolbars.forEach((toolbar) => {\n const ionTitle = toolbar.ionTitleEl;\n const titleDiv = toolbar.innerTitleEl;\n if (!ionTitle || ionTitle.size !== 'large') {\n return;\n }\n titleDiv.style.transition = transition ? TRANSITION : '';\n titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;\n });\n};\nconst handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const baseElHeight = baseEl.clientHeight;\n const fadeStart = condenseHeader ? condenseHeader.clientHeight : 0;\n /**\n * If we are using fade header with a condense\n * header, then the toolbar backgrounds should\n * not begin to fade in until the condense\n * header has fully collapsed.\n *\n * Additionally, the main content should not\n * overflow out of the container until the\n * condense header has fully collapsed. When\n * using just the condense header the content\n * should overflow out of the container.\n */\n if (condenseHeader !== null && scrollTop < fadeStart) {\n baseEl.style.setProperty('--opacity-scale', '0');\n scrollEl.style.setProperty('clip-path', `inset(${baseElHeight}px 0px 0px 0px)`);\n return;\n }\n const distanceToStart = scrollTop - fadeStart;\n const fadeDuration = 10;\n const scale = clamp(0, distanceToStart / fadeDuration, 1);\n writeTask(() => {\n scrollEl.style.removeProperty('clip-path');\n baseEl.style.setProperty('--opacity-scale', scale.toString());\n });\n });\n};\n\nconst headerIosCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}\";\n\nconst headerMdCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md::after{left:0;bottom:-5px;background-position:left 0 top -2px;position:absolute;width:100%;height:5px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==);background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{left:unset;right:unset;right:0}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{background-position:right 0 top -2px}.header-collapse-condense{display:none}.header-md.ion-no-border::after{display:none}\";\n\nconst Header = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.inheritedAttributes = {};\n /**\n * If `true`, the header will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the header, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n this.setupFadeHeader = async (contentEl, condenseHeader) => {\n const scrollEl = (this.scrollEl = await getScrollElement(contentEl));\n /**\n * Handle fading of toolbars on scroll\n */\n this.contentScrollCallback = () => {\n handleHeaderFade(this.scrollEl, this.el, condenseHeader);\n };\n scrollEl.addEventListener('scroll', this.contentScrollCallback);\n handleHeaderFade(this.scrollEl, this.el, condenseHeader);\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n componentDidLoad() {\n this.checkCollapsibleHeader();\n }\n componentDidUpdate() {\n this.checkCollapsibleHeader();\n }\n disconnectedCallback() {\n this.destroyCollapsibleHeader();\n }\n async checkCollapsibleHeader() {\n const mode = getIonMode(this);\n if (mode !== 'ios') {\n return;\n }\n const { collapse } = this;\n const hasCondense = collapse === 'condense';\n const hasFade = collapse === 'fade';\n this.destroyCollapsibleHeader();\n if (hasCondense) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n // Cloned elements are always needed in iOS transition\n writeTask(() => {\n const title = cloneElement('ion-title');\n title.size = 'large';\n cloneElement('ion-back-button');\n });\n await this.setupCondenseHeader(contentEl, pageEl);\n }\n else if (hasFade) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = pageEl ? findIonContent(pageEl) : null;\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n const condenseHeader = contentEl.querySelector('ion-header[collapse=\"condense\"]');\n await this.setupFadeHeader(contentEl, condenseHeader);\n }\n }\n destroyCollapsibleHeader() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = undefined;\n }\n if (this.scrollEl && this.contentScrollCallback) {\n this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);\n this.contentScrollCallback = undefined;\n }\n if (this.collapsibleMainHeader) {\n this.collapsibleMainHeader.classList.remove('header-collapse-main');\n this.collapsibleMainHeader = undefined;\n }\n }\n async setupCondenseHeader(contentEl, pageEl) {\n if (!contentEl || !pageEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n if (typeof IntersectionObserver === 'undefined') {\n return;\n }\n this.scrollEl = await getScrollElement(contentEl);\n const headers = pageEl.querySelectorAll('ion-header');\n this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');\n if (!this.collapsibleMainHeader) {\n return;\n }\n const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);\n const scrollHeaderIndex = createHeaderIndex(this.el);\n if (!mainHeaderIndex || !scrollHeaderIndex) {\n return;\n }\n setHeaderActive(mainHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.el, 0);\n /**\n * Handle interaction between toolbar collapse and\n * showing/hiding content in the primary ion-header\n * as well as progressively showing/hiding the main header\n * border as the top-most toolbar collapses or expands.\n */\n const toolbarIntersection = (ev) => {\n handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex, this.scrollEl);\n };\n this.intersectionObserver = new IntersectionObserver(toolbarIntersection, {\n root: contentEl,\n threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],\n });\n this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);\n /**\n * Handle scaling of large iOS titles and\n * showing/hiding border on last toolbar\n * in primary header\n */\n this.contentScrollCallback = () => {\n handleContentScroll(this.scrollEl, scrollHeaderIndex, contentEl);\n };\n this.scrollEl.addEventListener('scroll', this.contentScrollCallback);\n writeTask(() => {\n if (this.collapsibleMainHeader !== undefined) {\n this.collapsibleMainHeader.classList.add('header-collapse-main');\n }\n });\n }\n render() {\n const { translucent, inheritedAttributes } = this;\n const mode = getIonMode(this);\n const collapse = this.collapse || 'none';\n // banner role must be at top level, so remove role if inside a menu\n const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';\n return (h(Host, Object.assign({ role: roleType, class: {\n [mode]: true,\n // Used internally for styling\n [`header-${mode}`]: true,\n [`header-translucent`]: this.translucent,\n [`header-collapse-${collapse}`]: true,\n [`header-translucent-${mode}`]: this.translucent,\n } }, inheritedAttributes), mode === 'ios' && translucent && h(\"div\", { class: \"header-background\" }), h(\"slot\", null)));\n }\n get el() { return this; }\n static get style() { return {\n ios: headerIosCss,\n md: headerMdCss\n }; }\n}, [36, \"ion-header\", {\n \"collapse\": [1],\n \"translucent\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-header\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-header\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Header);\n }\n break;\n } });\n}\n\nconst IonHeader = Header;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonHeader, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { d as inheritAttributes } from './helpers.js';\n\nconst imgCss = \":host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}\";\n\nconst Img = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionImgWillLoad = createEvent(this, \"ionImgWillLoad\", 7);\n this.ionImgDidLoad = createEvent(this, \"ionImgDidLoad\", 7);\n this.ionError = createEvent(this, \"ionError\", 7);\n this.inheritedAttributes = {};\n this.onLoad = () => {\n this.ionImgDidLoad.emit();\n };\n this.onError = () => {\n this.ionError.emit();\n };\n }\n srcChanged() {\n this.addIO();\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['draggable']);\n }\n componentDidLoad() {\n this.addIO();\n }\n addIO() {\n if (this.src === undefined) {\n return;\n }\n if (typeof window !== 'undefined' &&\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'isIntersecting' in window.IntersectionObserverEntry.prototype) {\n this.removeIO();\n this.io = new IntersectionObserver((data) => {\n /**\n * On slower devices, it is possible for an intersection observer entry to contain multiple\n * objects in the array. This happens when quickly scrolling an image into view and then out of\n * view. In this case, the last object represents the current state of the component.\n */\n if (data[data.length - 1].isIntersecting) {\n this.load();\n this.removeIO();\n }\n });\n this.io.observe(this.el);\n }\n else {\n // fall back to setTimeout for Safari and IE\n setTimeout(() => this.load(), 200);\n }\n }\n load() {\n this.loadError = this.onError;\n this.loadSrc = this.src;\n this.ionImgWillLoad.emit();\n }\n removeIO() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n render() {\n const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;\n const { draggable } = inheritedAttributes;\n return (h(Host, { class: getIonMode(this) }, h(\"img\", { decoding: \"async\", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: \"image\", draggable: isDraggable(draggable) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"src\": [\"srcChanged\"]\n }; }\n static get style() { return imgCss; }\n}, [1, \"ion-img\", {\n \"alt\": [1],\n \"src\": [1],\n \"loadSrc\": [32],\n \"loadError\": [32]\n }]);\n/**\n * Enumerated strings must be set as booleans\n * as Stencil will not render 'false' in the DOM.\n * The need to explicitly render draggable=\"true\"\n * as only certain elements are draggable by default.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/draggable.\n */\nconst isDraggable = (draggable) => {\n switch (draggable) {\n case 'true':\n return true;\n case 'false':\n return false;\n default:\n return undefined;\n }\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-img\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-img\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Img);\n }\n break;\n } });\n}\n\nconst IonImg = Img;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonImg, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, readTask, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as findClosestIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index9.js';\n\nconst infiniteScrollCss = \"ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}\";\n\nconst InfiniteScroll = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInfinite = createEvent(this, \"ionInfinite\", 7);\n this.thrPx = 0;\n this.thrPc = 0;\n this.didFire = false;\n this.isBusy = false;\n this.isLoading = false;\n /**\n * The threshold distance from the bottom\n * of the content to call the `infinite` output event when scrolled.\n * The threshold value can be either a percent, or\n * in pixels. For example, use the value of `10%` for the `infinite`\n * output event to get called when the user has scrolled 10%\n * from the bottom of the page. Use the value `100px` when the\n * scroll is within 100 pixels from the bottom of the page.\n */\n this.threshold = '15%';\n /**\n * If `true`, the infinite scroll will be hidden and scroll event listeners\n * will be removed.\n *\n * Set this to true to disable the infinite scroll from actively\n * trying to receive new data while scrolling. This is useful\n * when it is known that there is no more data that can be added, and\n * the infinite scroll is no longer needed.\n */\n this.disabled = false;\n /**\n * The position of the infinite scroll element.\n * The value can be either `top` or `bottom`.\n */\n this.position = 'bottom';\n this.onScroll = () => {\n const scrollEl = this.scrollEl;\n if (!scrollEl || !this.canStart()) {\n return 1;\n }\n const infiniteHeight = this.el.offsetHeight;\n if (infiniteHeight === 0) {\n // if there is no height of this element then do nothing\n return 2;\n }\n const scrollTop = scrollEl.scrollTop;\n const scrollHeight = scrollEl.scrollHeight;\n const height = scrollEl.offsetHeight;\n const threshold = this.thrPc !== 0 ? height * this.thrPc : this.thrPx;\n const distanceFromInfinite = this.position === 'bottom'\n ? scrollHeight - infiniteHeight - scrollTop - threshold - height\n : scrollTop - infiniteHeight - threshold;\n if (distanceFromInfinite < 0) {\n if (!this.didFire) {\n this.isLoading = true;\n this.didFire = true;\n this.ionInfinite.emit();\n return 3;\n }\n }\n else {\n this.didFire = false;\n }\n return 4;\n };\n }\n thresholdChanged() {\n const val = this.threshold;\n if (val.lastIndexOf('%') > -1) {\n this.thrPx = 0;\n this.thrPc = parseFloat(val) / 100;\n }\n else {\n this.thrPx = parseFloat(val);\n this.thrPc = 0;\n }\n }\n disabledChanged() {\n const disabled = this.disabled;\n if (disabled) {\n this.isLoading = false;\n this.isBusy = false;\n }\n this.enableScrollEvents(!disabled);\n }\n async connectedCallback() {\n const contentEl = findClosestIonContent(this.el);\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n this.scrollEl = await getScrollElement(contentEl);\n this.thresholdChanged();\n this.disabledChanged();\n if (this.position === 'top') {\n writeTask(() => {\n if (this.scrollEl) {\n this.scrollEl.scrollTop = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;\n }\n });\n }\n }\n disconnectedCallback() {\n this.enableScrollEvents(false);\n this.scrollEl = undefined;\n }\n /**\n * Call `complete()` within the `ionInfinite` output event handler when\n * your async operation has completed. For example, the `loading`\n * state is while the app is performing an asynchronous operation,\n * such as receiving more data from an AJAX request to add more items\n * to a data list. Once the data has been received and UI updated, you\n * then call this method to signify that the loading has completed.\n * This method will change the infinite scroll's state from `loading`\n * to `enabled`.\n */\n async complete() {\n const scrollEl = this.scrollEl;\n if (!this.isLoading || !scrollEl) {\n return;\n }\n this.isLoading = false;\n if (this.position === 'top') {\n /**\n * New content is being added at the top, but the scrollTop position stays the same,\n * which causes a scroll jump visually. This algorithm makes sure to prevent this.\n * (Frame 1)\n * - complete() is called, but the UI hasn't had time to update yet.\n * - Save the current content dimensions.\n * - Wait for the next frame using _dom.read, so the UI will be updated.\n * (Frame 2)\n * - Read the new content dimensions.\n * - Calculate the height difference and the new scroll position.\n * - Delay the scroll position change until other possible dom reads are done using _dom.write to be performant.\n * (Still frame 2, if I'm correct)\n * - Change the scroll position (= visually maintain the scroll position).\n * - Change the state to re-enable the InfiniteScroll.\n * - This should be after changing the scroll position, or it could\n * cause the InfiniteScroll to be triggered again immediately.\n * (Frame 3)\n * Done.\n */\n this.isBusy = true;\n // ******** DOM READ ****************\n // Save the current content dimensions before the UI updates\n const prev = scrollEl.scrollHeight - scrollEl.scrollTop;\n // ******** DOM READ ****************\n requestAnimationFrame(() => {\n readTask(() => {\n // UI has updated, save the new content dimensions\n const scrollHeight = scrollEl.scrollHeight;\n // New content was added on top, so the scroll position should be changed immediately to prevent it from jumping around\n const newScrollTop = scrollHeight - prev;\n // ******** DOM WRITE ****************\n requestAnimationFrame(() => {\n writeTask(() => {\n scrollEl.scrollTop = newScrollTop;\n this.isBusy = false;\n });\n });\n });\n });\n }\n }\n canStart() {\n return !this.disabled && !this.isBusy && !!this.scrollEl && !this.isLoading;\n }\n enableScrollEvents(shouldListen) {\n if (this.scrollEl) {\n if (shouldListen) {\n this.scrollEl.addEventListener('scroll', this.onScroll);\n }\n else {\n this.scrollEl.removeEventListener('scroll', this.onScroll);\n }\n }\n }\n render() {\n const mode = getIonMode(this);\n const disabled = this.disabled;\n return (h(Host, { class: {\n [mode]: true,\n 'infinite-scroll-loading': this.isLoading,\n 'infinite-scroll-enabled': !disabled,\n } }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"threshold\": [\"thresholdChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return infiniteScrollCss; }\n}, [0, \"ion-infinite-scroll\", {\n \"threshold\": [1],\n \"disabled\": [4],\n \"position\": [1],\n \"isLoading\": [32],\n \"complete\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-infinite-scroll\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-infinite-scroll\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, InfiniteScroll);\n }\n break;\n } });\n}\n\nconst IonInfiniteScroll = InfiniteScroll;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonInfiniteScroll, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Does a simple sanitization of all elements\n * in an untrusted string\n */\nconst sanitizeDOMString = (untrustedString) => {\n try {\n if (untrustedString instanceof IonicSafeString) {\n return untrustedString.value;\n }\n if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {\n return untrustedString;\n }\n /**\n * Create a document fragment\n * separate from the main DOM,\n * create a div to do our work in\n */\n const documentFragment = document.createDocumentFragment();\n const workingDiv = document.createElement('div');\n documentFragment.appendChild(workingDiv);\n workingDiv.innerHTML = untrustedString;\n /**\n * Remove any elements\n * that are blocked\n */\n blockedTags.forEach((blockedTag) => {\n const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);\n for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {\n const element = getElementsToRemove[elementIndex];\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n else {\n documentFragment.removeChild(element);\n }\n /**\n * We still need to sanitize\n * the children of this element\n * as they are left behind\n */\n const childElements = getElementChildren(element);\n /* eslint-disable-next-line */\n for (let childIndex = 0; childIndex < childElements.length; childIndex++) {\n sanitizeElement(childElements[childIndex]);\n }\n }\n });\n /**\n * Go through remaining elements and remove\n * non-allowed attribs\n */\n // IE does not support .children on document fragments, only .childNodes\n const dfChildren = getElementChildren(documentFragment);\n /* eslint-disable-next-line */\n for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {\n sanitizeElement(dfChildren[childIndex]);\n }\n // Append document fragment to div\n const fragmentDiv = document.createElement('div');\n fragmentDiv.appendChild(documentFragment);\n // First child is always the div we did our work in\n const getInnerDiv = fragmentDiv.querySelector('div');\n return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;\n }\n catch (err) {\n console.error(err);\n return '';\n }\n};\n/**\n * Clean up current element based on allowed attributes\n * and then recursively dig down into any child elements to\n * clean those up as well\n */\nconst sanitizeElement = (element) => {\n // IE uses childNodes, so ignore nodes that are not elements\n if (element.nodeType && element.nodeType !== 1) {\n return;\n }\n for (let i = element.attributes.length - 1; i >= 0; i--) {\n const attribute = element.attributes.item(i);\n const attributeName = attribute.name;\n // remove non-allowed attribs\n if (!allowedAttributes.includes(attributeName.toLowerCase())) {\n element.removeAttribute(attributeName);\n continue;\n }\n // clean up any allowed attribs\n // that attempt to do any JS funny-business\n const attributeValue = attribute.value;\n /* eslint-disable-next-line */\n if (attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) {\n element.removeAttribute(attributeName);\n }\n }\n /**\n * Sanitize any nested children\n */\n const childElements = getElementChildren(element);\n /* eslint-disable-next-line */\n for (let i = 0; i < childElements.length; i++) {\n sanitizeElement(childElements[i]);\n }\n};\n/**\n * IE doesn't always support .children\n * so we revert to .childNodes instead\n */\nconst getElementChildren = (el) => {\n return el.children != null ? el.children : el.childNodes;\n};\nconst isSanitizerEnabled = () => {\n var _a;\n const win = window;\n const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;\n if (config) {\n if (config.get) {\n return config.get('sanitizerEnabled', true);\n }\n else {\n return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;\n }\n }\n return true;\n};\nconst allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];\nconst blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];\nclass IonicSafeString {\n constructor(value) {\n this.value = value;\n }\n}\n\nexport { IonicSafeString as I, sanitizeDOMString as s };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst spinners = {\n bubbles: {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index) / total - dur}ms`;\n const angle = (2 * Math.PI * index) / total;\n return {\n r: 5,\n style: {\n top: `${9 * Math.sin(angle)}px`,\n left: `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n circles: {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${dur * step - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n top: `${9 * Math.sin(angle)}px`,\n left: `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n circular: {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {},\n };\n },\n },\n crescent: {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {},\n };\n },\n },\n dots: {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n left: `${9 - 9 * index}px`,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n lines: {\n dur: 1000,\n lines: 8,\n fn: (dur, index, total) => {\n const transform = `rotate(${(360 / total) * index + (index < total / 2 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 14,\n y2: 26,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-small': {\n dur: 1000,\n lines: 8,\n fn: (dur, index, total) => {\n const transform = `rotate(${(360 / total) * index + (index < total / 2 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-sharp': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n 'lines-sharp-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index) / total - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n transform: transform,\n 'animation-delay': animationDelay,\n },\n };\n },\n },\n};\nconst SPINNERS = spinners;\n\nconst spinnerCss = \":host{display:inline-block;position:relative;width:28px;height:28px;color:var(--color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.ion-color){color:var(--ion-color-base)}svg{-webkit-transform-origin:center;transform-origin:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}[dir=rtl] svg,:host-context([dir=rtl]) svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}:host(.spinner-lines) line,:host(.spinner-lines-small) line{stroke-width:7px}:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-width:4px}:host(.spinner-lines) line,:host(.spinner-lines-small) line,:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-linecap:round;stroke:currentColor}:host(.spinner-lines) svg,:host(.spinner-lines-small) svg,:host(.spinner-lines-sharp) svg,:host(.spinner-lines-sharp-small) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite}:host(.spinner-bubbles) svg{-webkit-animation:spinner-scale-out 1s linear infinite;animation:spinner-scale-out 1s linear infinite;fill:currentColor}:host(.spinner-circles) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite;fill:currentColor}:host(.spinner-crescent) circle{fill:transparent;stroke-width:4px;stroke-dasharray:128px;stroke-dashoffset:82px;stroke:currentColor}:host(.spinner-crescent) svg{-webkit-animation:spinner-rotate 1s linear infinite;animation:spinner-rotate 1s linear infinite}:host(.spinner-dots) circle{stroke-width:0;fill:currentColor}:host(.spinner-dots) svg{-webkit-animation:spinner-dots 1s linear infinite;animation:spinner-dots 1s linear infinite}:host(.spinner-circular) svg{-webkit-animation:spinner-circular linear infinite;animation:spinner-circular linear infinite}:host(.spinner-circular) circle{-webkit-animation:spinner-circular-inner ease-in-out infinite;animation:spinner-circular-inner ease-in-out infinite;stroke:currentColor;stroke-dasharray:80px, 200px;stroke-dashoffset:0px;stroke-width:5.6;fill:none}:host(.spinner-paused),:host(.spinner-paused) svg,:host(.spinner-paused) circle{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@-webkit-keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@-webkit-keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}@keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}\";\n\nconst Spinner = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the spinner's animation will be paused.\n */\n this.paused = false;\n }\n getName() {\n const spinnerName = this.name || config.get('spinner');\n const mode = getIonMode(this);\n if (spinnerName) {\n return spinnerName;\n }\n return mode === 'ios' ? 'lines' : 'circular';\n }\n render() {\n var _a;\n const self = this;\n const mode = getIonMode(self);\n const spinnerName = self.getName();\n const spinner = (_a = SPINNERS[spinnerName]) !== null && _a !== void 0 ? _a : SPINNERS['lines'];\n const duration = typeof self.duration === 'number' && self.duration > 10 ? self.duration : spinner.dur;\n const svgs = [];\n if (spinner.circles !== undefined) {\n for (let i = 0; i < spinner.circles; i++) {\n svgs.push(buildCircle(spinner, duration, i, spinner.circles));\n }\n }\n else if (spinner.lines !== undefined) {\n for (let i = 0; i < spinner.lines; i++) {\n svgs.push(buildLine(spinner, duration, i, spinner.lines));\n }\n }\n return (h(Host, { class: createColorClasses(self.color, {\n [mode]: true,\n [`spinner-${spinnerName}`]: true,\n 'spinner-paused': self.paused || config.getBoolean('_testing'),\n }), role: \"progressbar\", style: spinner.elmDuration ? { animationDuration: duration + 'ms' } : {} }, svgs));\n }\n static get style() { return spinnerCss; }\n}, [1, \"ion-spinner\", {\n \"color\": [513],\n \"duration\": [2],\n \"name\": [1],\n \"paused\": [4]\n }]);\nconst buildCircle = (spinner, duration, index, total) => {\n const data = spinner.fn(duration, index, total);\n data.style['animation-duration'] = duration + 'ms';\n return (h(\"svg\", { viewBox: data.viewBox || '0 0 64 64', style: data.style }, h(\"circle\", { transform: data.transform || 'translate(32,32)', cx: data.cx, cy: data.cy, r: data.r, style: spinner.elmDuration ? { animationDuration: duration + 'ms' } : {} })));\n};\nconst buildLine = (spinner, duration, index, total) => {\n const data = spinner.fn(duration, index, total);\n data.style['animation-duration'] = duration + 'ms';\n return (h(\"svg\", { viewBox: data.viewBox || '0 0 64 64', style: data.style }, h(\"line\", { transform: \"translate(32,32)\", y1: data.y1, y2: data.y2 })));\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-spinner\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-spinner\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Spinner);\n }\n break;\n } });\n}\n\nexport { SPINNERS as S, Spinner as a, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { s as sanitizeDOMString } from './index3.js';\nimport { d as defineCustomElement$2 } from './spinner.js';\n\nconst infiniteScrollContentIosCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-ios .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-lines-small-ios line,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-ios .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-ios .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\n\nconst infiniteScrollContentMdCss = \"ion-infinite-scroll-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:84px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.infinite-loading{margin-left:0;margin-right:0;margin-top:0;margin-bottom:32px;display:none;width:100%}.infinite-loading-text{margin-left:32px;margin-right:32px;margin-top:4px;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.infinite-loading-text{margin-left:unset;margin-right:unset;-webkit-margin-start:32px;margin-inline-start:32px;-webkit-margin-end:32px;margin-inline-end:32px}}.infinite-scroll-loading ion-infinite-scroll-content>.infinite-loading{display:block}.infinite-scroll-content-md .infinite-loading-text{color:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-lines-small-md line,.infinite-scroll-content-md .infinite-loading-spinner .spinner-crescent circle{stroke:var(--ion-color-step-600, #666666)}.infinite-scroll-content-md .infinite-loading-spinner .spinner-bubbles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-circles circle,.infinite-scroll-content-md .infinite-loading-spinner .spinner-dots circle{fill:var(--ion-color-step-600, #666666)}\";\n\nconst InfiniteScrollContent = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n componentDidLoad() {\n if (this.loadingSpinner === undefined) {\n const mode = getIonMode(this);\n this.loadingSpinner = config.get('infiniteLoadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent'));\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`infinite-scroll-content-${mode}`]: true,\n } }, h(\"div\", { class: \"infinite-loading\" }, this.loadingSpinner && (h(\"div\", { class: \"infinite-loading-spinner\" }, h(\"ion-spinner\", { name: this.loadingSpinner }))), this.loadingText !== undefined && (h(\"div\", { class: \"infinite-loading-text\", innerHTML: sanitizeDOMString(this.loadingText) })))));\n }\n static get style() { return {\n ios: infiniteScrollContentIosCss,\n md: infiniteScrollContentMdCss\n }; }\n}, [32, \"ion-infinite-scroll-content\", {\n \"loadingSpinner\": [1025, \"loading-spinner\"],\n \"loadingText\": [1, \"loading-text\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-infinite-scroll-content\", \"ion-spinner\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-infinite-scroll-content\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, InfiniteScrollContent);\n }\n break;\n case \"ion-spinner\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonInfiniteScrollContent = InfiniteScrollContent;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonInfiniteScrollContent, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { j as debounceEvent, i as inheritAriaAttributes, d as inheritAttributes, k as findItemLabel } from './helpers.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst inputIosCss = \".sc-ion-input-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--background:transparent;--color:initial;display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;width:100%;padding:0 !important;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item.sc-ion-input-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-input-ios-h{--padding-start:0}.ion-color.sc-ion-input-ios-h{color:var(--ion-color-base)}.native-input.sc-ion-input-ios{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-input.sc-ion-input-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-input.sc-ion-input-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-ios:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-ios:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-ios::-ms-clear{display:none}.native-input[disabled].sc-ion-input-ios:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-input-ios{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-input-ios .cloned-input.sc-ion-input-ios,[dir=rtl].sc-ion-input-ios-h .cloned-input.sc-ion-input-ios,[dir=rtl] .sc-ion-input-ios-h .cloned-input.sc-ion-input-ios{left:unset;right:unset;right:0}.cloned-input.sc-ion-input-ios:disabled{opacity:1}.input-clear-icon.sc-ion-input-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-clear-icon.sc-ion-input-ios:focus{opacity:0.5}.has-value.sc-ion-input-ios-h .input-clear-icon.sc-ion-input-ios{visibility:visible}.has-focus.sc-ion-input-ios-h{pointer-events:none}.has-focus.sc-ion-input-ios-h input.sc-ion-input-ios,.has-focus.sc-ion-input-ios-h a.sc-ion-input-ios,.has-focus.sc-ion-input-ios-h button.sc-ion-input-ios{pointer-events:auto}.item-label-floating.item-has-placeholder.sc-ion-input-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-input-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-input-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-input-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.sc-ion-input-ios-h{--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:0;font-size:inherit}.item-label-stacked.sc-ion-input-ios-h,.item-label-stacked .sc-ion-input-ios-h,.item-label-floating.sc-ion-input-ios-h,.item-label-floating .sc-ion-input-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}.input-clear-icon.sc-ion-input-ios{background-image:url(\\\"data:image/svg+xml;charset=utf-8,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'><path%20fill='var(--ion-color-step-600,%20%23666666)'%20d='M403.1,108.9c-81.2-81.2-212.9-81.2-294.2,0s-81.2,212.9,0,294.2c81.2,81.2,212.9,81.2,294.2,0S484.3,190.1,403.1,108.9z%20M352,340.2L340.2,352l-84.4-84.2l-84,83.8L160,339.8l84-83.8l-84-83.8l11.8-11.8l84,83.8l84.4-84.2l11.8,11.8L267.6,256L352,340.2z'/></svg>\\\");width:30px;height:30px;background-size:18px}\";\n\nconst inputMdCss = \".sc-ion-input-md-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--background:transparent;--color:initial;display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;width:100%;padding:0 !important;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2}ion-item.sc-ion-input-md-h:not(.item-label),ion-item:not(.item-label) .sc-ion-input-md-h{--padding-start:0}.ion-color.sc-ion-input-md-h{color:var(--ion-color-base)}.native-input.sc-ion-input-md{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:inline-block;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-input.sc-ion-input-md{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-input.sc-ion-input-md::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-input.sc-ion-input-md:-webkit-autofill{background-color:transparent}.native-input.sc-ion-input-md:invalid{-webkit-box-shadow:none;box-shadow:none}.native-input.sc-ion-input-md::-ms-clear{display:none}.native-input[disabled].sc-ion-input-md:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-input-md{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-input-md .cloned-input.sc-ion-input-md,[dir=rtl].sc-ion-input-md-h .cloned-input.sc-ion-input-md,[dir=rtl] .sc-ion-input-md-h .cloned-input.sc-ion-input-md{left:unset;right:unset;right:0}.cloned-input.sc-ion-input-md:disabled{opacity:1}.input-clear-icon.sc-ion-input-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;background-position:center;border:0;outline:none;background-color:transparent;background-repeat:no-repeat;visibility:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-clear-icon.sc-ion-input-md:focus{opacity:0.5}.has-value.sc-ion-input-md-h .input-clear-icon.sc-ion-input-md{visibility:visible}.has-focus.sc-ion-input-md-h{pointer-events:none}.has-focus.sc-ion-input-md-h input.sc-ion-input-md,.has-focus.sc-ion-input-md-h a.sc-ion-input-md,.has-focus.sc-ion-input-md-h button.sc-ion-input-md{pointer-events:auto}.item-label-floating.item-has-placeholder.sc-ion-input-md-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-input-md-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-input-md-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-input-md-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.sc-ion-input-md-h{--padding-top:10px;--padding-end:0;--padding-bottom:10px;--padding-start:8px;font-size:inherit}.item-label-stacked.sc-ion-input-md-h,.item-label-stacked .sc-ion-input-md-h,.item-label-floating.sc-ion-input-md-h,.item-label-floating .sc-ion-input-md-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0}.input-clear-icon.sc-ion-input-md{background-image:url(\\\"data:image/svg+xml;charset=utf-8,<svg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20512%20512'><polygon%20fill='var(--ion-color-step-600,%20%23666666)'%20points='405,136.798%20375.202,107%20256,226.202%20136.798,107%20107,136.798%20226.202,256%20107,375.202%20136.798,405%20256,285.798%20375.202,405%20405,375.202%20285.798,256'/></svg>\\\");width:30px;height:30px;background-size:22px}\";\n\nconst Input = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInput = createEvent(this, \"ionInput\", 7);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inputId = `ion-input-${inputIds++}`;\n this.didBlurAfterEdit = false;\n this.inheritedAttributes = {};\n this.isComposing = false;\n /**\n * This is required for a WebKit bug which requires us to\n * blur and focus an input to properly focus the input in\n * an item with delegatesFocus. It will no longer be needed\n * with iOS 14.\n *\n * @internal\n */\n this.fireFocusEvents = true;\n this.hasFocus = false;\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n * Available options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.\n */\n this.autocapitalize = 'off';\n /**\n * Indicates whether the value of the control can be automatically completed by the browser.\n */\n this.autocomplete = 'off';\n /**\n * Whether auto correction should be enabled when the user is entering/editing the text value.\n */\n this.autocorrect = 'off';\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n this.autofocus = false;\n /**\n * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.\n */\n this.clearInput = false;\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 0;\n /**\n * If `true`, the user cannot interact with the input.\n */\n this.disabled = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the user cannot modify the value.\n */\n this.readonly = false;\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n this.required = false;\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n this.spellcheck = false;\n /**\n * The type of control to display. The default type is text.\n */\n this.type = 'text';\n /**\n * The value of the input.\n */\n this.value = '';\n this.onInput = (ev) => {\n const input = ev.target;\n if (input) {\n this.value = input.value || '';\n }\n this.ionInput.emit(ev);\n };\n this.onBlur = (ev) => {\n this.hasFocus = false;\n this.focusChanged();\n this.emitStyle();\n if (this.fireFocusEvents) {\n this.ionBlur.emit(ev);\n }\n };\n this.onFocus = (ev) => {\n this.hasFocus = true;\n this.focusChanged();\n this.emitStyle();\n if (this.fireFocusEvents) {\n this.ionFocus.emit(ev);\n }\n };\n this.onKeydown = (ev) => {\n if (this.shouldClearOnEdit()) {\n // Did the input value change after it was blurred and edited?\n // Do not clear if user is hitting Enter to submit form\n if (this.didBlurAfterEdit && this.hasValue() && ev.key !== 'Enter') {\n // Clear the input\n this.clearTextInput();\n }\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n };\n this.onCompositionStart = () => {\n this.isComposing = true;\n };\n this.onCompositionEnd = () => {\n this.isComposing = false;\n };\n this.clearTextInput = (ev) => {\n if (this.clearInput && !this.readonly && !this.disabled && ev) {\n ev.preventDefault();\n ev.stopPropagation();\n // Attempt to focus input again after pressing clear button\n this.setFocus();\n }\n this.value = '';\n /**\n * This is needed for clearOnEdit\n * Otherwise the value will not be cleared\n * if user is inside the input\n */\n if (this.nativeInput) {\n this.nativeInput.value = '';\n }\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n disabledChanged() {\n this.emitStyle();\n }\n /**\n * Update the item classes when the placeholder changes\n */\n placeholderChanged() {\n this.emitStyle();\n }\n /**\n * Update the native input element when the value changes\n */\n valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n if (nativeInput && nativeInput.value !== value && !this.isComposing) {\n /**\n * Assigning the native input's value on attribute\n * value change, allows `ionInput` implementations\n * to override the control's value.\n *\n * Used for patterns such as input trimming (removing whitespace),\n * or input masking.\n */\n nativeInput.value = value;\n }\n this.emitStyle();\n this.ionChange.emit({ value: this.value == null ? this.value : this.value.toString() });\n }\n componentWillLoad() {\n this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['tabindex', 'title', 'data-form-type']));\n }\n connectedCallback() {\n this.emitStyle();\n this.debounceChanged();\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidLoad', {\n detail: this.el,\n }));\n }\n }\n componentDidLoad() {\n const nativeInput = this.nativeInput;\n if (nativeInput) {\n // TODO: FW-729 Update to JSX bindings when Stencil resolves bug with:\n // https://github.com/ionic-team/stencil/issues/3235\n nativeInput.addEventListener('compositionstart', this.onCompositionStart);\n nativeInput.addEventListener('compositionend', this.onCompositionEnd);\n }\n }\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidUnload', {\n detail: this.el,\n }));\n }\n const nativeInput = this.nativeInput;\n if (nativeInput) {\n nativeInput.removeEventListener('compositionstart', this.onCompositionStart);\n nativeInput.removeEventListener('compositionEnd', this.onCompositionEnd);\n }\n }\n /**\n * Sets focus on the native `input` in `ion-input`. Use this method instead of the global\n * `input.focus()`.\n */\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n /**\n * Sets blur on the native `input` in `ion-input`. Use this method instead of the global\n * `input.blur()`.\n * @internal\n */\n async setBlur() {\n if (this.nativeInput) {\n this.nativeInput.blur();\n }\n }\n /**\n * Returns the native `<input>` element used under the hood.\n */\n getInputElement() {\n return Promise.resolve(this.nativeInput);\n }\n shouldClearOnEdit() {\n const { type, clearOnEdit } = this;\n return clearOnEdit === undefined ? type === 'password' : clearOnEdit;\n }\n getValue() {\n return typeof this.value === 'number' ? this.value.toString() : (this.value || '').toString();\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n input: true,\n 'has-placeholder': this.placeholder !== undefined,\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n 'interactive-disabled': this.disabled,\n });\n }\n focusChanged() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (!this.hasFocus && this.shouldClearOnEdit() && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n }\n hasValue() {\n return this.getValue().length > 0;\n }\n render() {\n const mode = getIonMode(this);\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const label = findItemLabel(this.el);\n if (label) {\n label.id = labelId;\n }\n return (h(Host, { \"aria-disabled\": this.disabled ? 'true' : null, class: createColorClasses(this.color, {\n [mode]: true,\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n }) }, h(\"input\", Object.assign({ class: \"native-input\", ref: (input) => (this.nativeInput = input), \"aria-labelledby\": label ? labelId : null, disabled: this.disabled, accept: this.accept, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, size: this.size, type: this.type, value: value, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown }, this.inheritedAttributes)), this.clearInput && !this.readonly && !this.disabled && (h(\"button\", { \"aria-label\": \"reset\", type: \"button\", class: \"input-clear-icon\", onPointerDown: (ev) => {\n /**\n * This prevents mobile browsers from\n * blurring the input when the clear\n * button is activated.\n */\n ev.preventDefault();\n }, onClick: this.clearTextInput }))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"placeholder\": [\"placeholderChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: inputIosCss,\n md: inputMdCss\n }; }\n}, [34, \"ion-input\", {\n \"fireFocusEvents\": [4, \"fire-focus-events\"],\n \"color\": [513],\n \"accept\": [1],\n \"autocapitalize\": [1],\n \"autocomplete\": [1],\n \"autocorrect\": [1],\n \"autofocus\": [4],\n \"clearInput\": [4, \"clear-input\"],\n \"clearOnEdit\": [4, \"clear-on-edit\"],\n \"debounce\": [2],\n \"disabled\": [4],\n \"enterkeyhint\": [1],\n \"inputmode\": [1],\n \"max\": [8],\n \"maxlength\": [2],\n \"min\": [8],\n \"minlength\": [2],\n \"multiple\": [4],\n \"name\": [1],\n \"pattern\": [1],\n \"placeholder\": [1],\n \"readonly\": [4],\n \"required\": [4],\n \"spellcheck\": [4],\n \"step\": [1],\n \"size\": [2],\n \"type\": [1],\n \"value\": [1032],\n \"hasFocus\": [32],\n \"setFocus\": [64],\n \"setBlur\": [64],\n \"getInputElement\": [64]\n }]);\nlet inputIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-input\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-input\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Input);\n }\n break;\n } });\n}\n\nconst IonInput = Input;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonInput, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst itemDividerIosCss = \":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--inner-padding-top:0px;--inner-padding-end:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);overflow:hidden;z-index:100;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.item-divider-sticky){position:-webkit-sticky;position:sticky;top:0}.item-divider-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border:0;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-divider-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-divider-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;text-overflow:ellipsis;overflow:hidden}:host{--background:var(--ion-color-step-100, #e6e6e6);--color:var(--ion-color-step-850, #262626);--padding-start:20px;--inner-padding-end:10px;border-radius:0;position:relative;min-height:28px;font-size:17px;font-weight:600}:host([slot=start]){margin-left:0;margin-right:20px;margin-top:2px;margin-bottom:2px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:20px;margin-inline-end:20px}}:host([slot=end]){margin-left:10px;margin-right:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}::slotted(ion-icon[slot=start]),::slotted(ion-icon[slot=end]){margin-top:7px;margin-bottom:7px}::slotted(h1){margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}::slotted(h2){margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:17px;font-weight:normal}::slotted(h3),::slotted(h4),::slotted(h5),::slotted(h6){margin-left:0;margin-right:0;margin-top:0;margin-bottom:3px;font-size:14px;font-weight:normal;line-height:normal}::slotted(p){margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.4);font-size:14px;line-height:normal;text-overflow:inherit;overflow:inherit}::slotted(h2:last-child) ::slotted(h3:last-child),::slotted(h4:last-child),::slotted(h5:last-child),::slotted(h6:last-child),::slotted(p:last-child){margin-bottom:0}\";\n\nconst itemDividerMdCss = \":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--inner-padding-top:0px;--inner-padding-end:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);overflow:hidden;z-index:100;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.item-divider-sticky){position:-webkit-sticky;position:sticky;top:0}.item-divider-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border:0;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-divider-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-divider-wrapper{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;text-overflow:ellipsis;overflow:hidden}:host{--background:var(--ion-background-color, #fff);--color:var(--ion-color-step-400, #999999);--padding-start:16px;--inner-padding-end:0;min-height:30px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));font-size:14px}::slotted([slot=start]){margin-right:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted([slot=end]){margin-left:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;-webkit-margin-start:32px;margin-inline-start:32px}}::slotted(ion-label){margin-left:0;margin-right:0;margin-top:13px;margin-bottom:10px}::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);font-size:24px}:host(.ion-color) ::slotted(ion-icon){color:var(--ion-color-contrast)}::slotted(ion-icon[slot]){margin-top:12px;margin-bottom:12px}::slotted(ion-icon[slot=start]){margin-right:32px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted(ion-icon[slot=end]){margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}::slotted(ion-note){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-ms-flex-item-align:start;align-self:flex-start;font-size:11px}::slotted(ion-note[slot]){padding-left:0;padding-right:0;padding-top:18px;padding-bottom:10px}::slotted(ion-note[slot=start]){padding-right:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-note[slot=start]){padding-right:unset;-webkit-padding-end:16px;padding-inline-end:16px}}::slotted(ion-note[slot=end]){padding-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-note[slot=end]){padding-left:unset;-webkit-padding-start:16px;padding-inline-start:16px}}::slotted(ion-avatar){width:40px;height:40px}::slotted(ion-thumbnail){width:56px;height:56px}::slotted(ion-avatar),::slotted(ion-thumbnail){margin-top:8px;margin-bottom:8px}::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:unset;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}::slotted(h1){margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;font-size:24px;font-weight:normal}::slotted(h2){margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:16px;font-weight:normal}::slotted(h3,h4,h5,h6){margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:14px;font-weight:normal;line-height:normal}::slotted(p){margin-left:0;margin-right:0;margin-top:0;margin-bottom:2px;color:var(--ion-color-step-600, #666666);font-size:14px;line-height:normal;text-overflow:inherit;overflow:inherit}\";\n\nconst ItemDivider = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * When it's set to `true`, the item-divider will stay visible when it reaches the top\n * of the viewport until the next `ion-item-divider` replaces it.\n *\n * This feature relies in `position:sticky`:\n * https://caniuse.com/#feat=css-sticky\n */\n this.sticky = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'item-divider-sticky': this.sticky,\n item: true,\n }) }, h(\"slot\", { name: \"start\" }), h(\"div\", { class: \"item-divider-inner\" }, h(\"div\", { class: \"item-divider-wrapper\" }, h(\"slot\", null)), h(\"slot\", { name: \"end\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: itemDividerIosCss,\n md: itemDividerMdCss\n }; }\n}, [33, \"ion-item-divider\", {\n \"color\": [513],\n \"sticky\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item-divider\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item-divider\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ItemDivider);\n }\n break;\n } });\n}\n\nconst IonItemDivider = ItemDivider;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonItemDivider, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst itemGroupIosCss = \"ion-item-group{display:block}\";\n\nconst itemGroupMdCss = \"ion-item-group{display:block}\";\n\nconst ItemGroup = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { role: \"group\", class: {\n [mode]: true,\n // Used internally for styling\n [`item-group-${mode}`]: true,\n item: true,\n } }));\n }\n static get style() { return {\n ios: itemGroupIosCss,\n md: itemGroupMdCss\n }; }\n}, [32, \"ion-item-group\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item-group\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item-group\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ItemGroup);\n }\n break;\n } });\n}\n\nconst IonItemGroup = ItemGroup;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonItemGroup, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { l as isEndSide } from './helpers.js';\n\nconst itemOptionsIosCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-ios{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)))}.item-options-ios.item-options-end{border-bottom-width:0.55px}.list-ios-lines-none .item-options-ios{border-bottom-width:0}.list-ios-lines-full .item-options-ios,.list-ios-lines-inset .item-options-ios.item-options-end{border-bottom-width:0.55px}\";\n\nconst itemOptionsMdCss = \"ion-item-options{top:0;right:0;-ms-flex-pack:end;justify-content:flex-end;display:none;position:absolute;height:100%;font-size:14px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}[dir=rtl] ion-item-options,:host-context([dir=rtl]) ion-item-options{-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] ion-item-options:not(.item-options-end),:host-context([dir=rtl]) ion-item-options:not(.item-options-end){right:auto;left:0;-ms-flex-pack:end;justify-content:flex-end}.item-options-start{right:auto;left:0;-ms-flex-pack:start;justify-content:flex-start}[dir=rtl] .item-options-start,:host-context([dir=rtl]) .item-options-start{-ms-flex-pack:end;justify-content:flex-end}.item-options-start ion-item-option:first-child{padding-right:var(--ion-safe-area-left)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-start ion-item-option:first-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-left);padding-inline-end:var(--ion-safe-area-left)}}.item-options-end ion-item-option:last-child{padding-right:var(--ion-safe-area-right)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-options-end ion-item-option:last-child{padding-right:unset;-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}[dir=rtl] .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end),:host-context([dir=rtl]) .item-sliding-active-slide.item-sliding-active-options-start ion-item-options:not(.item-options-end){width:100%;visibility:visible}.item-sliding-active-slide ion-item-options{display:-ms-flexbox;display:flex;visibility:hidden}.item-sliding-active-slide.item-sliding-active-options-start .item-options-start,.item-sliding-active-slide.item-sliding-active-options-end ion-item-options:not(.item-options-start){width:100%;visibility:visible}.item-options-md{border-bottom-width:0;border-bottom-style:solid;border-bottom-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))))}.list-md-lines-none .item-options-md{border-bottom-width:0}.list-md-lines-full .item-options-md,.list-md-lines-inset .item-options-md.item-options-end{border-bottom-width:1px}\";\n\nconst ItemOptions = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionSwipe = createEvent(this, \"ionSwipe\", 7);\n /**\n * The side the option button should be on. Possible values: `\"start\"` and `\"end\"`. If you have multiple `ion-item-options`, a side must be provided for each.\n *\n */\n this.side = 'end';\n }\n /** @internal */\n async fireSwipeEvent() {\n this.ionSwipe.emit({\n side: this.side,\n });\n }\n render() {\n const mode = getIonMode(this);\n const isEnd = isEndSide(this.side);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`item-options-${mode}`]: true,\n 'item-options-start': !isEnd,\n 'item-options-end': isEnd,\n } }));\n }\n get el() { return this; }\n static get style() { return {\n ios: itemOptionsIosCss,\n md: itemOptionsMdCss\n }; }\n}, [32, \"ion-item-options\", {\n \"side\": [1],\n \"fireSwipeEvent\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item-options\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item-options\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ItemOptions);\n }\n break;\n } });\n}\n\nconst IonItemOptions = ItemOptions;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonItemOptions, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index9.js';\nimport { l as isEndSide } from './helpers.js';\n\nconst itemSlidingCss = \"ion-item-sliding{display:block;position:relative;width:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-item-sliding .item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.item-sliding-active-slide .item{position:relative;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:-webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);transition:transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1), -webkit-transform 500ms cubic-bezier(0.36, 0.66, 0.04, 1);opacity:1;z-index:2;pointer-events:none;will-change:transform}.item-sliding-active-swipe-end .item-options-end .item-option-expandable{padding-left:100%;-ms-flex-order:1;order:1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-left;transition-property:padding-left}[dir=rtl] .item-sliding-active-swipe-end .item-options-end .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-end .item-options-end .item-option-expandable{-ms-flex-order:-1;order:-1}.item-sliding-active-swipe-start .item-options-start .item-option-expandable{padding-right:100%;-ms-flex-order:-1;order:-1;-webkit-transition-duration:0.6s;transition-duration:0.6s;-webkit-transition-property:padding-right;transition-property:padding-right}[dir=rtl] .item-sliding-active-swipe-start .item-options-start .item-option-expandable,:host-context([dir=rtl]) .item-sliding-active-swipe-start .item-options-start .item-option-expandable{-ms-flex-order:1;order:1}\";\n\nconst SWIPE_MARGIN = 30;\nconst ELASTIC_FACTOR = 0.55;\nlet openSlidingItem;\nconst ItemSliding = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionDrag = createEvent(this, \"ionDrag\", 7);\n this.item = null;\n this.openAmount = 0;\n this.initialOpenAmount = 0;\n this.optsWidthRightSide = 0;\n this.optsWidthLeftSide = 0;\n this.sides = 0 /* ItemSide.None */;\n this.optsDirty = true;\n this.contentEl = null;\n this.initialContentScrollY = true;\n this.state = 2 /* SlidingState.Disabled */;\n /**\n * If `true`, the user cannot interact with the sliding item.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async connectedCallback() {\n this.item = this.el.querySelector('ion-item');\n this.contentEl = findClosestIonContent(this.el);\n await this.updateOptions();\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.el,\n gestureName: 'item-swipe',\n gesturePriority: 100,\n threshold: 5,\n canStart: (ev) => this.canStart(ev),\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.disabledChanged();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.item = null;\n this.leftOptions = this.rightOptions = undefined;\n if (openSlidingItem === this.el) {\n openSlidingItem = undefined;\n }\n }\n /**\n * Get the amount the item is open in pixels.\n */\n getOpenAmount() {\n return Promise.resolve(this.openAmount);\n }\n /**\n * Get the ratio of the open amount of the item compared to the width of the options.\n * If the number returned is positive, then the options on the right side are open.\n * If the number returned is negative, then the options on the left side are open.\n * If the absolute value of the number is greater than 1, the item is open more than\n * the width of the options.\n */\n getSlidingRatio() {\n return Promise.resolve(this.getSlidingRatioSync());\n }\n /**\n * Open the sliding item.\n *\n * @param side The side of the options to open. If a side is not provided, it will open the first set of options it finds within the item.\n */\n async open(side) {\n if (this.item === null) {\n return;\n }\n const optionsToOpen = this.getOptions(side);\n if (!optionsToOpen) {\n return;\n }\n /**\n * If side is not set, we need to infer the side\n * so we know which direction to move the options\n */\n if (side === undefined) {\n side = optionsToOpen === this.leftOptions ? 'start' : 'end';\n }\n // In RTL we want to switch the sides\n side = isEndSide(side) ? 'end' : 'start';\n const isStartOpen = this.openAmount < 0;\n const isEndOpen = this.openAmount > 0;\n /**\n * If a side is open and a user tries to\n * re-open the same side, we should not do anything\n */\n if (isStartOpen && optionsToOpen === this.leftOptions) {\n return;\n }\n if (isEndOpen && optionsToOpen === this.rightOptions) {\n return;\n }\n this.closeOpened();\n this.state = 4 /* SlidingState.Enabled */;\n requestAnimationFrame(() => {\n this.calculateOptsWidth();\n const width = side === 'end' ? this.optsWidthRightSide : -this.optsWidthLeftSide;\n openSlidingItem = this.el;\n this.setOpenAmount(width, false);\n this.state = side === 'end' ? 8 /* SlidingState.End */ : 16 /* SlidingState.Start */;\n });\n }\n /**\n * Close the sliding item. Items can also be closed from the [List](./list).\n */\n async close() {\n this.setOpenAmount(0, true);\n }\n /**\n * Close all of the sliding items in the list. Items can also be closed from the [List](./list).\n */\n async closeOpened() {\n if (openSlidingItem !== undefined) {\n openSlidingItem.close();\n openSlidingItem = undefined;\n return true;\n }\n return false;\n }\n /**\n * Given an optional side, return the ion-item-options element.\n *\n * @param side This side of the options to get. If a side is not provided it will\n * return the first one available.\n */\n getOptions(side) {\n if (side === undefined) {\n return this.leftOptions || this.rightOptions;\n }\n else if (side === 'start') {\n return this.leftOptions;\n }\n else {\n return this.rightOptions;\n }\n }\n async updateOptions() {\n const options = this.el.querySelectorAll('ion-item-options');\n let sides = 0;\n // Reset left and right options in case they were removed\n this.leftOptions = this.rightOptions = undefined;\n for (let i = 0; i < options.length; i++) {\n const item = options.item(i);\n /**\n * We cannot use the componentOnReady helper\n * util here since we need to wait for all of these items\n * to be ready before we set `this.sides` and `this.optsDirty`.\n */\n // eslint-disable-next-line custom-rules/no-component-on-ready-method\n const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;\n const side = isEndSide(option.side) ? 'end' : 'start';\n if (side === 'start') {\n this.leftOptions = option;\n sides |= 1 /* ItemSide.Start */;\n }\n else {\n this.rightOptions = option;\n sides |= 2 /* ItemSide.End */;\n }\n }\n this.optsDirty = true;\n this.sides = sides;\n }\n canStart(gesture) {\n /**\n * If very close to start of the screen\n * do not open left side so swipe to go\n * back will still work.\n */\n const rtl = document.dir === 'rtl';\n const atEdge = rtl ? window.innerWidth - gesture.startX < 15 : gesture.startX < 15;\n if (atEdge) {\n return false;\n }\n const selected = openSlidingItem;\n if (selected && selected !== this.el) {\n this.closeOpened();\n }\n return !!(this.rightOptions || this.leftOptions);\n }\n onStart() {\n /**\n * We need to query for the ion-item\n * every time the gesture starts. Developers\n * may toggle ion-item elements via *ngIf.\n */\n this.item = this.el.querySelector('ion-item');\n const { contentEl } = this;\n if (contentEl) {\n this.initialContentScrollY = disableContentScrollY(contentEl);\n }\n openSlidingItem = this.el;\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (this.openAmount === 0) {\n this.optsDirty = true;\n this.state = 4 /* SlidingState.Enabled */;\n }\n this.initialOpenAmount = this.openAmount;\n if (this.item) {\n this.item.style.transition = 'none';\n }\n }\n onMove(gesture) {\n if (this.optsDirty) {\n this.calculateOptsWidth();\n }\n let openAmount = this.initialOpenAmount - gesture.deltaX;\n switch (this.sides) {\n case 2 /* ItemSide.End */:\n openAmount = Math.max(0, openAmount);\n break;\n case 1 /* ItemSide.Start */:\n openAmount = Math.min(0, openAmount);\n break;\n case 3 /* ItemSide.Both */:\n break;\n case 0 /* ItemSide.None */:\n return;\n default:\n console.warn('invalid ItemSideFlags value', this.sides);\n break;\n }\n let optsWidth;\n if (openAmount > this.optsWidthRightSide) {\n optsWidth = this.optsWidthRightSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n }\n else if (openAmount < -this.optsWidthLeftSide) {\n optsWidth = -this.optsWidthLeftSide;\n openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;\n }\n this.setOpenAmount(openAmount, false);\n }\n onEnd(gesture) {\n const { contentEl, initialContentScrollY } = this;\n if (contentEl) {\n resetContentScrollY(contentEl, initialContentScrollY);\n }\n const velocity = gesture.velocityX;\n let restingPoint = this.openAmount > 0 ? this.optsWidthRightSide : -this.optsWidthLeftSide;\n // Check if the drag didn't clear the buttons mid-point\n // and we aren't moving fast enough to swipe open\n const isResetDirection = this.openAmount > 0 === !(velocity < 0);\n const isMovingFast = Math.abs(velocity) > 0.3;\n const isOnCloseZone = Math.abs(this.openAmount) < Math.abs(restingPoint / 2);\n if (swipeShouldReset(isResetDirection, isMovingFast, isOnCloseZone)) {\n restingPoint = 0;\n }\n const state = this.state;\n this.setOpenAmount(restingPoint, true);\n if ((state & 32 /* SlidingState.SwipeEnd */) !== 0 && this.rightOptions) {\n this.rightOptions.fireSwipeEvent();\n }\n else if ((state & 64 /* SlidingState.SwipeStart */) !== 0 && this.leftOptions) {\n this.leftOptions.fireSwipeEvent();\n }\n }\n calculateOptsWidth() {\n this.optsWidthRightSide = 0;\n if (this.rightOptions) {\n this.rightOptions.style.display = 'flex';\n this.optsWidthRightSide = this.rightOptions.offsetWidth;\n this.rightOptions.style.display = '';\n }\n this.optsWidthLeftSide = 0;\n if (this.leftOptions) {\n this.leftOptions.style.display = 'flex';\n this.optsWidthLeftSide = this.leftOptions.offsetWidth;\n this.leftOptions.style.display = '';\n }\n this.optsDirty = false;\n }\n setOpenAmount(openAmount, isFinal) {\n if (this.tmr !== undefined) {\n clearTimeout(this.tmr);\n this.tmr = undefined;\n }\n if (!this.item) {\n return;\n }\n const style = this.item.style;\n this.openAmount = openAmount;\n if (isFinal) {\n style.transition = '';\n }\n if (openAmount > 0) {\n this.state =\n openAmount >= this.optsWidthRightSide + SWIPE_MARGIN\n ? 8 /* SlidingState.End */ | 32 /* SlidingState.SwipeEnd */\n : 8 /* SlidingState.End */;\n }\n else if (openAmount < 0) {\n this.state =\n openAmount <= -this.optsWidthLeftSide - SWIPE_MARGIN\n ? 16 /* SlidingState.Start */ | 64 /* SlidingState.SwipeStart */\n : 16 /* SlidingState.Start */;\n }\n else {\n /**\n * Item sliding cannot be interrupted\n * while closing the item. If it did,\n * it would allow the item to get into an\n * inconsistent state where multiple\n * items are then open at the same time.\n */\n if (this.gesture) {\n this.gesture.enable(false);\n }\n this.tmr = setTimeout(() => {\n this.state = 2 /* SlidingState.Disabled */;\n this.tmr = undefined;\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }, 600);\n openSlidingItem = undefined;\n style.transform = '';\n return;\n }\n style.transform = `translate3d(${-openAmount}px,0,0)`;\n this.ionDrag.emit({\n amount: openAmount,\n ratio: this.getSlidingRatioSync(),\n });\n }\n getSlidingRatioSync() {\n if (this.openAmount > 0) {\n return this.openAmount / this.optsWidthRightSide;\n }\n else if (this.openAmount < 0) {\n return this.openAmount / this.optsWidthLeftSide;\n }\n else {\n return 0;\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,\n 'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,\n 'item-sliding-active-options-start': (this.state & 16 /* SlidingState.Start */) !== 0,\n 'item-sliding-active-swipe-end': (this.state & 32 /* SlidingState.SwipeEnd */) !== 0,\n 'item-sliding-active-swipe-start': (this.state & 64 /* SlidingState.SwipeStart */) !== 0,\n } }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return itemSlidingCss; }\n}, [0, \"ion-item-sliding\", {\n \"disabled\": [4],\n \"state\": [32],\n \"getOpenAmount\": [64],\n \"getSlidingRatio\": [64],\n \"open\": [64],\n \"close\": [64],\n \"closeOpened\": [64]\n }]);\nconst swipeShouldReset = (isResetDirection, isMovingFast, isOnResetZone) => {\n // The logic required to know when the sliding item should close (openAmount=0)\n // depends on three booleans (isResetDirection, isMovingFast, isOnResetZone)\n // and it ended up being too complicated to be written manually without errors\n // so the truth table is attached below: (0=false, 1=true)\n // isResetDirection | isMovingFast | isOnResetZone || shouldClose\n // 0 | 0 | 0 || 0\n // 0 | 0 | 1 || 1\n // 0 | 1 | 0 || 0\n // 0 | 1 | 1 || 0\n // 1 | 0 | 0 || 0\n // 1 | 0 | 1 || 1\n // 1 | 1 | 0 || 1\n // 1 | 1 | 1 || 1\n // The resulting expression was generated by resolving the K-map (Karnaugh map):\n return (!isMovingFast && isOnResetZone) || (isResetDirection && isMovingFast);\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item-sliding\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item-sliding\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ItemSliding);\n }\n break;\n } });\n}\n\nconst IonItemSliding = ItemSliding;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonItemSliding, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { L as Label, d as defineCustomElement$1 } from './label.js';\n\nconst IonLabel = Label;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonLabel, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst listIosCss = \"ion-list{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;contain:content;list-style-type:none}ion-list.list-inset{-webkit-transform:translateZ(0);transform:translateZ(0);overflow:hidden}.list-ios{background:var(--ion-item-background, var(--ion-background-color, #fff))}.list-ios.list-inset{margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px;border-radius:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.list-ios.list-inset{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}.list-ios.list-inset ion-item{--border-width:0 0 1px 0;--inner-border-width:0}.list-ios.list-inset ion-item:last-child{--border-width:0;--inner-border-width:0}.list-ios.list-inset+ion-list.list-inset{margin-top:0}.list-ios-lines-none .item{--border-width:0;--inner-border-width:0}.list-ios-lines-full .item,.list-ios .item-lines-full{--border-width:0 0 0.55px 0}.list-ios-lines-full .item{--inner-border-width:0}.list-ios-lines-inset .item,.list-ios .item-lines-inset{--inner-border-width:0 0 0.55px 0}.list-ios .item-lines-inset{--border-width:0}.list-ios .item-lines-full{--inner-border-width:0}.list-ios .item-lines-none{--border-width:0;--inner-border-width:0}ion-card .list-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}\";\n\nconst listMdCss = \"ion-list{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;contain:content;list-style-type:none}ion-list.list-inset{-webkit-transform:translateZ(0);transform:translateZ(0);overflow:hidden}.list-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;background:var(--ion-item-background, var(--ion-background-color, #fff))}.list-md>.input:last-child::after{left:0}[dir=rtl] .list-md>.input:last-child::after,:host-context([dir=rtl]) .list-md>.input:last-child::after{left:unset;right:unset;right:0}.list-md.list-inset{margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px;border-radius:2px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.list-md.list-inset{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}.list-md.list-inset ion-item:first-child{--border-radius:2px 2px 0 0}.list-md.list-inset ion-item:last-child{--border-radius:0 0 2px, 2px;--border-width:0;--inner-border-width:0}.list-md.list-inset .item-interactive{--padding-start:0;--padding-end:0}.list-md.list-inset+ion-list.list-inset{margin-top:0}.list-md-lines-none .item{--border-width:0;--inner-border-width:0}.list-md-lines-full .item,.list-md .item-lines-full{--border-width:0 0 1px 0}.list-md-lines-full .item{--inner-border-width:0}.list-md-lines-inset .item,.list-md .item-lines-inset{--inner-border-width:0 0 1px 0}.list-md .item-lines-inset{--border-width:0}.list-md .item-lines-full{--inner-border-width:0}.list-md .item-lines-none{--border-width:0;--inner-border-width:0}ion-card .list-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}\";\n\nconst List = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n /**\n * If `true`, the list will have margin around it and rounded corners.\n */\n this.inset = false;\n }\n /**\n * If `ion-item-sliding` are used inside the list, this method closes\n * any open sliding item.\n *\n * Returns `true` if an actual `ion-item-sliding` is closed.\n */\n async closeSlidingItems() {\n const item = this.el.querySelector('ion-item-sliding');\n if (item === null || item === void 0 ? void 0 : item.closeOpened) {\n return item.closeOpened();\n }\n return false;\n }\n render() {\n const mode = getIonMode(this);\n const { lines, inset } = this;\n return (h(Host, { role: \"list\", class: {\n [mode]: true,\n // Used internally for styling\n [`list-${mode}`]: true,\n 'list-inset': inset,\n [`list-lines-${lines}`]: lines !== undefined,\n [`list-${mode}-lines-${lines}`]: lines !== undefined,\n } }));\n }\n get el() { return this; }\n static get style() { return {\n ios: listIosCss,\n md: listMdCss\n }; }\n}, [32, \"ion-list\", {\n \"lines\": [1],\n \"inset\": [4],\n \"closeSlidingItems\": [64]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-list\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-list\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, List);\n }\n break;\n } });\n}\n\nexport { List as L, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst listHeaderIosCss = \":host{--border-style:solid;--border-width:0;--inner-border-width:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:40px;border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.list-header-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}::slotted(ion-label){-ms-flex:1 1 auto;flex:1 1 auto}:host(.list-header-lines-inset),:host(.list-header-lines-none){--border-width:0}:host(.list-header-lines-full),:host(.list-header-lines-none){--inner-border-width:0}:host{--background:transparent;--color:var(--ion-color-step-850, #262626);--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));padding-left:calc(var(--ion-safe-area-left, 0px) + 20px);position:relative;-ms-flex-align:end;align-items:flex-end;font-size:22px;font-weight:700;letter-spacing:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;-webkit-padding-start:calc(var(--ion-safe-area-left, 0px) + 20px);padding-inline-start:calc(var(--ion-safe-area-left, 0px) + 20px)}}::slotted(ion-button),::slotted(ion-label){margin-top:29px;margin-bottom:6px}::slotted(ion-button){margin-left:3px;margin-right:3px;height:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-button){margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:3px;margin-inline-end:3px}}:host(.list-header-lines-full){--border-width:0 0 0.55px 0}:host(.list-header-lines-inset){--inner-border-width:0 0 0.55px 0}\";\n\nconst listHeaderMdCss = \":host{--border-style:solid;--border-width:0;--inner-border-width:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:40px;border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);color:var(--color);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.list-header-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-item-align:stretch;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);overflow:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}::slotted(ion-label){-ms-flex:1 1 auto;flex:1 1 auto}:host(.list-header-lines-inset),:host(.list-header-lines-none){--border-width:0}:host(.list-header-lines-full),:host(.list-header-lines-none){--inner-border-width:0}:host{--background:transparent;--color:var(--ion-text-color, #000);--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));padding-left:calc(var(--ion-safe-area-left, 0) + 16px);min-height:45px;font-size:14px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;-webkit-padding-start:calc(var(--ion-safe-area-left, 0) + 16px);padding-inline-start:calc(var(--ion-safe-area-left, 0) + 16px)}}:host(.list-header-lines-full){--border-width:0 0 1px 0}:host(.list-header-lines-inset){--inner-border-width:0 0 1px 0}\";\n\nconst ListHeader = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const { lines } = this;\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n [`list-header-lines-${lines}`]: lines !== undefined,\n }) }, h(\"div\", { class: \"list-header-inner\" }, h(\"slot\", null))));\n }\n static get style() { return {\n ios: listHeaderIosCss,\n md: listHeaderMdCss\n }; }\n}, [33, \"ion-list-header\", {\n \"color\": [513],\n \"lines\": [1]\n }]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-list-header\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-list-header\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ListHeader);\n }\n break;\n } });\n}\n\nexport { ListHeader as L, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { L as ListHeader, d as defineCustomElement$1 } from './list-header.js';\n\nconst IonListHeader = ListHeader;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonListHeader, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n/**\n * Based on:\n * https://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier\n * https://math.stackexchange.com/questions/26846/is-there-an-explicit-form-for-cubic-b%C3%A9zier-curves\n */\n/**\n * EXPERIMENTAL\n * Given a cubic-bezier curve, get the x value (time) given\n * the y value (progression).\n * Ex: cubic-bezier(0.32, 0.72, 0, 1);\n * P0: (0, 0)\n * P1: (0.32, 0.72)\n * P2: (0, 1)\n * P3: (1, 1)\n *\n * If you give a cubic bezier curve that never reaches the\n * provided progression, this function will return an empty array.\n */\nconst getTimeGivenProgression = (p0, p1, p2, p3, progression) => {\n return solveCubicBezier(p0[1], p1[1], p2[1], p3[1], progression).map((tValue) => {\n return solveCubicParametricEquation(p0[0], p1[0], p2[0], p3[0], tValue);\n });\n};\n/**\n * Solve a cubic equation in one dimension (time)\n */\nconst solveCubicParametricEquation = (p0, p1, p2, p3, t) => {\n const partA = 3 * p1 * Math.pow(t - 1, 2);\n const partB = -3 * p2 * t + 3 * p2 + p3 * t;\n const partC = p0 * Math.pow(t - 1, 3);\n return t * (partA + t * partB) - partC;\n};\n/**\n * Find the `t` value for a cubic bezier using Cardano's formula\n */\nconst solveCubicBezier = (p0, p1, p2, p3, refPoint) => {\n p0 -= refPoint;\n p1 -= refPoint;\n p2 -= refPoint;\n p3 -= refPoint;\n const roots = solveCubicEquation(p3 - 3 * p2 + 3 * p1 - p0, 3 * p2 - 6 * p1 + 3 * p0, 3 * p1 - 3 * p0, p0);\n return roots.filter((root) => root >= 0 && root <= 1);\n};\nconst solveQuadraticEquation = (a, b, c) => {\n const discriminant = b * b - 4 * a * c;\n if (discriminant < 0) {\n return [];\n }\n else {\n return [(-b + Math.sqrt(discriminant)) / (2 * a), (-b - Math.sqrt(discriminant)) / (2 * a)];\n }\n};\nconst solveCubicEquation = (a, b, c, d) => {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n b /= a;\n c /= a;\n d /= a;\n const p = (3 * c - b * b) / 3;\n const q = (2 * b * b * b - 9 * b * c + 27 * d) / 27;\n if (p === 0) {\n return [Math.pow(-q, 1 / 3)];\n }\n else if (q === 0) {\n return [Math.sqrt(-p), -Math.sqrt(-p)];\n }\n const discriminant = Math.pow(q / 2, 2) + Math.pow(p / 3, 3);\n if (discriminant === 0) {\n return [Math.pow(q / 2, 1 / 2) - b / 3];\n }\n else if (discriminant > 0) {\n return [\n Math.pow(-(q / 2) + Math.sqrt(discriminant), 1 / 3) - Math.pow(q / 2 + Math.sqrt(discriminant), 1 / 3) - b / 3,\n ];\n }\n const r = Math.sqrt(Math.pow(-(p / 3), 3));\n const phi = Math.acos(-(q / (2 * Math.sqrt(Math.pow(-(p / 3), 3)))));\n const s = 2 * Math.pow(r, 1 / 3);\n return [\n s * Math.cos(phi / 3) - b / 3,\n s * Math.cos((phi + 2 * Math.PI) / 3) - b / 3,\n s * Math.cos((phi + 4 * Math.PI) / 3) - b / 3,\n ];\n};\n\nexport { getTimeGivenProgression as g };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';\nimport { c as componentOnReady } from './helpers.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createAnimation } from './animation.js';\n\n/**\n * baseAnimation\n * Base class which is extended by the various types. Each\n * type will provide their own animations for open and close\n * and registers itself with Menu.\n */\nconst baseAnimation = (isIos) => {\n // https://material.io/guidelines/motion/movement.html#movement-movement-in-out-of-screen-bounds\n // https://material.io/guidelines/motion/duration-easing.html#duration-easing-natural-easing-curves\n /**\n * \"Apply the sharp curve to items temporarily leaving the screen that may return\n * from the same exit point. When they return, use the deceleration curve. On mobile,\n * this transition typically occurs over 300ms\" -- MD Motion Guide\n */\n return createAnimation().duration(isIos ? 400 : 300);\n};\n\n/**\n * Menu Overlay Type\n * The menu slides over the content. The content\n * itself, which is under the menu, does not move.\n */\nconst menuOverlayAnimation = (menu) => {\n let closedX;\n let openedX;\n const width = menu.width + 8;\n const menuAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n if (menu.isEndSide) {\n // right side\n closedX = width + 'px';\n openedX = '0px';\n }\n else {\n // left side\n closedX = -width + 'px';\n openedX = '0px';\n }\n menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);\n const mode = getIonMode(menu);\n const isIos = mode === 'ios';\n const opacity = isIos ? 0.2 : 0.25;\n backdropAnimation.addElement(menu.backdropEl).fromTo('opacity', 0.01, opacity);\n return baseAnimation(isIos).addAnimation([menuAnimation, backdropAnimation]);\n};\n\n/**\n * Menu Push Type\n * The content slides over to reveal the menu underneath.\n * The menu itself also slides over to reveal its bad self.\n */\nconst menuPushAnimation = (menu) => {\n let contentOpenedX;\n let menuClosedX;\n const mode = getIonMode(menu);\n const width = menu.width;\n if (menu.isEndSide) {\n contentOpenedX = -width + 'px';\n menuClosedX = width + 'px';\n }\n else {\n contentOpenedX = width + 'px';\n menuClosedX = -width + 'px';\n }\n const menuAnimation = createAnimation()\n .addElement(menu.menuInnerEl)\n .fromTo('transform', `translateX(${menuClosedX})`, 'translateX(0px)');\n const contentAnimation = createAnimation()\n .addElement(menu.contentEl)\n .fromTo('transform', 'translateX(0px)', `translateX(${contentOpenedX})`);\n const backdropAnimation = createAnimation().addElement(menu.backdropEl).fromTo('opacity', 0.01, 0.32);\n return baseAnimation(mode === 'ios').addAnimation([menuAnimation, contentAnimation, backdropAnimation]);\n};\n\n/**\n * Menu Reveal Type\n * The content slides over to reveal the menu underneath.\n * The menu itself, which is under the content, does not move.\n */\nconst menuRevealAnimation = (menu) => {\n const mode = getIonMode(menu);\n const openedX = menu.width * (menu.isEndSide ? -1 : 1) + 'px';\n const contentOpen = createAnimation()\n .addElement(menu.contentEl) // REVIEW\n .fromTo('transform', 'translateX(0px)', `translateX(${openedX})`);\n return baseAnimation(mode === 'ios').addAnimation(contentOpen);\n};\n\nconst createMenuController = () => {\n const menuAnimations = new Map();\n const menus = [];\n const open = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return menuEl.open();\n }\n return false;\n };\n const close = async (menu) => {\n const menuEl = await (menu !== undefined ? get(menu) : getOpen());\n if (menuEl !== undefined) {\n return menuEl.close();\n }\n return false;\n };\n const toggle = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return menuEl.toggle();\n }\n return false;\n };\n const enable = async (shouldEnable, menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n menuEl.disabled = !shouldEnable;\n }\n return menuEl;\n };\n const swipeGesture = async (shouldEnable, menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n menuEl.swipeGesture = shouldEnable;\n }\n return menuEl;\n };\n const isOpen = async (menu) => {\n if (menu != null) {\n const menuEl = await get(menu);\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n return menuEl !== undefined && menuEl.isOpen();\n }\n else {\n const menuEl = await getOpen();\n return menuEl !== undefined;\n }\n };\n const isEnabled = async (menu) => {\n const menuEl = await get(menu);\n if (menuEl) {\n return !menuEl.disabled;\n }\n return false;\n };\n const get = async (menu) => {\n await waitUntilReady();\n if (menu === 'start' || menu === 'end') {\n // there could be more than one menu on the same side\n // so first try to get the enabled one\n const menuRef = find((m) => m.side === menu && !m.disabled);\n if (menuRef) {\n return menuRef;\n }\n // didn't find a menu side that is enabled\n // so try to get the first menu side found\n return find((m) => m.side === menu);\n }\n else if (menu != null) {\n // the menuId was not left or right\n // so try to get the menu by its \"id\"\n return find((m) => m.menuId === menu);\n }\n // return the first enabled menu\n const menuEl = find((m) => !m.disabled);\n if (menuEl) {\n return menuEl;\n }\n // get the first menu in the array, if one exists\n return menus.length > 0 ? menus[0].el : undefined;\n };\n /**\n * Get the instance of the opened menu. Returns `null` if a menu is not found.\n */\n const getOpen = async () => {\n await waitUntilReady();\n return _getOpenSync();\n };\n /**\n * Get all menu instances.\n */\n const getMenus = async () => {\n await waitUntilReady();\n return getMenusSync();\n };\n /**\n * Get whether or not a menu is animating. Returns `true` if any\n * menu is currently animating.\n */\n const isAnimating = async () => {\n await waitUntilReady();\n return isAnimatingSync();\n };\n const registerAnimation = (name, animation) => {\n menuAnimations.set(name, animation);\n };\n const _register = (menu) => {\n if (menus.indexOf(menu) < 0) {\n if (!menu.disabled) {\n _setActiveMenu(menu);\n }\n menus.push(menu);\n }\n };\n const _unregister = (menu) => {\n const index = menus.indexOf(menu);\n if (index > -1) {\n menus.splice(index, 1);\n }\n };\n const _setActiveMenu = (menu) => {\n // if this menu should be enabled\n // then find all the other menus on this same side\n // and automatically disable other same side menus\n const side = menu.side;\n menus.filter((m) => m.side === side && m !== menu).forEach((m) => (m.disabled = true));\n };\n const _setOpen = async (menu, shouldOpen, animated) => {\n if (isAnimatingSync()) {\n return false;\n }\n if (shouldOpen) {\n const openedMenu = await getOpen();\n if (openedMenu && menu.el !== openedMenu) {\n await openedMenu.setOpen(false, false);\n }\n }\n return menu._setOpen(shouldOpen, animated);\n };\n const _createAnimation = (type, menuCmp) => {\n const animationBuilder = menuAnimations.get(type);\n if (!animationBuilder) {\n throw new Error('animation not registered');\n }\n const animation = animationBuilder(menuCmp);\n return animation;\n };\n const _getOpenSync = () => {\n return find((m) => m._isOpen);\n };\n const getMenusSync = () => {\n return menus.map((menu) => menu.el);\n };\n const isAnimatingSync = () => {\n return menus.some((menu) => menu.isAnimating);\n };\n const find = (predicate) => {\n const instance = menus.find(predicate);\n if (instance !== undefined) {\n return instance.el;\n }\n return undefined;\n };\n const waitUntilReady = () => {\n return Promise.all(Array.from(document.querySelectorAll('ion-menu')).map((menu) => new Promise((resolve) => componentOnReady(menu, resolve))));\n };\n registerAnimation('reveal', menuRevealAnimation);\n registerAnimation('push', menuPushAnimation);\n registerAnimation('overlay', menuOverlayAnimation);\n if (typeof document !== 'undefined') {\n document.addEventListener('ionBackButton', (ev) => {\n const openMenu = _getOpenSync();\n if (openMenu) {\n ev.detail.register(MENU_BACK_BUTTON_PRIORITY, () => {\n return openMenu.close();\n });\n }\n });\n }\n return {\n registerAnimation,\n get,\n getMenus,\n getOpen,\n isEnabled,\n swipeGesture,\n isAnimating,\n isOpen,\n enable,\n toggle,\n close,\n open,\n _getOpenSync,\n _createAnimation,\n _register,\n _unregister,\n _setOpen,\n _setActiveMenu,\n };\n};\nconst menuController = /*@__PURE__*/ createMenuController();\n\nexport { menuController as m };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier.js';\nimport { G as GESTURE_CONTROLLER } from './gesture-controller.js';\nimport { l as isEndSide, i as inheritAriaAttributes, m as assert, h as clamp } from './helpers.js';\nimport { m as menuController } from './index5.js';\nimport { h as getOverlay } from './overlays.js';\nimport { d as defineCustomElement$2 } from './backdrop.js';\n\nconst menuIosCss = \":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{left:0;right:auto;top:0;bottom:0;-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{left:unset;right:unset;left:auto;right:0}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;right:auto;left:0}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;right:0;left:auto;}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none !important;transform:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}\";\n\nconst menuMdCss = \":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{left:0;right:auto;top:0;bottom:0;-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}[dir=rtl] .menu-inner,:host-context([dir=rtl]) .menu-inner{left:unset;right:unset;left:auto;right:0}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;right:auto;left:0}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;right:0;left:auto;}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none !important;transform:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}\";\n\nconst iosEasing = 'cubic-bezier(0.32,0.72,0,1)';\nconst mdEasing = 'cubic-bezier(0.0,0.0,0.2,1)';\nconst iosEasingReverse = 'cubic-bezier(1, 0, 0.68, 0.28)';\nconst mdEasingReverse = 'cubic-bezier(0.4, 0, 0.6, 1)';\nconst focusableQueryString = '[tabindex]:not([tabindex^=\"-\"]), input:not([type=hidden]):not([tabindex^=\"-\"]), textarea:not([tabindex^=\"-\"]), button:not([tabindex^=\"-\"]), select:not([tabindex^=\"-\"]), .ion-focusable:not([tabindex^=\"-\"])';\nconst Menu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionWillOpen = createEvent(this, \"ionWillOpen\", 7);\n this.ionWillClose = createEvent(this, \"ionWillClose\", 7);\n this.ionDidOpen = createEvent(this, \"ionDidOpen\", 7);\n this.ionDidClose = createEvent(this, \"ionDidClose\", 7);\n this.ionMenuChange = createEvent(this, \"ionMenuChange\", 7);\n this.lastOnEnd = 0;\n this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });\n this.isAnimating = false;\n this._isOpen = false;\n this.inheritedAttributes = {};\n this.handleFocus = (ev) => {\n /**\n * Overlays have their own focus trapping listener\n * so we do not want the two listeners to conflict\n * with each other. If the top-most overlay that is\n * open does not contain this ion-menu, then ion-menu's\n * focus trapping should not run.\n */\n const lastOverlay = getOverlay(document);\n if (lastOverlay && !lastOverlay.contains(this.el)) {\n return;\n }\n this.trapKeyboardFocus(ev, document);\n };\n this.isPaneVisible = false;\n this.isEndSide = false;\n /**\n * If `true`, the menu is disabled.\n */\n this.disabled = false;\n /**\n * Which side of the view the menu should be placed.\n */\n this.side = 'start';\n /**\n * If `true`, swiping the menu is enabled.\n */\n this.swipeGesture = true;\n /**\n * The edge threshold for dragging the menu open.\n * If a drag/swipe happens over this value, the menu is not triggered.\n */\n this.maxEdgeStart = 50;\n }\n typeChanged(type, oldType) {\n const contentEl = this.contentEl;\n if (contentEl) {\n if (oldType !== undefined) {\n contentEl.classList.remove(`menu-content-${oldType}`);\n }\n contentEl.classList.add(`menu-content-${type}`);\n contentEl.removeAttribute('style');\n }\n if (this.menuInnerEl) {\n // Remove effects of previous animations\n this.menuInnerEl.removeAttribute('style');\n }\n this.animation = undefined;\n }\n disabledChanged() {\n this.updateState();\n this.ionMenuChange.emit({\n disabled: this.disabled,\n open: this._isOpen,\n });\n }\n sideChanged() {\n this.isEndSide = isEndSide(this.side);\n }\n swipeGestureChanged() {\n this.updateState();\n }\n async connectedCallback() {\n // TODO: connectedCallback is fired in CE build\n // before WC is defined. This needs to be fixed in Stencil.\n if (typeof customElements !== 'undefined') {\n await customElements.whenDefined('ion-menu');\n }\n if (this.type === undefined) {\n this.type = config.get('menuType', 'overlay');\n }\n if (!Build.isBrowser) {\n this.disabled = true;\n return;\n }\n const content = this.contentId !== undefined ? document.getElementById(this.contentId) : null;\n if (content === null) {\n console.error('Menu: must have a \"content\" element to listen for drag events on.');\n return;\n }\n if (this.el.contains(content)) {\n console.error(`Menu: \"contentId\" should refer to the main view's ion-content, not the ion-content inside of the ion-menu.`);\n }\n this.contentEl = content;\n // add menu's content classes\n content.classList.add('menu-content');\n this.typeChanged(this.type, undefined);\n this.sideChanged();\n // register this menu with the app's menu controller\n menuController._register(this);\n this.gesture = (await import('./index2.js')).createGesture({\n el: document,\n gestureName: 'menu-swipe',\n gesturePriority: 30,\n threshold: 10,\n blurOnStart: true,\n canStart: (ev) => this.canStart(ev),\n onWillStart: () => this.onWillStart(),\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.updateState();\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n async componentDidLoad() {\n this.ionMenuChange.emit({ disabled: this.disabled, open: this._isOpen });\n this.updateState();\n }\n disconnectedCallback() {\n this.blocker.destroy();\n menuController._unregister(this);\n if (this.animation) {\n this.animation.destroy();\n }\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.animation = undefined;\n this.contentEl = this.backdropEl = this.menuInnerEl = undefined;\n }\n onSplitPaneChanged(ev) {\n this.isPaneVisible = ev.detail.isPane(this.el);\n this.updateState();\n }\n onBackdropClick(ev) {\n if (this._isOpen && this.lastOnEnd < ev.timeStamp - 100) {\n const shouldClose = ev.composedPath ? !ev.composedPath().includes(this.menuInnerEl) : false;\n if (shouldClose) {\n ev.preventDefault();\n ev.stopPropagation();\n this.close();\n }\n }\n }\n onKeydown(ev) {\n if (ev.key === 'Escape') {\n this.close();\n }\n }\n /**\n * Returns `true` is the menu is open.\n */\n isOpen() {\n return Promise.resolve(this._isOpen);\n }\n /**\n * Returns `true` is the menu is active.\n *\n * A menu is active when it can be opened or closed, meaning it's enabled\n * and it's not part of a `ion-split-pane`.\n */\n isActive() {\n return Promise.resolve(this._isActive());\n }\n /**\n * Opens the menu. If the menu is already open or it can't be opened,\n * it returns `false`.\n */\n open(animated = true) {\n return this.setOpen(true, animated);\n }\n /**\n * Closes the menu. If the menu is already closed or it can't be closed,\n * it returns `false`.\n */\n close(animated = true) {\n return this.setOpen(false, animated);\n }\n /**\n * Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.\n * If the operation can't be completed successfully, it returns `false`.\n */\n toggle(animated = true) {\n return this.setOpen(!this._isOpen, animated);\n }\n /**\n * Opens or closes the button.\n * If the operation can't be completed successfully, it returns `false`.\n */\n setOpen(shouldOpen, animated = true) {\n return menuController._setOpen(this, shouldOpen, animated);\n }\n focusFirstDescendant() {\n const { el } = this;\n const firstInput = el.querySelector(focusableQueryString);\n if (firstInput) {\n firstInput.focus();\n }\n else {\n el.focus();\n }\n }\n focusLastDescendant() {\n const { el } = this;\n const inputs = Array.from(el.querySelectorAll(focusableQueryString));\n const lastInput = inputs.length > 0 ? inputs[inputs.length - 1] : null;\n if (lastInput) {\n lastInput.focus();\n }\n else {\n el.focus();\n }\n }\n trapKeyboardFocus(ev, doc) {\n const target = ev.target;\n if (!target) {\n return;\n }\n /**\n * If the target is inside the menu contents, let the browser\n * focus as normal and keep a log of the last focused element.\n */\n if (this.el.contains(target)) {\n this.lastFocus = target;\n }\n else {\n /**\n * Otherwise, we are about to have focus go out of the menu.\n * Wrap the focus to either the first or last element.\n */\n /**\n * Once we call `focusFirstDescendant`, another focus event\n * will fire, which will cause `lastFocus` to be updated\n * before we can run the code after that. We cache the value\n * here to avoid that.\n */\n this.focusFirstDescendant();\n /**\n * If the cached last focused element is the same as the now-\n * active element, that means the user was on the first element\n * already and pressed Shift + Tab, so we need to wrap to the\n * last descendant.\n */\n if (this.lastFocus === doc.activeElement) {\n this.focusLastDescendant();\n }\n }\n }\n async _setOpen(shouldOpen, animated = true) {\n // If the menu is disabled or it is currently being animated, let's do nothing\n if (!this._isActive() || this.isAnimating || shouldOpen === this._isOpen) {\n return false;\n }\n this.beforeAnimation(shouldOpen);\n await this.loadAnimation();\n await this.startAnimation(shouldOpen, animated);\n this.afterAnimation(shouldOpen);\n return true;\n }\n async loadAnimation() {\n // Menu swipe animation takes the menu's inner width as parameter,\n // If `offsetWidth` changes, we need to create a new animation.\n const width = this.menuInnerEl.offsetWidth;\n if (width === this.width && this.animation !== undefined) {\n return;\n }\n this.width = width;\n // Destroy existing animation\n if (this.animation) {\n this.animation.destroy();\n this.animation = undefined;\n }\n // Create new animation\n this.animation = await menuController._createAnimation(this.type, this);\n if (!config.getBoolean('animated', true)) {\n this.animation.duration(0);\n }\n this.animation.fill('both');\n }\n async startAnimation(shouldOpen, animated) {\n const isReversed = !shouldOpen;\n const mode = getIonMode(this);\n const easing = mode === 'ios' ? iosEasing : mdEasing;\n const easingReverse = mode === 'ios' ? iosEasingReverse : mdEasingReverse;\n const ani = this.animation\n .direction(isReversed ? 'reverse' : 'normal')\n .easing(isReversed ? easingReverse : easing)\n .onFinish(() => {\n if (ani.getDirection() === 'reverse') {\n ani.direction('normal');\n }\n });\n if (animated) {\n await ani.play();\n }\n else {\n ani.play({ sync: true });\n }\n }\n _isActive() {\n return !this.disabled && !this.isPaneVisible;\n }\n canSwipe() {\n return this.swipeGesture && !this.isAnimating && this._isActive();\n }\n canStart(detail) {\n // Do not allow swipe gesture if a modal is open\n const isModalPresented = !!document.querySelector('ion-modal.show-modal');\n if (isModalPresented || !this.canSwipe()) {\n return false;\n }\n if (this._isOpen) {\n return true;\n }\n else if (menuController._getOpenSync()) {\n return false;\n }\n return checkEdgeSide(window, detail.currentX, this.isEndSide, this.maxEdgeStart);\n }\n onWillStart() {\n this.beforeAnimation(!this._isOpen);\n return this.loadAnimation();\n }\n onStart() {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n // the cloned animation should not use an easing curve during seek\n this.animation.progressStart(true, this._isOpen ? 1 : 0);\n }\n onMove(detail) {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n const delta = computeDelta(detail.deltaX, this._isOpen, this.isEndSide);\n const stepValue = delta / this.width;\n this.animation.progressStep(this._isOpen ? 1 - stepValue : stepValue);\n }\n onEnd(detail) {\n if (!this.isAnimating || !this.animation) {\n assert(false, 'isAnimating has to be true');\n return;\n }\n const isOpen = this._isOpen;\n const isEndSide = this.isEndSide;\n const delta = computeDelta(detail.deltaX, isOpen, isEndSide);\n const width = this.width;\n const stepValue = delta / width;\n const velocity = detail.velocityX;\n const z = width / 2.0;\n const shouldCompleteRight = velocity >= 0 && (velocity > 0.2 || detail.deltaX > z);\n const shouldCompleteLeft = velocity <= 0 && (velocity < -0.2 || detail.deltaX < -z);\n const shouldComplete = isOpen\n ? isEndSide\n ? shouldCompleteRight\n : shouldCompleteLeft\n : isEndSide\n ? shouldCompleteLeft\n : shouldCompleteRight;\n let shouldOpen = !isOpen && shouldComplete;\n if (isOpen && !shouldComplete) {\n shouldOpen = true;\n }\n this.lastOnEnd = detail.currentTime;\n // Account for rounding errors in JS\n let newStepValue = shouldComplete ? 0.001 : -0.001;\n /**\n * stepValue can sometimes return a negative\n * value, but you can't have a negative time value\n * for the cubic bezier curve (at least with web animations)\n */\n const adjustedStepValue = stepValue < 0 ? 0.01 : stepValue;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n newStepValue +=\n getTimeGivenProgression([0, 0], [0.4, 0], [0.6, 1], [1, 1], clamp(0, adjustedStepValue, 0.9999))[0] || 0;\n const playTo = this._isOpen ? !shouldComplete : shouldComplete;\n this.animation\n .easing('cubic-bezier(0.4, 0.0, 0.6, 1)')\n .onFinish(() => this.afterAnimation(shouldOpen), { oneTimeCallback: true })\n .progressEnd(playTo ? 1 : 0, this._isOpen ? 1 - newStepValue : newStepValue, 300);\n }\n beforeAnimation(shouldOpen) {\n assert(!this.isAnimating, '_before() should not be called while animating');\n // this places the menu into the correct location before it animates in\n // this css class doesn't actually kick off any animations\n this.el.classList.add(SHOW_MENU);\n /**\n * We add a tabindex here so that focus trapping\n * still works even if the menu does not have\n * any focusable elements slotted inside. The\n * focus trapping utility will fallback to focusing\n * the menu so focus does not leave when the menu\n * is open.\n */\n this.el.setAttribute('tabindex', '0');\n if (this.backdropEl) {\n this.backdropEl.classList.add(SHOW_BACKDROP);\n }\n this.blocker.block();\n this.isAnimating = true;\n if (shouldOpen) {\n this.ionWillOpen.emit();\n }\n else {\n this.ionWillClose.emit();\n }\n }\n afterAnimation(isOpen) {\n var _a;\n assert(this.isAnimating, '_before() should be called while animating');\n // keep opening/closing the menu disabled for a touch more yet\n // only add listeners/css if it's enabled and isOpen\n // and only remove listeners/css if it's not open\n // emit opened/closed events\n this._isOpen = isOpen;\n this.isAnimating = false;\n if (!this._isOpen) {\n this.blocker.unblock();\n }\n if (isOpen) {\n // add css class and hide content behind menu from screen readers\n if (this.contentEl) {\n this.contentEl.classList.add(MENU_CONTENT_OPEN);\n /**\n * When the menu is open and overlaying the main\n * content, the main content should not be announced\n * by the screenreader as the menu is the main\n * focus. This is useful with screenreaders that have\n * \"read from top\" gestures that read the entire\n * page from top to bottom when activated.\n */\n this.contentEl.setAttribute('aria-hidden', 'true');\n }\n // emit open event\n this.ionDidOpen.emit();\n /**\n * Move focus to the menu to prepare focus trapping, as long as\n * it isn't already focused. Use the host element instead of the\n * first descendant to avoid the scroll position jumping around.\n */\n const focusedMenu = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.closest('ion-menu');\n if (focusedMenu !== this.el) {\n this.el.focus();\n }\n // start focus trapping\n document.addEventListener('focus', this.handleFocus, true);\n }\n else {\n // remove css classes and unhide content from screen readers\n this.el.classList.remove(SHOW_MENU);\n /**\n * Remove tabindex from the menu component\n * so that is cannot be tabbed to.\n */\n this.el.removeAttribute('tabindex');\n if (this.contentEl) {\n this.contentEl.classList.remove(MENU_CONTENT_OPEN);\n /**\n * Remove aria-hidden so screen readers\n * can announce the main content again\n * now that the menu is not the main focus.\n */\n this.contentEl.removeAttribute('aria-hidden');\n }\n if (this.backdropEl) {\n this.backdropEl.classList.remove(SHOW_BACKDROP);\n }\n if (this.animation) {\n this.animation.stop();\n }\n // emit close event\n this.ionDidClose.emit();\n // undo focus trapping so multiple menus don't collide\n document.removeEventListener('focus', this.handleFocus, true);\n }\n }\n updateState() {\n const isActive = this._isActive();\n if (this.gesture) {\n this.gesture.enable(isActive && this.swipeGesture);\n }\n // Close menu immediately\n if (!isActive && this._isOpen) {\n // close if this menu is open, and should not be enabled\n this.forceClosing();\n }\n if (!this.disabled) {\n menuController._setActiveMenu(this);\n }\n assert(!this.isAnimating, 'can not be animating');\n }\n forceClosing() {\n assert(this._isOpen, 'menu cannot be closed');\n this.isAnimating = true;\n const ani = this.animation.direction('reverse');\n ani.play({ sync: true });\n this.afterAnimation(false);\n }\n render() {\n const { isEndSide, type, disabled, isPaneVisible, inheritedAttributes } = this;\n const mode = getIonMode(this);\n return (h(Host, { role: \"navigation\", \"aria-label\": inheritedAttributes['aria-label'] || 'menu', class: {\n [mode]: true,\n [`menu-type-${type}`]: true,\n 'menu-enabled': !disabled,\n 'menu-side-end': isEndSide,\n 'menu-side-start': !isEndSide,\n 'menu-pane-visible': isPaneVisible,\n } }, h(\"div\", { class: \"menu-inner\", part: \"container\", ref: (el) => (this.menuInnerEl = el) }, h(\"slot\", null)), h(\"ion-backdrop\", { ref: (el) => (this.backdropEl = el), class: \"menu-backdrop\", tappable: false, stopPropagation: false, part: \"backdrop\" })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"type\": [\"typeChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"side\": [\"sideChanged\"],\n \"swipeGesture\": [\"swipeGestureChanged\"]\n }; }\n static get style() { return {\n ios: menuIosCss,\n md: menuMdCss\n }; }\n}, [33, \"ion-menu\", {\n \"contentId\": [513, \"content-id\"],\n \"menuId\": [513, \"menu-id\"],\n \"type\": [1025],\n \"disabled\": [1028],\n \"side\": [513],\n \"swipeGesture\": [4, \"swipe-gesture\"],\n \"maxEdgeStart\": [2, \"max-edge-start\"],\n \"isPaneVisible\": [32],\n \"isEndSide\": [32],\n \"isOpen\": [64],\n \"isActive\": [64],\n \"open\": [64],\n \"close\": [64],\n \"toggle\": [64],\n \"setOpen\": [64]\n }, [[16, \"ionSplitPaneVisible\", \"onSplitPaneChanged\"], [2, \"click\", \"onBackdropClick\"], [0, \"keydown\", \"onKeydown\"]]]);\nconst computeDelta = (deltaX, isOpen, isEndSide) => {\n return Math.max(0, isOpen !== isEndSide ? -deltaX : deltaX);\n};\nconst checkEdgeSide = (win, posX, isEndSide, maxEdgeStart) => {\n if (isEndSide) {\n return posX >= win.innerWidth - maxEdgeStart;\n }\n else {\n return posX <= maxEdgeStart;\n }\n};\nconst SHOW_MENU = 'show-menu';\nconst SHOW_BACKDROP = 'show-backdrop';\nconst MENU_CONTENT_OPEN = 'menu-content-open';\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-menu\", \"ion-backdrop\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-menu\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Menu);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonMenu = Menu;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonMenu, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { m as menuController } from './index5.js';\n\n// Given a menu, return whether or not the menu toggle should be visible\nconst updateVisibility = async (menu) => {\n const menuEl = await menuController.get(menu);\n return !!(menuEl && (await menuEl.isActive()));\n};\n\nexport { updateVisibility as u };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { m as menuOutline, j as menuSharp } from './index7.js';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { i as inheritAriaAttributes } from './helpers.js';\nimport { m as menuController } from './index5.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\nimport { u as updateVisibility } from './menu-toggle-util.js';\nimport { d as defineCustomElement$3 } from './icon.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst menuButtonIosCss = \":host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-focused:currentColor;--background-focused-opacity:.1;--border-radius:4px;--color:var(--ion-color-primary, #3880ff);--padding-start:5px;--padding-end:5px;height:32px;font-size:31px}:host(.ion-activated){opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}\";\n\nconst menuButtonMdCss = \":host{--background:transparent;--color-focused:currentColor;--border-radius:initial;--padding-top:0;--padding-bottom:0;color:var(--color);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;pointer-events:none}:host(.menu-button-hidden){display:none}:host(.menu-button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity, 0)}}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-focused:currentColor;--background-focused-opacity:.12;--background-hover:currentColor;--background-hover-opacity:.04;--border-radius:50%;--color:initial;--padding-start:8px;--padding-end:8px;width:48px;height:48px;font-size:24px}:host(.ion-color.ion-focused)::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}\";\n\nconst MenuButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.inheritedAttributes = {};\n this.visible = false;\n /**\n * If `true`, the user cannot interact with the menu button.\n */\n this.disabled = false;\n /**\n * Automatically hides the menu button when the corresponding menu is not active\n */\n this.autoHide = true;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = async () => {\n return menuController.toggle(this.menu);\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n componentDidLoad() {\n this.visibilityChanged();\n }\n async visibilityChanged() {\n this.visible = await updateVisibility(this.menu);\n }\n render() {\n const { color, disabled, inheritedAttributes } = this;\n const mode = getIonMode(this);\n const menuIcon = config.get('menuIcon', mode === 'ios' ? menuOutline : menuSharp);\n const hidden = this.autoHide && !this.visible;\n const attrs = {\n type: this.type,\n };\n const ariaLabel = inheritedAttributes['aria-label'] || 'menu';\n return (h(Host, { onClick: this.onClick, \"aria-disabled\": disabled ? 'true' : null, \"aria-hidden\": hidden ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n button: true,\n 'menu-button-hidden': hidden,\n 'menu-button-disabled': disabled,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'ion-activatable': true,\n 'ion-focusable': true,\n }) }, h(\"button\", Object.assign({}, attrs, { disabled: disabled, class: \"button-native\", part: \"native\", \"aria-label\": ariaLabel }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", null, h(\"ion-icon\", { part: \"icon\", icon: menuIcon, mode: mode, lazy: false, \"aria-hidden\": \"true\" }))), mode === 'md' && h(\"ion-ripple-effect\", { type: \"unbounded\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: menuButtonIosCss,\n md: menuButtonMdCss\n }; }\n}, [33, \"ion-menu-button\", {\n \"color\": [513],\n \"disabled\": [4],\n \"menu\": [1],\n \"autoHide\": [4, \"auto-hide\"],\n \"type\": [1],\n \"visible\": [32]\n }, [[16, \"ionMenuChange\", \"visibilityChanged\"], [16, \"ionSplitPaneVisible\", \"visibilityChanged\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-menu-button\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-menu-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, MenuButton);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonMenuButton = MenuButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonMenuButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { m as menuController } from './index5.js';\nimport { u as updateVisibility } from './menu-toggle-util.js';\n\nconst menuToggleCss = \":host(.menu-toggle-hidden){display:none}\";\n\nconst MenuToggle = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.visible = false;\n /**\n * Automatically hides the content when the corresponding menu is not active.\n *\n * By default, it's `true`. Change it to `false` in order to\n * keep `ion-menu-toggle` always visible regardless the state of the menu.\n */\n this.autoHide = true;\n this.onClick = () => {\n return menuController.toggle(this.menu);\n };\n }\n connectedCallback() {\n this.visibilityChanged();\n }\n async visibilityChanged() {\n this.visible = await updateVisibility(this.menu);\n }\n render() {\n const mode = getIonMode(this);\n const hidden = this.autoHide && !this.visible;\n return (h(Host, { onClick: this.onClick, \"aria-hidden\": hidden ? 'true' : null, class: {\n [mode]: true,\n 'menu-toggle-hidden': hidden,\n } }, h(\"slot\", null)));\n }\n static get style() { return menuToggleCss; }\n}, [1, \"ion-menu-toggle\", {\n \"menu\": [1],\n \"autoHide\": [4, \"auto-hide\"],\n \"visible\": [32]\n }, [[16, \"ionMenuChange\", \"visibilityChanged\"], [16, \"ionSplitPaneVisible\", \"visibilityChanged\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-menu-toggle\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-menu-toggle\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, MenuToggle);\n }\n break;\n } });\n}\n\nconst IonMenuToggle = MenuToggle;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonMenuToggle, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Build } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier.js';\nimport { m as assert, s as shallowEqualStringMap } from './helpers.js';\nimport { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index4.js';\nimport { a as attachComponent } from './framework-delegate.js';\n\nconst VIEW_STATE_NEW = 1;\nconst VIEW_STATE_ATTACHED = 2;\nconst VIEW_STATE_DESTROYED = 3;\nclass ViewController {\n constructor(component, params) {\n this.component = component;\n this.params = params;\n this.state = VIEW_STATE_NEW;\n }\n async init(container) {\n this.state = VIEW_STATE_ATTACHED;\n if (!this.element) {\n const component = this.component;\n this.element = await attachComponent(this.delegate, container, component, ['ion-page', 'ion-page-invisible'], this.params);\n }\n }\n /**\n * DOM WRITE\n */\n _destroy() {\n assert(this.state !== VIEW_STATE_DESTROYED, 'view state must be ATTACHED');\n const element = this.element;\n if (element) {\n if (this.delegate) {\n this.delegate.removeViewFromDom(element.parentElement, element);\n }\n else {\n element.remove();\n }\n }\n this.nav = undefined;\n this.state = VIEW_STATE_DESTROYED;\n }\n}\nconst matches = (view, id, params) => {\n if (!view) {\n return false;\n }\n if (view.component !== id) {\n return false;\n }\n return shallowEqualStringMap(view.params, params);\n};\nconst convertToView = (page, params) => {\n if (!page) {\n return null;\n }\n if (page instanceof ViewController) {\n return page;\n }\n return new ViewController(page, params);\n};\nconst convertToViews = (pages) => {\n return pages\n .map((page) => {\n if (page instanceof ViewController) {\n return page;\n }\n if ('component' in page) {\n return convertToView(page.component, page.componentProps === null ? undefined : page.componentProps);\n }\n return convertToView(page, undefined);\n })\n .filter((v) => v !== null);\n};\n\nconst navCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}\";\n\nconst Nav = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionNavWillLoad = createEvent(this, \"ionNavWillLoad\", 7);\n this.ionNavWillChange = createEvent(this, \"ionNavWillChange\", 3);\n this.ionNavDidChange = createEvent(this, \"ionNavDidChange\", 3);\n this.transInstr = [];\n this.animationEnabled = true;\n this.useRouter = false;\n this.isTransitioning = false;\n this.destroyed = false;\n this.views = [];\n /**\n * If `true`, the nav should animate the transition of components.\n */\n this.animated = true;\n }\n swipeGestureChanged() {\n if (this.gesture) {\n this.gesture.enable(this.swipeGesture === true);\n }\n }\n rootChanged() {\n const isDev = Build.isDev;\n if (this.root !== undefined) {\n if (!this.useRouter) {\n this.setRoot(this.root, this.rootParams);\n }\n else if (isDev) {\n console.warn('<ion-nav> does not support a root attribute when using ion-router.');\n }\n }\n }\n componentWillLoad() {\n this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;\n if (this.swipeGesture === undefined) {\n const mode = getIonMode(this);\n this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');\n }\n this.ionNavWillLoad.emit();\n }\n async componentDidLoad() {\n this.rootChanged();\n this.gesture = (await import('./swipe-back.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));\n this.swipeGestureChanged();\n }\n connectedCallback() {\n this.destroyed = false;\n }\n disconnectedCallback() {\n for (const view of this.views) {\n lifecycle(view.element, LIFECYCLE_WILL_UNLOAD);\n view._destroy();\n }\n // Release swipe back gesture and transition.\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n this.transInstr.length = 0;\n this.views.length = 0;\n this.destroyed = true;\n }\n /**\n * Push a new component onto the current navigation stack. Pass any additional\n * information along as an object. This additional information is accessible\n * through NavParams.\n *\n * @param component The component to push onto the navigation stack.\n * @param componentProps Any properties of the component.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n push(component, componentProps, opts, done) {\n return this.insert(-1, component, componentProps, opts, done);\n }\n /**\n * Inserts a component into the navigation stack at the specified index.\n * This is useful to add a component at any point in the navigation stack.\n *\n * @param insertIndex The index to insert the component at in the stack.\n * @param component The component to insert into the navigation stack.\n * @param componentProps Any properties of the component.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n insert(insertIndex, component, componentProps, opts, done) {\n return this.insertPages(insertIndex, [{ component, componentProps }], opts, done);\n }\n /**\n * Inserts an array of components into the navigation stack at the specified index.\n * The last component in the array will become instantiated as a view, and animate\n * in to become the active view.\n *\n * @param insertIndex The index to insert the components at in the stack.\n * @param insertComponents The components to insert into the navigation stack.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n insertPages(insertIndex, insertComponents, opts, done) {\n return this.queueTrns({\n insertStart: insertIndex,\n insertViews: insertComponents,\n opts,\n }, done);\n }\n /**\n * Pop a component off of the navigation stack. Navigates back from the current\n * component.\n *\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n pop(opts, done) {\n return this.removeIndex(-1, 1, opts, done);\n }\n /**\n * Pop to a specific index in the navigation stack.\n *\n * @param indexOrViewCtrl The index or view controller to pop to.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n popTo(indexOrViewCtrl, opts, done) {\n const ti = {\n removeStart: -1,\n removeCount: -1,\n opts,\n };\n if (typeof indexOrViewCtrl === 'object' && indexOrViewCtrl.component) {\n ti.removeView = indexOrViewCtrl;\n ti.removeStart = 1;\n }\n else if (typeof indexOrViewCtrl === 'number') {\n ti.removeStart = indexOrViewCtrl + 1;\n }\n return this.queueTrns(ti, done);\n }\n /**\n * Navigate back to the root of the stack, no matter how far back that is.\n *\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n popToRoot(opts, done) {\n return this.removeIndex(1, -1, opts, done);\n }\n /**\n * Removes a component from the navigation stack at the specified index.\n *\n * @param startIndex The number to begin removal at.\n * @param removeCount The number of components to remove.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n removeIndex(startIndex, removeCount = 1, opts, done) {\n return this.queueTrns({\n removeStart: startIndex,\n removeCount,\n opts,\n }, done);\n }\n /**\n * Set the root for the current navigation stack to a component.\n *\n * @param component The component to set as the root of the navigation stack.\n * @param componentProps Any properties of the component.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n setRoot(component, componentProps, opts, done) {\n return this.setPages([{ component, componentProps }], opts, done);\n }\n /**\n * Set the views of the current navigation stack and navigate to the last view.\n * By default animations are disabled, but they can be enabled by passing options\n * to the navigation controller. Navigation parameters can also be passed to the\n * individual pages in the array.\n *\n * @param views The list of views to set as the navigation stack.\n * @param opts The navigation options.\n * @param done The transition complete function.\n */\n setPages(views, opts, done) {\n opts !== null && opts !== void 0 ? opts : (opts = {});\n // if animation wasn't set to true then default it to NOT animate\n if (opts.animated !== true) {\n opts.animated = false;\n }\n return this.queueTrns({\n insertStart: 0,\n insertViews: views,\n removeStart: 0,\n removeCount: -1,\n opts,\n }, done);\n }\n /**\n * Called by the router to update the view.\n *\n * @param id The component tag.\n * @param params The component params.\n * @param direction A direction hint.\n * @param animation an AnimationBuilder.\n *\n * @return the status.\n * @internal\n */\n setRouteId(id, params, direction, animation) {\n const active = this.getActiveSync();\n if (matches(active, id, params)) {\n return Promise.resolve({\n changed: false,\n element: active.element,\n });\n }\n let resolve;\n const promise = new Promise((r) => (resolve = r));\n let finish;\n const commonOpts = {\n updateURL: false,\n viewIsReady: (enteringEl) => {\n let mark;\n const p = new Promise((r) => (mark = r));\n resolve({\n changed: true,\n element: enteringEl,\n markVisible: async () => {\n mark();\n await finish;\n },\n });\n return p;\n },\n };\n if (direction === 'root') {\n finish = this.setRoot(id, params, commonOpts);\n }\n else {\n // Look for a view matching the target in the view stack.\n const viewController = this.views.find((v) => matches(v, id, params));\n if (viewController) {\n finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));\n }\n else if (direction === 'forward') {\n finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));\n }\n else if (direction === 'back') {\n finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));\n }\n }\n return promise;\n }\n /**\n * Called by <ion-router> to retrieve the current component.\n *\n * @internal\n */\n async getRouteId() {\n const active = this.getActiveSync();\n if (active) {\n return {\n id: active.element.tagName,\n params: active.params,\n element: active.element,\n };\n }\n return undefined;\n }\n /**\n * Get the active view.\n */\n async getActive() {\n return this.getActiveSync();\n }\n /**\n * Get the view at the specified index.\n *\n * @param index The index of the view.\n */\n async getByIndex(index) {\n return this.views[index];\n }\n /**\n * Returns `true` if the current view can go back.\n *\n * @param view The view to check.\n */\n async canGoBack(view) {\n return this.canGoBackSync(view);\n }\n /**\n * Get the previous view.\n *\n * @param view The view to get.\n */\n async getPrevious(view) {\n return this.getPreviousSync(view);\n }\n getLength() {\n return this.views.length;\n }\n getActiveSync() {\n return this.views[this.views.length - 1];\n }\n canGoBackSync(view = this.getActiveSync()) {\n return !!(view && this.getPreviousSync(view));\n }\n getPreviousSync(view = this.getActiveSync()) {\n if (!view) {\n return undefined;\n }\n const views = this.views;\n const index = views.indexOf(view);\n return index > 0 ? views[index - 1] : undefined;\n }\n /**\n * Adds a navigation stack change to the queue and schedules it to run.\n *\n * @returns Whether the transition succeeds.\n */\n async queueTrns(ti, done) {\n var _a, _b;\n if (this.isTransitioning && ((_a = ti.opts) === null || _a === void 0 ? void 0 : _a.skipIfBusy)) {\n return false;\n }\n const promise = new Promise((resolve, reject) => {\n ti.resolve = resolve;\n ti.reject = reject;\n });\n ti.done = done;\n /**\n * If using router, check to see if navigation hooks\n * will allow us to perform this transition. This\n * is required in order for hooks to work with\n * the ion-back-button or swipe to go back.\n */\n if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {\n const router = document.querySelector('ion-router');\n if (router) {\n const canTransition = await router.canTransition();\n if (canTransition === false) {\n return false;\n }\n if (typeof canTransition === 'string') {\n router.push(canTransition, ti.opts.direction || 'back');\n return false;\n }\n }\n }\n // Normalize empty\n if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {\n ti.insertViews = undefined;\n }\n // Enqueue transition instruction\n this.transInstr.push(ti);\n // if there isn't a transition already happening\n // then this will kick off this transition\n this.nextTrns();\n return promise;\n }\n success(result, ti) {\n if (this.destroyed) {\n this.fireError('nav controller was destroyed', ti);\n return;\n }\n if (ti.done) {\n ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);\n }\n ti.resolve(result.hasCompleted);\n if (ti.opts.updateURL !== false && this.useRouter) {\n const router = document.querySelector('ion-router');\n if (router) {\n const direction = result.direction === 'back' ? 'back' : 'forward';\n router.navChanged(direction);\n }\n }\n }\n failed(rejectReason, ti) {\n if (this.destroyed) {\n this.fireError('nav controller was destroyed', ti);\n return;\n }\n this.transInstr.length = 0;\n this.fireError(rejectReason, ti);\n }\n fireError(rejectReason, ti) {\n if (ti.done) {\n ti.done(false, false, rejectReason);\n }\n if (ti.reject && !this.destroyed) {\n ti.reject(rejectReason);\n }\n else {\n ti.resolve(false);\n }\n }\n /**\n * Consumes the next transition in the queue.\n *\n * @returns whether the transition is executed.\n */\n nextTrns() {\n // this is the framework's bread 'n butta function\n // only one transition is allowed at any given time\n if (this.isTransitioning) {\n return false;\n }\n // there is no transition happening right now, executes the next instructions.\n const ti = this.transInstr.shift();\n if (!ti) {\n return false;\n }\n this.runTransition(ti);\n return true;\n }\n /** Executes all the transition instruction from the queue. */\n async runTransition(ti) {\n try {\n // set that this nav is actively transitioning\n this.ionNavWillChange.emit();\n this.isTransitioning = true;\n this.prepareTI(ti);\n const leavingView = this.getActiveSync();\n const enteringView = this.getEnteringView(ti, leavingView);\n if (!leavingView && !enteringView) {\n throw new Error('no views in the stack to be removed');\n }\n if (enteringView && enteringView.state === VIEW_STATE_NEW) {\n await enteringView.init(this.el);\n }\n this.postViewInit(enteringView, leavingView, ti);\n // Needs transition?\n const requiresTransition = (ti.enteringRequiresTransition || ti.leavingRequiresTransition) && enteringView !== leavingView;\n if (requiresTransition && ti.opts && leavingView) {\n const isBackDirection = ti.opts.direction === 'back';\n /**\n * If heading back, use the entering page's animation\n * unless otherwise specified by the developer.\n */\n if (isBackDirection) {\n ti.opts.animationBuilder = ti.opts.animationBuilder || (enteringView === null || enteringView === void 0 ? void 0 : enteringView.animationBuilder);\n }\n leavingView.animationBuilder = ti.opts.animationBuilder;\n }\n let result;\n if (requiresTransition) {\n result = await this.transition(enteringView, leavingView, ti);\n }\n else {\n // transition is not required, so we are already done!\n // they're inserting/removing the views somewhere in the middle or\n // beginning, so visually nothing needs to animate/transition\n // resolve immediately because there's no animation that's happening\n result = {\n hasCompleted: true,\n requiresTransition: false,\n };\n }\n this.success(result, ti);\n this.ionNavDidChange.emit();\n }\n catch (rejectReason) {\n this.failed(rejectReason, ti);\n }\n this.isTransitioning = false;\n this.nextTrns();\n }\n prepareTI(ti) {\n var _a, _b;\n var _c;\n const viewsLength = this.views.length;\n (_a = ti.opts) !== null && _a !== void 0 ? _a : (ti.opts = {});\n (_b = (_c = ti.opts).delegate) !== null && _b !== void 0 ? _b : (_c.delegate = this.delegate);\n if (ti.removeView !== undefined) {\n assert(ti.removeStart !== undefined, 'removeView needs removeStart');\n assert(ti.removeCount !== undefined, 'removeView needs removeCount');\n const index = this.views.indexOf(ti.removeView);\n if (index < 0) {\n throw new Error('removeView was not found');\n }\n ti.removeStart += index;\n }\n if (ti.removeStart !== undefined) {\n if (ti.removeStart < 0) {\n ti.removeStart = viewsLength - 1;\n }\n if (ti.removeCount < 0) {\n ti.removeCount = viewsLength - ti.removeStart;\n }\n ti.leavingRequiresTransition = ti.removeCount > 0 && ti.removeStart + ti.removeCount === viewsLength;\n }\n if (ti.insertViews) {\n // allow -1 to be passed in to auto push it on the end\n // and clean up the index if it's larger then the size of the stack\n if (ti.insertStart < 0 || ti.insertStart > viewsLength) {\n ti.insertStart = viewsLength;\n }\n ti.enteringRequiresTransition = ti.insertStart === viewsLength;\n }\n const insertViews = ti.insertViews;\n if (!insertViews) {\n return;\n }\n assert(insertViews.length > 0, 'length can not be zero');\n const viewControllers = convertToViews(insertViews);\n if (viewControllers.length === 0) {\n throw new Error('invalid views to insert');\n }\n // Check all the inserted view are correct\n for (const view of viewControllers) {\n view.delegate = ti.opts.delegate;\n const nav = view.nav;\n if (nav && nav !== this) {\n throw new Error('inserted view was already inserted');\n }\n if (view.state === VIEW_STATE_DESTROYED) {\n throw new Error('inserted view was already destroyed');\n }\n }\n ti.insertViews = viewControllers;\n }\n /**\n * Returns the view that will be entered considering the transition instructions.\n *\n * @param ti The instructions.\n * @param leavingView The view being left or undefined if none.\n *\n * @returns The view that will be entered, undefined if none.\n */\n getEnteringView(ti, leavingView) {\n // The last inserted view will be entered when view are inserted.\n const insertViews = ti.insertViews;\n if (insertViews !== undefined) {\n return insertViews[insertViews.length - 1];\n }\n // When views are deleted, we will enter the last view that is not removed and not the view being left.\n const removeStart = ti.removeStart;\n if (removeStart !== undefined) {\n const views = this.views;\n const removeEnd = removeStart + ti.removeCount;\n for (let i = views.length - 1; i >= 0; i--) {\n const view = views[i];\n if ((i < removeStart || i >= removeEnd) && view !== leavingView) {\n return view;\n }\n }\n }\n return undefined;\n }\n /**\n * Adds and Removes the views from the navigation stack.\n *\n * @param enteringView The view being entered.\n * @param leavingView The view being left.\n * @param ti The instructions.\n */\n postViewInit(enteringView, leavingView, ti) {\n var _a, _b, _c;\n assert(leavingView || enteringView, 'Both leavingView and enteringView are null');\n assert(ti.resolve, 'resolve must be valid');\n assert(ti.reject, 'reject must be valid');\n // Compute the views to remove.\n const opts = ti.opts;\n const { insertViews, removeStart, removeCount } = ti;\n /** Records the view to destroy */\n let destroyQueue;\n // there are views to remove\n if (removeStart !== undefined && removeCount !== undefined) {\n assert(removeStart >= 0, 'removeStart can not be negative');\n assert(removeCount >= 0, 'removeCount can not be negative');\n destroyQueue = [];\n for (let i = removeStart; i < removeStart + removeCount; i++) {\n const view = this.views[i];\n if (view !== undefined && view !== enteringView && view !== leavingView) {\n destroyQueue.push(view);\n }\n }\n // default the direction to \"back\"\n (_a = opts.direction) !== null && _a !== void 0 ? _a : (opts.direction = 'back');\n }\n const finalNumViews = this.views.length + ((_b = insertViews === null || insertViews === void 0 ? void 0 : insertViews.length) !== null && _b !== void 0 ? _b : 0) - (removeCount !== null && removeCount !== void 0 ? removeCount : 0);\n assert(finalNumViews >= 0, 'final balance can not be negative');\n if (finalNumViews === 0) {\n console.warn(`You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);\n throw new Error('navigation stack needs at least one root page');\n }\n // At this point the transition can not be rejected, any throw should be an error\n // Insert the new views in the stack.\n if (insertViews) {\n // add the views to the\n let insertIndex = ti.insertStart;\n for (const view of insertViews) {\n this.insertViewAt(view, insertIndex);\n insertIndex++;\n }\n if (ti.enteringRequiresTransition) {\n // default to forward if not already set\n (_c = opts.direction) !== null && _c !== void 0 ? _c : (opts.direction = 'forward');\n }\n }\n // if the views to be removed are in the beginning or middle\n // and there is not a view that needs to visually transition out\n // then just destroy them and don't transition anything\n // batch all of lifecycles together\n // let's make sure, callbacks are zoned\n if (destroyQueue && destroyQueue.length > 0) {\n for (const view of destroyQueue) {\n lifecycle(view.element, LIFECYCLE_WILL_LEAVE);\n lifecycle(view.element, LIFECYCLE_DID_LEAVE);\n lifecycle(view.element, LIFECYCLE_WILL_UNLOAD);\n }\n // once all lifecycle events has been delivered, we can safely detroy the views\n for (const view of destroyQueue) {\n this.destroyView(view);\n }\n }\n }\n async transition(enteringView, leavingView, ti) {\n // we should animate (duration > 0) if the pushed page is not the first one (startup)\n // or if it is a portal (modal, actionsheet, etc.)\n const opts = ti.opts;\n const progressCallback = opts.progressAnimation ? (ani) => (this.sbAni = ani) : undefined;\n const mode = getIonMode(this);\n const enteringEl = enteringView.element;\n const leavingEl = leavingView && leavingView.element;\n const animationOpts = Object.assign(Object.assign({ mode, showGoBack: this.canGoBackSync(enteringView), baseEl: this.el, progressCallback, animated: this.animated && config.getBoolean('animated', true), enteringEl,\n leavingEl }, opts), { animationBuilder: opts.animationBuilder || this.animation || config.get('navAnimation') });\n const { hasCompleted } = await transition(animationOpts);\n return this.transitionFinish(hasCompleted, enteringView, leavingView, opts);\n }\n transitionFinish(hasCompleted, enteringView, leavingView, opts) {\n /**\n * If the transition did not complete, the leavingView will still be the active\n * view on the stack. Otherwise unmount all the views after the enteringView.\n */\n const activeView = hasCompleted ? enteringView : leavingView;\n if (activeView) {\n this.unmountInactiveViews(activeView);\n }\n return {\n hasCompleted,\n requiresTransition: true,\n enteringView,\n leavingView,\n direction: opts.direction,\n };\n }\n /**\n * Inserts a view at the specified index.\n *\n * When the view already is in the stack it will be moved to the new position.\n *\n * @param view The view to insert.\n * @param index The index where to insert the view.\n */\n insertViewAt(view, index) {\n const views = this.views;\n const existingIndex = views.indexOf(view);\n if (existingIndex > -1) {\n assert(view.nav === this, 'view is not part of the nav');\n // The view already in the stack, removes it.\n views.splice(existingIndex, 1);\n // and add it back at the requested index.\n views.splice(index, 0, view);\n }\n else {\n assert(!view.nav, 'nav is used');\n // this is a new view to add to the stack\n // create the new entering view\n view.nav = this;\n views.splice(index, 0, view);\n }\n }\n /**\n * Removes a view from the stack.\n *\n * @param view The view to remove.\n */\n removeView(view) {\n assert(view.state === VIEW_STATE_ATTACHED || view.state === VIEW_STATE_DESTROYED, 'view state should be loaded or destroyed');\n const views = this.views;\n const index = views.indexOf(view);\n assert(index > -1, 'view must be part of the stack');\n if (index >= 0) {\n views.splice(index, 1);\n }\n }\n destroyView(view) {\n view._destroy();\n this.removeView(view);\n }\n /**\n * Unmounts all inactive views after the specified active view.\n *\n * DOM WRITE\n *\n * @param activeView The view that is actively visible in the stack. Used to calculate which views to unmount.\n */\n unmountInactiveViews(activeView) {\n // ok, cleanup time!! Destroy all of the views that are\n // INACTIVE and come after the active view\n // only do this if the views exist, though\n if (this.destroyed) {\n return;\n }\n const views = this.views;\n const activeViewIndex = views.indexOf(activeView);\n for (let i = views.length - 1; i >= 0; i--) {\n const view = views[i];\n /**\n * When inserting multiple views via insertPages\n * the last page will be transitioned to, but the\n * others will not be. As a result, a DOM element\n * will only be created for the last page inserted.\n * As a result, it is possible to have views in the\n * stack that do not have `view.element` yet.\n */\n const element = view.element;\n if (element) {\n if (i > activeViewIndex) {\n // this view comes after the active view\n // let's unload it\n lifecycle(element, LIFECYCLE_WILL_UNLOAD);\n this.destroyView(view);\n }\n else if (i < activeViewIndex) {\n // this view comes before the active view\n // and it is not a portal then ensure it is hidden\n setPageHidden(element, true);\n }\n }\n }\n }\n canStart() {\n return (!!this.swipeGesture &&\n !this.isTransitioning &&\n this.transInstr.length === 0 &&\n this.animationEnabled &&\n this.canGoBackSync());\n }\n onStart() {\n this.pop({ direction: 'back', progressAnimation: true });\n }\n onMove(stepValue) {\n if (this.sbAni) {\n this.sbAni.progressStep(stepValue);\n }\n }\n onEnd(shouldComplete, stepValue, dur) {\n if (this.sbAni) {\n this.animationEnabled = false;\n this.sbAni.onFinish(() => {\n this.animationEnabled = true;\n }, { oneTimeCallback: true });\n // Account for rounding errors in JS\n let newStepValue = shouldComplete ? -0.001 : 0.001;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n if (!shouldComplete) {\n this.sbAni.easing('cubic-bezier(1, 0, 0.68, 0.28)');\n newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], stepValue)[0];\n }\n else {\n newStepValue += getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], stepValue)[0];\n }\n this.sbAni.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur);\n }\n }\n render() {\n return h(\"slot\", null);\n }\n get el() { return this; }\n static get watchers() { return {\n \"swipeGesture\": [\"swipeGestureChanged\"],\n \"root\": [\"rootChanged\"]\n }; }\n static get style() { return navCss; }\n}, [1, \"ion-nav\", {\n \"delegate\": [16],\n \"swipeGesture\": [1028, \"swipe-gesture\"],\n \"animated\": [4],\n \"animation\": [16],\n \"rootParams\": [16],\n \"root\": [1],\n \"push\": [64],\n \"insert\": [64],\n \"insertPages\": [64],\n \"pop\": [64],\n \"popTo\": [64],\n \"popToRoot\": [64],\n \"removeIndex\": [64],\n \"setRoot\": [64],\n \"setPages\": [64],\n \"setRouteId\": [64],\n \"getRouteId\": [64],\n \"getActive\": [64],\n \"getByIndex\": [64],\n \"canGoBack\": [64],\n \"getPrevious\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-nav\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-nav\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Nav);\n }\n break;\n } });\n}\n\nconst IonNav = Nav;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonNav, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\n\nconst navLink = (el, routerDirection, component, componentProps, routerAnimation) => {\n const nav = el.closest('ion-nav');\n if (nav) {\n if (routerDirection === 'forward') {\n if (component !== undefined) {\n return nav.push(component, componentProps, { skipIfBusy: true, animationBuilder: routerAnimation });\n }\n }\n else if (routerDirection === 'root') {\n if (component !== undefined) {\n return nav.setRoot(component, componentProps, { skipIfBusy: true, animationBuilder: routerAnimation });\n }\n }\n else if (routerDirection === 'back') {\n return nav.pop({ skipIfBusy: true, animationBuilder: routerAnimation });\n }\n }\n return Promise.resolve(false);\n};\n\nconst NavLink = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n /**\n * The transition direction when navigating to another page.\n */\n this.routerDirection = 'forward';\n this.onClick = () => {\n return navLink(this.el, this.routerDirection, this.component, this.componentProps, this.routerAnimation);\n };\n }\n render() {\n return h(Host, { onClick: this.onClick });\n }\n get el() { return this; }\n}, [0, \"ion-nav-link\", {\n \"component\": [1],\n \"componentProps\": [16],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-nav-link\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-nav-link\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, NavLink);\n }\n break;\n } });\n}\n\nconst IonNavLink = NavLink;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonNavLink, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { h as clamp } from './helpers.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst progressBarIosCss = \":host{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);--progress-background:var(--ion-color-primary, #3880ff);--buffer-background:var(--background);display:block;position:relative;width:100%;contain:strict;direction:ltr;overflow:hidden}.progress,.progress-indeterminate,.indeterminate-bar-primary,.indeterminate-bar-secondary,.progress-buffer-bar{left:0;right:0;top:0;bottom:0;position:absolute;width:100%;height:100%}.buffer-circles-container,.buffer-circles{left:0;right:0;top:0;bottom:0;position:absolute}.buffer-circles{right:-10px;left:-10px;}.progress,.progress-buffer-bar,.buffer-circles-container{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 150ms linear;transition:-webkit-transform 150ms linear;transition:transform 150ms linear;transition:transform 150ms linear, -webkit-transform 150ms linear}.progress,.progress-indeterminate{background:var(--progress-background);z-index:2}.progress-buffer-bar{background:var(--buffer-background);z-index:1}.buffer-circles-container{overflow:hidden}.indeterminate-bar-primary{top:0;right:0;bottom:0;left:-145.166611%;-webkit-animation:primary-indeterminate-translate 2s infinite linear;animation:primary-indeterminate-translate 2s infinite linear}.indeterminate-bar-primary .progress-indeterminate{-webkit-animation:primary-indeterminate-scale 2s infinite linear;animation:primary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.indeterminate-bar-secondary{top:0;right:0;bottom:0;left:-54.888891%;-webkit-animation:secondary-indeterminate-translate 2s infinite linear;animation:secondary-indeterminate-translate 2s infinite linear}.indeterminate-bar-secondary .progress-indeterminate{-webkit-animation:secondary-indeterminate-scale 2s infinite linear;animation:secondary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.buffer-circles{background-image:radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);background-repeat:repeat-x;background-position:5px center;background-size:10px 10px;z-index:0;-webkit-animation:buffering 450ms infinite linear;animation:buffering 450ms infinite linear}:host(.progress-bar-reversed){-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.progress-paused) .indeterminate-bar-secondary,:host(.progress-paused) .indeterminate-bar-primary,:host(.progress-paused) .buffer-circles{-webkit-animation-play-state:paused;animation-play-state:paused}:host(.ion-color) .progress-buffer-bar{background:rgba(var(--ion-color-base-rgb), 0.3)}:host(.ion-color) .buffer-circles{background-image:radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%)}:host(.ion-color) .progress,:host(.ion-color) .progress-indeterminate{background:var(--ion-color-base)}@-webkit-keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@-webkit-keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@-webkit-keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}:host{height:3px}\";\n\nconst progressBarMdCss = \":host{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.3);--progress-background:var(--ion-color-primary, #3880ff);--buffer-background:var(--background);display:block;position:relative;width:100%;contain:strict;direction:ltr;overflow:hidden}.progress,.progress-indeterminate,.indeterminate-bar-primary,.indeterminate-bar-secondary,.progress-buffer-bar{left:0;right:0;top:0;bottom:0;position:absolute;width:100%;height:100%}.buffer-circles-container,.buffer-circles{left:0;right:0;top:0;bottom:0;position:absolute}.buffer-circles{right:-10px;left:-10px;}.progress,.progress-buffer-bar,.buffer-circles-container{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transition:-webkit-transform 150ms linear;transition:-webkit-transform 150ms linear;transition:transform 150ms linear;transition:transform 150ms linear, -webkit-transform 150ms linear}.progress,.progress-indeterminate{background:var(--progress-background);z-index:2}.progress-buffer-bar{background:var(--buffer-background);z-index:1}.buffer-circles-container{overflow:hidden}.indeterminate-bar-primary{top:0;right:0;bottom:0;left:-145.166611%;-webkit-animation:primary-indeterminate-translate 2s infinite linear;animation:primary-indeterminate-translate 2s infinite linear}.indeterminate-bar-primary .progress-indeterminate{-webkit-animation:primary-indeterminate-scale 2s infinite linear;animation:primary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.indeterminate-bar-secondary{top:0;right:0;bottom:0;left:-54.888891%;-webkit-animation:secondary-indeterminate-translate 2s infinite linear;animation:secondary-indeterminate-translate 2s infinite linear}.indeterminate-bar-secondary .progress-indeterminate{-webkit-animation:secondary-indeterminate-scale 2s infinite linear;animation:secondary-indeterminate-scale 2s infinite linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.buffer-circles{background-image:radial-gradient(ellipse at center, var(--buffer-background) 0%, var(--buffer-background) 30%, transparent 30%);background-repeat:repeat-x;background-position:5px center;background-size:10px 10px;z-index:0;-webkit-animation:buffering 450ms infinite linear;animation:buffering 450ms infinite linear}:host(.progress-bar-reversed){-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.progress-paused) .indeterminate-bar-secondary,:host(.progress-paused) .indeterminate-bar-primary,:host(.progress-paused) .buffer-circles{-webkit-animation-play-state:paused;animation-play-state:paused}:host(.ion-color) .progress-buffer-bar{background:rgba(var(--ion-color-base-rgb), 0.3)}:host(.ion-color) .buffer-circles{background-image:radial-gradient(ellipse at center, rgba(var(--ion-color-base-rgb), 0.3) 0%, rgba(var(--ion-color-base-rgb), 0.3) 30%, transparent 30%)}:host(.ion-color) .progress,:host(.ion-color) .progress-indeterminate{background:var(--ion-color-base)}@-webkit-keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@keyframes primary-indeterminate-translate{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{-webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);-webkit-transform:translateX(0);transform:translateX(0)}59.15%{-webkit-animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);-webkit-transform:translateX(83.67142%);transform:translateX(83.67142%)}100%{-webkit-transform:translateX(200.611057%);transform:translateX(200.611057%)}}@-webkit-keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes primary-indeterminate-scale{0%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}36.65%{-webkit-animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}69.15%{-webkit-animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);-webkit-transform:scaleX(0.661479);transform:scaleX(0.661479)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@keyframes secondary-indeterminate-translate{0%{-webkit-animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);-webkit-transform:translateX(0);transform:translateX(0)}25%{-webkit-animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);-webkit-transform:translateX(37.651913%);transform:translateX(37.651913%)}48.35%{-webkit-animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);-webkit-transform:translateX(84.386165%);transform:translateX(84.386165%)}100%{-webkit-transform:translateX(160.277782%);transform:translateX(160.277782%)}}@-webkit-keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@keyframes secondary-indeterminate-scale{0%{-webkit-animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}19.15%{-webkit-animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.004315);-webkit-transform:scaleX(0.457104);transform:scaleX(0.457104)}44.15%{-webkit-animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);-webkit-transform:scaleX(0.72796);transform:scaleX(0.72796)}100%{-webkit-transform:scaleX(0.08);transform:scaleX(0.08)}}@-webkit-keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}@keyframes buffering{to{-webkit-transform:translateX(-10px);transform:translateX(-10px)}}:host{height:4px}\";\n\nconst ProgressBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * The state of the progress bar, based on if the time the process takes is known or not.\n * Default options are: `\"determinate\"` (no animation), `\"indeterminate\"` (animate from left to right).\n */\n this.type = 'determinate';\n /**\n * If true, reverse the progress bar direction.\n */\n this.reversed = false;\n /**\n * The value determines how much of the active bar should display when the\n * `type` is `\"determinate\"`.\n * The value should be between [0, 1].\n */\n this.value = 0;\n /**\n * If the buffer and value are smaller than 1, the buffer circles will show.\n * The buffer should be between [0, 1].\n */\n this.buffer = 1;\n }\n render() {\n const { color, type, reversed, value, buffer } = this;\n const paused = config.getBoolean('_testing');\n const mode = getIonMode(this);\n return (h(Host, { role: \"progressbar\", \"aria-valuenow\": type === 'determinate' ? value : null, \"aria-valuemin\": \"0\", \"aria-valuemax\": \"1\", class: createColorClasses(color, {\n [mode]: true,\n [`progress-bar-${type}`]: true,\n 'progress-paused': paused,\n 'progress-bar-reversed': document.dir === 'rtl' ? !reversed : reversed,\n }) }, type === 'indeterminate' ? renderIndeterminate() : renderProgress(value, buffer)));\n }\n static get style() { return {\n ios: progressBarIosCss,\n md: progressBarMdCss\n }; }\n}, [33, \"ion-progress-bar\", {\n \"type\": [1],\n \"reversed\": [4],\n \"value\": [2],\n \"buffer\": [2],\n \"color\": [513]\n }]);\nconst renderIndeterminate = () => {\n return (h(\"div\", { part: \"track\", class: \"progress-buffer-bar\" }, h(\"div\", { class: \"indeterminate-bar-primary\" }, h(\"span\", { part: \"progress\", class: \"progress-indeterminate\" })), h(\"div\", { class: \"indeterminate-bar-secondary\" }, h(\"span\", { part: \"progress\", class: \"progress-indeterminate\" }))));\n};\nconst renderProgress = (value, buffer) => {\n const finalValue = clamp(0, value, 1);\n const finalBuffer = clamp(0, buffer, 1);\n return [\n h(\"div\", { part: \"progress\", class: \"progress\", style: { transform: `scaleX(${finalValue})` } }),\n /**\n * Buffer circles with two container to move\n * the circles behind the buffer progress\n * with respecting the animation.\n * When finalBuffer === 1, we use display: none\n * instead of removing the element to avoid flickering.\n */\n h(\"div\", { class: { 'buffer-circles-container': true, 'ion-hide': finalBuffer === 1 }, style: { transform: `translateX(${finalBuffer * 100}%)` } }, h(\"div\", { class: \"buffer-circles-container\", style: { transform: `translateX(-${finalBuffer * 100}%)` } }, h(\"div\", { part: \"stream\", class: \"buffer-circles\" }))),\n h(\"div\", { part: \"track\", class: \"progress-buffer-bar\", style: { transform: `scaleX(${finalBuffer})` } }),\n ];\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-progress-bar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-progress-bar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ProgressBar);\n }\n break;\n } });\n}\n\nconst IonProgressBar = ProgressBar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonProgressBar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as addEventListener, b as removeEventListener, n as getAriaLabel } from './helpers.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst radioIosCss = \":host{--inner-border-radius:50%;display:inline-block;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.radio-disabled){pointer-events:none}.radio-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{-webkit-box-sizing:border-box;box-sizing:border-box}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host{--color-checked:var(--ion-color-primary, #3880ff);width:15px;height:24px}:host(.ion-color.radio-checked) .radio-inner{border-color:var(--ion-color-base)}.item-radio.item-ios ion-label{margin-left:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.item-radio.item-ios ion-label{margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}.radio-inner{width:33%;height:50%}:host(.radio-checked) .radio-inner{-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--color-checked)}:host(.radio-disabled){opacity:0.3}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);left:-9px;top:-8px;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #4c8dff);content:\\\"\\\";opacity:0.2}:host-context([dir=rtl]):host(.ion-focused) .radio-icon::after,:host-context([dir=rtl]).ion-focused .radio-icon::after{left:unset;right:unset;right:-9px}:host(.in-item){margin-left:10px;margin-right:11px;margin-top:8px;margin-bottom:8px;display:block;position:static}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:11px;margin-inline-end:11px}}:host(.in-item[slot=start]){margin-left:3px;margin-right:21px;margin-top:8px;margin-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:3px;margin-inline-start:3px;-webkit-margin-end:21px;margin-inline-end:21px}}\";\n\nconst radioMdCss = \":host{--inner-border-radius:50%;display:inline-block;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.radio-disabled){pointer-events:none}.radio-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;contain:layout size style}.radio-icon,.radio-inner{-webkit-box-sizing:border-box;box-sizing:border-box}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}:host(:focus){outline:none}:host{--color:var(--ion-color-step-400, #999999);--color-checked:var(--ion-color-primary, #3880ff);--border-width:2px;--border-style:solid;--border-radius:50%;width:20px;height:20px}:host(.ion-color) .radio-inner{background:var(--ion-color-base)}:host(.ion-color.radio-checked) .radio-icon{border-color:var(--ion-color-base)}.radio-icon{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--color)}.radio-inner{border-radius:var(--inner-border-radius);width:calc(50% + var(--border-width));height:calc(50% + var(--border-width));-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background:var(--color-checked)}:host(.radio-checked) .radio-icon{border-color:var(--color-checked)}:host(.radio-checked) .radio-inner{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}:host(.radio-disabled){opacity:0.3}:host(.ion-focused) .radio-icon::after{border-radius:var(--inner-border-radius);left:-12px;top:-12px;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #4c8dff);content:\\\"\\\";opacity:0.2}:host-context([dir=rtl]):host(.ion-focused) .radio-icon::after,:host-context([dir=rtl]).ion-focused .radio-icon::after{left:unset;right:unset;right:-12px}:host(.in-item){margin-left:0;margin-right:0;margin-top:9px;margin-bottom:9px;display:block;position:static}:host(.in-item[slot=start]){margin-left:4px;margin-right:36px;margin-top:11px;margin-bottom:10px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:36px;margin-inline-end:36px}}\";\n\nconst Radio = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.inputId = `ion-rb-${radioButtonIds++}`;\n this.radioGroup = null;\n /**\n * If `true`, the radio is selected.\n */\n this.checked = false;\n /**\n * The tabindex of the radio button.\n * @internal\n */\n this.buttonTabindex = -1;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the user cannot interact with the radio.\n */\n this.disabled = false;\n this.updateState = () => {\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this.value;\n }\n };\n this.onClick = () => {\n this.checked = this.nativeInput.checked;\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n }\n /** @internal */\n async setFocus(ev) {\n ev.stopPropagation();\n ev.preventDefault();\n this.el.focus();\n }\n /** @internal */\n async setButtonTabindex(value) {\n this.buttonTabindex = value;\n }\n connectedCallback() {\n if (this.value === undefined) {\n this.value = this.inputId;\n }\n const radioGroup = (this.radioGroup = this.el.closest('ion-radio-group'));\n if (radioGroup) {\n this.updateState();\n addEventListener(radioGroup, 'ionChange', this.updateState);\n }\n }\n disconnectedCallback() {\n const radioGroup = this.radioGroup;\n if (radioGroup) {\n removeEventListener(radioGroup, 'ionChange', this.updateState);\n this.radioGroup = null;\n }\n }\n componentWillLoad() {\n this.emitStyle();\n }\n emitStyle() {\n this.ionStyle.emit({\n 'radio-checked': this.checked,\n 'interactive-disabled': this.disabled,\n });\n }\n render() {\n const { inputId, disabled, checked, color, el, buttonTabindex } = this;\n const mode = getIonMode(this);\n const { label, labelId, labelText } = getAriaLabel(el, inputId);\n return (h(Host, { \"aria-checked\": `${checked}`, \"aria-hidden\": disabled ? 'true' : null, \"aria-labelledby\": label ? labelId : null, role: \"radio\", tabindex: buttonTabindex, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n interactive: true,\n 'radio-checked': checked,\n 'radio-disabled': disabled,\n }) }, h(\"div\", { class: \"radio-icon\", part: \"container\" }, h(\"div\", { class: \"radio-inner\", part: \"mark\" }), h(\"div\", { class: \"radio-ripple\" })), h(\"label\", { htmlFor: inputId }, labelText), h(\"input\", { type: \"radio\", checked: checked, disabled: disabled, tabindex: \"-1\", id: inputId, ref: (nativeEl) => (this.nativeInput = nativeEl) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"color\": [\"emitStyle\"],\n \"checked\": [\"emitStyle\"],\n \"disabled\": [\"emitStyle\"]\n }; }\n static get style() { return {\n ios: radioIosCss,\n md: radioMdCss\n }; }\n}, [33, \"ion-radio\", {\n \"color\": [513],\n \"name\": [1],\n \"disabled\": [4],\n \"value\": [8],\n \"checked\": [32],\n \"buttonTabindex\": [32],\n \"setFocus\": [64],\n \"setButtonTabindex\": [64]\n }]);\nlet radioButtonIds = 0;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-radio\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-radio\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Radio);\n }\n break;\n } });\n}\n\nexport { Radio as R, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst RadioGroup = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.inputId = `ion-rg-${radioGroupIds++}`;\n this.labelId = `${this.inputId}-lbl`;\n /**\n * If `true`, the radios can be deselected.\n */\n this.allowEmptySelection = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n this.setRadioTabindex = (value) => {\n const radios = this.getRadios();\n // Get the first radio that is not disabled and the checked one\n const first = radios.find((radio) => !radio.disabled);\n const checked = radios.find((radio) => radio.value === value && !radio.disabled);\n if (!first && !checked) {\n return;\n }\n // If an enabled checked radio exists, set it to be the focusable radio\n // otherwise we default to focus the first radio\n const focusable = checked || first;\n for (const radio of radios) {\n const tabindex = radio === focusable ? 0 : -1;\n radio.setButtonTabindex(tabindex);\n }\n };\n this.onClick = (ev) => {\n ev.preventDefault();\n const selectedRadio = ev.target && ev.target.closest('ion-radio');\n if (selectedRadio) {\n const currentValue = this.value;\n const newValue = selectedRadio.value;\n if (newValue !== currentValue) {\n this.value = newValue;\n }\n else if (this.allowEmptySelection) {\n this.value = undefined;\n }\n }\n };\n }\n valueChanged(value) {\n this.setRadioTabindex(value);\n this.ionChange.emit({ value });\n }\n componentDidLoad() {\n this.setRadioTabindex(this.value);\n }\n async connectedCallback() {\n // Get the list header if it exists and set the id\n // this is used to set aria-labelledby\n const header = this.el.querySelector('ion-list-header') || this.el.querySelector('ion-item-divider');\n if (header) {\n const label = (this.label = header.querySelector('ion-label'));\n if (label) {\n this.labelId = label.id = this.name + '-lbl';\n }\n }\n }\n getRadios() {\n return Array.from(this.el.querySelectorAll('ion-radio'));\n }\n onKeydown(ev) {\n const inSelectPopover = !!this.el.closest('ion-select-popover');\n if (ev.target && !this.el.contains(ev.target)) {\n return;\n }\n // Get all radios inside of the radio group and then\n // filter out disabled radios since we need to skip those\n const radios = this.getRadios().filter((radio) => !radio.disabled);\n // Only move the radio if the current focus is in the radio group\n if (ev.target && radios.includes(ev.target)) {\n const index = radios.findIndex((radio) => radio === ev.target);\n const current = radios[index];\n let next;\n // If hitting arrow down or arrow right, move to the next radio\n // If we're on the last radio, move to the first radio\n if (['ArrowDown', 'ArrowRight'].includes(ev.code)) {\n next = index === radios.length - 1 ? radios[0] : radios[index + 1];\n }\n // If hitting arrow up or arrow left, move to the previous radio\n // If we're on the first radio, move to the last radio\n if (['ArrowUp', 'ArrowLeft'].includes(ev.code)) {\n next = index === 0 ? radios[radios.length - 1] : radios[index - 1];\n }\n if (next && radios.includes(next)) {\n next.setFocus(ev);\n if (!inSelectPopover) {\n this.value = next.value;\n }\n }\n // Update the radio group value when a user presses the\n // space bar on top of a selected radio\n if (['Space'].includes(ev.code)) {\n this.value = this.allowEmptySelection && this.value !== undefined ? undefined : current.value;\n // Prevent browsers from jumping\n // to the bottom of the screen\n ev.preventDefault();\n }\n }\n }\n render() {\n const { label, labelId } = this;\n const mode = getIonMode(this);\n return h(Host, { role: \"radiogroup\", \"aria-labelledby\": label ? labelId : null, onClick: this.onClick, class: mode });\n }\n get el() { return this; }\n static get watchers() { return {\n \"value\": [\"valueChanged\"]\n }; }\n}, [0, \"ion-radio-group\", {\n \"allowEmptySelection\": [4, \"allow-empty-selection\"],\n \"name\": [1],\n \"value\": [1032]\n }, [[4, \"keydown\", \"onKeydown\"]]]);\nlet radioGroupIds = 0;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-radio-group\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-radio-group\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RadioGroup);\n }\n break;\n } });\n}\n\nexport { RadioGroup as R, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { R as Radio, d as defineCustomElement$1 } from './radio.js';\n\nconst IonRadio = Radio;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRadio, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index9.js';\nimport { h as clamp, j as debounceEvent, i as inheritAriaAttributes, n as getAriaLabel, e as renderHiddenInput } from './helpers.js';\nimport { p as printIonWarning } from './index8.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst rangeIosCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0 3px 1px rgba(0, 0, 0, 0.1), 0 4px 8px rgba(0, 0, 0, 0.13), 0 0 0 1px rgba(0, 0, 0, 0.02);--knob-size:28px;--bar-height:2px;--bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;padding-left:16px;padding-right:16px;padding-top:8px;padding-bottom:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){margin-left:0;margin-right:16px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted([slot=end]){margin-left:16px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:20px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-tick{margin-left:-1px;border-radius:0;position:absolute;top:18px;width:2px;height:8px;background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-tick{margin-left:unset;-webkit-margin-start:-1px;margin-inline-start:-1px}}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 28px, 0) scale(0.01);transform:translate3d(0, 28px, 0) scale(0.01);padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:inline-block;position:relative;top:-20px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:12px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, 0, 0) scale(1);transform:translate3d(0, 0, 0) scale(1)}:host(.range-disabled){opacity:0.5}\";\n\nconst rangeMdCss = \":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{left:0;top:calc((var(--height) - var(--knob-handle-size)) / 2);margin-left:calc(0px - var(--knob-handle-size) / 2);position:absolute;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-knob-handle{margin-left:unset;-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2)}}[dir=rtl] .range-knob-handle,:host-context([dir=rtl]) .range-knob-handle{left:unset}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar{border-radius:var(--bar-border-radius);left:0;top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset;right:unset;right:0}[dir=rtl] .range-bar,:host-context([dir=rtl]) .range-bar{left:unset}.range-knob{border-radius:var(--knob-border-radius);left:calc(50% - var(--knob-size) / 2);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob,:host-context([dir=rtl]) .range-knob{left:unset}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}:host{--knob-border-radius:50%;--knob-background:var(--bar-background-active);--knob-box-shadow:none;--knob-size:18px;--bar-height:2px;--bar-background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;--pin-background:var(--ion-color-primary, #3880ff);--pin-color:var(--ion-color-primary-contrast, #fff);padding-left:14px;padding-right:14px;padding-top:8px;padding-bottom:8px;font-size:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px}}:host(.ion-color) .range-bar{background:rgba(var(--ion-color-base-rgb), 0.26)}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-knob,:host(.ion-color) .range-knob::before,:host(.ion-color) .range-pin,:host(.ion-color) .range-pin::before,:host(.ion-color) .range-tick{background:var(--ion-color-base);color:var(--ion-color-contrast)}::slotted([slot=start]){margin-left:0;margin-right:14px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px}}::slotted([slot=end]){margin-left:14px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0}}:host(.range-has-pin){padding-top:28px}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-knob{-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease;z-index:2}.range-knob::before{border-radius:50%;left:0;position:absolute;width:var(--knob-size);height:var(--knob-size);-webkit-transform:scale(1);transform:scale(1);-webkit-transition:0.267s cubic-bezier(0, 0, 0.58, 1);transition:0.267s cubic-bezier(0, 0, 0.58, 1);background:var(--knob-background);content:\\\"\\\";opacity:0.13;pointer-events:none}[dir=rtl] .range-knob::before,:host-context([dir=rtl]) .range-knob::before{left:unset;right:unset;right:0}.range-tick{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick-active{background:transparent}.range-pin{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;border-radius:50%;-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);display:inline-block;position:relative;min-width:28px;height:28px;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color);text-align:center}.range-pin::before{left:50%;top:3px;margin-left:-13px;border-radius:50% 50% 50% 0;position:absolute;width:26px;height:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:\\\"\\\";z-index:-1}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset;right:unset;right:50%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.range-pin::before{margin-left:unset;-webkit-margin-start:-13px;margin-inline-start:-13px}}[dir=rtl] .range-pin::before,:host-context([dir=rtl]) .range-pin::before{left:unset}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, -24px, 0) scale(1);transform:translate3d(0, -24px, 0) scale(1)}@media (any-hover: hover){.range-knob-handle:hover .range-knob:before{-webkit-transform:scale(2);transform:scale(2);opacity:0.13}}.range-knob-handle.ion-activated .range-knob:before,.range-knob-handle.ion-focused .range-knob:before,.range-knob-handle.range-knob-pressed .range-knob:before{-webkit-transform:scale(2);transform:scale(2)}.range-knob-handle.ion-focused .range-knob::before{opacity:0.13}.range-knob-handle.ion-activated .range-knob::before,.range-knob-handle.range-knob-pressed .range-knob::before{opacity:0.25}:host(:not(.range-has-pin)) .range-knob-pressed .range-knob,:host(:not(.range-has-pin)) .range-knob-handle.ion-focused .range-knob{-webkit-transform:scale(1);transform:scale(1)}:host(.range-disabled) .range-bar-active,:host(.range-disabled) .range-bar,:host(.range-disabled) .range-tick{background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .range-knob{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:var(--ion-color-step-250, #bfbfbf)}\";\n\nconst Range = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionKnobMoveStart = createEvent(this, \"ionKnobMoveStart\", 7);\n this.ionKnobMoveEnd = createEvent(this, \"ionKnobMoveEnd\", 7);\n this.didLoad = false;\n this.noUpdate = false;\n this.hasFocus = false;\n this.inheritedAttributes = {};\n this.contentEl = null;\n this.initialContentScrollY = true;\n this.ratioA = 0;\n this.ratioB = 0;\n /**\n * How long, in milliseconds, to wait to trigger the\n * `ionChange` event after each change in the range value.\n * This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 0;\n // TODO: In Ionic Framework v6 this should initialize to this.rangeId like the other form components do.\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = '';\n /**\n * Show two knobs.\n */\n this.dualKnobs = false;\n /**\n * Minimum integer value of the range.\n */\n this.min = 0;\n /**\n * Maximum integer value of the range.\n */\n this.max = 100;\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n this.pin = false;\n /**\n * A callback used to format the pin text.\n * By default the pin text is set to `Math.round(value)`.\n */\n this.pinFormatter = (value) => Math.round(value);\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n this.snaps = false;\n /**\n * Specifies the value granularity.\n */\n this.step = 1;\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n this.ticks = true;\n /**\n * If `true`, the user cannot interact with the range.\n */\n this.disabled = false;\n /**\n * the value of the range.\n */\n this.value = 0;\n this.clampBounds = (value) => {\n return clamp(this.min, value, this.max);\n };\n this.ensureValueInBounds = (value) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n }\n else {\n return this.clampBounds(value);\n }\n };\n this.setupGesture = async () => {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('./index2.js')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n threshold: 0,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n };\n this.handleKeyboard = (knob, isIncrease) => {\n const { ensureValueInBounds } = this;\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n }\n else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });\n this.updateValue();\n this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });\n };\n this.onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.ionBlur.emit();\n this.emitStyle();\n }\n };\n this.onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.ionFocus.emit();\n this.emitStyle();\n }\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n minChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n maxChanged() {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n activeBarStartChanged() {\n const { activeBarStart } = this;\n if (activeBarStart !== undefined) {\n if (activeBarStart > this.max) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.max;\n }\n else if (activeBarStart < this.min) {\n printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.min;\n }\n }\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n this.emitStyle();\n }\n valueChanged(value) {\n if (!this.noUpdate) {\n this.updateRatio();\n }\n value = this.ensureValueInBounds(value);\n this.ionChange.emit({ value });\n }\n componentWillLoad() {\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n this.rangeId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-r-${rangeIds++}`;\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n componentDidLoad() {\n this.setupGesture();\n this.didLoad = true;\n }\n connectedCallback() {\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n this.activeBarStartChanged();\n /**\n * If we have not yet rendered\n * ion-range, then rangeSlider is not defined.\n * But if we are moving ion-range via appendChild,\n * then rangeSlider will be defined.\n */\n if (this.didLoad) {\n this.setupGesture();\n }\n this.contentEl = findClosestIonContent(this.el);\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n getValue() {\n var _a;\n const value = (_a = this.value) !== null && _a !== void 0 ? _a : 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n }\n else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n });\n }\n onStart(detail) {\n const { contentEl } = this;\n if (contentEl) {\n this.initialContentScrollY = disableContentScrollY(contentEl);\n }\n const rect = (this.rect = this.rangeSlider.getBoundingClientRect());\n const currentX = detail.currentX;\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';\n this.setFocus(this.pressedKnob);\n // update the active knob's position\n this.update(currentX);\n this.ionKnobMoveStart.emit({ value: this.ensureValueInBounds(this.value) });\n }\n onMove(detail) {\n this.update(detail.currentX);\n }\n onEnd(detail) {\n const { contentEl, initialContentScrollY } = this;\n if (contentEl) {\n resetContentScrollY(contentEl, initialContentScrollY);\n }\n this.update(detail.currentX);\n this.pressedKnob = undefined;\n this.ionKnobMoveEnd.emit({ value: this.ensureValueInBounds(this.value) });\n }\n update(currentX) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(ratioToValue(ratio, this.min, this.max, this.step), this.min, this.max);\n }\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n }\n else {\n this.ratioB = ratio;\n }\n // Update input value\n this.updateValue();\n }\n get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n const { activeBarStart } = this;\n if (activeBarStart == null) {\n return 0;\n }\n return valueToRatio(activeBarStart, this.min, this.max);\n }\n get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n updateRatio() {\n const value = this.getValue();\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n }\n else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n updateValue() {\n this.noUpdate = true;\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n this.noUpdate = false;\n }\n setFocus(knob) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n render() {\n var _a;\n const { min, max, step, el, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, inheritedAttributes, rangeId, pinFormatter, } = this;\n /**\n * Look for external label, ion-label, or aria-labelledby.\n * If none, see if user placed an aria-label on the host\n * and use that instead.\n */\n let { labelText } = getAriaLabel(el, rangeId);\n if (labelText === undefined || labelText === null) {\n labelText = inheritedAttributes['aria-label'];\n }\n const mode = getIonMode(this);\n let barStart = `${ratioLower * 100}%`;\n let barEnd = `${100 - ratioUpper * 100}%`;\n const rtl = isRTL(this.el);\n const start = rtl ? 'right' : 'left';\n const end = rtl ? 'left' : 'right';\n const tickStyle = (tick) => {\n return {\n [start]: tick[start],\n };\n };\n if (this.dualKnobs === false) {\n /**\n * When the value is less than the activeBarStart or the min value,\n * the knob will display at the start of the active bar.\n */\n if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {\n /**\n * Sets the bar positions relative to the upper and lower limits.\n * Converts the ratio values into percentages, used as offsets for left/right styles.\n *\n * The ratioUpper refers to the knob position on the bar.\n * The ratioLower refers to the end position of the active bar (the value).\n */\n barStart = `${ratioUpper * 100}%`;\n barEnd = `${100 - ratioLower * 100}%`;\n }\n else {\n /**\n * Otherwise, the knob will display at the end of the active bar.\n *\n * The ratioLower refers to the start position of the active bar (the value).\n * The ratioUpper refers to the knob position on the bar.\n */\n barStart = `${ratioLower * 100}%`;\n barEnd = `${100 - ratioUpper * 100}%`;\n }\n }\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n const ratioMin = Math.min(ratioLower, ratioUpper);\n const ratioMax = Math.max(ratioLower, ratioUpper);\n const tick = {\n ratio,\n /**\n * Sets the tick mark as active when the tick is between the min bounds and the knob.\n * When using activeBarStart, the tick mark will be active between the knob and activeBarStart.\n */\n active: ratio >= ratioMin && ratio <= ratioMax,\n };\n tick[start] = `${ratio * 100}%`;\n ticks.push(tick);\n }\n }\n renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);\n return (h(Host, { onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n }) }, h(\"slot\", { name: \"start\" }), h(\"div\", { class: \"range-slider\", ref: (rangeEl) => (this.rangeSlider = rangeEl) }, ticks.map((tick) => (h(\"div\", { style: tickStyle(tick), role: \"presentation\", class: {\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }, part: tick.active ? 'tick-active' : 'tick' }))), h(\"div\", { class: \"range-bar\", role: \"presentation\", part: \"bar\" }), h(\"div\", { class: \"range-bar range-bar-active\", role: \"presentation\", style: barStyle, part: \"bar-active\" }), renderKnob(rtl, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText,\n }), this.dualKnobs &&\n renderKnob(rtl, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n labelText,\n })), h(\"slot\", { name: \"end\" })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"min\": [\"minChanged\"],\n \"max\": [\"maxChanged\"],\n \"activeBarStart\": [\"activeBarStartChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: rangeIosCss,\n md: rangeMdCss\n }; }\n}, [33, \"ion-range\", {\n \"color\": [513],\n \"debounce\": [2],\n \"name\": [1],\n \"dualKnobs\": [4, \"dual-knobs\"],\n \"min\": [2],\n \"max\": [2],\n \"pin\": [4],\n \"pinFormatter\": [16],\n \"snaps\": [4],\n \"step\": [2],\n \"ticks\": [4],\n \"activeBarStart\": [1026, \"active-bar-start\"],\n \"disabled\": [4],\n \"value\": [1026],\n \"ratioA\": [32],\n \"ratioB\": [32],\n \"pressedKnob\": [32]\n }]);\nconst renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, labelText, pinFormatter }) => {\n const start = rtl ? 'right' : 'left';\n const knobStyle = () => {\n const style = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n return (h(\"div\", { onKeyDown: (ev) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }, class: {\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n 'ion-activatable': true,\n 'ion-focusable': true,\n }, style: knobStyle(), role: \"slider\", tabindex: disabled ? -1 : 0, \"aria-label\": labelText, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-disabled\": disabled ? 'true' : null, \"aria-valuenow\": value }, pin && (h(\"div\", { class: \"range-pin\", role: \"presentation\", part: \"pin\" }, pinFormatter(value))), h(\"div\", { class: \"range-knob\", role: \"presentation\", part: \"knob\" })));\n};\nconst ratioToValue = (ratio, min, max, step) => {\n let value = (max - min) * ratio;\n if (step > 0) {\n value = Math.round(value / step) * step + min;\n }\n return clamp(min, value, max);\n};\nconst valueToRatio = (value, min, max) => {\n return clamp(0, (value - min) / (max - min), 1);\n};\nlet rangeIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-range\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-range\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Range);\n }\n break;\n } });\n}\n\nconst IonRange = Range;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRange, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { R as RadioGroup, d as defineCustomElement$1 } from './radio-group.js';\n\nconst IonRadioGroup = RadioGroup;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRadioGroup, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { writeTask, proxyCustomElement, HTMLElement, createEvent, readTask, h, Host } from '@stencil/core/internal/client';\nimport { a as isPlatform, b as getIonMode } from './ionic-global.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier.js';\nimport { I as ION_CONTENT_ELEMENT_SELECTOR, p as printIonContentErrorMsg, b as ION_CONTENT_CLASS_SELECTOR, g as getScrollElement } from './index9.js';\nimport { t as transitionEndAsync, c as componentOnReady, h as clamp, g as getElementRoot, r as raf } from './helpers.js';\nimport { h as hapticImpact } from './haptic.js';\nimport { c as createAnimation } from './animation.js';\n\nconst getRefresherAnimationType = (contentEl) => {\n const previousSibling = contentEl.previousElementSibling;\n const hasHeader = previousSibling !== null && previousSibling.tagName === 'ION-HEADER';\n return hasHeader ? 'translate' : 'scale';\n};\nconst createPullingAnimation = (type, pullingSpinner, refresherEl) => {\n return type === 'scale'\n ? createScaleAnimation(pullingSpinner, refresherEl)\n : createTranslateAnimation(pullingSpinner, refresherEl);\n};\nconst createBaseAnimation = (pullingRefresherIcon) => {\n const spinner = pullingRefresherIcon.querySelector('ion-spinner');\n const circle = spinner.shadowRoot.querySelector('circle');\n const spinnerArrowContainer = pullingRefresherIcon.querySelector('.spinner-arrow-container');\n const arrowContainer = pullingRefresherIcon.querySelector('.arrow-container');\n const arrow = arrowContainer ? arrowContainer.querySelector('ion-icon') : null;\n const baseAnimation = createAnimation().duration(1000).easing('ease-out');\n const spinnerArrowContainerAnimation = createAnimation()\n .addElement(spinnerArrowContainer)\n .keyframes([\n { offset: 0, opacity: '0.3' },\n { offset: 0.45, opacity: '0.3' },\n { offset: 0.55, opacity: '1' },\n { offset: 1, opacity: '1' },\n ]);\n const circleInnerAnimation = createAnimation()\n .addElement(circle)\n .keyframes([\n { offset: 0, strokeDasharray: '1px, 200px' },\n { offset: 0.2, strokeDasharray: '1px, 200px' },\n { offset: 0.55, strokeDasharray: '100px, 200px' },\n { offset: 1, strokeDasharray: '100px, 200px' },\n ]);\n const circleOuterAnimation = createAnimation()\n .addElement(spinner)\n .keyframes([\n { offset: 0, transform: 'rotate(-90deg)' },\n { offset: 1, transform: 'rotate(210deg)' },\n ]);\n /**\n * Only add arrow animation if present\n * this allows users to customize the spinners\n * without errors being thrown\n */\n if (arrowContainer && arrow) {\n const arrowContainerAnimation = createAnimation()\n .addElement(arrowContainer)\n .keyframes([\n { offset: 0, transform: 'rotate(0deg)' },\n { offset: 0.3, transform: 'rotate(0deg)' },\n { offset: 0.55, transform: 'rotate(280deg)' },\n { offset: 1, transform: 'rotate(400deg)' },\n ]);\n const arrowAnimation = createAnimation()\n .addElement(arrow)\n .keyframes([\n { offset: 0, transform: 'translateX(2px) scale(0)' },\n { offset: 0.3, transform: 'translateX(2px) scale(0)' },\n { offset: 0.55, transform: 'translateX(-1.5px) scale(1)' },\n { offset: 1, transform: 'translateX(-1.5px) scale(1)' },\n ]);\n baseAnimation.addAnimation([arrowContainerAnimation, arrowAnimation]);\n }\n return baseAnimation.addAnimation([spinnerArrowContainerAnimation, circleInnerAnimation, circleOuterAnimation]);\n};\nconst createScaleAnimation = (pullingRefresherIcon, refresherEl) => {\n /**\n * Do not take the height of the refresher icon\n * because at this point the DOM has not updated,\n * so the refresher icon is still hidden with\n * display: none.\n * The `ion-refresher` container height\n * is roughly the amount we need to offset\n * the icon by when pulling down.\n */\n const height = refresherEl.clientHeight;\n const spinnerAnimation = createAnimation()\n .addElement(pullingRefresherIcon)\n .keyframes([\n { offset: 0, transform: `scale(0) translateY(-${height}px)` },\n { offset: 1, transform: 'scale(1) translateY(100px)' },\n ]);\n return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);\n};\nconst createTranslateAnimation = (pullingRefresherIcon, refresherEl) => {\n /**\n * Do not take the height of the refresher icon\n * because at this point the DOM has not updated,\n * so the refresher icon is still hidden with\n * display: none.\n * The `ion-refresher` container height\n * is roughly the amount we need to offset\n * the icon by when pulling down.\n */\n const height = refresherEl.clientHeight;\n const spinnerAnimation = createAnimation()\n .addElement(pullingRefresherIcon)\n .keyframes([\n { offset: 0, transform: `translateY(-${height}px)` },\n { offset: 1, transform: 'translateY(100px)' },\n ]);\n return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);\n};\nconst createSnapBackAnimation = (pullingRefresherIcon) => {\n return createAnimation()\n .duration(125)\n .addElement(pullingRefresherIcon)\n .fromTo('transform', 'translateY(var(--ion-pulling-refresher-translate, 100px))', 'translateY(0px)');\n};\n// iOS Native Refresher\n// -----------------------------\nconst setSpinnerOpacity = (spinner, opacity) => {\n spinner.style.setProperty('opacity', opacity.toString());\n};\nconst handleScrollWhilePulling = (ticks, numTicks, pullAmount) => {\n const max = 1;\n writeTask(() => {\n ticks.forEach((el, i) => {\n /**\n * Compute the opacity of each tick\n * mark as a percentage of the pullAmount\n * offset by max / numTicks so\n * the tick marks are shown staggered.\n */\n const min = i * (max / numTicks);\n const range = max - min;\n const start = pullAmount - min;\n const progression = clamp(0, start / range, 1);\n el.style.setProperty('opacity', progression.toString());\n });\n });\n};\nconst handleScrollWhileRefreshing = (spinner, lastVelocityY) => {\n writeTask(() => {\n // If user pulls down quickly, the spinner should spin faster\n spinner.style.setProperty('--refreshing-rotation-duration', lastVelocityY >= 1.0 ? '0.5s' : '2s');\n spinner.style.setProperty('opacity', '1');\n });\n};\nconst translateElement = (el, value, duration = 200) => {\n if (!el) {\n return Promise.resolve();\n }\n const trans = transitionEndAsync(el, duration);\n writeTask(() => {\n el.style.setProperty('transition', `${duration}ms all ease-out`);\n if (value === undefined) {\n el.style.removeProperty('transform');\n }\n else {\n el.style.setProperty('transform', `translate3d(0px, ${value}, 0px)`);\n }\n });\n return trans;\n};\n// Utils\n// -----------------------------\nconst shouldUseNativeRefresher = async (referenceEl, mode) => {\n const refresherContent = referenceEl.querySelector('ion-refresher-content');\n if (!refresherContent) {\n return Promise.resolve(false);\n }\n await new Promise((resolve) => componentOnReady(refresherContent, resolve));\n const pullingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-pulling ion-spinner');\n const refreshingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');\n return (pullingSpinner !== null &&\n refreshingSpinner !== null &&\n ((mode === 'ios' && isPlatform('mobile') && referenceEl.style.webkitOverflowScrolling !== undefined) ||\n mode === 'md'));\n};\n\nconst refresherIosCss = \"ion-refresher{left:0;top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}[dir=rtl] ion-refresher,:host-context([dir=rtl]) ion-refresher{left:unset;right:unset;right:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}[dir=rtl] .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-ios .refresher-pulling-icon,.refresher-ios .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-ios .refresher-pulling-text,.refresher-ios .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-lines-ios line,.refresher-ios .refresher-refreshing .spinner-lines-small-ios line,.refresher-ios .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-ios .refresher-refreshing .spinner-bubbles circle,.refresher-ios .refresher-refreshing .spinner-circles circle,.refresher-ios .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native ion-spinner{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.refresher-native .refresher-refreshing ion-spinner{--refreshing-rotation-duration:2s;display:none;-webkit-animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards;animation:var(--refreshing-rotation-duration) ease-out refresher-rotate forwards}.refresher-native .refresher-refreshing{display:none;-webkit-animation:250ms linear refresher-pop forwards;animation:250ms linear refresher-pop forwards}.refresher-native ion-spinner{width:32px;height:32px;color:var(--ion-color-step-450, #747577)}.refresher-native.refresher-refreshing .refresher-pulling ion-spinner,.refresher-native.refresher-completing .refresher-pulling ion-spinner{display:none}.refresher-native.refresher-refreshing .refresher-refreshing ion-spinner,.refresher-native.refresher-completing .refresher-refreshing ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-pulling ion-spinner{display:block}.refresher-native.refresher-pulling .refresher-refreshing ion-spinner{display:none}.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0) rotate(180deg);transform:scale(0) rotate(180deg);-webkit-transition:300ms;transition:300ms}@-webkit-keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes refresher-pop{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}50%{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}@keyframes refresher-rotate{from{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(180deg);transform:rotate(180deg)}}\";\n\nconst refresherMdCss = \"ion-refresher{left:0;top:0;display:none;position:absolute;width:100%;height:60px;pointer-events:none;z-index:-1}[dir=rtl] ion-refresher,:host-context([dir=rtl]) ion-refresher{left:unset;right:unset;right:0}ion-refresher.refresher-active{display:block}ion-refresher-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.refresher-pulling,.refresher-refreshing{display:none;width:100%}.refresher-pulling-icon,.refresher-refreshing-icon{-webkit-transform-origin:center;transform-origin:center;-webkit-transition:200ms;transition:200ms;font-size:30px;text-align:center}[dir=rtl] .refresher-pulling-icon,:host-context([dir=rtl]) .refresher-pulling-icon,[dir=rtl] .refresher-refreshing-icon,:host-context([dir=rtl]) .refresher-refreshing-icon{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}.refresher-pulling-text,.refresher-refreshing-text{font-size:16px;text-align:center}ion-refresher-content .arrow-container{display:none}.refresher-pulling ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling{display:block}.refresher-ready ion-refresher-content .refresher-pulling-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.refresher-refreshing ion-refresher-content .refresher-refreshing{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling{display:block}.refresher-cancelling ion-refresher-content .refresher-pulling-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-completing ion-refresher-content .refresher-refreshing{display:block}.refresher-completing ion-refresher-content .refresher-refreshing-icon{-webkit-transform:scale(0);transform:scale(0)}.refresher-native .refresher-pulling-text,.refresher-native .refresher-refreshing-text{display:none}.refresher-md .refresher-pulling-icon,.refresher-md .refresher-refreshing-icon{color:var(--ion-text-color, #000)}.refresher-md .refresher-pulling-text,.refresher-md .refresher-refreshing-text{color:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-lines-md line,.refresher-md .refresher-refreshing .spinner-lines-small-md line,.refresher-md .refresher-refreshing .spinner-crescent circle{stroke:var(--ion-text-color, #000)}.refresher-md .refresher-refreshing .spinner-bubbles circle,.refresher-md .refresher-refreshing .spinner-circles circle,.refresher-md .refresher-refreshing .spinner-dots circle{fill:var(--ion-text-color, #000)}ion-refresher.refresher-native{display:block;z-index:1}ion-refresher.refresher-native ion-spinner{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;width:24px;height:24px;color:var(--ion-color-primary, #3880ff)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native ion-spinner{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}ion-refresher.refresher-native .spinner-arrow-container{display:inherit}ion-refresher.refresher-native .arrow-container{display:block;position:absolute;width:24px;height:24px}ion-refresher.refresher-native .arrow-container ion-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;left:0;right:0;bottom:-4px;position:absolute;color:var(--ion-color-primary, #3880ff);font-size:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .arrow-container ion-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}ion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling,ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling{display:-ms-flexbox;display:flex}ion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing,ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing{display:-ms-flexbox;display:flex}ion-refresher.refresher-native .refresher-pulling-icon{-webkit-transform:translateY(calc(-100% - 10px));transform:translateY(calc(-100% - 10px))}ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;border-radius:100%;padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;display:-ms-flexbox;display:flex;border:1px solid var(--ion-color-step-200, #ececec);background:var(--ion-color-step-250, #ffffff);-webkit-box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1);box-shadow:0px 1px 6px rgba(0, 0, 0, 0.1)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-refresher.refresher-native .refresher-pulling-icon,ion-refresher.refresher-native .refresher-refreshing-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}\";\n\nconst Refresher = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionRefresh = createEvent(this, \"ionRefresh\", 7);\n this.ionPull = createEvent(this, \"ionPull\", 7);\n this.ionStart = createEvent(this, \"ionStart\", 7);\n this.appliedStyles = false;\n this.didStart = false;\n this.progress = 0;\n this.pointerDown = false;\n this.needsCompletion = false;\n this.didRefresh = false;\n this.lastVelocityY = 0;\n this.animations = [];\n this.nativeRefresher = false;\n /**\n * The current state which the refresher is in. The refresher's states include:\n *\n * - `inactive` - The refresher is not being pulled down or refreshing and is currently hidden.\n * - `pulling` - The user is actively pulling down the refresher, but has not reached the point yet that if the user lets go, it'll refresh.\n * - `cancelling` - The user pulled down the refresher and let go, but did not pull down far enough to kick off the `refreshing` state. After letting go, the refresher is in the `cancelling` state while it is closing, and will go back to the `inactive` state once closed.\n * - `ready` - The user has pulled down the refresher far enough that if they let go, it'll begin the `refreshing` state.\n * - `refreshing` - The refresher is actively waiting on the async operation to end. Once the refresh handler calls `complete()` it will begin the `completing` state.\n * - `completing` - The `refreshing` state has finished and the refresher is in the way of closing itself. Once closed, the refresher will go back to the `inactive` state.\n */\n this.state = 1 /* RefresherState.Inactive */;\n /**\n * The minimum distance the user must pull down until the\n * refresher will go into the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMin = 60;\n /**\n * The maximum distance of the pull until the refresher\n * will automatically go into the `refreshing` state.\n * Defaults to the result of `pullMin + 60`.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMax = this.pullMin + 60;\n /**\n * Time it takes to close the refresher.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.closeDuration = '280ms';\n /**\n * Time it takes the refresher to snap back to the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.snapbackDuration = '280ms';\n /**\n * How much to multiply the pull speed by. To slow the pull animation down,\n * pass a number less than `1`. To speed up the pull, pass a number greater\n * than `1`. The default value is `1` which is equal to the speed of the cursor.\n * If a negative value is passed in, the factor will be `1` instead.\n *\n * For example: If the value passed is `1.2` and the content is dragged by\n * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount\n * will be `8` pixels, less than the amount the cursor has moved.\n *\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullFactor = 1;\n /**\n * If `true`, the refresher will be hidden.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async checkNativeRefresher() {\n const useNativeRefresher = await shouldUseNativeRefresher(this.el, getIonMode(this));\n if (useNativeRefresher && !this.nativeRefresher) {\n const contentEl = this.el.closest('ion-content');\n this.setupNativeRefresher(contentEl);\n }\n else if (!useNativeRefresher) {\n this.destroyNativeRefresher();\n }\n }\n destroyNativeRefresher() {\n if (this.scrollEl && this.scrollListenerCallback) {\n this.scrollEl.removeEventListener('scroll', this.scrollListenerCallback);\n this.scrollListenerCallback = undefined;\n }\n this.nativeRefresher = false;\n }\n async resetNativeRefresher(el, state) {\n this.state = state;\n if (getIonMode(this) === 'ios') {\n await translateElement(el, undefined, 300);\n }\n else {\n await transitionEndAsync(this.el.querySelector('.refresher-refreshing-icon'), 200);\n }\n this.didRefresh = false;\n this.needsCompletion = false;\n this.pointerDown = false;\n this.animations.forEach((ani) => ani.destroy());\n this.animations = [];\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n }\n async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {\n this.elementToTransform = this.scrollEl;\n const ticks = pullingSpinner.shadowRoot.querySelectorAll('svg');\n let MAX_PULL = this.scrollEl.clientHeight * 0.16;\n const NUM_TICKS = ticks.length;\n writeTask(() => ticks.forEach((el) => el.style.setProperty('animation', 'none')));\n this.scrollListenerCallback = () => {\n // If pointer is not on screen or refresher is not active, ignore scroll\n if (!this.pointerDown && this.state === 1 /* RefresherState.Inactive */) {\n return;\n }\n readTask(() => {\n // PTR should only be active when overflow scrolling at the top\n const scrollTop = this.scrollEl.scrollTop;\n const refresherHeight = this.el.clientHeight;\n if (scrollTop > 0) {\n /**\n * If refresher is refreshing and user tries to scroll\n * progressively fade refresher out/in\n */\n if (this.state === 8 /* RefresherState.Refreshing */) {\n const ratio = clamp(0, scrollTop / (refresherHeight * 0.5), 1);\n writeTask(() => setSpinnerOpacity(refreshingSpinner, 1 - ratio));\n return;\n }\n return;\n }\n if (this.pointerDown) {\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n if (this.pointerDown) {\n this.ionPull.emit();\n }\n }\n /**\n * We want to delay the start of this gesture by ~30px\n * when initially pulling down so the refresher does not\n * overlap with the content. But when letting go of the\n * gesture before the refresher completes, we want the\n * refresher tick marks to quickly fade out.\n */\n const offset = this.didStart ? 30 : 0;\n const pullAmount = (this.progress = clamp(0, (Math.abs(scrollTop) - offset) / MAX_PULL, 1));\n const shouldShowRefreshingSpinner = this.state === 8 /* RefresherState.Refreshing */ || pullAmount === 1;\n if (shouldShowRefreshingSpinner) {\n if (this.pointerDown) {\n handleScrollWhileRefreshing(refreshingSpinner, this.lastVelocityY);\n }\n if (!this.didRefresh) {\n this.beginRefresh();\n this.didRefresh = true;\n hapticImpact({ style: 'light' });\n /**\n * Translate the content element otherwise when pointer is removed\n * from screen the scroll content will bounce back over the refresher\n */\n if (!this.pointerDown) {\n translateElement(this.elementToTransform, `${refresherHeight}px`);\n }\n }\n }\n else {\n this.state = 2 /* RefresherState.Pulling */;\n handleScrollWhilePulling(ticks, NUM_TICKS, pullAmount);\n }\n });\n };\n this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 5,\n onStart: () => {\n this.pointerDown = true;\n if (!this.didRefresh) {\n translateElement(this.elementToTransform, '0px');\n }\n /**\n * If the content had `display: none` when\n * the refresher was initialized, its clientHeight\n * will be 0. When the gesture starts, the content\n * will be visible, so try to get the correct\n * client height again. This is most common when\n * using the refresher in an ion-menu.\n */\n if (MAX_PULL === 0) {\n MAX_PULL = this.scrollEl.clientHeight * 0.16;\n }\n },\n onMove: (ev) => {\n this.lastVelocityY = ev.velocityY;\n },\n onEnd: () => {\n this.pointerDown = false;\n this.didStart = false;\n if (this.needsCompletion) {\n this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */);\n this.needsCompletion = false;\n }\n else if (this.didRefresh) {\n readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));\n }\n },\n });\n this.disabledChanged();\n }\n async setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner) {\n const circle = getElementRoot(pullingSpinner).querySelector('circle');\n const pullingRefresherIcon = this.el.querySelector('ion-refresher-content .refresher-pulling-icon');\n const refreshingCircle = getElementRoot(refreshingSpinner).querySelector('circle');\n if (circle !== null && refreshingCircle !== null) {\n writeTask(() => {\n circle.style.setProperty('animation', 'none');\n // This lines up the animation on the refreshing spinner with the pulling spinner\n refreshingSpinner.style.setProperty('animation-delay', '-655ms');\n refreshingCircle.style.setProperty('animation-delay', '-655ms');\n });\n }\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 5,\n canStart: () => this.state !== 8 /* RefresherState.Refreshing */ &&\n this.state !== 32 /* RefresherState.Completing */ &&\n this.scrollEl.scrollTop === 0,\n onStart: (ev) => {\n this.progress = 0;\n ev.data = { animation: undefined, didStart: false, cancelled: false };\n },\n onMove: (ev) => {\n if ((ev.velocityY < 0 && this.progress === 0 && !ev.data.didStart) || ev.data.cancelled) {\n ev.data.cancelled = true;\n return;\n }\n if (!ev.data.didStart) {\n ev.data.didStart = true;\n this.state = 2 /* RefresherState.Pulling */;\n writeTask(() => this.scrollEl.style.setProperty('--overflow', 'hidden'));\n const animationType = getRefresherAnimationType(contentEl);\n const animation = createPullingAnimation(animationType, pullingRefresherIcon, this.el);\n ev.data.animation = animation;\n animation.progressStart(false, 0);\n this.ionStart.emit();\n this.animations.push(animation);\n return;\n }\n // Since we are using an easing curve, slow the gesture tracking down a bit\n this.progress = clamp(0, (ev.deltaY / 180) * 0.5, 1);\n ev.data.animation.progressStep(this.progress);\n this.ionPull.emit();\n },\n onEnd: (ev) => {\n if (!ev.data.didStart) {\n return;\n }\n this.gesture.enable(false);\n writeTask(() => this.scrollEl.style.removeProperty('--overflow'));\n if (this.progress <= 0.4) {\n ev.data.animation.progressEnd(0, this.progress, 500).onFinish(() => {\n this.animations.forEach((ani) => ani.destroy());\n this.animations = [];\n this.gesture.enable(true);\n this.state = 1 /* RefresherState.Inactive */;\n });\n return;\n }\n const progress = getTimeGivenProgression([0, 0], [0, 0], [1, 1], [1, 1], this.progress)[0];\n const snapBackAnimation = createSnapBackAnimation(pullingRefresherIcon);\n this.animations.push(snapBackAnimation);\n writeTask(async () => {\n pullingRefresherIcon.style.setProperty('--ion-pulling-refresher-translate', `${progress * 100}px`);\n ev.data.animation.progressEnd();\n await snapBackAnimation.play();\n this.beginRefresh();\n ev.data.animation.destroy();\n this.gesture.enable(true);\n });\n },\n });\n this.disabledChanged();\n }\n async setupNativeRefresher(contentEl) {\n if (this.scrollListenerCallback || !contentEl || this.nativeRefresher || !this.scrollEl) {\n return;\n }\n /**\n * If using non-native refresher before make sure\n * we clean up any old CSS. This can happen when\n * a user manually calls the refresh method in a\n * component create callback before the native\n * refresher is setup.\n */\n this.setCss(0, '', false, '');\n this.nativeRefresher = true;\n const pullingSpinner = this.el.querySelector('ion-refresher-content .refresher-pulling ion-spinner');\n const refreshingSpinner = this.el.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');\n if (getIonMode(this) === 'ios') {\n this.setupiOSNativeRefresher(pullingSpinner, refreshingSpinner);\n }\n else {\n this.setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner);\n }\n }\n componentDidUpdate() {\n this.checkNativeRefresher();\n }\n async connectedCallback() {\n if (this.el.getAttribute('slot') !== 'fixed') {\n console.error('Make sure you use: <ion-refresher slot=\"fixed\">');\n return;\n }\n const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n /**\n * Waits for the content to be ready before querying the scroll\n * or the background content element.\n */\n componentOnReady(contentEl, async () => {\n const customScrollTarget = contentEl.querySelector(ION_CONTENT_CLASS_SELECTOR);\n /**\n * Query the custom scroll target (if available), first. In refresher implementations,\n * the ion-refresher element will always be a direct child of ion-content (slot=\"fixed\"). By\n * querying the custom scroll target first and falling back to the ion-content element,\n * the correct scroll element will be returned by the implementation.\n */\n this.scrollEl = await getScrollElement(customScrollTarget !== null && customScrollTarget !== void 0 ? customScrollTarget : contentEl);\n /**\n * Query the background content element from the host ion-content element directly.\n */\n this.backgroundContentEl = await contentEl.getBackgroundElement();\n if (await shouldUseNativeRefresher(this.el, getIonMode(this))) {\n this.setupNativeRefresher(contentEl);\n }\n else {\n this.gesture = (await import('./index2.js')).createGesture({\n el: contentEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 20,\n passive: false,\n canStart: () => this.canStart(),\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: () => this.onEnd(),\n });\n this.disabledChanged();\n }\n });\n }\n disconnectedCallback() {\n this.destroyNativeRefresher();\n this.scrollEl = undefined;\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /**\n * Call `complete()` when your async operation has completed.\n * For example, the `refreshing` state is while the app is performing\n * an asynchronous operation, such as receiving more data from an\n * AJAX request. Once the data has been received, you then call this\n * method to signify that the refreshing has completed and to close\n * the refresher. This method also changes the refresher's state from\n * `refreshing` to `completing`.\n */\n async complete() {\n if (this.nativeRefresher) {\n this.needsCompletion = true;\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */)));\n }\n }\n else {\n this.close(32 /* RefresherState.Completing */, '120ms');\n }\n }\n /**\n * Changes the refresher's state from `refreshing` to `cancelling`.\n */\n async cancel() {\n if (this.nativeRefresher) {\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 16 /* RefresherState.Cancelling */)));\n }\n }\n else {\n this.close(16 /* RefresherState.Cancelling */, '');\n }\n }\n /**\n * A number representing how far down the user has pulled.\n * The number `0` represents the user hasn't pulled down at all. The\n * number `1`, and anything greater than `1`, represents that the user\n * has pulled far enough down that when they let go then the refresh will\n * happen. If they let go and the number is less than `1`, then the\n * refresh will not happen, and the content will return to it's original\n * position.\n */\n getProgress() {\n return Promise.resolve(this.progress);\n }\n canStart() {\n if (!this.scrollEl) {\n return false;\n }\n if (this.state !== 1 /* RefresherState.Inactive */) {\n return false;\n }\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (this.scrollEl.scrollTop > 0) {\n return false;\n }\n return true;\n }\n onStart() {\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n }\n onMove(detail) {\n if (!this.scrollEl) {\n return;\n }\n // this method can get called like a bazillion times per second,\n // so it's built to be as efficient as possible, and does its\n // best to do any DOM read/writes only when absolutely necessary\n // if multi-touch then get out immediately\n const ev = detail.event;\n if (ev.touches !== undefined && ev.touches.length > 1) {\n return;\n }\n // do nothing if it's actively refreshing\n // or it's in the way of closing\n // or this was never a startY\n if ((this.state & 56 /* RefresherState._BUSY_ */) !== 0) {\n return;\n }\n const pullFactor = Number.isNaN(this.pullFactor) || this.pullFactor < 0 ? 1 : this.pullFactor;\n const deltaY = detail.deltaY * pullFactor;\n // don't bother if they're scrolling up\n // and have not already started dragging\n if (deltaY <= 0) {\n // the current Y is higher than the starting Y\n // so they scrolled up enough to be ignored\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n if (this.appliedStyles) {\n // reset the styles only if they were applied\n this.setCss(0, '', false, '');\n return;\n }\n return;\n }\n if (this.state === 1 /* RefresherState.Inactive */) {\n // this refresh is not already actively pulling down\n // get the content's scrollTop\n const scrollHostScrollTop = this.scrollEl.scrollTop;\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (scrollHostScrollTop > 0) {\n this.progress = 0;\n return;\n }\n // content scrolled all the way to the top, and dragging down\n this.state = 2 /* RefresherState.Pulling */;\n }\n // prevent native scroll events\n if (ev.cancelable) {\n ev.preventDefault();\n }\n // the refresher is actively pulling at this point\n // move the scroll element within the content element\n this.setCss(deltaY, '0ms', true, '');\n if (deltaY === 0) {\n // don't continue if there's no delta yet\n this.progress = 0;\n return;\n }\n const pullMin = this.pullMin;\n // set pull progress\n this.progress = deltaY / pullMin;\n // emit \"start\" if it hasn't started yet\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n this.ionPull.emit();\n // do nothing if the delta is less than the pull threshold\n if (deltaY < pullMin) {\n // ensure it stays in the pulling state, cuz its not ready yet\n this.state = 2 /* RefresherState.Pulling */;\n return;\n }\n if (deltaY > this.pullMax) {\n // they pulled farther than the max, so kick off the refresh\n this.beginRefresh();\n return;\n }\n // pulled farther than the pull min!!\n // it is now in the `ready` state!!\n // if they let go then it'll refresh, kerpow!!\n this.state = 4 /* RefresherState.Ready */;\n return;\n }\n onEnd() {\n // only run in a zone when absolutely necessary\n if (this.state === 4 /* RefresherState.Ready */) {\n // they pulled down far enough, so it's ready to refresh\n this.beginRefresh();\n }\n else if (this.state === 2 /* RefresherState.Pulling */) {\n // they were pulling down, but didn't pull down far enough\n // set the content back to it's original location\n // and close the refresher\n // set that the refresh is actively cancelling\n this.cancel();\n }\n }\n beginRefresh() {\n // assumes we're already back in a zone\n // they pulled down far enough, so it's ready to refresh\n this.state = 8 /* RefresherState.Refreshing */;\n // place the content in a hangout position while it thinks\n this.setCss(this.pullMin, this.snapbackDuration, true, '');\n // emit \"refresh\" because it was pulled down far enough\n // and they let go to begin refreshing\n this.ionRefresh.emit({\n complete: this.complete.bind(this),\n });\n }\n close(state, delay) {\n // create fallback timer incase something goes wrong with transitionEnd event\n setTimeout(() => {\n this.state = 1 /* RefresherState.Inactive */;\n this.progress = 0;\n this.didStart = false;\n this.setCss(0, '0ms', false, '');\n }, 600);\n // reset set the styles on the scroll element\n // set that the refresh is actively cancelling/completing\n this.state = state;\n this.setCss(0, this.closeDuration, true, delay);\n }\n setCss(y, duration, overflowVisible, delay) {\n if (this.nativeRefresher) {\n return;\n }\n this.appliedStyles = y > 0;\n writeTask(() => {\n if (this.scrollEl && this.backgroundContentEl) {\n const scrollStyle = this.scrollEl.style;\n const backgroundStyle = this.backgroundContentEl.style;\n scrollStyle.transform = backgroundStyle.transform = y > 0 ? `translateY(${y}px) translateZ(0px)` : '';\n scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;\n scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;\n scrollStyle.overflow = overflowVisible ? 'hidden' : '';\n }\n });\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { slot: \"fixed\", class: {\n [mode]: true,\n // Used internally for styling\n [`refresher-${mode}`]: true,\n 'refresher-native': this.nativeRefresher,\n 'refresher-active': this.state !== 1 /* RefresherState.Inactive */,\n 'refresher-pulling': this.state === 2 /* RefresherState.Pulling */,\n 'refresher-ready': this.state === 4 /* RefresherState.Ready */,\n 'refresher-refreshing': this.state === 8 /* RefresherState.Refreshing */,\n 'refresher-cancelling': this.state === 16 /* RefresherState.Cancelling */,\n 'refresher-completing': this.state === 32 /* RefresherState.Completing */,\n } }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return {\n ios: refresherIosCss,\n md: refresherMdCss\n }; }\n}, [32, \"ion-refresher\", {\n \"pullMin\": [2, \"pull-min\"],\n \"pullMax\": [2, \"pull-max\"],\n \"closeDuration\": [1, \"close-duration\"],\n \"snapbackDuration\": [1, \"snapback-duration\"],\n \"pullFactor\": [2, \"pull-factor\"],\n \"disabled\": [4],\n \"nativeRefresher\": [32],\n \"state\": [32],\n \"complete\": [64],\n \"cancel\": [64],\n \"getProgress\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-refresher\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-refresher\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Refresher);\n }\n break;\n } });\n}\n\nconst IonRefresher = Refresher;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRefresher, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { k as caretBackSharp, l as arrowDown } from './index7.js';\nimport { b as getIonMode, c as config, a as isPlatform } from './ionic-global.js';\nimport { s as sanitizeDOMString } from './index3.js';\nimport { d as defineCustomElement$2, S as SPINNERS } from './spinner.js';\nimport { d as defineCustomElement$3 } from './icon.js';\n\nconst RefresherContent = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n componentWillLoad() {\n if (this.pullingIcon === undefined) {\n const mode = getIonMode(this);\n const overflowRefresher = this.el.style.webkitOverflowScrolling !== undefined ? 'lines' : arrowDown;\n this.pullingIcon = config.get('refreshingIcon', mode === 'ios' && isPlatform('mobile') ? config.get('spinner', overflowRefresher) : 'circular');\n }\n if (this.refreshingSpinner === undefined) {\n const mode = getIonMode(this);\n this.refreshingSpinner = config.get('refreshingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'circular'));\n }\n }\n render() {\n const pullingIcon = this.pullingIcon;\n const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;\n const mode = getIonMode(this);\n return (h(Host, { class: mode }, h(\"div\", { class: \"refresher-pulling\" }, this.pullingIcon && hasSpinner && (h(\"div\", { class: \"refresher-pulling-icon\" }, h(\"div\", { class: \"spinner-arrow-container\" }, h(\"ion-spinner\", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h(\"div\", { class: \"arrow-container\" }, h(\"ion-icon\", { icon: caretBackSharp })))))), this.pullingIcon && !hasSpinner && (h(\"div\", { class: \"refresher-pulling-icon\" }, h(\"ion-icon\", { icon: this.pullingIcon, lazy: false }))), this.pullingText !== undefined && (h(\"div\", { class: \"refresher-pulling-text\", innerHTML: sanitizeDOMString(this.pullingText) }))), h(\"div\", { class: \"refresher-refreshing\" }, this.refreshingSpinner && (h(\"div\", { class: \"refresher-refreshing-icon\" }, h(\"ion-spinner\", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && (h(\"div\", { class: \"refresher-refreshing-text\", innerHTML: sanitizeDOMString(this.refreshingText) })))));\n }\n get el() { return this; }\n}, [0, \"ion-refresher-content\", {\n \"pullingIcon\": [1025, \"pulling-icon\"],\n \"pullingText\": [1, \"pulling-text\"],\n \"refreshingSpinner\": [1025, \"refreshing-spinner\"],\n \"refreshingText\": [1, \"refreshing-text\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-refresher-content\", \"ion-icon\", \"ion-spinner\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-refresher-content\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RefresherContent);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-spinner\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonRefresherContent = RefresherContent;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRefresherContent, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { r as reorderThreeOutline, n as reorderTwoSharp } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst reorderIosCss = \":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block;font-size:22px}.reorder-icon{font-size:34px;opacity:0.4}\";\n\nconst reorderMdCss = \":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block;font-size:22px}.reorder-icon{font-size:31px;opacity:0.3}\";\n\nconst Reorder = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n onClick(ev) {\n const reorderGroup = this.el.closest('ion-reorder-group');\n ev.preventDefault();\n // Only stop event propagation if the reorder is inside of an enabled\n // reorder group. This allows interaction with clickable children components.\n if (!reorderGroup || !reorderGroup.disabled) {\n ev.stopImmediatePropagation();\n }\n }\n render() {\n const mode = getIonMode(this);\n const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;\n return (h(Host, { class: mode }, h(\"slot\", null, h(\"ion-icon\", { icon: reorderIcon, lazy: false, class: \"reorder-icon\", part: \"icon\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: reorderIosCss,\n md: reorderMdCss\n }; }\n}, [33, \"ion-reorder\", undefined, [[2, \"click\", \"onClick\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-reorder\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-reorder\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Reorder);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonReorder = Reorder;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonReorder, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as findClosestIonContent, g as getScrollElement } from './index9.js';\nimport { a as hapticSelectionStart, b as hapticSelectionChanged, c as hapticSelectionEnd } from './haptic.js';\n\nconst reorderGroupCss = \".reorder-list-active>*{display:block;-webkit-transition:-webkit-transform 300ms;transition:-webkit-transform 300ms;transition:transform 300ms;transition:transform 300ms, -webkit-transform 300ms;will-change:transform}.reorder-enabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-enabled ion-reorder{display:block;cursor:-webkit-grab;cursor:grab;pointer-events:all;-ms-touch-action:none;touch-action:none}.reorder-selected,.reorder-selected ion-reorder{cursor:-webkit-grabbing;cursor:grabbing}.reorder-selected{position:relative;-webkit-transition:none !important;transition:none !important;-webkit-box-shadow:0 0 10px rgba(0, 0, 0, 0.4);box-shadow:0 0 10px rgba(0, 0, 0, 0.4);opacity:0.8;z-index:100}.reorder-visible ion-reorder .reorder-icon{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}\";\n\nconst ReorderGroup = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionItemReorder = createEvent(this, \"ionItemReorder\", 7);\n this.lastToIndex = -1;\n this.cachedHeights = [];\n this.scrollElTop = 0;\n this.scrollElBottom = 0;\n this.scrollElInitial = 0;\n this.containerTop = 0;\n this.containerBottom = 0;\n this.state = 0 /* ReorderGroupState.Idle */;\n /**\n * If `true`, the reorder will be hidden.\n */\n this.disabled = true;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async connectedCallback() {\n const contentEl = findClosestIonContent(this.el);\n if (contentEl) {\n this.scrollEl = await getScrollElement(contentEl);\n }\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.el,\n gestureName: 'reorder',\n gesturePriority: 110,\n threshold: 0,\n direction: 'y',\n passive: false,\n canStart: (detail) => this.canStart(detail),\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: () => this.onEnd(),\n });\n this.disabledChanged();\n }\n disconnectedCallback() {\n this.onEnd();\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /**\n * Completes the reorder operation. Must be called by the `ionItemReorder` event.\n *\n * If a list of items is passed, the list will be reordered and returned in the\n * proper order.\n *\n * If no parameters are passed or if `true` is passed in, the reorder will complete\n * and the item will remain in the position it was dragged to. If `false` is passed,\n * the reorder will complete and the item will bounce back to its original position.\n *\n * @param listOrReorder A list of items to be sorted and returned in the new order or a\n * boolean of whether or not the reorder should reposition the item.\n */\n complete(listOrReorder) {\n return Promise.resolve(this.completeSync(listOrReorder));\n }\n canStart(ev) {\n if (this.selectedItemEl || this.state !== 0 /* ReorderGroupState.Idle */) {\n return false;\n }\n const target = ev.event.target;\n const reorderEl = target.closest('ion-reorder');\n if (!reorderEl) {\n return false;\n }\n const item = findReorderItem(reorderEl, this.el);\n if (!item) {\n return false;\n }\n ev.data = item;\n return true;\n }\n onStart(ev) {\n ev.event.preventDefault();\n const item = (this.selectedItemEl = ev.data);\n const heights = this.cachedHeights;\n heights.length = 0;\n const el = this.el;\n const children = el.children;\n if (!children || children.length === 0) {\n return;\n }\n let sum = 0;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n sum += child.offsetHeight;\n heights.push(sum);\n child.$ionIndex = i;\n }\n const box = el.getBoundingClientRect();\n this.containerTop = box.top;\n this.containerBottom = box.bottom;\n if (this.scrollEl) {\n const scrollBox = this.scrollEl.getBoundingClientRect();\n this.scrollElInitial = this.scrollEl.scrollTop;\n this.scrollElTop = scrollBox.top + AUTO_SCROLL_MARGIN;\n this.scrollElBottom = scrollBox.bottom - AUTO_SCROLL_MARGIN;\n }\n else {\n this.scrollElInitial = 0;\n this.scrollElTop = 0;\n this.scrollElBottom = 0;\n }\n this.lastToIndex = indexForItem(item);\n this.selectedItemHeight = item.offsetHeight;\n this.state = 1 /* ReorderGroupState.Active */;\n item.classList.add(ITEM_REORDER_SELECTED);\n hapticSelectionStart();\n }\n onMove(ev) {\n const selectedItem = this.selectedItemEl;\n if (!selectedItem) {\n return;\n }\n // Scroll if we reach the scroll margins\n const scroll = this.autoscroll(ev.currentY);\n // // Get coordinate\n const top = this.containerTop - scroll;\n const bottom = this.containerBottom - scroll;\n const currentY = Math.max(top, Math.min(ev.currentY, bottom));\n const deltaY = scroll + currentY - ev.startY;\n const normalizedY = currentY - top;\n const toIndex = this.itemIndexForTop(normalizedY);\n if (toIndex !== this.lastToIndex) {\n const fromIndex = indexForItem(selectedItem);\n this.lastToIndex = toIndex;\n hapticSelectionChanged();\n this.reorderMove(fromIndex, toIndex);\n }\n // Update selected item position\n selectedItem.style.transform = `translateY(${deltaY}px)`;\n }\n onEnd() {\n const selectedItemEl = this.selectedItemEl;\n this.state = 2 /* ReorderGroupState.Complete */;\n if (!selectedItemEl) {\n this.state = 0 /* ReorderGroupState.Idle */;\n return;\n }\n const toIndex = this.lastToIndex;\n const fromIndex = indexForItem(selectedItemEl);\n if (toIndex === fromIndex) {\n this.completeSync();\n }\n else {\n this.ionItemReorder.emit({\n from: fromIndex,\n to: toIndex,\n complete: this.completeSync.bind(this),\n });\n }\n hapticSelectionEnd();\n }\n completeSync(listOrReorder) {\n const selectedItemEl = this.selectedItemEl;\n if (selectedItemEl && this.state === 2 /* ReorderGroupState.Complete */) {\n const children = this.el.children;\n const len = children.length;\n const toIndex = this.lastToIndex;\n const fromIndex = indexForItem(selectedItemEl);\n if (toIndex !== fromIndex && (listOrReorder === undefined || listOrReorder === true)) {\n const ref = fromIndex < toIndex ? children[toIndex + 1] : children[toIndex];\n this.el.insertBefore(selectedItemEl, ref);\n }\n if (Array.isArray(listOrReorder)) {\n listOrReorder = reorderArray(listOrReorder, fromIndex, toIndex);\n }\n for (let i = 0; i < len; i++) {\n children[i].style['transform'] = '';\n }\n selectedItemEl.style.transition = '';\n selectedItemEl.classList.remove(ITEM_REORDER_SELECTED);\n this.selectedItemEl = undefined;\n this.state = 0 /* ReorderGroupState.Idle */;\n }\n return listOrReorder;\n }\n itemIndexForTop(deltaY) {\n const heights = this.cachedHeights;\n for (let i = 0; i < heights.length; i++) {\n if (heights[i] > deltaY) {\n return i;\n }\n }\n return heights.length - 1;\n }\n /********* DOM WRITE ********* */\n reorderMove(fromIndex, toIndex) {\n const itemHeight = this.selectedItemHeight;\n const children = this.el.children;\n for (let i = 0; i < children.length; i++) {\n const style = children[i].style;\n let value = '';\n if (i > fromIndex && i <= toIndex) {\n value = `translateY(${-itemHeight}px)`;\n }\n else if (i < fromIndex && i >= toIndex) {\n value = `translateY(${itemHeight}px)`;\n }\n style['transform'] = value;\n }\n }\n autoscroll(posY) {\n if (!this.scrollEl) {\n return 0;\n }\n let amount = 0;\n if (posY < this.scrollElTop) {\n amount = -SCROLL_JUMP;\n }\n else if (posY > this.scrollElBottom) {\n amount = SCROLL_JUMP;\n }\n if (amount !== 0) {\n this.scrollEl.scrollBy(0, amount);\n }\n return this.scrollEl.scrollTop - this.scrollElInitial;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'reorder-enabled': !this.disabled,\n 'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,\n } }));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return reorderGroupCss; }\n}, [0, \"ion-reorder-group\", {\n \"disabled\": [4],\n \"state\": [32],\n \"complete\": [64]\n }]);\nconst indexForItem = (element) => {\n return element['$ionIndex'];\n};\nconst findReorderItem = (node, container) => {\n let parent;\n while (node) {\n parent = node.parentElement;\n if (parent === container) {\n return node;\n }\n node = parent;\n }\n return undefined;\n};\nconst AUTO_SCROLL_MARGIN = 60;\nconst SCROLL_JUMP = 10;\nconst ITEM_REORDER_SELECTED = 'reorder-selected';\nconst reorderArray = (array, from, to) => {\n const element = array[from];\n array.splice(from, 1);\n array.splice(to, 0, element);\n return array.slice();\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-reorder-group\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-reorder-group\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ReorderGroup);\n }\n break;\n } });\n}\n\nconst IonReorderGroup = ReorderGroup;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonReorderGroup, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst rowCss = \":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}\";\n\nconst Row = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n return (h(Host, { class: getIonMode(this) }, h(\"slot\", null)));\n }\n static get style() { return rowCss; }\n}, [1, \"ion-row\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-row\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-row\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Row);\n }\n break;\n } });\n}\n\nconst IonRow = Row;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRow, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as arrowBackSharp, o as closeCircle, p as closeSharp, s as searchOutline, q as searchSharp } from './index7.js';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { j as debounceEvent, r as raf } from './helpers.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses } from './theme.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst searchbarIosCss = \".sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--border-radius);display:block;width:100%;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ios::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios>div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ios:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ios-h{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);--border-radius:10px;--box-shadow:none;--cancel-button-color:var(--ion-color-primary, #3880ff);--clear-button-color:var(--ion-color-step-600, #666666);--color:var(--ion-text-color, #000);--icon-color:var(--ion-color-step-600, #666666);padding-left:12px;padding-right:12px;padding-top:12px;padding-bottom:12px;height:60px;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-searchbar-ios-h{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}.searchbar-input-container.sc-ion-searchbar-ios{height:36px}.searchbar-search-icon.sc-ion-searchbar-ios{margin-left:calc(50% - 60px);left:5px;top:0;position:absolute;width:22px;height:100%;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-search-icon.sc-ion-searchbar-ios{margin-left:unset;-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px)}}[dir=rtl].sc-ion-searchbar-ios .searchbar-search-icon.sc-ion-searchbar-ios,[dir=rtl].sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,[dir=rtl] .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{left:unset;right:unset;right:5px}.searchbar-input.sc-ion-searchbar-ios{padding-left:28px;padding-right:28px;padding-top:0;padding-bottom:0;height:100%;font-size:17px;font-weight:400;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-input.sc-ion-searchbar-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:28px;padding-inline-start:28px;-webkit-padding-end:28px;padding-inline-end:28px}}.searchbar-clear-button.sc-ion-searchbar-ios{right:0;top:0;background-position:center;position:absolute;width:30px;height:100%;border:0;background-color:transparent}[dir=rtl].sc-ion-searchbar-ios .searchbar-clear-button.sc-ion-searchbar-ios,[dir=rtl].sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,[dir=rtl] .sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{left:unset;right:unset;left:0}.searchbar-clear-icon.sc-ion-searchbar-ios{width:18px;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{padding-left:8px;padding-right:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-cancel-button.sc-ion-searchbar-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:0;padding-inline-end:0}}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{margin-left:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{padding-left:30px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{padding-left:unset;-webkit-padding-start:30px;padding-inline-start:30px}}.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-transition:all 300ms ease;transition:all 300ms ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{margin-right:-100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:all 300ms ease;transition:all 300ms ease;opacity:0;pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{margin-right:unset;-webkit-margin-end:-100%;margin-inline-end:-100%}}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}@media (any-hover: hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h,ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color),ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb), 0.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}\";\n\nconst searchbarMdCss = \".sc-ion-searchbar-md-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:.5;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-searchbar-md-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-md-h .searchbar-input.sc-ion-searchbar-md{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-md-h .searchbar-clear-button.sc-ion-searchbar-md,.ion-color.sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md,.ion-color.sc-ion-searchbar-md-h .searchbar-search-icon.sc-ion-searchbar-md{color:inherit}.searchbar-search-icon.sc-ion-searchbar-md{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-md{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-md{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;border-radius:var(--border-radius);display:block;width:100%;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-md::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-md::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-md:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-md::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-md::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-md::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-md::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-md>div.sc-ion-searchbar-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-md:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-md-h .searchbar-clear-button.sc-ion-searchbar-md{display:block}.searchbar-disabled.sc-ion-searchbar-md-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-md-h{--background:var(--ion-background-color, #fff);--border-radius:2px;--box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);--cancel-button-color:var(--ion-color-step-900, #1a1a1a);--clear-button-color:initial;--color:var(--ion-color-step-850, #262626);--icon-color:var(--ion-color-step-600, #666666);padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;background:inherit}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-searchbar-md-h{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.searchbar-search-icon.sc-ion-searchbar-md{left:16px;top:11px;width:21px;height:21px}[dir=rtl].sc-ion-searchbar-md .searchbar-search-icon.sc-ion-searchbar-md,[dir=rtl].sc-ion-searchbar-md-h .searchbar-search-icon.sc-ion-searchbar-md,[dir=rtl] .sc-ion-searchbar-md-h .searchbar-search-icon.sc-ion-searchbar-md{left:unset;right:unset;right:16px}.searchbar-cancel-button.sc-ion-searchbar-md{left:5px;top:0;background-color:transparent;font-size:1.6em}[dir=rtl].sc-ion-searchbar-md .searchbar-cancel-button.sc-ion-searchbar-md,[dir=rtl].sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md,[dir=rtl] .sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md{left:unset;right:unset;right:5px}.searchbar-search-icon.sc-ion-searchbar-md,.searchbar-cancel-button.sc-ion-searchbar-md{position:absolute}.searchbar-search-icon.ion-activated.sc-ion-searchbar-md,.searchbar-cancel-button.ion-activated.sc-ion-searchbar-md{background-color:transparent}.searchbar-input.sc-ion-searchbar-md{padding-left:55px;padding-right:55px;padding-top:6px;padding-bottom:6px;background-position:left 8px center;height:auto;font-size:16px;font-weight:400;line-height:30px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.searchbar-input.sc-ion-searchbar-md{padding-left:unset;padding-right:unset;-webkit-padding-start:55px;padding-inline-start:55px;-webkit-padding-end:55px;padding-inline-end:55px}}[dir=rtl].sc-ion-searchbar-md .searchbar-input.sc-ion-searchbar-md,[dir=rtl].sc-ion-searchbar-md-h .searchbar-input.sc-ion-searchbar-md,[dir=rtl] .sc-ion-searchbar-md-h .searchbar-input.sc-ion-searchbar-md{background-position:right 8px center}.searchbar-clear-button.sc-ion-searchbar-md{right:13px;top:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;position:absolute;height:100%;border:0;background-color:transparent}[dir=rtl].sc-ion-searchbar-md .searchbar-clear-button.sc-ion-searchbar-md,[dir=rtl].sc-ion-searchbar-md-h .searchbar-clear-button.sc-ion-searchbar-md,[dir=rtl] .sc-ion-searchbar-md-h .searchbar-clear-button.sc-ion-searchbar-md{left:unset;right:unset;left:13px}.searchbar-clear-button.ion-activated.sc-ion-searchbar-md{background-color:transparent}.searchbar-clear-icon.sc-ion-searchbar-md{width:22px;height:100%}.searchbar-has-focus.sc-ion-searchbar-md-h .searchbar-search-icon.sc-ion-searchbar-md{display:block}.searchbar-has-focus.sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md,.searchbar-should-show-cancel.sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md{display:block}.searchbar-has-focus.sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md+.searchbar-search-icon.sc-ion-searchbar-md,.searchbar-should-show-cancel.sc-ion-searchbar-md-h .searchbar-cancel-button.sc-ion-searchbar-md+.searchbar-search-icon.sc-ion-searchbar-md{display:none}ion-toolbar.sc-ion-searchbar-md-h,ion-toolbar .sc-ion-searchbar-md-h{padding-left:7px;padding-right:7px;padding-top:3px;padding-bottom:3px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-toolbar.sc-ion-searchbar-md-h,ion-toolbar .sc-ion-searchbar-md-h{padding-left:unset;padding-right:unset;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px}}\";\n\nconst Searchbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionInput = createEvent(this, \"ionInput\", 7);\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionCancel = createEvent(this, \"ionCancel\", 7);\n this.ionClear = createEvent(this, \"ionClear\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.isCancelVisible = false;\n this.shouldAlignLeft = true;\n this.focused = false;\n this.noAnimate = true;\n /**\n * If `true`, enable searchbar animation.\n */\n this.animated = false;\n /**\n * Set the input's autocomplete property.\n */\n this.autocomplete = 'off';\n /**\n * Set the input's autocorrect property.\n */\n this.autocorrect = 'off';\n /**\n * Set the cancel button icon. Only applies to `md` mode.\n * Defaults to `arrow-back-sharp`.\n */\n this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);\n /**\n * Set the the cancel button text. Only applies to `ios` mode.\n */\n this.cancelButtonText = 'Cancel';\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 250;\n /**\n * If `true`, the user cannot interact with the input.\n */\n this.disabled = false;\n /**\n * Set the input's placeholder.\n * `placeholder` can accept either plaintext or HTML as a string.\n * To display characters normally reserved for HTML, they\n * must be escaped. For example `<Ionic>` would become\n * `<Ionic>`\n *\n * For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\n */\n this.placeholder = 'Search';\n /**\n * Sets the behavior for the cancel button. Defaults to `\"never\"`.\n * Setting to `\"focus\"` shows the cancel button on focus.\n * Setting to `\"never\"` hides the cancel button.\n * Setting to `\"always\"` shows the cancel button regardless\n * of focus state.\n */\n this.showCancelButton = 'never';\n /**\n * Sets the behavior for the clear button. Defaults to `\"focus\"`.\n * Setting to `\"focus\"` shows the clear button on focus if the\n * input is not empty.\n * Setting to `\"never\"` hides the clear button.\n * Setting to `\"always\"` shows the clear button regardless\n * of focus state, but only if the input is not empty.\n */\n this.showClearButton = 'always';\n /**\n * If `true`, enable spellcheck on the input.\n */\n this.spellcheck = false;\n /**\n * Set the type of the input.\n */\n this.type = 'search';\n /**\n * the value of the searchbar.\n */\n this.value = '';\n /**\n * Clears the input field and triggers the control change.\n */\n this.onClearInput = (shouldFocus) => {\n this.ionClear.emit();\n // setTimeout() fixes https://github.com/ionic-team/ionic/issues/7527\n // wait for 4 frames\n setTimeout(() => {\n const value = this.getValue();\n if (value !== '') {\n this.value = '';\n this.ionInput.emit();\n /**\n * When tapping clear button\n * ensure input is focused after\n * clearing input so users\n * can quickly start typing.\n */\n if (shouldFocus && !this.focused) {\n this.setFocus();\n }\n }\n }, 16 * 4);\n };\n /**\n * Clears the input field and tells the input to blur since\n * the clearInput function doesn't want the input to blur\n * then calls the custom cancel function if the user passed one in.\n */\n this.onCancelSearchbar = (ev) => {\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n this.ionCancel.emit();\n this.onClearInput();\n if (this.nativeInput) {\n this.nativeInput.blur();\n }\n };\n /**\n * Update the Searchbar input value when the input changes\n */\n this.onInput = (ev) => {\n const input = ev.target;\n if (input) {\n this.value = input.value;\n }\n this.ionInput.emit(ev);\n };\n /**\n * Sets the Searchbar to not focused and checks if it should align left\n * based on whether there is a value in the searchbar or not.\n */\n this.onBlur = () => {\n this.focused = false;\n this.ionBlur.emit();\n this.positionElements();\n };\n /**\n * Sets the Searchbar to focused and active on input focus.\n */\n this.onFocus = () => {\n this.focused = true;\n this.ionFocus.emit();\n this.positionElements();\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n valueChanged() {\n const inputEl = this.nativeInput;\n const value = this.getValue();\n if (inputEl && inputEl.value !== value) {\n inputEl.value = value;\n }\n this.ionChange.emit({ value });\n }\n showCancelButtonChanged() {\n requestAnimationFrame(() => {\n this.positionElements();\n forceUpdate(this);\n });\n }\n connectedCallback() {\n this.emitStyle();\n }\n componentDidLoad() {\n this.positionElements();\n this.debounceChanged();\n setTimeout(() => {\n this.noAnimate = false;\n }, 300);\n }\n emitStyle() {\n this.ionStyle.emit({\n searchbar: true,\n });\n }\n /**\n * Sets focus on the specified `ion-searchbar`. Use this method instead of the global\n * `input.focus()`.\n */\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n /**\n * Returns the native `<input>` element used under the hood.\n */\n getInputElement() {\n return Promise.resolve(this.nativeInput);\n }\n /**\n * Positions the input search icon, placeholder, and the cancel button\n * based on the input value and if it is focused. (ios only)\n */\n positionElements() {\n const value = this.getValue();\n const prevAlignLeft = this.shouldAlignLeft;\n const mode = getIonMode(this);\n const shouldAlignLeft = !this.animated || value.trim() !== '' || !!this.focused;\n this.shouldAlignLeft = shouldAlignLeft;\n if (mode !== 'ios') {\n return;\n }\n if (prevAlignLeft !== shouldAlignLeft) {\n this.positionPlaceholder();\n }\n if (this.animated) {\n this.positionCancelButton();\n }\n }\n /**\n * Positions the input placeholder\n */\n positionPlaceholder() {\n const inputEl = this.nativeInput;\n if (!inputEl) {\n return;\n }\n const rtl = isRTL(this.el);\n const iconEl = (this.el.shadowRoot || this.el).querySelector('.searchbar-search-icon');\n if (this.shouldAlignLeft) {\n inputEl.removeAttribute('style');\n iconEl.removeAttribute('style');\n }\n else {\n // Create a dummy span to get the placeholder width\n const doc = document;\n const tempSpan = doc.createElement('span');\n tempSpan.innerText = this.placeholder || '';\n doc.body.appendChild(tempSpan);\n // Get the width of the span then remove it\n raf(() => {\n const textWidth = tempSpan.offsetWidth;\n tempSpan.remove();\n // Calculate the input padding\n const inputLeft = 'calc(50% - ' + textWidth / 2 + 'px)';\n // Calculate the icon margin\n const iconLeft = 'calc(50% - ' + (textWidth / 2 + 30) + 'px)';\n // Set the input padding start and icon margin start\n if (rtl) {\n inputEl.style.paddingRight = inputLeft;\n iconEl.style.marginRight = iconLeft;\n }\n else {\n inputEl.style.paddingLeft = inputLeft;\n iconEl.style.marginLeft = iconLeft;\n }\n });\n }\n }\n /**\n * Show the iOS Cancel button on focus, hide it offscreen otherwise\n */\n positionCancelButton() {\n const rtl = isRTL(this.el);\n const cancelButton = (this.el.shadowRoot || this.el).querySelector('.searchbar-cancel-button');\n const shouldShowCancel = this.shouldShowCancelButton();\n if (cancelButton !== null && shouldShowCancel !== this.isCancelVisible) {\n const cancelStyle = cancelButton.style;\n this.isCancelVisible = shouldShowCancel;\n if (shouldShowCancel) {\n if (rtl) {\n cancelStyle.marginLeft = '0';\n }\n else {\n cancelStyle.marginRight = '0';\n }\n }\n else {\n const offset = cancelButton.offsetWidth;\n if (offset > 0) {\n if (rtl) {\n cancelStyle.marginLeft = -offset + 'px';\n }\n else {\n cancelStyle.marginRight = -offset + 'px';\n }\n }\n }\n }\n }\n getValue() {\n return this.value || '';\n }\n hasValue() {\n return this.getValue() !== '';\n }\n /**\n * Determines whether or not the cancel button should be visible onscreen.\n * Cancel button should be shown if one of two conditions applies:\n * 1. `showCancelButton` is set to `always`.\n * 2. `showCancelButton` is set to `focus`, and the searchbar has been focused.\n */\n shouldShowCancelButton() {\n if (this.showCancelButton === 'never' || (this.showCancelButton === 'focus' && !this.focused)) {\n return false;\n }\n return true;\n }\n /**\n * Determines whether or not the clear button should be visible onscreen.\n * Clear button should be shown if one of two conditions applies:\n * 1. `showClearButton` is set to `always`.\n * 2. `showClearButton` is set to `focus`, and the searchbar has been focused.\n */\n shouldShowClearButton() {\n if (this.showClearButton === 'never' || (this.showClearButton === 'focus' && !this.focused)) {\n return false;\n }\n return true;\n }\n render() {\n const { cancelButtonText } = this;\n const animated = this.animated && config.getBoolean('animated', true);\n const mode = getIonMode(this);\n const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);\n const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);\n const shouldShowCancelButton = this.shouldShowCancelButton();\n const cancelButton = this.showCancelButton !== 'never' && (h(\"button\", { \"aria-label\": cancelButtonText, \"aria-hidden\": shouldShowCancelButton ? undefined : 'true', type: \"button\", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: \"searchbar-cancel-button\" }, h(\"div\", { \"aria-hidden\": \"true\" }, mode === 'md' ? (h(\"ion-icon\", { \"aria-hidden\": \"true\", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));\n return (h(Host, { role: \"search\", \"aria-disabled\": this.disabled ? 'true' : null, class: createColorClasses(this.color, {\n [mode]: true,\n 'searchbar-animated': animated,\n 'searchbar-disabled': this.disabled,\n 'searchbar-no-animate': animated && this.noAnimate,\n 'searchbar-has-value': this.hasValue(),\n 'searchbar-left-aligned': this.shouldAlignLeft,\n 'searchbar-has-focus': this.focused,\n 'searchbar-should-show-clear': this.shouldShowClearButton(),\n 'searchbar-should-show-cancel': this.shouldShowCancelButton(),\n }) }, h(\"div\", { class: \"searchbar-input-container\" }, h(\"input\", { \"aria-label\": \"search text\", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: \"searchbar-input\", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }), mode === 'md' && cancelButton, h(\"ion-icon\", { \"aria-hidden\": \"true\", mode: mode, icon: searchIcon, lazy: false, class: \"searchbar-search-icon\" }), h(\"button\", { \"aria-label\": \"reset\", type: \"button\", \"no-blur\": true, class: \"searchbar-clear-button\", onPointerDown: (ev) => {\n /**\n * This prevents mobile browsers from\n * blurring the input when the clear\n * button is activated.\n */\n ev.preventDefault();\n }, onClick: () => this.onClearInput(true) }, h(\"ion-icon\", { \"aria-hidden\": \"true\", mode: mode, icon: clearIcon, lazy: false, class: \"searchbar-clear-icon\" }))), mode === 'ios' && cancelButton));\n }\n get el() { return this; }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"value\": [\"valueChanged\"],\n \"showCancelButton\": [\"showCancelButtonChanged\"]\n }; }\n static get style() { return {\n ios: searchbarIosCss,\n md: searchbarMdCss\n }; }\n}, [34, \"ion-searchbar\", {\n \"color\": [513],\n \"animated\": [4],\n \"autocomplete\": [1],\n \"autocorrect\": [1],\n \"cancelButtonIcon\": [1, \"cancel-button-icon\"],\n \"cancelButtonText\": [1, \"cancel-button-text\"],\n \"clearIcon\": [1, \"clear-icon\"],\n \"debounce\": [2],\n \"disabled\": [4],\n \"inputmode\": [1],\n \"enterkeyhint\": [1],\n \"placeholder\": [1],\n \"searchIcon\": [1, \"search-icon\"],\n \"showCancelButton\": [1, \"show-cancel-button\"],\n \"showClearButton\": [1, \"show-clear-button\"],\n \"spellcheck\": [4],\n \"type\": [1],\n \"value\": [1025],\n \"focused\": [32],\n \"noAnimate\": [32],\n \"setFocus\": [64],\n \"getInputElement\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-searchbar\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-searchbar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Searchbar);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonSearchbar = Searchbar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSearchbar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { p as pointerCoord } from './helpers.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst segmentIosCss = \":host{--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;background:var(--background);font-family:var(--ion-font-family, inherit);text-align:center;contain:paint;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.segment-scrollable){-ms-flex-pack:start;justify-content:start;width:auto;overflow-x:auto}:host(.segment-scrollable::-webkit-scrollbar){display:none}:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.065);border-radius:8px;overflow:hidden;z-index:0}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.065)}:host(.in-toolbar){margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;width:auto}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-toolbar){margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.in-toolbar:not(.ion-color)){background:var(--ion-toolbar-segment-background, var(--background))}:host(.in-toolbar-color:not(.ion-color)){background:rgba(var(--ion-color-contrast-rgb), 0.11)}\";\n\nconst segmentMdCss = \":host{--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;width:100%;background:var(--background);font-family:var(--ion-font-family, inherit);text-align:center;contain:paint;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.segment-scrollable){-ms-flex-pack:start;justify-content:start;width:auto;overflow-x:auto}:host(.segment-scrollable::-webkit-scrollbar){display:none}:host{--background:transparent}:host(.in-toolbar){min-height:var(--min-height)}:host(.segment-scrollable) ::slotted(ion-segment-button){min-width:auto}\";\n\nconst Segment = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionSelect = createEvent(this, \"ionSelect\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.didInit = false;\n this.activated = false;\n /**\n * If `true`, the user cannot interact with the segment.\n */\n this.disabled = false;\n /**\n * If `true`, the segment buttons will overflow and the user can swipe to see them.\n * In addition, this will disable the gesture to drag the indicator between the buttons\n * in order to swipe to see hidden buttons.\n */\n this.scrollable = false;\n /**\n * If `true`, users will be able to swipe between segment buttons to activate them.\n */\n this.swipeGesture = true;\n /**\n * If `true`, navigating to an `ion-segment-button` with the keyboard will focus and select the element.\n * If `false`, keyboard navigation will only focus the `ion-segment-button` element.\n */\n this.selectOnFocus = false;\n this.onClick = (ev) => {\n const current = ev.target;\n const previous = this.checked;\n // If the current element is a segment then that means\n // the user tried to swipe to a segment button and\n // click a segment button at the same time so we should\n // not update the checked segment button\n if (current.tagName === 'ION-SEGMENT') {\n return;\n }\n this.value = current.value;\n if (this.scrollable || !this.swipeGesture) {\n if (previous) {\n this.checkButton(previous, current);\n }\n else {\n this.setCheckedClasses();\n }\n }\n this.checked = current;\n };\n this.getSegmentButton = (selector) => {\n var _a, _b;\n const buttons = this.getButtons().filter((button) => !button.disabled);\n const currIndex = buttons.findIndex((button) => button === document.activeElement);\n switch (selector) {\n case 'first':\n return buttons[0];\n case 'last':\n return buttons[buttons.length - 1];\n case 'next':\n return (_a = buttons[currIndex + 1]) !== null && _a !== void 0 ? _a : buttons[0];\n case 'previous':\n return (_b = buttons[currIndex - 1]) !== null && _b !== void 0 ? _b : buttons[buttons.length - 1];\n default:\n return null;\n }\n };\n }\n colorChanged(value, oldValue) {\n /**\n * If color is set after not having\n * previously been set (or vice versa),\n * we need to emit style so the segment-buttons\n * can apply their color classes properly.\n */\n if ((oldValue === undefined && value !== undefined) || (oldValue !== undefined && value === undefined)) {\n this.emitStyle();\n }\n }\n swipeGestureChanged() {\n this.gestureChanged();\n }\n valueChanged(value, oldValue) {\n this.ionSelect.emit({ value });\n if (oldValue !== '' || this.didInit) {\n if (!this.activated) {\n this.ionChange.emit({ value });\n }\n else {\n this.valueAfterGesture = value;\n }\n }\n if (this.scrollable) {\n const buttons = this.getButtons();\n const activeButton = buttons.find((button) => button.value === value);\n if (activeButton !== undefined) {\n /**\n * Scrollable segment buttons should be\n * centered within the view including\n * buttons that are partially offscreen.\n */\n activeButton.scrollIntoView({\n behavior: 'smooth',\n inline: 'center',\n });\n }\n }\n }\n disabledChanged() {\n this.gestureChanged();\n const buttons = this.getButtons();\n for (const button of buttons) {\n button.disabled = this.disabled;\n }\n }\n gestureChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.scrollable && !this.disabled && this.swipeGesture);\n }\n }\n connectedCallback() {\n this.emitStyle();\n }\n componentWillLoad() {\n this.emitStyle();\n }\n async componentDidLoad() {\n this.setCheckedClasses();\n this.ensureFocusable();\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.el,\n gestureName: 'segment',\n gesturePriority: 100,\n threshold: 0,\n passive: false,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gestureChanged();\n if (this.disabled) {\n this.disabledChanged();\n }\n this.didInit = true;\n }\n onStart(detail) {\n this.activate(detail);\n }\n onMove(detail) {\n this.setNextIndex(detail);\n }\n onEnd(detail) {\n this.setActivated(false);\n const checkedValidButton = this.setNextIndex(detail, true);\n detail.event.stopImmediatePropagation();\n if (checkedValidButton) {\n this.addRipple(detail);\n }\n const value = this.valueAfterGesture;\n if (value !== undefined) {\n this.ionChange.emit({ value });\n this.valueAfterGesture = undefined;\n }\n }\n getButtons() {\n return Array.from(this.el.querySelectorAll('ion-segment-button'));\n }\n /**\n * The gesture blocks the segment button ripple. This\n * function adds the ripple based on the checked segment\n * and where the cursor ended.\n */\n addRipple(detail) {\n const useRippleEffect = config.getBoolean('animated', true) && config.getBoolean('rippleEffect', true);\n if (!useRippleEffect) {\n return;\n }\n const buttons = this.getButtons();\n const checked = buttons.find((button) => button.value === this.value);\n const root = checked.shadowRoot || checked;\n const ripple = root.querySelector('ion-ripple-effect');\n if (!ripple) {\n return;\n }\n const { x, y } = pointerCoord(detail.event);\n ripple.addRipple(x, y).then((remove) => remove());\n }\n /*\n * Activate both the segment and the buttons\n * due to a bug with ::slotted in Safari\n */\n setActivated(activated) {\n const buttons = this.getButtons();\n buttons.forEach((button) => {\n if (activated) {\n button.classList.add('segment-button-activated');\n }\n else {\n button.classList.remove('segment-button-activated');\n }\n });\n this.activated = activated;\n }\n activate(detail) {\n const clicked = detail.event.target;\n const buttons = this.getButtons();\n const checked = buttons.find((button) => button.value === this.value);\n // Make sure we are only checking for activation on a segment button\n // since disabled buttons will get the click on the segment\n if (clicked.tagName !== 'ION-SEGMENT-BUTTON') {\n return;\n }\n // If there are no checked buttons, set the current button to checked\n if (!checked) {\n this.value = clicked.value;\n this.setCheckedClasses();\n }\n // If the gesture began on the clicked button with the indicator\n // then we should activate the indicator\n if (this.value === clicked.value) {\n this.setActivated(true);\n }\n }\n getIndicator(button) {\n const root = button.shadowRoot || button;\n return root.querySelector('.segment-button-indicator');\n }\n checkButton(previous, current) {\n const previousIndicator = this.getIndicator(previous);\n const currentIndicator = this.getIndicator(current);\n if (previousIndicator === null || currentIndicator === null) {\n return;\n }\n const previousClientRect = previousIndicator.getBoundingClientRect();\n const currentClientRect = currentIndicator.getBoundingClientRect();\n const widthDelta = previousClientRect.width / currentClientRect.width;\n const xPosition = previousClientRect.left - currentClientRect.left;\n // Scale the indicator width to match the previous indicator width\n // and translate it on top of the previous indicator\n const transform = `translate3d(${xPosition}px, 0, 0) scaleX(${widthDelta})`;\n writeTask(() => {\n // Remove the transition before positioning on top of the previous indicator\n currentIndicator.classList.remove('segment-button-indicator-animated');\n currentIndicator.style.setProperty('transform', transform);\n // Force a repaint to ensure the transform happens\n currentIndicator.getBoundingClientRect();\n // Add the transition to move the indicator into place\n currentIndicator.classList.add('segment-button-indicator-animated');\n // Remove the transform to slide the indicator back to the button clicked\n currentIndicator.style.setProperty('transform', '');\n });\n this.value = current.value;\n this.setCheckedClasses();\n }\n setCheckedClasses() {\n const buttons = this.getButtons();\n const index = buttons.findIndex((button) => button.value === this.value);\n const next = index + 1;\n // Keep track of the currently checked button\n this.checked = buttons.find((button) => button.value === this.value);\n for (const button of buttons) {\n button.classList.remove('segment-button-after-checked');\n }\n if (next < buttons.length) {\n buttons[next].classList.add('segment-button-after-checked');\n }\n }\n setNextIndex(detail, isEnd = false) {\n const rtl = isRTL(this.el);\n const activated = this.activated;\n const buttons = this.getButtons();\n const index = buttons.findIndex((button) => button.value === this.value);\n const previous = buttons[index];\n let current;\n let nextIndex;\n if (index === -1) {\n return;\n }\n // Get the element that the touch event started on in case\n // it was the checked button, then we will move the indicator\n const rect = previous.getBoundingClientRect();\n const left = rect.left;\n const width = rect.width;\n // Get the element that the gesture is on top of based on the currentX of the\n // gesture event and the Y coordinate of the starting element, since the gesture\n // can move up and down off of the segment\n const currentX = detail.currentX;\n const previousY = rect.top + rect.height / 2;\n /**\n * Segment can be used inside the shadow dom\n * so doing document.elementFromPoint would never\n * return a segment button in that instance.\n * We use getRootNode to which will return the parent\n * shadow root if used inside a shadow component and\n * returns document otherwise.\n */\n const root = this.el.getRootNode();\n const nextEl = root.elementFromPoint(currentX, previousY);\n const decreaseIndex = rtl ? currentX > left + width : currentX < left;\n const increaseIndex = rtl ? currentX < left : currentX > left + width;\n // If the indicator is currently activated then we have started the gesture\n // on top of the checked button so we need to slide the indicator\n // by checking the button next to it as we move\n if (activated && !isEnd) {\n // Decrease index, move left in LTR & right in RTL\n if (decreaseIndex) {\n const newIndex = index - 1;\n if (newIndex >= 0) {\n nextIndex = newIndex;\n }\n // Increase index, moves right in LTR & left in RTL\n }\n else if (increaseIndex) {\n if (activated && !isEnd) {\n const newIndex = index + 1;\n if (newIndex < buttons.length) {\n nextIndex = newIndex;\n }\n }\n }\n if (nextIndex !== undefined && !buttons[nextIndex].disabled) {\n current = buttons[nextIndex];\n }\n }\n // If the indicator is not activated then we will just set the indicator\n // to the element where the gesture ended\n if (!activated && isEnd) {\n current = nextEl;\n }\n if (current != null) {\n /**\n * If current element is ion-segment then that means\n * user tried to select a disabled ion-segment-button,\n * and we should not update the ripple.\n */\n if (current.tagName === 'ION-SEGMENT') {\n return false;\n }\n if (previous !== current) {\n this.checkButton(previous, current);\n }\n }\n return true;\n }\n emitStyle() {\n this.ionStyle.emit({\n segment: true,\n });\n }\n onKeyDown(ev) {\n const rtl = isRTL(this.el);\n let keyDownSelectsButton = this.selectOnFocus;\n let current;\n switch (ev.key) {\n case 'ArrowRight':\n ev.preventDefault();\n current = rtl ? this.getSegmentButton('previous') : this.getSegmentButton('next');\n break;\n case 'ArrowLeft':\n ev.preventDefault();\n current = rtl ? this.getSegmentButton('next') : this.getSegmentButton('previous');\n break;\n case 'Home':\n ev.preventDefault();\n current = this.getSegmentButton('first');\n break;\n case 'End':\n ev.preventDefault();\n current = this.getSegmentButton('last');\n break;\n case ' ':\n case 'Enter':\n ev.preventDefault();\n current = document.activeElement;\n keyDownSelectsButton = true;\n }\n if (!current) {\n return;\n }\n if (keyDownSelectsButton) {\n const previous = this.checked || current;\n this.checkButton(previous, current);\n }\n current.focus();\n }\n /* By default, focus is delegated to the selected `ion-segment-button`.\n * If there is no selected button, focus will instead pass to the first child button.\n **/\n ensureFocusable() {\n var _a;\n if (this.value !== undefined) {\n return;\n }\n const buttons = this.getButtons();\n (_a = buttons[0]) === null || _a === void 0 ? void 0 : _a.setAttribute('tabindex', '0');\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { role: \"tablist\", onClick: this.onClick, class: createColorClasses(this.color, {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'segment-activated': this.activated,\n 'segment-disabled': this.disabled,\n 'segment-scrollable': this.scrollable,\n }) }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"color\": [\"colorChanged\"],\n \"swipeGesture\": [\"swipeGestureChanged\"],\n \"value\": [\"valueChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return {\n ios: segmentIosCss,\n md: segmentMdCss\n }; }\n}, [33, \"ion-segment\", {\n \"color\": [513],\n \"disabled\": [4],\n \"scrollable\": [4],\n \"swipeGesture\": [4, \"swipe-gesture\"],\n \"value\": [1025],\n \"selectOnFocus\": [4, \"select-on-focus\"],\n \"activated\": [32]\n }, [[0, \"keydown\", \"onKeyDown\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-segment\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-segment\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Segment);\n }\n break;\n } });\n}\n\nconst IonSegment = Segment;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSegment, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { a as addEventListener, b as removeEventListener } from './helpers.js';\nimport { h as hostContext } from './theme.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst segmentButtonIosCss = \":host{--color:initial;--color-hover:var(--color);--color-checked:var(--color);--color-disabled:var(--color);--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-direction:column;flex-direction:column;height:auto;background:var(--background);color:var(--color);text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none;cursor:pointer}.button-native{border-radius:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:var(--margin-start);margin-right:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;min-width:inherit;max-width:inherit;height:auto;min-height:inherit;max-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:none;outline:none;background:transparent;contain:content;pointer-events:none;overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:inherit;flex-flow:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.segment-button-checked){background:var(--background-checked);color:var(--color-checked)}:host(.segment-button-disabled){cursor:default;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(:focus){outline:none}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.segment-button-checked:hover) .button-native{color:var(--color-checked)}}::slotted(ion-icon){-ms-flex-negative:0;flex-shrink:0;-ms-flex-order:-1;order:-1;pointer-events:none}::slotted(ion-label){display:block;-ms-flex-item-align:center;align-self:center;line-height:22px;text-overflow:ellipsis;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.segment-button-layout-icon-top) .button-native{-ms-flex-direction:column;flex-direction:column}:host(.segment-button-layout-icon-start) .button-native{-ms-flex-direction:row;flex-direction:row}:host(.segment-button-layout-icon-end) .button-native{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.segment-button-layout-icon-bottom) .button-native{-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.segment-button-layout-icon-hide) ::slotted(ion-icon){display:none}:host(.segment-button-layout-label-hide) ::slotted(ion-label){display:none}ion-ripple-effect{color:var(--ripple-color, var(--color-checked))}.segment-button-indicator{-webkit-transform-origin:left;transform-origin:left;position:absolute;opacity:0;-webkit-box-sizing:border-box;box-sizing:border-box;will-change:transform, opacity;pointer-events:none}.segment-button-indicator-background{width:100%;height:var(--indicator-height);-webkit-transform:var(--indicator-transform);transform:var(--indicator-transform);-webkit-box-shadow:var(--indicator-box-shadow);box-shadow:var(--indicator-box-shadow);pointer-events:none}.segment-button-indicator-animated{-webkit-transition:var(--indicator-transition);transition:var(--indicator-transition)}:host(.segment-button-checked) .segment-button-indicator{opacity:1}@media (prefers-reduced-motion: reduce){.segment-button-indicator-background{-webkit-transform:none;transform:none}.segment-button-indicator-animated{-webkit-transition:none;transition:none}}:host{--background:none;--background-checked:none;--background-hover:none;--background-hover-opacity:0;--background-focused:none;--background-focused-opacity:0;--border-radius:7px;--border-width:1px;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.12);--border-style:solid;--indicator-box-shadow:0 0 5px rgba(0, 0, 0, 0.16);--indicator-color:var(--ion-color-step-350, var(--ion-background-color, #fff));--indicator-height:100%;--indicator-transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1);--indicator-transform:none;--transition:100ms all linear;--padding-top:0;--padding-end:13px;--padding-bottom:0;--padding-start:13px;margin-top:2px;margin-bottom:2px;position:relative;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-direction:row;flex-direction:row;min-width:70px;min-height:28px;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);font-size:13px;font-weight:450;line-height:37px}:host::before{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;-webkit-transition:160ms opacity ease-in-out;transition:160ms opacity ease-in-out;-webkit-transition-delay:100ms;transition-delay:100ms;border-left:var(--border-width) var(--border-style) var(--border-color);content:\\\"\\\";opacity:1;will-change:opacity}:host(:first-of-type)::before{border-left-color:transparent}:host(.segment-button-disabled){opacity:0.3}::slotted(ion-icon){font-size:24px}:host(.segment-button-layout-icon-start) ::slotted(ion-label){margin-left:2px;margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.segment-button-layout-icon-start) ::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:0;margin-inline-end:0}}:host(.segment-button-layout-icon-end) ::slotted(ion-label){margin-left:0;margin-right:2px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.segment-button-layout-icon-end) ::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:2px;margin-inline-end:2px}}.segment-button-indicator{padding-left:2px;padding-right:2px;left:0;right:0;top:0;bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.segment-button-indicator{padding-left:unset;padding-right:unset;-webkit-padding-start:2px;padding-inline-start:2px;-webkit-padding-end:2px;padding-inline-end:2px}}.segment-button-indicator-background{border-radius:var(--border-radius);background:var(--indicator-color)}.segment-button-indicator-background{-webkit-transition:var(--indicator-transition);transition:var(--indicator-transition)}:host(.segment-button-checked)::before,:host(.segment-button-after-checked)::before{opacity:0}:host(.segment-button-checked){z-index:-1}:host(.segment-button-activated){--indicator-transform:scale(0.95)}:host(.ion-focused) .button-native{opacity:0.7}@media (any-hover: hover){:host(:hover) .button-native{opacity:0.5}:host(.segment-button-checked:hover) .button-native{opacity:1}}:host(.in-segment-color){background:none;color:var(--ion-text-color, #000)}:host(.in-segment-color) .segment-button-indicator-background{background:var(--ion-color-step-350, var(--ion-background-color, #fff))}@media (any-hover: hover){:host(.in-segment-color:hover) .button-native,:host(.in-segment-color.segment-button-checked:hover) .button-native{color:var(--ion-text-color, #000)}}:host(.in-toolbar:not(.in-segment-color)){--background-checked:var(--ion-toolbar-segment-background-checked, none);--color:var(--ion-toolbar-segment-color, var(--ion-toolbar-color), initial);--color-checked:var(--ion-toolbar-segment-color-checked, var(--ion-toolbar-color), initial);--indicator-color:var(--ion-toolbar-segment-indicator-color, var(--ion-color-step-350, var(--ion-background-color, #fff)))}:host(.in-toolbar-color) .segment-button-indicator-background{background:#fff}:host(.in-toolbar-color:not(.in-segment-color)) .button-native{color:var(--ion-color-contrast)}:host(.in-toolbar-color.segment-button-checked:not(.in-segment-color)) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.in-toolbar-color:not(.in-segment-color):hover) .button-native{color:var(--ion-color-contrast)}:host(.in-toolbar-color.segment-button-checked:not(.in-segment-color):hover) .button-native{color:var(--ion-color-base)}}\";\n\nconst segmentButtonMdCss = \":host{--color:initial;--color-hover:var(--color);--color-checked:var(--color);--color-disabled:var(--color);--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-direction:column;flex-direction:column;height:auto;background:var(--background);color:var(--color);text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none;cursor:pointer}.button-native{border-radius:0;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;margin-left:var(--margin-start);margin-right:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;min-width:inherit;max-width:inherit;height:auto;min-height:inherit;max-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:none;outline:none;background:transparent;contain:content;pointer-events:none;overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:inherit;flex-flow:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}:host(.segment-button-checked){background:var(--background-checked);color:var(--color-checked)}:host(.segment-button-disabled){cursor:default;pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(:focus){outline:none}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.segment-button-checked:hover) .button-native{color:var(--color-checked)}}::slotted(ion-icon){-ms-flex-negative:0;flex-shrink:0;-ms-flex-order:-1;order:-1;pointer-events:none}::slotted(ion-label){display:block;-ms-flex-item-align:center;align-self:center;line-height:22px;text-overflow:ellipsis;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host(.segment-button-layout-icon-top) .button-native{-ms-flex-direction:column;flex-direction:column}:host(.segment-button-layout-icon-start) .button-native{-ms-flex-direction:row;flex-direction:row}:host(.segment-button-layout-icon-end) .button-native{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.segment-button-layout-icon-bottom) .button-native{-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.segment-button-layout-icon-hide) ::slotted(ion-icon){display:none}:host(.segment-button-layout-label-hide) ::slotted(ion-label){display:none}ion-ripple-effect{color:var(--ripple-color, var(--color-checked))}.segment-button-indicator{-webkit-transform-origin:left;transform-origin:left;position:absolute;opacity:0;-webkit-box-sizing:border-box;box-sizing:border-box;will-change:transform, opacity;pointer-events:none}.segment-button-indicator-background{width:100%;height:var(--indicator-height);-webkit-transform:var(--indicator-transform);transform:var(--indicator-transform);-webkit-box-shadow:var(--indicator-box-shadow);box-shadow:var(--indicator-box-shadow);pointer-events:none}.segment-button-indicator-animated{-webkit-transition:var(--indicator-transition);transition:var(--indicator-transition)}:host(.segment-button-checked) .segment-button-indicator{opacity:1}@media (prefers-reduced-motion: reduce){.segment-button-indicator-background{-webkit-transform:none;transform:none}.segment-button-indicator-animated{-webkit-transition:none;transition:none}}:host{--background:none;--background-checked:none;--background-hover:var(--color-checked);--background-focused:var(--color-checked);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04;--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--color-checked:var(--ion-color-primary, #3880ff);--indicator-box-shadow:none;--indicator-color:var(--color-checked);--indicator-height:2px;--indicator-transition:transform 250ms cubic-bezier(0.4, 0, 0.2, 1);--indicator-transform:none;--padding-top:0;--padding-end:16px;--padding-bottom:0;--padding-start:16px;--transition:color 0.15s linear 0s, opacity 0.15s linear 0s;min-width:90px;max-width:360px;min-height:48px;border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);font-size:14px;font-weight:500;letter-spacing:0.06em;line-height:40px;text-transform:uppercase}:host(.segment-button-disabled){opacity:0.3}:host(.in-segment-color){background:none;color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6)}:host(.in-segment-color) ion-ripple-effect{color:var(--ion-color-base)}:host(.in-segment-color) .segment-button-indicator-background{background:var(--ion-color-base)}:host(.in-segment-color.segment-button-checked) .button-native{color:var(--ion-color-base)}:host(.in-segment-color.ion-focused) .button-native::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.in-segment-color:hover) .button-native{color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6)}:host(.in-segment-color:hover) .button-native::after{background:var(--ion-color-base)}:host(.in-segment-color.segment-button-checked:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-segment-color)){--background:var(--ion-toolbar-segment-background, none);--background-checked:var(--ion-toolbar-segment-background-checked, none);--color:var(--ion-toolbar-segment-color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.6));--color-checked:var(--ion-toolbar-segment-color-checked, var(--ion-color-primary, #3880ff));--indicator-color:var(--ion-toolbar-segment-color-checked, var(--color-checked))}:host(.in-toolbar-color:not(.in-segment-color)) .button-native{color:rgba(var(--ion-color-contrast-rgb), 0.6)}:host(.in-toolbar-color.segment-button-checked:not(.in-segment-color)) .button-native{color:var(--ion-color-contrast)}@media (any-hover: hover){:host(.in-toolbar-color:not(.in-segment-color)) .button-native::after{background:var(--ion-color-contrast)}}::slotted(ion-icon){margin-top:12px;margin-bottom:12px;font-size:24px}::slotted(ion-label){margin-top:12px;margin-bottom:12px}:host(.segment-button-layout-icon-top) ::slotted(ion-label),:host(.segment-button-layout-icon-bottom) ::slotted(ion-icon){margin-top:0}:host(.segment-button-layout-icon-top) ::slotted(ion-icon),:host(.segment-button-layout-icon-bottom) ::slotted(ion-label){margin-bottom:0}:host(.segment-button-layout-icon-start) ::slotted(ion-label){margin-left:8px;margin-right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.segment-button-layout-icon-start) ::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:0;margin-inline-end:0}}:host(.segment-button-layout-icon-end) ::slotted(ion-label){margin-left:0;margin-right:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.segment-button-layout-icon-end) ::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.segment-button-has-icon-only) ::slotted(ion-icon){margin-top:12px;margin-bottom:12px}:host(.segment-button-has-label-only) ::slotted(ion-label){margin-top:12px;margin-bottom:12px}.segment-button-indicator{left:0;right:0;bottom:0}.segment-button-indicator-background{background:var(--indicator-color)}:host(.in-toolbar:not(.in-segment-color)) .segment-button-indicator-background{background:var(--ion-toolbar-segment-indicator-color, var(--indicator-color))}:host(.in-toolbar-color:not(.in-segment-color)) .segment-button-indicator-background{background:var(--ion-color-contrast)}\";\n\nlet ids = 0;\nconst SegmentButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.segmentEl = null;\n this.checked = false;\n /**\n * If `true`, the user cannot interact with the segment button.\n */\n this.disabled = false;\n /**\n * Set the layout of the text and icon in the segment.\n */\n this.layout = 'icon-top';\n /**\n * The type of the button.\n */\n this.type = 'button';\n /**\n * The value of the segment button.\n */\n this.value = 'ion-sb-' + ids++;\n this.updateStyle = () => {\n forceUpdate(this);\n };\n this.updateState = () => {\n if (this.segmentEl) {\n this.checked = this.segmentEl.value === this.value;\n }\n };\n }\n connectedCallback() {\n const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));\n if (segmentEl) {\n this.updateState();\n addEventListener(segmentEl, 'ionSelect', this.updateState);\n addEventListener(segmentEl, 'ionStyle', this.updateStyle);\n }\n }\n disconnectedCallback() {\n const segmentEl = this.segmentEl;\n if (segmentEl) {\n removeEventListener(segmentEl, 'ionSelect', this.updateState);\n removeEventListener(segmentEl, 'ionStyle', this.updateStyle);\n this.segmentEl = null;\n }\n }\n get hasLabel() {\n return !!this.el.querySelector('ion-label');\n }\n get hasIcon() {\n return !!this.el.querySelector('ion-icon');\n }\n get tabIndex() {\n return this.checked && !this.disabled ? 0 : -1;\n }\n render() {\n const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl, tabIndex } = this;\n const mode = getIonMode(this);\n const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;\n return (h(Host, { role: \"tab\", \"aria-selected\": checked ? 'true' : 'false', \"aria-disabled\": disabled ? 'true' : null, tabIndex: tabIndex, class: {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'in-segment': hostContext('ion-segment', this.el),\n 'in-segment-color': hasSegmentColor(),\n 'segment-button-has-label': hasLabel,\n 'segment-button-has-icon': hasIcon,\n 'segment-button-has-label-only': hasLabel && !hasIcon,\n 'segment-button-has-icon-only': hasIcon && !hasLabel,\n 'segment-button-disabled': disabled,\n 'segment-button-checked': checked,\n [`segment-button-layout-${layout}`]: true,\n 'ion-activatable': true,\n 'ion-activatable-instant': true,\n 'ion-focusable': true,\n } }, h(\"button\", { type: type, tabIndex: -1, class: \"button-native\", part: \"native\", disabled: disabled }, h(\"span\", { class: \"button-inner\" }, h(\"slot\", null)), mode === 'md' && h(\"ion-ripple-effect\", null)), h(\"div\", { part: \"indicator\", class: {\n 'segment-button-indicator': true,\n 'segment-button-indicator-animated': true,\n } }, h(\"div\", { part: \"indicator-background\", class: \"segment-button-indicator-background\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: segmentButtonIosCss,\n md: segmentButtonMdCss\n }; }\n}, [33, \"ion-segment-button\", {\n \"disabled\": [4],\n \"layout\": [1],\n \"type\": [1],\n \"value\": [1],\n \"checked\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-segment-button\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-segment-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SegmentButton);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonSegmentButton = SegmentButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSegmentButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { writeTask } from '@stencil/core/internal/client';\nimport { c as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic.js';\nimport { createGesture } from './index2.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: (ev) => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: (ev) => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n },\n });\n};\n\nexport { createButtonActiveGesture as c };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, readTask, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createButtonActiveGesture } from './button-active.js';\nimport { B as BACKDROP, j as isCancel, e as present, d as prepareOverlay, f as dismiss, g as eventMethod, s as safeCall } from './overlays.js';\nimport { g as getClassMap } from './theme.js';\nimport { c as createAnimation } from './animation.js';\nimport { d as defineCustomElement$3 } from './backdrop.js';\nimport { d as defineCustomElement$2 } from './icon.js';\nimport { d as defineCustomElement$1 } from './ripple-effect.js';\n\n/**\n * iOS Action Sheet Enter Animation\n */\nconst iosEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation\n .addElement(baseEl.querySelector('.action-sheet-wrapper'))\n .fromTo('transform', 'translateY(100%)', 'translateY(0%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(400)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Action Sheet Leave Animation\n */\nconst iosLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation\n .addElement(baseEl.querySelector('.action-sheet-wrapper'))\n .fromTo('transform', 'translateY(0%)', 'translateY(100%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(450)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * MD Action Sheet Enter Animation\n */\nconst mdEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation\n .addElement(baseEl.querySelector('.action-sheet-wrapper'))\n .fromTo('transform', 'translateY(100%)', 'translateY(0%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(400)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * MD Action Sheet Leave Animation\n */\nconst mdLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation\n .addElement(baseEl.querySelector('.action-sheet-wrapper'))\n .fromTo('transform', 'translateY(0%)', 'translateY(100%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(450)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst actionSheetIosCss = \".sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:100%;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:100%}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color, #fff));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-400, #999999);text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{margin-left:auto;margin-right:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:var(--ion-safe-area-bottom, 0)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-wrapper.sc-ion-action-sheet-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.action-sheet-container.sc-ion-action-sheet-ios{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-container.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{padding-left:10px;padding-right:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, #999999));font-size:13px;font-weight:400;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-title.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:13px;font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{padding-left:18px;padding-right:18px;padding-top:18px;padding-bottom:18px;height:56px;font-size:20px;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:18px;padding-inline-start:18px;-webkit-padding-end:18px;padding-inline-end:18px}}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{margin-right:0.3em;font-size:28px;pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #eb445a)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #eb445a)}}\";\n\nconst actionSheetMdCss = \".sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:100%;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:100%}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, #262626);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{margin-left:auto;margin-right:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-wrapper.sc-ion-action-sheet-md{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.action-sheet-title.sc-ion-action-sheet-md{padding-left:16px;padding-right:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:16px;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-title.sc-ion-action-sheet-md{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:14px}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;position:relative;height:52px;font-size:16px;text-align:start;contain:strict;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-md{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.action-sheet-icon.sc-ion-action-sheet-md{margin-left:0;margin-right:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:24px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-icon.sc-ion-action-sheet-md{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px}}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}\";\n\nconst ActionSheet = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = createEvent(this, \"ionActionSheetDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionActionSheetWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionActionSheetWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionActionSheetDidDismiss\", 7);\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * An array of buttons for the action sheet.\n */\n this.buttons = [];\n /**\n * If `true`, the action sheet will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, the action sheet will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the action sheet will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, BACKDROP);\n };\n this.dispatchCancelHandler = (ev) => {\n const role = ev.detail.role;\n if (isCancel(role)) {\n const cancelButton = this.getButtons().find((b) => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n /**\n * Present the action sheet overlay after it has been created.\n */\n present() {\n return present(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation);\n }\n connectedCallback() {\n prepareOverlay(this.el);\n }\n /**\n * Dismiss the action sheet overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the action sheet.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the action sheet.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n return dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation, mdLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the action sheet did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionActionSheetDidDismiss');\n }\n /**\n * Returns a promise that resolves when the action sheet will dismiss.\n *\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionActionSheetWillDismiss');\n }\n async buttonClick(button) {\n const role = button.role;\n if (isCancel(role)) {\n return this.dismiss(button.data, role);\n }\n const shouldDismiss = await this.callButtonHandler(button);\n if (shouldDismiss) {\n return this.dismiss(button.data, button.role);\n }\n return Promise.resolve();\n }\n async callButtonHandler(button) {\n if (button) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n const rtn = await safeCall(button.handler);\n if (rtn === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n }\n return true;\n }\n getButtons() {\n return this.buttons.map((b) => {\n return typeof b === 'string' ? { text: b } : b;\n });\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n componentDidLoad() {\n /**\n * Do not create gesture if:\n * 1. A gesture already exists\n * 2. App is running in MD mode\n * 3. A wrapper ref does not exist\n */\n const { groupEl, wrapperEl } = this;\n if (this.gesture || getIonMode(this) === 'md' || !wrapperEl || !groupEl) {\n return;\n }\n readTask(() => {\n const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;\n if (!isScrollable) {\n this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));\n this.gesture.enable(true);\n }\n });\n }\n render() {\n const { header, htmlAttributes, overlayIndex } = this;\n const mode = getIonMode(this);\n const allButtons = this.getButtons();\n const cancelButton = allButtons.find((b) => b.role === 'cancel');\n const buttons = allButtons.filter((b) => b.role !== 'cancel');\n const headerID = `action-sheet-${overlayIndex}-header`;\n return (h(Host, Object.assign({ role: \"dialog\", \"aria-modal\": \"true\", \"aria-labelledby\": header !== undefined ? headerID : null, tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${20000 + this.overlayIndex}`,\n }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h(\"ion-backdrop\", { tappable: this.backdropDismiss }), h(\"div\", { tabindex: \"0\" }), h(\"div\", { class: \"action-sheet-wrapper ion-overlay-wrapper\", ref: (el) => (this.wrapperEl = el) }, h(\"div\", { class: \"action-sheet-container\" }, h(\"div\", { class: \"action-sheet-group\", ref: (el) => (this.groupEl = el) }, header !== undefined && (h(\"div\", { id: headerID, class: {\n 'action-sheet-title': true,\n 'action-sheet-has-sub-title': this.subHeader !== undefined,\n } }, header, this.subHeader && h(\"div\", { class: \"action-sheet-sub-title\" }, this.subHeader))), buttons.map((b) => (h(\"button\", { type: \"button\", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b) }, h(\"span\", { class: \"action-sheet-button-inner\" }, b.icon && h(\"ion-icon\", { icon: b.icon, lazy: false, class: \"action-sheet-icon\" }), b.text), mode === 'md' && h(\"ion-ripple-effect\", null))))), cancelButton && (h(\"div\", { class: \"action-sheet-group action-sheet-group-cancel\" }, h(\"button\", { type: \"button\", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }, h(\"span\", { class: \"action-sheet-button-inner\" }, cancelButton.icon && h(\"ion-icon\", { icon: cancelButton.icon, lazy: false, class: \"action-sheet-icon\" }), cancelButton.text), mode === 'md' && h(\"ion-ripple-effect\", null)))))), h(\"div\", { tabindex: \"0\" })));\n }\n get el() { return this; }\n static get style() { return {\n ios: actionSheetIosCss,\n md: actionSheetMdCss\n }; }\n}, [34, \"ion-action-sheet\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"buttons\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"header\": [1],\n \"subHeader\": [1, \"sub-header\"],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n }]);\nconst buttonClass = (button) => {\n return Object.assign({ 'action-sheet-button': true, 'ion-activatable': true, 'ion-focusable': true, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-action-sheet\", \"ion-backdrop\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-action-sheet\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ActionSheet);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { ActionSheet as A, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createButtonActiveGesture } from './button-active.js';\nimport { B as BACKDROP, j as isCancel, d as prepareOverlay, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays.js';\nimport { s as sanitizeDOMString } from './index3.js';\nimport { g as getClassMap } from './theme.js';\nimport { c as createAnimation } from './animation.js';\nimport { d as defineCustomElement$2 } from './backdrop.js';\nimport { d as defineCustomElement$1 } from './ripple-effect.js';\n\n/**\n * iOS Alert Enter Animation\n */\nconst iosEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([\n { offset: 0, opacity: '0.01', transform: 'scale(1.1)' },\n { offset: 1, opacity: '1', transform: 'scale(1)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Alert Leave Animation\n */\nconst iosLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([\n { offset: 0, opacity: 0.99, transform: 'scale(1)' },\n { offset: 1, opacity: 0, transform: 'scale(0.9)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Alert Enter Animation\n */\nconst mdEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([\n { offset: 0, opacity: '0.01', transform: 'scale(0.9)' },\n { offset: 1, opacity: '1', transform: 'scale(1)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(150)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Alert Leave Animation\n */\nconst mdLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).fromTo('opacity', 0.99, 0);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(150)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst alertIosCss = \".sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:14px;line-height:20px;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, #e6e6e6)}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:strict}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--max-width:270px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:14px}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{padding-left:16px;padding-right:16px;padding-top:12px;padding-bottom:7px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-head.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:17px;font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, #666666);font-size:14px}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:13px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:4px;margin-top:10px;padding-left:6px;padding-right:6px;padding-top:6px;padding-bottom:6px;border:0.55px solid var(--ion-color-step-250, #bfbfbf);background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-input.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-padding-end:6px;padding-inline-end:6px}}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{height:44px}.alert-radio-label.sc-ion-alert-ios{padding-left:13px;padding-right:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-radio-label.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px}}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #3880ff)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{left:7px;top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #3880ff)}[dir=rtl].sc-ion-alert-ios [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios,[dir=rtl].sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios,[dir=rtl] .sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{left:unset;right:unset;right:7px}.alert-checkbox-label.sc-ion-alert-ios{padding-left:13px;padding-right:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-label.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px}}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-left:16px;margin-right:6px;margin-top:10px;margin-bottom:10px;position:relative;width:24px;height:24px;border-width:1px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-icon.sc-ion-alert-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #3880ff);background-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{left:9px;top:4px;position:absolute;width:5px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:1px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[dir=rtl].sc-ion-alert-ios [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios,[dir=rtl].sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios,[dir=rtl] .sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{left:unset;right:unset;right:9px}.alert-button-group.sc-ion-alert-ios{margin-right:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button-group.sc-ion-alert-ios{margin-right:unset;-webkit-margin-end:-0.55px;margin-inline-end:-0.55px}}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:44px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #3880ff);font-size:17px;overflow:hidden}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child,[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #eb445a)}\";\n\nconst alertMdCss = \".sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:14px;line-height:20px;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, #e6e6e6)}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:strict}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:14px}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{padding-left:23px;padding-right:23px;padding-top:20px;padding-bottom:15px;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-head.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px}}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:20px;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:16px}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{padding-left:24px;padding-right:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, #737373)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px}}.alert-message.sc-ion-alert-md{max-height:266px;font-size:16px}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, #d9d9d9);color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #3880ff)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;max-height:266px;border-top:1px solid var(--ion-color-step-150, #d9d9d9);border-bottom:1px solid var(--ion-color-step-150, #d9d9d9);overflow:auto}.alert-tappable.sc-ion-alert-md{position:relative;height:48px;overflow:hidden}.alert-radio-label.sc-ion-alert-md{padding-left:52px;padding-right:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, #262626);font-size:16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-radio-label.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px}}.alert-radio-icon.sc-ion-alert-md{left:26px;top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, #737373)}[dir=rtl].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-radio-icon.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-radio-icon.sc-ion-alert-md{left:unset;right:unset;right:26px}.alert-radio-inner.sc-ion-alert-md{left:3px;top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #3880ff)}[dir=rtl].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-radio-inner.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-radio-inner.sc-ion-alert-md{left:unset;right:unset;right:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, #262626)}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-left:53px;padding-right:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, #262626);font-size:16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-label.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px}}.alert-checkbox-icon.sc-ion-alert-md{left:26px;top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, #737373);contain:strict}[dir=rtl].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-checkbox-icon.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-checkbox-icon.sc-ion-alert-md{left:unset;right:unset;right:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #3880ff);background-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{left:3px;top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[dir=rtl].sc-ion-alert-md [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{left:unset;right:unset;right:3px}.alert-button-group.sc-ion-alert-md{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button-group.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.alert-button.sc-ion-alert-md{border-radius:2px;margin-left:0;margin-right:8px;margin-top:0;margin-bottom:0;padding-left:10px;padding-right:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #3880ff);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button.sc-ion-alert-md{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}\";\n\nconst Alert = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = createEvent(this, \"ionAlertDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionAlertWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionAlertWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionAlertDidDismiss\", 7);\n this.processedInputs = [];\n this.processedButtons = [];\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * Array of buttons to be added to the alert.\n */\n this.buttons = [];\n /**\n * Array of input to show in the alert.\n */\n this.inputs = [];\n /**\n * If `true`, the alert will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, the alert will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the alert will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, BACKDROP);\n };\n this.dispatchCancelHandler = (ev) => {\n const role = ev.detail.role;\n if (isCancel(role)) {\n const cancelButton = this.processedButtons.find((b) => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n onKeydown(ev) {\n const inputTypes = new Set(this.processedInputs.map((i) => i.type));\n // The only inputs we want to navigate between using arrow keys are the radios\n // ignore the keydown event if it is not on a radio button\n if (!inputTypes.has('radio') ||\n (ev.target && !this.el.contains(ev.target)) ||\n ev.target.classList.contains('alert-button')) {\n return;\n }\n // Get all radios inside of the radio group and then\n // filter out disabled radios since we need to skip those\n const query = this.el.querySelectorAll('.alert-radio');\n const radios = Array.from(query).filter((radio) => !radio.disabled);\n // The focused radio is the one that shares the same id as\n // the event target\n const index = radios.findIndex((radio) => radio.id === ev.target.id);\n // We need to know what the next radio element should\n // be in order to change the focus\n let nextEl;\n // If hitting arrow down or arrow right, move to the next radio\n // If we're on the last radio, move to the first radio\n if (['ArrowDown', 'ArrowRight'].includes(ev.code)) {\n nextEl = index === radios.length - 1 ? radios[0] : radios[index + 1];\n }\n // If hitting arrow up or arrow left, move to the previous radio\n // If we're on the first radio, move to the last radio\n if (['ArrowUp', 'ArrowLeft'].includes(ev.code)) {\n nextEl = index === 0 ? radios[radios.length - 1] : radios[index - 1];\n }\n if (nextEl && radios.includes(nextEl)) {\n const nextProcessed = this.processedInputs.find((input) => input.id === (nextEl === null || nextEl === void 0 ? void 0 : nextEl.id));\n if (nextProcessed) {\n this.rbClick(nextProcessed);\n nextEl.focus();\n }\n }\n }\n buttonsChanged() {\n const buttons = this.buttons;\n this.processedButtons = buttons.map((btn) => {\n return typeof btn === 'string' ? { text: btn, role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined } : btn;\n });\n }\n inputsChanged() {\n const inputs = this.inputs;\n // Get the first input that is not disabled and the checked one\n // If an enabled checked input exists, set it to be the focusable input\n // otherwise we default to focus the first input\n // This will only be used when the input is type radio\n const first = inputs.find((input) => !input.disabled);\n const checked = inputs.find((input) => input.checked && !input.disabled);\n const focusable = checked || first;\n // An alert can be created with several different inputs. Radios,\n // checkboxes and inputs are all accepted, but they cannot be mixed.\n const inputTypes = new Set(inputs.map((i) => i.type));\n if (inputTypes.has('checkbox') && inputTypes.has('radio')) {\n console.warn(`Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);\n }\n this.inputType = inputTypes.values().next().value;\n this.processedInputs = inputs.map((i, index) => {\n var _a;\n return ({\n type: i.type || 'text',\n name: i.name || `${index}`,\n placeholder: i.placeholder || '',\n value: i.value,\n label: i.label,\n checked: !!i.checked,\n disabled: !!i.disabled,\n id: i.id || `alert-input-${this.overlayIndex}-${index}`,\n handler: i.handler,\n min: i.min,\n max: i.max,\n cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',\n attributes: i.attributes || {},\n tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,\n });\n });\n }\n connectedCallback() {\n prepareOverlay(this.el);\n }\n componentWillLoad() {\n this.inputsChanged();\n this.buttonsChanged();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n componentDidLoad() {\n /**\n * Do not create gesture if:\n * 1. A gesture already exists\n * 2. App is running in MD mode\n * 3. A wrapper ref does not exist\n */\n if (this.gesture || getIonMode(this) === 'md' || !this.wrapperEl) {\n return;\n }\n this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));\n this.gesture.enable(true);\n }\n /**\n * Present the alert overlay after it has been created.\n */\n present() {\n return present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);\n }\n /**\n * Dismiss the alert overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the alert.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the alert.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n return dismiss(this, data, role, 'alertLeave', iosLeaveAnimation, mdLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the alert did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionAlertDidDismiss');\n }\n /**\n * Returns a promise that resolves when the alert will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionAlertWillDismiss');\n }\n rbClick(selectedInput) {\n for (const input of this.processedInputs) {\n input.checked = input === selectedInput;\n input.tabindex = input === selectedInput ? 0 : -1;\n }\n this.activeId = selectedInput.id;\n safeCall(selectedInput.handler, selectedInput);\n forceUpdate(this);\n }\n cbClick(selectedInput) {\n selectedInput.checked = !selectedInput.checked;\n safeCall(selectedInput.handler, selectedInput);\n forceUpdate(this);\n }\n async buttonClick(button) {\n const role = button.role;\n const values = this.getValues();\n if (isCancel(role)) {\n return this.dismiss({ values }, role);\n }\n const returnData = await this.callButtonHandler(button, values);\n if (returnData !== false) {\n return this.dismiss(Object.assign({ values }, returnData), button.role);\n }\n return false;\n }\n async callButtonHandler(button, data) {\n if (button === null || button === void 0 ? void 0 : button.handler) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n const returnData = await safeCall(button.handler, data);\n if (returnData === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n if (typeof returnData === 'object') {\n return returnData;\n }\n }\n return {};\n }\n getValues() {\n if (this.processedInputs.length === 0) {\n // this is an alert without any options/inputs at all\n return undefined;\n }\n if (this.inputType === 'radio') {\n // this is an alert with radio buttons (single value select)\n // return the one value which is checked, otherwise undefined\n const checkedInput = this.processedInputs.find((i) => !!i.checked);\n return checkedInput ? checkedInput.value : undefined;\n }\n if (this.inputType === 'checkbox') {\n // this is an alert with checkboxes (multiple value select)\n // return an array of all the checked values\n return this.processedInputs.filter((i) => i.checked).map((i) => i.value);\n }\n // this is an alert with text inputs\n // return an object of all the values with the input name as the key\n const values = {};\n this.processedInputs.forEach((i) => {\n values[i.name] = i.value || '';\n });\n return values;\n }\n renderAlertInputs() {\n switch (this.inputType) {\n case 'checkbox':\n return this.renderCheckbox();\n case 'radio':\n return this.renderRadio();\n default:\n return this.renderInput();\n }\n }\n renderCheckbox() {\n const inputs = this.processedInputs;\n const mode = getIonMode(this);\n if (inputs.length === 0) {\n return null;\n }\n return (h(\"div\", { class: \"alert-checkbox-group\" }, inputs.map((i) => (h(\"button\", { type: \"button\", onClick: () => this.cbClick(i), \"aria-checked\": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: \"checkbox\", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, h(\"div\", { class: \"alert-button-inner\" }, h(\"div\", { class: \"alert-checkbox-icon\" }, h(\"div\", { class: \"alert-checkbox-inner\" })), h(\"div\", { class: \"alert-checkbox-label\" }, i.label)), mode === 'md' && h(\"ion-ripple-effect\", null))))));\n }\n renderRadio() {\n const inputs = this.processedInputs;\n if (inputs.length === 0) {\n return null;\n }\n return (h(\"div\", { class: \"alert-radio-group\", role: \"radiogroup\", \"aria-activedescendant\": this.activeId }, inputs.map((i) => (h(\"button\", { type: \"button\", onClick: () => this.rbClick(i), \"aria-checked\": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: \"radio\" }, h(\"div\", { class: \"alert-button-inner\" }, h(\"div\", { class: \"alert-radio-icon\" }, h(\"div\", { class: \"alert-radio-inner\" })), h(\"div\", { class: \"alert-radio-label\" }, i.label)))))));\n }\n renderInput() {\n const inputs = this.processedInputs;\n if (inputs.length === 0) {\n return null;\n }\n return (h(\"div\", { class: \"alert-input-group\" }, inputs.map((i) => {\n var _a, _b, _c, _d;\n if (i.type === 'textarea') {\n return (h(\"div\", { class: \"alert-input-wrapper\" }, h(\"textarea\", Object.assign({ placeholder: i.placeholder, value: i.value, id: i.id, tabIndex: i.tabindex }, i.attributes, { disabled: (_b = (_a = i.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : i.disabled, class: inputClass(i), onInput: (e) => {\n var _a;\n i.value = e.target.value;\n if ((_a = i.attributes) === null || _a === void 0 ? void 0 : _a.onInput) {\n i.attributes.onInput(e);\n }\n } }))));\n }\n else {\n return (h(\"div\", { class: \"alert-input-wrapper\" }, h(\"input\", Object.assign({ placeholder: i.placeholder, type: i.type, min: i.min, max: i.max, value: i.value, id: i.id, tabIndex: i.tabindex }, i.attributes, { disabled: (_d = (_c = i.attributes) === null || _c === void 0 ? void 0 : _c.disabled) !== null && _d !== void 0 ? _d : i.disabled, class: inputClass(i), onInput: (e) => {\n var _a;\n i.value = e.target.value;\n if ((_a = i.attributes) === null || _a === void 0 ? void 0 : _a.onInput) {\n i.attributes.onInput(e);\n }\n } }))));\n }\n })));\n }\n renderAlertButtons() {\n const buttons = this.processedButtons;\n const mode = getIonMode(this);\n const alertButtonGroupClass = {\n 'alert-button-group': true,\n 'alert-button-group-vertical': buttons.length > 2,\n };\n return (h(\"div\", { class: alertButtonGroupClass }, buttons.map((button) => (h(\"button\", { type: \"button\", id: button.id, class: buttonClass(button), tabIndex: 0, onClick: () => this.buttonClick(button) }, h(\"span\", { class: \"alert-button-inner\" }, button.text), mode === 'md' && h(\"ion-ripple-effect\", null))))));\n }\n render() {\n const { overlayIndex, header, subHeader, message, htmlAttributes } = this;\n const mode = getIonMode(this);\n const hdrId = `alert-${overlayIndex}-hdr`;\n const subHdrId = `alert-${overlayIndex}-sub-hdr`;\n const msgId = `alert-${overlayIndex}-msg`;\n const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';\n /**\n * If the header is defined, use that. Otherwise, fall back to the subHeader.\n * If neither is defined, don't set aria-labelledby.\n */\n const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;\n return (h(Host, Object.assign({ role: role, \"aria-modal\": \"true\", \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": message !== undefined ? msgId : null, tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${20000 + overlayIndex}`,\n }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h(\"ion-backdrop\", { tappable: this.backdropDismiss }), h(\"div\", { tabindex: \"0\" }), h(\"div\", { class: \"alert-wrapper ion-overlay-wrapper\", ref: (el) => (this.wrapperEl = el) }, h(\"div\", { class: \"alert-head\" }, header && (h(\"h2\", { id: hdrId, class: \"alert-title\" }, header)), subHeader && (h(\"h2\", { id: subHdrId, class: \"alert-sub-title\" }, subHeader))), h(\"div\", { id: msgId, class: \"alert-message\", innerHTML: sanitizeDOMString(message) }), this.renderAlertInputs(), this.renderAlertButtons()), h(\"div\", { tabindex: \"0\" })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"buttons\": [\"buttonsChanged\"],\n \"inputs\": [\"inputsChanged\"]\n }; }\n static get style() { return {\n ios: alertIosCss,\n md: alertMdCss\n }; }\n}, [34, \"ion-alert\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"header\": [1],\n \"subHeader\": [1, \"sub-header\"],\n \"message\": [1],\n \"buttons\": [16],\n \"inputs\": [1040],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n }, [[4, \"keydown\", \"onKeydown\"]]]);\nconst inputClass = (input) => {\n var _a, _b, _c;\n return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));\n};\nconst buttonClass = (button) => {\n return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-alert\", \"ion-backdrop\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-alert\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Alert);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { Alert as A, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { s as safeCall } from './overlays.js';\nimport { g as getClassMap } from './theme.js';\nimport { d as defineCustomElement$a } from './checkbox.js';\nimport { d as defineCustomElement$9 } from './icon.js';\nimport { d as defineCustomElement$8 } from './item.js';\nimport { d as defineCustomElement$7 } from './label.js';\nimport { d as defineCustomElement$6 } from './list.js';\nimport { d as defineCustomElement$5 } from './list-header.js';\nimport { d as defineCustomElement$4 } from './note.js';\nimport { d as defineCustomElement$3 } from './radio.js';\nimport { d as defineCustomElement$2 } from './radio-group.js';\nimport { d as defineCustomElement$1 } from './ripple-effect.js';\n\nconst selectPopoverIosCss = \".sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}\";\n\nconst selectPopoverMdCss = \".sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md{opacity:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08);--background-focused:var(--ion-color-primary, #3880ff);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #3880ff);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #3880ff)}\";\n\nconst SelectPopover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n /**\n * An array of options for the popover\n */\n this.options = [];\n }\n onSelect(ev) {\n this.setChecked(ev);\n this.callOptionHandler(ev);\n }\n findOptionFromEvent(ev) {\n const { options } = this;\n return options.find((o) => o.value === ev.target.value);\n }\n /**\n * When an option is selected we need to get the value(s)\n * of the selected option(s) and return it in the option\n * handler\n */\n callOptionHandler(ev) {\n const option = this.findOptionFromEvent(ev);\n const values = this.getValues(ev);\n if (option === null || option === void 0 ? void 0 : option.handler) {\n safeCall(option.handler, values);\n }\n }\n /**\n * This is required when selecting a radio that is already\n * selected because it will not trigger the ionChange event\n * but we still want to close the popover\n */\n rbClick(ev) {\n this.callOptionHandler(ev);\n }\n setChecked(ev) {\n const { multiple } = this;\n const option = this.findOptionFromEvent(ev);\n // this is a popover with checkboxes (multiple value select)\n // we need to set the checked value for this option\n if (multiple && option) {\n option.checked = ev.detail.checked;\n }\n }\n getValues(ev) {\n const { multiple, options } = this;\n if (multiple) {\n // this is a popover with checkboxes (multiple value select)\n // return an array of all the checked values\n return options.filter((o) => o.checked).map((o) => o.value);\n }\n // this is a popover with radio buttons (single value select)\n // return the value that was clicked, otherwise undefined\n const option = this.findOptionFromEvent(ev);\n return option ? option.value : undefined;\n }\n renderOptions(options) {\n const { multiple } = this;\n switch (multiple) {\n case true:\n return this.renderCheckboxOptions(options);\n default:\n return this.renderRadioOptions(options);\n }\n }\n renderCheckboxOptions(options) {\n return options.map((option) => (h(\"ion-item\", { class: getClassMap(option.cssClass) }, h(\"ion-checkbox\", { slot: \"start\", value: option.value, disabled: option.disabled, checked: option.checked }), h(\"ion-label\", null, option.text))));\n }\n renderRadioOptions(options) {\n const checked = options.filter((o) => o.checked).map((o) => o.value)[0];\n return (h(\"ion-radio-group\", { value: checked }, options.map((option) => (h(\"ion-item\", { class: getClassMap(option.cssClass) }, h(\"ion-label\", null, option.text), h(\"ion-radio\", { value: option.value, disabled: option.disabled, onClick: (ev) => this.rbClick(ev) }))))));\n }\n render() {\n const { header, message, options, subHeader } = this;\n const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;\n return (h(Host, { class: getIonMode(this) }, h(\"ion-list\", null, header !== undefined && h(\"ion-list-header\", null, header), hasSubHeaderOrMessage && (h(\"ion-item\", null, h(\"ion-label\", { class: \"ion-text-wrap\" }, subHeader !== undefined && h(\"h3\", null, subHeader), message !== undefined && h(\"p\", null, message)))), this.renderOptions(options))));\n }\n static get style() { return {\n ios: selectPopoverIosCss,\n md: selectPopoverMdCss\n }; }\n}, [34, \"ion-select-popover\", {\n \"header\": [1],\n \"subHeader\": [1, \"sub-header\"],\n \"message\": [1],\n \"multiple\": [4],\n \"options\": [16]\n }, [[0, \"ionChange\", \"onSelect\"]]]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-select-popover\", \"ion-checkbox\", \"ion-icon\", \"ion-item\", \"ion-label\", \"ion-list\", \"ion-list-header\", \"ion-note\", \"ion-radio\", \"ion-radio-group\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-select-popover\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SelectPopover);\n }\n break;\n case \"ion-checkbox\":\n if (!customElements.get(tagName)) {\n defineCustomElement$a();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$9();\n }\n break;\n case \"ion-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"ion-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"ion-list\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"ion-list-header\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"ion-note\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"ion-radio\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-radio-group\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$1();\n }\n break;\n } });\n}\n\nexport { SelectPopover as S, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { f as focusElement, k as findItemLabel, n as getAriaLabel, e as renderHiddenInput } from './helpers.js';\nimport { c as popoverController, b as actionSheetController, a as alertController } from './overlays.js';\nimport { h as hostContext } from './theme.js';\nimport { d as defineCustomElement$g } from './action-sheet.js';\nimport { d as defineCustomElement$f } from './alert.js';\nimport { d as defineCustomElement$e } from './backdrop.js';\nimport { d as defineCustomElement$d } from './checkbox.js';\nimport { d as defineCustomElement$c } from './icon.js';\nimport { d as defineCustomElement$b } from './item.js';\nimport { d as defineCustomElement$a } from './label.js';\nimport { d as defineCustomElement$9 } from './list.js';\nimport { d as defineCustomElement$8 } from './list-header.js';\nimport { d as defineCustomElement$7 } from './note.js';\nimport { d as defineCustomElement$6 } from './popover.js';\nimport { d as defineCustomElement$5 } from './radio.js';\nimport { d as defineCustomElement$4 } from './radio-group.js';\nimport { d as defineCustomElement$3 } from './ripple-effect.js';\nimport { d as defineCustomElement$2 } from './select-popover.js';\n\nconst watchForOptions = (containerEl, tagName, onChange) => {\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n const mutation = new MutationObserver((mutationList) => {\n onChange(getSelectedOption(mutationList, tagName));\n });\n mutation.observe(containerEl, {\n childList: true,\n subtree: true,\n });\n return mutation;\n};\nconst getSelectedOption = (mutationList, tagName) => {\n let newOption;\n mutationList.forEach((mut) => {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = 0; i < mut.addedNodes.length; i++) {\n newOption = findCheckedOption(mut.addedNodes[i], tagName) || newOption;\n }\n });\n return newOption;\n};\nconst findCheckedOption = (el, tagName) => {\n if (el.nodeType !== 1) {\n return undefined;\n }\n const options = el.tagName === tagName.toUpperCase() ? [el] : Array.from(el.querySelectorAll(tagName));\n return options.find((o) => o.value === el.value);\n};\n\nconst selectIosCss = \":host{--placeholder-color:currentColor;--placeholder-opacity:0.33;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.in-item){position:static;max-width:45%}:host(.select-disabled){opacity:0.4;pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{position:relative}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-icon-inner{left:5px;top:50%;margin-top:-2px;position:absolute;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:currentColor;pointer-events:none}[dir=rtl] .select-icon-inner,:host-context([dir=rtl]) .select-icon-inner{left:unset;right:unset;right:5px}:host{--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:20px}.select-icon{width:12px;height:18px;opacity:0.33}\";\n\nconst selectMdCss = \":host{--placeholder-color:currentColor;--placeholder-opacity:0.33;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.in-item){position:static;max-width:45%}:host(.select-disabled){opacity:0.4;pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{position:relative}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-icon-inner{left:5px;top:50%;margin-top:-2px;position:absolute;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:currentColor;pointer-events:none}[dir=rtl] .select-icon-inner,:host-context([dir=rtl]) .select-icon-inner{left:unset;right:unset;right:5px}:host{--padding-top:10px;--padding-end:0;--padding-bottom:10px;--padding-start:16px}.select-icon{width:19px;height:19px;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:0.55}:host-context(.item-label-stacked) .select-icon,:host-context(.item-label-floating:not(.item-fill-outline)) .select-icon,:host-context(.item-label-floating.item-fill-outline){-webkit-transform:translate3d(0, -9px, 0);transform:translate3d(0, -9px, 0)}:host-context(.item-has-focus) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host-context(.item-has-focus.item-label-stacked) .select-icon,:host-context(.item-has-focus.item-label-floating:not(.item-fill-outline)) .select-icon{-webkit-transform:translate3d(0, -9px, 0) rotate(180deg);transform:translate3d(0, -9px, 0) rotate(180deg)}:host-context(ion-item.ion-focused) .select-icon,:host-context(.item-has-focus) .select-icon{color:var(--highlight-color-focused);opacity:1}\";\n\nconst Select = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionCancel = createEvent(this, \"ionCancel\", 7);\n this.ionDismiss = createEvent(this, \"ionDismiss\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inputId = `ion-sel-${selectIds++}`;\n this.didInit = false;\n this.isExpanded = false;\n /**\n * If `true`, the user cannot interact with the select.\n */\n this.disabled = false;\n /**\n * The text to display on the cancel button.\n */\n this.cancelText = 'Cancel';\n /**\n * The text to display on the ok button.\n */\n this.okText = 'OK';\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the select can accept multiple values.\n */\n this.multiple = false;\n /**\n * The interface the select should use: `action-sheet`, `popover` or `alert`.\n */\n this.interface = 'alert';\n /**\n * Any additional options that the `alert`, `action-sheet` or `popover` interface\n * can take. See the [ion-alert docs](./alert), the\n * [ion-action-sheet docs](./action-sheet) and the\n * [ion-popover docs](./popover) for the\n * create options for each interface.\n *\n * Note: `interfaceOptions` will not override `inputs` or `buttons` with the `alert` interface.\n */\n this.interfaceOptions = {};\n this.onClick = (ev) => {\n this.setFocus();\n this.open(ev);\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n }\n styleChanged() {\n this.emitStyle();\n }\n valueChanged() {\n this.emitStyle();\n // TODO: FW-1160 - Remove the `didInit` property when ionChange behavior is changed in v7.\n if (this.didInit) {\n this.ionChange.emit({\n value: this.value,\n });\n }\n }\n async connectedCallback() {\n this.updateOverlayOptions();\n this.emitStyle();\n this.mutationO = watchForOptions(this.el, 'ion-select-option', async () => {\n this.updateOverlayOptions();\n });\n }\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n }\n componentDidLoad() {\n this.didInit = true;\n }\n /**\n * Open the select overlay. The overlay is either an alert, action sheet, or popover,\n * depending on the `interface` property on the `ion-select`.\n *\n * @param event The user interface event that called the open.\n */\n async open(event) {\n if (this.disabled || this.isExpanded) {\n return undefined;\n }\n this.isExpanded = true;\n const overlay = (this.overlay = await this.createOverlay(event));\n overlay.onDidDismiss().then(() => {\n this.overlay = undefined;\n this.isExpanded = false;\n this.ionDismiss.emit();\n this.setFocus();\n });\n await overlay.present();\n // focus selected option for popovers\n if (this.interface === 'popover') {\n let indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);\n indexOfSelected = indexOfSelected > -1 ? indexOfSelected : 0; // default to first option if nothing selected\n const selectedEl = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);\n if (selectedEl) {\n focusElement(selectedEl);\n }\n }\n return overlay;\n }\n createOverlay(ev) {\n let selectInterface = this.interface;\n if (selectInterface === 'action-sheet' && this.multiple) {\n console.warn(`Select interface cannot be \"${selectInterface}\" with a multi-value select. Using the \"alert\" interface instead.`);\n selectInterface = 'alert';\n }\n if (selectInterface === 'popover' && !ev) {\n console.warn(`Select interface cannot be a \"${selectInterface}\" without passing an event. Using the \"alert\" interface instead.`);\n selectInterface = 'alert';\n }\n if (selectInterface === 'action-sheet') {\n return this.openActionSheet();\n }\n if (selectInterface === 'popover') {\n return this.openPopover(ev);\n }\n return this.openAlert();\n }\n updateOverlayOptions() {\n const overlay = this.overlay;\n if (!overlay) {\n return;\n }\n const childOpts = this.childOpts;\n const value = this.value;\n switch (this.interface) {\n case 'action-sheet':\n overlay.buttons = this.createActionSheetButtons(childOpts, value);\n break;\n case 'popover':\n const popover = overlay.querySelector('ion-select-popover');\n if (popover) {\n popover.options = this.createPopoverOptions(childOpts, value);\n }\n break;\n case 'alert':\n const inputType = this.multiple ? 'checkbox' : 'radio';\n overlay.inputs = this.createAlertInputs(childOpts, inputType, value);\n break;\n }\n }\n createActionSheetButtons(data, selectValue) {\n const actionSheetButtons = data.map((option) => {\n const value = getOptionValue(option);\n // Remove hydrated before copying over classes\n const copyClasses = Array.from(option.classList)\n .filter((cls) => cls !== 'hydrated')\n .join(' ');\n const optClass = `${OPTION_CLASS} ${copyClasses}`;\n return {\n role: isOptionSelected(selectValue, value, this.compareWith) ? 'selected' : '',\n text: option.textContent,\n cssClass: optClass,\n handler: () => {\n this.value = value;\n },\n };\n });\n // Add \"cancel\" button\n actionSheetButtons.push({\n text: this.cancelText,\n role: 'cancel',\n handler: () => {\n this.ionCancel.emit();\n },\n });\n return actionSheetButtons;\n }\n createAlertInputs(data, inputType, selectValue) {\n const alertInputs = data.map((option) => {\n const value = getOptionValue(option);\n // Remove hydrated before copying over classes\n const copyClasses = Array.from(option.classList)\n .filter((cls) => cls !== 'hydrated')\n .join(' ');\n const optClass = `${OPTION_CLASS} ${copyClasses}`;\n return {\n type: inputType,\n cssClass: optClass,\n label: option.textContent || '',\n value,\n checked: isOptionSelected(selectValue, value, this.compareWith),\n disabled: option.disabled,\n };\n });\n return alertInputs;\n }\n createPopoverOptions(data, selectValue) {\n const popoverOptions = data.map((option) => {\n const value = getOptionValue(option);\n // Remove hydrated before copying over classes\n const copyClasses = Array.from(option.classList)\n .filter((cls) => cls !== 'hydrated')\n .join(' ');\n const optClass = `${OPTION_CLASS} ${copyClasses}`;\n return {\n text: option.textContent || '',\n cssClass: optClass,\n value,\n checked: isOptionSelected(selectValue, value, this.compareWith),\n disabled: option.disabled,\n handler: (selected) => {\n this.value = selected;\n if (!this.multiple) {\n this.close();\n }\n },\n };\n });\n return popoverOptions;\n }\n async openPopover(ev) {\n const interfaceOptions = this.interfaceOptions;\n const mode = getIonMode(this);\n const showBackdrop = mode === 'md' ? false : true;\n const multiple = this.multiple;\n const value = this.value;\n let event = ev;\n let size = 'auto';\n const item = this.el.closest('ion-item');\n // If the select is inside of an item containing a floating\n // or stacked label then the popover should take up the\n // full width of the item when it presents\n if (item && (item.classList.contains('item-label-floating') || item.classList.contains('item-label-stacked'))) {\n event = Object.assign(Object.assign({}, ev), { detail: {\n ionShadowTarget: item,\n } });\n size = 'cover';\n }\n const popoverOpts = Object.assign(Object.assign({ mode,\n event, alignment: 'center', size,\n showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {\n header: interfaceOptions.header,\n subHeader: interfaceOptions.subHeader,\n message: interfaceOptions.message,\n multiple,\n value,\n options: this.createPopoverOptions(this.childOpts, value),\n } });\n return popoverController.create(popoverOpts);\n }\n async openActionSheet() {\n const mode = getIonMode(this);\n const interfaceOptions = this.interfaceOptions;\n const actionSheetOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });\n return actionSheetController.create(actionSheetOpts);\n }\n async openAlert() {\n const label = this.getLabel();\n const labelText = label ? label.textContent : null;\n const interfaceOptions = this.interfaceOptions;\n const inputType = this.multiple ? 'checkbox' : 'radio';\n const mode = getIonMode(this);\n const alertOpts = Object.assign(Object.assign({ mode }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [\n {\n text: this.cancelText,\n role: 'cancel',\n handler: () => {\n this.ionCancel.emit();\n },\n },\n {\n text: this.okText,\n handler: (selectedValues) => {\n this.value = selectedValues;\n },\n },\n ], cssClass: [\n 'select-alert',\n interfaceOptions.cssClass,\n this.multiple ? 'multiple-select-alert' : 'single-select-alert',\n ] });\n return alertController.create(alertOpts);\n }\n /**\n * Close the select interface.\n */\n close() {\n if (!this.overlay) {\n return Promise.resolve(false);\n }\n return this.overlay.dismiss();\n }\n getLabel() {\n return findItemLabel(this.el);\n }\n hasValue() {\n return this.getText() !== '';\n }\n get childOpts() {\n return Array.from(this.el.querySelectorAll('ion-select-option'));\n }\n getText() {\n const selectedText = this.selectedText;\n if (selectedText != null && selectedText !== '') {\n return selectedText;\n }\n return generateText(this.childOpts, this.value, this.compareWith);\n }\n setFocus() {\n if (this.focusEl) {\n this.focusEl.focus();\n }\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n 'interactive-disabled': this.disabled,\n select: true,\n 'select-disabled': this.disabled,\n 'has-placeholder': this.placeholder !== undefined,\n 'has-value': this.hasValue(),\n 'has-focus': this.isExpanded,\n });\n }\n render() {\n const { disabled, el, inputId, isExpanded, name, placeholder, value } = this;\n const mode = getIonMode(this);\n const { labelText, labelId } = getAriaLabel(el, inputId);\n renderHiddenInput(true, el, name, parseValue(value), disabled);\n const displayValue = this.getText();\n let addPlaceholderClass = false;\n let selectText = displayValue;\n if (selectText === '' && placeholder !== undefined) {\n selectText = placeholder;\n addPlaceholderClass = true;\n }\n const selectTextClasses = {\n 'select-text': true,\n 'select-placeholder': addPlaceholderClass,\n };\n const textPart = addPlaceholderClass ? 'placeholder' : 'text';\n // If there is a label then we need to concatenate it with the\n // current value (or placeholder) and a comma so it separates\n // nicely when the screen reader announces it, otherwise just\n // announce the value / placeholder\n const displayLabel = labelText !== undefined ? (selectText !== '' ? `${selectText}, ${labelText}` : labelText) : selectText;\n return (h(Host, { onClick: this.onClick, role: \"button\", \"aria-haspopup\": \"listbox\", \"aria-disabled\": disabled ? 'true' : null, \"aria-label\": displayLabel, class: {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'select-disabled': disabled,\n 'select-expanded': isExpanded,\n } }, h(\"div\", { \"aria-hidden\": \"true\", class: selectTextClasses, part: textPart }, selectText), h(\"div\", { class: \"select-icon\", role: \"presentation\", part: \"icon\" }, h(\"div\", { class: \"select-icon-inner\" })), h(\"label\", { id: labelId }, displayLabel), h(\"button\", { type: \"button\", disabled: disabled, id: inputId, \"aria-labelledby\": labelId, \"aria-haspopup\": \"listbox\", \"aria-expanded\": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"disabled\": [\"styleChanged\"],\n \"placeholder\": [\"styleChanged\"],\n \"isExpanded\": [\"styleChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: selectIosCss,\n md: selectMdCss\n }; }\n}, [33, \"ion-select\", {\n \"disabled\": [4],\n \"cancelText\": [1, \"cancel-text\"],\n \"okText\": [1, \"ok-text\"],\n \"placeholder\": [1],\n \"name\": [1],\n \"selectedText\": [1, \"selected-text\"],\n \"multiple\": [4],\n \"interface\": [1],\n \"interfaceOptions\": [8, \"interface-options\"],\n \"compareWith\": [1, \"compare-with\"],\n \"value\": [1032],\n \"isExpanded\": [32],\n \"open\": [64]\n }]);\nconst isOptionSelected = (currentValue, compareValue, compareWith) => {\n if (currentValue === undefined) {\n return false;\n }\n if (Array.isArray(currentValue)) {\n return currentValue.some((val) => compareOptions(val, compareValue, compareWith));\n }\n else {\n return compareOptions(currentValue, compareValue, compareWith);\n }\n};\nconst getOptionValue = (el) => {\n const value = el.value;\n return value === undefined ? el.textContent || '' : value;\n};\nconst parseValue = (value) => {\n if (value == null) {\n return undefined;\n }\n if (Array.isArray(value)) {\n return value.join(',');\n }\n return value.toString();\n};\nconst compareOptions = (currentValue, compareValue, compareWith) => {\n if (typeof compareWith === 'function') {\n return compareWith(currentValue, compareValue);\n }\n else if (typeof compareWith === 'string') {\n return currentValue[compareWith] === compareValue[compareWith];\n }\n else {\n return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;\n }\n};\nconst generateText = (opts, value, compareWith) => {\n if (value === undefined) {\n return '';\n }\n if (Array.isArray(value)) {\n return value\n .map((v) => textForValue(opts, v, compareWith))\n .filter((opt) => opt !== null)\n .join(', ');\n }\n else {\n return textForValue(opts, value, compareWith) || '';\n }\n};\nconst textForValue = (opts, value, compareWith) => {\n const selectOpt = opts.find((opt) => {\n return compareOptions(value, getOptionValue(opt), compareWith);\n });\n return selectOpt ? selectOpt.textContent : null;\n};\nlet selectIds = 0;\nconst OPTION_CLASS = 'select-interface-option';\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-select\", \"ion-action-sheet\", \"ion-alert\", \"ion-backdrop\", \"ion-checkbox\", \"ion-icon\", \"ion-item\", \"ion-label\", \"ion-list\", \"ion-list-header\", \"ion-note\", \"ion-popover\", \"ion-radio\", \"ion-radio-group\", \"ion-ripple-effect\", \"ion-select-popover\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-select\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Select);\n }\n break;\n case \"ion-action-sheet\":\n if (!customElements.get(tagName)) {\n defineCustomElement$g();\n }\n break;\n case \"ion-alert\":\n if (!customElements.get(tagName)) {\n defineCustomElement$f();\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$e();\n }\n break;\n case \"ion-checkbox\":\n if (!customElements.get(tagName)) {\n defineCustomElement$d();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$c();\n }\n break;\n case \"ion-item\":\n if (!customElements.get(tagName)) {\n defineCustomElement$b();\n }\n break;\n case \"ion-label\":\n if (!customElements.get(tagName)) {\n defineCustomElement$a();\n }\n break;\n case \"ion-list\":\n if (!customElements.get(tagName)) {\n defineCustomElement$9();\n }\n break;\n case \"ion-list-header\":\n if (!customElements.get(tagName)) {\n defineCustomElement$8();\n }\n break;\n case \"ion-note\":\n if (!customElements.get(tagName)) {\n defineCustomElement$7();\n }\n break;\n case \"ion-popover\":\n if (!customElements.get(tagName)) {\n defineCustomElement$6();\n }\n break;\n case \"ion-radio\":\n if (!customElements.get(tagName)) {\n defineCustomElement$5();\n }\n break;\n case \"ion-radio-group\":\n if (!customElements.get(tagName)) {\n defineCustomElement$4();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-select-popover\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonSelect = Select;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSelect, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst selectOptionCss = \":host{display:none}\";\n\nconst SelectOption = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.inputId = `ion-selopt-${selectOptionIds++}`;\n /**\n * If `true`, the user cannot interact with the select option. This property does not apply when `interface=\"action-sheet\"` as `ion-action-sheet` does not allow for disabled buttons.\n */\n this.disabled = false;\n }\n render() {\n return h(Host, { role: \"option\", id: this.inputId, class: getIonMode(this) });\n }\n get el() { return this; }\n static get style() { return selectOptionCss; }\n}, [1, \"ion-select-option\", {\n \"disabled\": [4],\n \"value\": [8]\n }]);\nlet selectOptionIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-select-option\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-select-option\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SelectOption);\n }\n break;\n } });\n}\n\nconst IonSelectOption = SelectOption;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSelectOption, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { h as hostContext } from './theme.js';\n\nconst skeletonTextCss = \":host{--background:rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.065);border-radius:var(--border-radius, inherit);display:block;width:100%;height:inherit;margin-top:4px;margin-bottom:4px;background:var(--background);line-height:10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}span{display:inline-block}:host(.in-media){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;height:100%}:host(.skeleton-text-animated){position:relative;background:-webkit-gradient(linear, left top, right top, color-stop(8%, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.065)), color-stop(18%, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.135)), color-stop(33%, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.065)));background:linear-gradient(to right, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.065) 8%, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.135) 18%, rgba(var(--background-rgb, var(--ion-text-color-rgb, 0, 0, 0)), 0.065) 33%);background-size:800px 104px;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-name:shimmer;animation-name:shimmer;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}\";\n\nconst SkeletonText = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the skeleton text will animate.\n */\n this.animated = false;\n }\n render() {\n const animated = this.animated && config.getBoolean('animated', true);\n const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'skeleton-text-animated': animated,\n 'in-media': inMedia,\n } }, h(\"span\", null, \"\\u00A0\")));\n }\n get el() { return this; }\n static get style() { return skeletonTextCss; }\n}, [1, \"ion-skeleton-text\", {\n \"animated\": [4]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-skeleton-text\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-skeleton-text\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SkeletonText);\n }\n break;\n } });\n}\n\nconst IonSkeletonText = SkeletonText;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSkeletonText, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst slideCss = \"ion-slide{display:block;width:100%;height:100%}.slide-zoom{display:block;width:100%;text-align:center}.swiper-slide{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;font-size:18px;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.swiper-slide img{width:auto;max-width:100%;height:auto;max-height:100%}\";\n\nconst Slide = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'swiper-slide': true,\n 'swiper-zoom-container': true,\n } }));\n }\n static get style() { return slideCss; }\n}, [0, \"ion-slide\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-slide\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-slide\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Slide);\n }\n break;\n } });\n}\n\nconst IonSlide = Slide;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSlide, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as componentOnReady } from './helpers.js';\n\nconst slidesIosCss = \".swiper-container{margin:0 auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical{height:100%}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform, -webkit-transform;-webkit-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0px, 0, 0);transform:translate3d(0px, 0, 0)}.swiper-container-multirow>.swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform, -webkit-transform}.swiper-invisible-blank-slide{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-transition-property:height, -webkit-transform;transition-property:height, -webkit-transform;-o-transition-property:transform, height;transition-property:transform, height;transition-property:transform, height, -webkit-transform}.swiper-container-3d{-webkit-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-wrapper,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-cube-shadow{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-prev,.swiper-button-next{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:0.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\\\");left:10px;right:auto}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\\\");right:10px;left:auto}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:300ms opacity;-o-transition:300ms opacity;transition:300ms opacity;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-container-horizontal>.swiper-pagination-bullets{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{-webkit-transform:scale(0.66);-ms-transform:scale(0.66);transform:scale(0.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{-webkit-transform:scale(0.66);-ms-transform:scale(0.66);transform:scale(0.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:0.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0px, -50%, 0);transform:translate3d(0px, -50%, 0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;-webkit-transition:200ms top, 200ms -webkit-transform;transition:200ms top, 200ms -webkit-transform;-o-transition:200ms transform, 200ms top;transition:200ms transform, 200ms top;transition:200ms transform, 200ms top, 200ms -webkit-transform}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:200ms left, 200ms -webkit-transform;transition:200ms left, 200ms -webkit-transform;-o-transition:200ms transform, 200ms left;transition:200ms transform, 200ms left;transition:200ms transform, 200ms left, 200ms -webkit-transform}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:200ms right, 200ms -webkit-transform;transition:200ms right, 200ms -webkit-transform;-o-transition:200ms transform, 200ms right;transition:200ms transform, 200ms right;transition:200ms transform, 200ms right, 200ms -webkit-transform}.swiper-pagination-progressbar{background:rgba(0, 0, 0, 0.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progressbar,.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:4px;height:100%;left:0;top:0}.swiper-pagination-white .swiper-pagination-bullet-active{background:#ffffff}.swiper-pagination-progressbar.swiper-pagination-white{background:rgba(255, 255, 255, 0.25)}.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill{background:#ffffff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000000}.swiper-pagination-progressbar.swiper-pagination-black{background:rgba(0, 0, 0, 0.25)}.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill{background:#000000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0, 0, 0, 0.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0, 0, 0, 0.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12, end) infinite;animation:swiper-preloader-spin 1s steps(12, end) infinite}.swiper-lazy-preloader:after{display:block;content:\\\"\\\";width:100%;height:100%;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-prev,.swiper-container-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:0.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}ion-slides{display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swiper-pagination-bullet{background:var(--bullet-background)}.swiper-pagination-bullet-active{background:var(--bullet-background-active)}.swiper-pagination-progressbar{background:var(--progress-bar-background)}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--progress-bar-background-active)}.swiper-scrollbar{background:var(--scroll-bar-background)}.swiper-scrollbar-drag{background:var(--scroll-bar-background-active)}.slides-ios{--bullet-background:var(--ion-color-step-200, #cccccc);--bullet-background-active:var(--ion-color-primary, #3880ff);--progress-bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.25);--progress-bar-background-active:var(--ion-color-primary-shade, #3171e0);--scroll-bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--scroll-bar-background-active:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5)}\";\n\nconst slidesMdCss = \".swiper-container{margin:0 auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical{height:100%}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform, -webkit-transform;-webkit-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0px, 0, 0);transform:translate3d(0px, 0, 0)}.swiper-container-multirow>.swiper-wrapper{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform;transition-property:transform, -webkit-transform}.swiper-invisible-blank-slide{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-transition-property:height, -webkit-transform;transition-property:height, -webkit-transform;-o-transition-property:transform, height;transition-property:transform, height;transition-property:transform, height, -webkit-transform}.swiper-container-3d{-webkit-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-wrapper,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-cube-shadow{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));background-image:-webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:-o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0))}.swiper-container-wp8-horizontal,.swiper-container-wp8-horizontal>.swiper-wrapper{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-container-wp8-vertical,.swiper-container-wp8-vertical>.swiper-wrapper{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-prev,.swiper-button-next{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:0.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\\\");left:10px;right:auto}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E\\\");right:10px;left:auto}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E\\\")}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:300ms opacity;-o-transition:300ms opacity;transition:300ms opacity;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-container-horizontal>.swiper-pagination-bullets{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{-webkit-transform:scale(0.66);-ms-transform:scale(0.66);transform:scale(0.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{-webkit-transform:scale(0.66);-ms-transform:scale(0.66);transform:scale(0.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{-webkit-transform:scale(0.33);-ms-transform:scale(0.33);transform:scale(0.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:0.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0px, -50%, 0);transform:translate3d(0px, -50%, 0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;-webkit-transition:200ms top, 200ms -webkit-transform;transition:200ms top, 200ms -webkit-transform;-o-transition:200ms transform, 200ms top;transition:200ms transform, 200ms top;transition:200ms transform, 200ms top, 200ms -webkit-transform}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:200ms left, 200ms -webkit-transform;transition:200ms left, 200ms -webkit-transform;-o-transition:200ms transform, 200ms left;transition:200ms transform, 200ms left;transition:200ms transform, 200ms left, 200ms -webkit-transform}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{-webkit-transition:200ms right, 200ms -webkit-transform;transition:200ms right, 200ms -webkit-transform;-o-transition:200ms transform, 200ms right;transition:200ms transform, 200ms right;transition:200ms transform, 200ms right, 200ms -webkit-transform}.swiper-pagination-progressbar{background:rgba(0, 0, 0, 0.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progressbar,.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:4px;height:100%;left:0;top:0}.swiper-pagination-white .swiper-pagination-bullet-active{background:#ffffff}.swiper-pagination-progressbar.swiper-pagination-white{background:rgba(255, 255, 255, 0.25)}.swiper-pagination-progressbar.swiper-pagination-white .swiper-pagination-progressbar-fill{background:#ffffff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000000}.swiper-pagination-progressbar.swiper-pagination-black{background:rgba(0, 0, 0, 0.25)}.swiper-pagination-progressbar.swiper-pagination-black .swiper-pagination-progressbar-fill{background:#000000}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0, 0, 0, 0.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0, 0, 0, 0.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;text-align:center}.swiper-zoom-container>img,.swiper-zoom-container>svg,.swiper-zoom-container>canvas{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-ms-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12, end) infinite;animation:swiper-preloader-spin 1s steps(12, end) infinite}.swiper-lazy-preloader:after{display:block;content:\\\"\\\";width:100%;height:100%;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\");background-position:50%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E\\\")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-prev,.swiper-container-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:0.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-coverflow .swiper-wrapper{-ms-perspective:1200px}ion-slides{display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swiper-pagination-bullet{background:var(--bullet-background)}.swiper-pagination-bullet-active{background:var(--bullet-background-active)}.swiper-pagination-progressbar{background:var(--progress-bar-background)}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--progress-bar-background-active)}.swiper-scrollbar{background:var(--scroll-bar-background)}.swiper-scrollbar-drag{background:var(--scroll-bar-background-active)}.slides-md{--bullet-background:var(--ion-color-step-200, #cccccc);--bullet-background-active:var(--ion-color-primary, #3880ff);--progress-bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.25);--progress-bar-background-active:var(--ion-color-primary-shade, #3171e0);--scroll-bar-background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1);--scroll-bar-background-active:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.5)}\";\n\nconst Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionSlidesDidLoad = createEvent(this, \"ionSlidesDidLoad\", 7);\n this.ionSlideTap = createEvent(this, \"ionSlideTap\", 7);\n this.ionSlideDoubleTap = createEvent(this, \"ionSlideDoubleTap\", 7);\n this.ionSlideWillChange = createEvent(this, \"ionSlideWillChange\", 7);\n this.ionSlideDidChange = createEvent(this, \"ionSlideDidChange\", 7);\n this.ionSlideNextStart = createEvent(this, \"ionSlideNextStart\", 7);\n this.ionSlidePrevStart = createEvent(this, \"ionSlidePrevStart\", 7);\n this.ionSlideNextEnd = createEvent(this, \"ionSlideNextEnd\", 7);\n this.ionSlidePrevEnd = createEvent(this, \"ionSlidePrevEnd\", 7);\n this.ionSlideTransitionStart = createEvent(this, \"ionSlideTransitionStart\", 7);\n this.ionSlideTransitionEnd = createEvent(this, \"ionSlideTransitionEnd\", 7);\n this.ionSlideDrag = createEvent(this, \"ionSlideDrag\", 7);\n this.ionSlideReachStart = createEvent(this, \"ionSlideReachStart\", 7);\n this.ionSlideReachEnd = createEvent(this, \"ionSlideReachEnd\", 7);\n this.ionSlideTouchStart = createEvent(this, \"ionSlideTouchStart\", 7);\n this.ionSlideTouchEnd = createEvent(this, \"ionSlideTouchEnd\", 7);\n this.swiperReady = false;\n this.swiper = new Promise((resolve) => {\n this.readySwiper = resolve;\n });\n /**\n * Options to pass to the swiper instance.\n * See https://swiperjs.com/swiper-api for valid options\n */\n this.options = {}; // SwiperOptions; // TODO\n /**\n * If `true`, show the pagination.\n */\n this.pager = false;\n /**\n * If `true`, show the scrollbar.\n */\n this.scrollbar = false;\n }\n async optionsChanged() {\n if (this.swiperReady) {\n const swiper = await this.getSwiper();\n if (swiper === null || swiper === void 0 ? void 0 : swiper.params) {\n Object.assign(swiper.params, this.options);\n await this.update();\n }\n }\n }\n componentWillLoad() {\n console.warn(`[Deprecation Warning]: ion-slides has been deprecated and will be removed in Ionic Framework v7.0. We recommend using the framework-specific integrations that Swiper.js provides, allowing for faster bug fixes and an improved developer experience. See https://ionicframework.com/docs/api/slides for more information including migration steps.`);\n }\n connectedCallback() {\n if (Build.isBrowser) {\n const mut = (this.mutationO = new MutationObserver(() => {\n if (this.swiperReady) {\n this.update();\n }\n }));\n mut.observe(this.el, {\n childList: true,\n subtree: true,\n });\n componentOnReady(this.el, () => {\n this.initSwiper();\n });\n }\n }\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n }\n /**\n * Update the underlying slider implementation. Call this if you've added or removed\n * child slides.\n */\n async update() {\n const [swiper] = await Promise.all([this.getSwiper(), waitForSlides(this.el)]);\n swiper.update();\n }\n /**\n * Force swiper to update its height (when autoHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n async updateAutoHeight(speed) {\n const swiper = await this.getSwiper();\n swiper.updateAutoHeight(speed);\n }\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param speed The transition duration (in ms).\n * @param runCallbacks If true, the transition will produce [Transition/SlideChange][Start/End] transition events.\n */\n async slideTo(index, speed, runCallbacks) {\n const swiper = await this.getSwiper();\n swiper.slideTo(index, speed, runCallbacks);\n }\n /**\n * Transition to the next slide.\n *\n * @param speed The transition duration (in ms).\n * @param runCallbacks If true, the transition will produce [Transition/SlideChange][Start/End] transition events.\n */\n async slideNext(speed, runCallbacks) {\n const swiper = await this.getSwiper();\n swiper.slideNext(speed, runCallbacks);\n }\n /**\n * Transition to the previous slide.\n *\n * @param speed The transition duration (in ms).\n * @param runCallbacks If true, the transition will produce the [Transition/SlideChange][Start/End] transition events.\n */\n async slidePrev(speed, runCallbacks) {\n const swiper = await this.getSwiper();\n swiper.slidePrev(speed, runCallbacks);\n }\n /**\n * Get the index of the active slide.\n */\n async getActiveIndex() {\n const swiper = await this.getSwiper();\n return swiper.activeIndex;\n }\n /**\n * Get the index of the previous slide.\n */\n async getPreviousIndex() {\n const swiper = await this.getSwiper();\n return swiper.previousIndex;\n }\n /**\n * Get the total number of slides.\n */\n async length() {\n const swiper = await this.getSwiper();\n return swiper.slides.length;\n }\n /**\n * Get whether or not the current slide is the last slide.\n */\n async isEnd() {\n const swiper = await this.getSwiper();\n return swiper.isEnd;\n }\n /**\n * Get whether or not the current slide is the first slide.\n */\n async isBeginning() {\n const swiper = await this.getSwiper();\n return swiper.isBeginning;\n }\n /**\n * Start auto play.\n */\n async startAutoplay() {\n const swiper = await this.getSwiper();\n if (swiper.autoplay) {\n swiper.autoplay.start();\n }\n }\n /**\n * Stop auto play.\n */\n async stopAutoplay() {\n const swiper = await this.getSwiper();\n if (swiper.autoplay) {\n swiper.autoplay.stop();\n }\n }\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping to the next slide.\n */\n async lockSwipeToNext(lock) {\n const swiper = await this.getSwiper();\n swiper.allowSlideNext = !lock;\n }\n /**\n * Lock or unlock the ability to slide to the previous slide.\n *\n * @param lock If `true`, disable swiping to the previous slide.\n */\n async lockSwipeToPrev(lock) {\n const swiper = await this.getSwiper();\n swiper.allowSlidePrev = !lock;\n }\n /**\n * Lock or unlock the ability to slide to the next or previous slide.\n *\n * @param lock If `true`, disable swiping to the next and previous slide.\n */\n async lockSwipes(lock) {\n const swiper = await this.getSwiper();\n swiper.allowSlideNext = !lock;\n swiper.allowSlidePrev = !lock;\n swiper.allowTouchMove = !lock;\n }\n /**\n * Get the Swiper instance.\n * Use this to access the full Swiper API.\n * See https://swiperjs.com/swiper-api for all API options.\n */\n async getSwiper() {\n return this.swiper;\n }\n async initSwiper() {\n const finalOptions = this.normalizeOptions();\n // init swiper core\n // eslint-disable-next-line\n // @ts-ignore\n const { Swiper } = await import('./swiper.bundle.js');\n await waitForSlides(this.el);\n const swiper = new Swiper(this.el, finalOptions);\n this.swiperReady = true;\n this.readySwiper(swiper);\n }\n normalizeOptions() {\n // Base options, can be changed\n const swiperOptions = {\n effect: undefined,\n direction: 'horizontal',\n initialSlide: 0,\n loop: false,\n parallax: false,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 300,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0,\n slidesOffsetAfter: 0,\n touchEventsTarget: 'container',\n autoplay: false,\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n autoHeight: false,\n setWrapperSize: false,\n zoom: {\n maxRatio: 3,\n minRatio: 1,\n toggle: false,\n },\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n touchStartPreventDefault: false,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n threshold: 0,\n touchMoveStopPropagation: true,\n touchReleaseOnEdges: false,\n iOSEdgeSwipeDetection: false,\n iOSEdgeSwipeThreshold: 20,\n resistance: true,\n resistanceRatio: 0.85,\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n loopAdditionalSlides: 0,\n noSwiping: true,\n runCallbacksOnInit: true,\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true,\n },\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n fadeEffect: {\n crossFade: false,\n },\n a11y: {\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n },\n };\n if (this.pager) {\n swiperOptions.pagination = {\n el: this.paginationEl,\n type: 'bullets',\n clickable: false,\n hideOnClick: false,\n };\n }\n if (this.scrollbar) {\n swiperOptions.scrollbar = {\n el: this.scrollbarEl,\n hide: true,\n };\n }\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions = {\n on: {\n init: () => {\n setTimeout(() => {\n this.ionSlidesDidLoad.emit();\n // Forces the swiper instance to update after initializing.\n this.update();\n }, 20);\n },\n slideChangeTransitionStart: this.ionSlideWillChange.emit,\n slideChangeTransitionEnd: this.ionSlideDidChange.emit,\n slideNextTransitionStart: this.ionSlideNextStart.emit,\n slidePrevTransitionStart: this.ionSlidePrevStart.emit,\n slideNextTransitionEnd: this.ionSlideNextEnd.emit,\n slidePrevTransitionEnd: this.ionSlidePrevEnd.emit,\n transitionStart: this.ionSlideTransitionStart.emit,\n transitionEnd: this.ionSlideTransitionEnd.emit,\n sliderMove: this.ionSlideDrag.emit,\n reachBeginning: this.ionSlideReachStart.emit,\n reachEnd: this.ionSlideReachEnd.emit,\n touchStart: this.ionSlideTouchStart.emit,\n touchEnd: this.ionSlideTouchEnd.emit,\n tap: this.ionSlideTap.emit,\n doubleTap: this.ionSlideDoubleTap.emit,\n },\n };\n const customEvents = !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: Object.assign(Object.assign({}, customEvents), eventOptions.on) };\n // Merge the base, user options, and events together then pas to swiper\n return Object.assign(Object.assign(Object.assign({}, swiperOptions), this.options), mergedEventOptions);\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [`${mode}`]: true,\n // Used internally for styling\n [`slides-${mode}`]: true,\n 'swiper-container': true,\n } }, h(\"div\", { class: \"swiper-wrapper\" }, h(\"slot\", null)), this.pager && h(\"div\", { class: \"swiper-pagination\", ref: (el) => (this.paginationEl = el) }), this.scrollbar && h(\"div\", { class: \"swiper-scrollbar\", ref: (el) => (this.scrollbarEl = el) })));\n }\n static get assetsDirs() { return [\"swiper\"]; }\n get el() { return this; }\n static get watchers() { return {\n \"options\": [\"optionsChanged\"]\n }; }\n static get style() { return {\n ios: slidesIosCss,\n md: slidesMdCss\n }; }\n}, [36, \"ion-slides\", {\n \"options\": [8],\n \"pager\": [4],\n \"scrollbar\": [4],\n \"update\": [64],\n \"updateAutoHeight\": [64],\n \"slideTo\": [64],\n \"slideNext\": [64],\n \"slidePrev\": [64],\n \"getActiveIndex\": [64],\n \"getPreviousIndex\": [64],\n \"length\": [64],\n \"isEnd\": [64],\n \"isBeginning\": [64],\n \"startAutoplay\": [64],\n \"stopAutoplay\": [64],\n \"lockSwipeToNext\": [64],\n \"lockSwipeToPrev\": [64],\n \"lockSwipes\": [64],\n \"getSwiper\": [64]\n }]);\nconst waitForSlides = (el) => {\n return Promise.all(Array.from(el.querySelectorAll('ion-slide')).map((s) => new Promise((resolve) => componentOnReady(s, resolve))));\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-slides\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-slides\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Slides);\n }\n break;\n } });\n}\n\nconst IonSlides = Slides;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSlides, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst splitPaneIosCss = \":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none !important;box-shadow:none !important;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){border-left:0;border-right:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.split-pane-visible) ::slotted(.split-pane-side){border-left:unset;border-right:unset;-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border)}}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){border-left:var(--border);border-right:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){border-left:unset;border-right:unset;-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0}}\";\n\nconst splitPaneMdCss = \":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none !important;box-shadow:none !important;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){border-left:0;border-right:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.split-pane-visible) ::slotted(.split-pane-side){border-left:unset;border-right:unset;-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border)}}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){border-left:var(--border);border-right:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){border-left:unset;border-right:unset;-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0}}\";\n\nconst SPLIT_PANE_MAIN = 'split-pane-main';\nconst SPLIT_PANE_SIDE = 'split-pane-side';\nconst QUERY = {\n xs: '(min-width: 0px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n never: '',\n};\nconst SplitPane = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionSplitPaneVisible = createEvent(this, \"ionSplitPaneVisible\", 7);\n this.visible = false;\n /**\n * If `true`, the split pane will be hidden.\n */\n this.disabled = false;\n /**\n * When the split-pane should be shown.\n * Can be a CSS media query expression, or a shortcut expression.\n * Can also be a boolean expression.\n */\n this.when = QUERY['lg'];\n }\n visibleChanged(visible) {\n const detail = { visible, isPane: this.isPane.bind(this) };\n this.ionSplitPaneVisible.emit(detail);\n }\n async connectedCallback() {\n // TODO: connectedCallback is fired in CE build\n // before WC is defined. This needs to be fixed in Stencil.\n if (typeof customElements !== 'undefined') {\n await customElements.whenDefined('ion-split-pane');\n }\n this.styleChildren();\n this.updateState();\n }\n disconnectedCallback() {\n if (this.rmL) {\n this.rmL();\n this.rmL = undefined;\n }\n }\n updateState() {\n if (!Build.isBrowser) {\n return;\n }\n if (this.rmL) {\n this.rmL();\n this.rmL = undefined;\n }\n // Check if the split-pane is disabled\n if (this.disabled) {\n this.visible = false;\n return;\n }\n // When query is a boolean\n const query = this.when;\n if (typeof query === 'boolean') {\n this.visible = query;\n return;\n }\n // When query is a string, let's find first if it is a shortcut\n const mediaQuery = QUERY[query] || query;\n // Media query is empty or null, we hide it\n if (mediaQuery.length === 0) {\n this.visible = false;\n return;\n }\n if (window.matchMedia) {\n // Listen on media query\n const callback = (q) => {\n this.visible = q.matches;\n };\n const mediaList = window.matchMedia(mediaQuery);\n mediaList.addListener(callback);\n this.rmL = () => mediaList.removeListener(callback);\n this.visible = mediaList.matches;\n }\n }\n isPane(element) {\n if (!this.visible) {\n return false;\n }\n return element.parentElement === this.el && element.classList.contains(SPLIT_PANE_SIDE);\n }\n styleChildren() {\n if (!Build.isBrowser) {\n return;\n }\n const contentId = this.contentId;\n const children = this.el.children;\n const nu = this.el.childElementCount;\n let foundMain = false;\n for (let i = 0; i < nu; i++) {\n const child = children[i];\n const isMain = contentId !== undefined && child.id === contentId;\n if (isMain) {\n if (foundMain) {\n console.warn('split pane cannot have more than one main node');\n return;\n }\n foundMain = true;\n }\n setPaneClass(child, isMain);\n }\n if (!foundMain) {\n console.warn('split pane does not have a specified main node');\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n // Used internally for styling\n [`split-pane-${mode}`]: true,\n 'split-pane-visible': this.visible,\n } }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"visible\": [\"visibleChanged\"],\n \"disabled\": [\"updateState\"],\n \"when\": [\"updateState\"]\n }; }\n static get style() { return {\n ios: splitPaneIosCss,\n md: splitPaneMdCss\n }; }\n}, [33, \"ion-split-pane\", {\n \"contentId\": [513, \"content-id\"],\n \"disabled\": [4],\n \"when\": [8],\n \"visible\": [32]\n }]);\nconst setPaneClass = (el, isMain) => {\n let toAdd;\n let toRemove;\n if (isMain) {\n toAdd = SPLIT_PANE_MAIN;\n toRemove = SPLIT_PANE_SIDE;\n }\n else {\n toAdd = SPLIT_PANE_SIDE;\n toRemove = SPLIT_PANE_MAIN;\n }\n const classList = el.classList;\n classList.add(toAdd);\n classList.remove(toRemove);\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-split-pane\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-split-pane\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, SplitPane);\n }\n break;\n } });\n}\n\nconst IonSplitPane = SplitPane;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonSplitPane, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nimport { a as attachComponent } from './framework-delegate.js';\n\nconst tabCss = \":host(.tab-hidden){display:none !important}\";\n\nconst Tab = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.loaded = false;\n /** @internal */\n this.active = false;\n }\n async componentWillLoad() {\n if (Build.isDev) {\n if (this.component !== undefined && this.el.childElementCount > 0) {\n console.error('You can not use a lazy-loaded component in a tab and inlined content at the same time.' +\n `- Remove the component attribute in: <ion-tab component=\"${this.component}\">` +\n ` or` +\n `- Remove the embedded content inside the ion-tab: <ion-tab></ion-tab>`);\n }\n }\n if (this.active) {\n await this.setActive();\n }\n }\n /** Set the active component for the tab */\n async setActive() {\n await this.prepareLazyLoaded();\n this.active = true;\n }\n changeActive(isActive) {\n if (isActive) {\n this.prepareLazyLoaded();\n }\n }\n prepareLazyLoaded() {\n if (!this.loaded && this.component != null) {\n this.loaded = true;\n try {\n return attachComponent(this.delegate, this.el, this.component, ['ion-page']);\n }\n catch (e) {\n console.error(e);\n }\n }\n return Promise.resolve(undefined);\n }\n render() {\n const { tab, active, component } = this;\n return (h(Host, { role: \"tabpanel\", \"aria-hidden\": !active ? 'true' : null, \"aria-labelledby\": `tab-button-${tab}`, class: {\n 'ion-page': component === undefined,\n 'tab-hidden': !active,\n } }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"active\": [\"changeActive\"]\n }; }\n static get style() { return tabCss; }\n}, [1, \"ion-tab\", {\n \"active\": [1028],\n \"delegate\": [16],\n \"tab\": [1],\n \"component\": [1],\n \"setActive\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-tab\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-tab\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Tab);\n }\n break;\n } });\n}\n\nconst IonTab = Tab;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonTab, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst textCss = \":host(.ion-color){color:var(--ion-color-base)}\";\n\nconst Text = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n }) }, h(\"slot\", null)));\n }\n static get style() { return textCss; }\n}, [1, \"ion-text\", {\n \"color\": [513]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-text\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-text\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Text);\n }\n break;\n } });\n}\n\nconst IonText = Text;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonText, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, Build, writeTask, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { j as debounceEvent, i as inheritAriaAttributes, d as inheritAttributes, k as findItemLabel } from './helpers.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst textareaIosCss = \".sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);white-space:pre-wrap;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-textarea-ios-h{background:initial}.ion-color.sc-ion-textarea-ios-h{color:var(--ion-color-base)}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-ios-h{--padding-start:0}.textarea-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit}.textarea-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) \\\" \\\";visibility:hidden}.native-textarea.sc-ion-textarea-ios,.textarea-wrapper.sc-ion-textarea-ios::after{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;grid-area:1/1/2/2;word-break:break-word}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-textarea.sc-ion-textarea-ios,.textarea-wrapper.sc-ion-textarea-ios::after{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-textarea.sc-ion-textarea-ios{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea[disabled].sc-ion-textarea-ios:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-textarea-ios{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-textarea-ios .cloned-input.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}[auto-grow=true].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-textarea-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-textarea-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}[auto-grow=true].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.sc-ion-textarea-ios-h{--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:0;font-size:inherit}.item-label-stacked.sc-ion-textarea-ios-h,.item-label-stacked .sc-ion-textarea-ios-h,.item-label-floating.sc-ion-textarea-ios-h,.item-label-floating .sc-ion-textarea-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}\";\n\nconst textareaMdCss = \".sc-ion-textarea-md-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.5;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);white-space:pre-wrap;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}.ion-color.sc-ion-textarea-md-h{background:initial}.ion-color.sc-ion-textarea-md-h{color:var(--ion-color-base)}ion-item.sc-ion-textarea-md-h,ion-item .sc-ion-textarea-md-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-md-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-md-h{--padding-start:0}.textarea-wrapper.sc-ion-textarea-md{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit}.textarea-wrapper.sc-ion-textarea-md::after{white-space:pre-wrap;content:attr(data-replicated-value) \\\" \\\";visibility:hidden}.native-textarea.sc-ion-textarea-md,.textarea-wrapper.sc-ion-textarea-md::after{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;grid-area:1/1/2/2;word-break:break-word}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.native-textarea.sc-ion-textarea-md,.textarea-wrapper.sc-ion-textarea-md::after{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.native-textarea.sc-ion-textarea-md{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-md::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-md::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea[disabled].sc-ion-textarea-md:not(.cloned-input){opacity:0.4}.cloned-input.sc-ion-textarea-md{left:0;top:0;position:absolute;pointer-events:none}[dir=rtl].sc-ion-textarea-md .cloned-input.sc-ion-textarea-md,[dir=rtl].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md,[dir=rtl] .sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{left:unset;right:unset;right:0}.cloned-input.sc-ion-textarea-md:disabled{opacity:1}[auto-grow=true].sc-ion-textarea-md-h .cloned-input.sc-ion-textarea-md{height:100%}.item-label-floating.item-has-placeholder.sc-ion-textarea-md-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-textarea-md-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-textarea-md-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-textarea-md-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}[auto-grow=true].sc-ion-textarea-md-h .native-textarea.sc-ion-textarea-md{overflow:hidden}.sc-ion-textarea-md-h{--padding-top:10px;--padding-end:0;--padding-bottom:11px;--padding-start:8px;margin-left:0;margin-right:0;margin-top:8px;margin-bottom:0;font-size:inherit}.item-label-stacked.sc-ion-textarea-md-h,.item-label-stacked .sc-ion-textarea-md-h,.item-label-floating.sc-ion-textarea-md-h,.item-label-floating .sc-ion-textarea-md-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0}\";\n\nconst Textarea = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionInput = createEvent(this, \"ionInput\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.inputId = `ion-textarea-${textareaIds++}`;\n this.didBlurAfterEdit = false;\n this.inheritedAttributes = {};\n /**\n * This is required for a WebKit bug which requires us to\n * blur and focus an input to properly focus the input in\n * an item with delegatesFocus. It will no longer be needed\n * with iOS 14.\n *\n * @internal\n */\n this.fireFocusEvents = true;\n this.hasFocus = false;\n /**\n * Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\n * Available options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`.\n */\n this.autocapitalize = 'none';\n /**\n * This Boolean attribute lets you specify that a form control should have input focus when the page loads.\n */\n this.autofocus = false;\n /**\n * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `\"password\"`, `false` for all other types.\n */\n this.clearOnEdit = false;\n /**\n * Set the amount of time, in milliseconds, to wait to trigger the `ionChange` event after each keystroke. This also impacts form bindings such as `ngModel` or `v-model`.\n */\n this.debounce = 0;\n /**\n * If `true`, the user cannot interact with the textarea.\n */\n this.disabled = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the user cannot modify the value.\n */\n this.readonly = false;\n /**\n * If `true`, the user must fill in a value before submitting a form.\n */\n this.required = false;\n /**\n * If `true`, the element will have its spelling and grammar checked.\n */\n this.spellcheck = false;\n /**\n * If `true`, the textarea container will grow and shrink based\n * on the contents of the textarea.\n */\n this.autoGrow = false;\n /**\n * The value of the textarea.\n */\n this.value = '';\n this.onInput = (ev) => {\n if (this.nativeInput) {\n this.value = this.nativeInput.value;\n }\n this.emitStyle();\n this.ionInput.emit(ev);\n };\n this.onFocus = (ev) => {\n this.hasFocus = true;\n this.focusChange();\n if (this.fireFocusEvents) {\n this.ionFocus.emit(ev);\n }\n };\n this.onBlur = (ev) => {\n this.hasFocus = false;\n this.focusChange();\n if (this.fireFocusEvents) {\n this.ionBlur.emit(ev);\n }\n };\n this.onKeyDown = () => {\n this.checkClearOnEdit();\n };\n }\n debounceChanged() {\n this.ionChange = debounceEvent(this.ionChange, this.debounce);\n }\n disabledChanged() {\n this.emitStyle();\n }\n /**\n * Update the native input element when the value changes\n */\n valueChanged() {\n const nativeInput = this.nativeInput;\n const value = this.getValue();\n if (nativeInput && nativeInput.value !== value) {\n nativeInput.value = value;\n }\n this.runAutoGrow();\n this.emitStyle();\n this.ionChange.emit({ value });\n }\n connectedCallback() {\n this.emitStyle();\n this.debounceChanged();\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidLoad', {\n detail: this.el,\n }));\n }\n }\n disconnectedCallback() {\n if (Build.isBrowser) {\n document.dispatchEvent(new CustomEvent('ionInputDidUnload', {\n detail: this.el,\n }));\n }\n }\n componentWillLoad() {\n this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ['data-form-type', 'title']));\n }\n componentDidLoad() {\n this.runAutoGrow();\n }\n /**\n * Sets focus on the native `textarea` in `ion-textarea`. Use this method instead of the global\n * `textarea.focus()`.\n */\n async setFocus() {\n if (this.nativeInput) {\n this.nativeInput.focus();\n }\n }\n /**\n * Sets blur on the native `textarea` in `ion-textarea`. Use this method instead of the global\n * `textarea.blur()`.\n * @internal\n */\n async setBlur() {\n if (this.nativeInput) {\n this.nativeInput.blur();\n }\n }\n /**\n * Returns the native `<textarea>` element used under the hood.\n */\n getInputElement() {\n return Promise.resolve(this.nativeInput);\n }\n emitStyle() {\n this.ionStyle.emit({\n interactive: true,\n textarea: true,\n input: true,\n 'interactive-disabled': this.disabled,\n 'has-placeholder': this.placeholder !== undefined,\n 'has-value': this.hasValue(),\n 'has-focus': this.hasFocus,\n });\n }\n runAutoGrow() {\n if (this.nativeInput && this.autoGrow) {\n writeTask(() => {\n var _a;\n if (this.textareaWrapper) {\n // Replicated value is an attribute to be used in the stylesheet\n // to set the inner contents of a pseudo element.\n this.textareaWrapper.dataset.replicatedValue = (_a = this.value) !== null && _a !== void 0 ? _a : '';\n }\n });\n }\n }\n /**\n * Check if we need to clear the text input if clearOnEdit is enabled\n */\n checkClearOnEdit() {\n if (!this.clearOnEdit) {\n return;\n }\n // Did the input value change after it was blurred and edited?\n if (this.didBlurAfterEdit && this.hasValue()) {\n // Clear the input\n this.value = '';\n }\n // Reset the flag\n this.didBlurAfterEdit = false;\n }\n focusChange() {\n // If clearOnEdit is enabled and the input blurred but has a value, set a flag\n if (this.clearOnEdit && !this.hasFocus && this.hasValue()) {\n this.didBlurAfterEdit = true;\n }\n this.emitStyle();\n }\n hasValue() {\n return this.getValue() !== '';\n }\n getValue() {\n return this.value || '';\n }\n render() {\n const mode = getIonMode(this);\n const value = this.getValue();\n const labelId = this.inputId + '-lbl';\n const label = findItemLabel(this.el);\n if (label) {\n label.id = labelId;\n }\n return (h(Host, { \"aria-disabled\": this.disabled ? 'true' : null, class: createColorClasses(this.color, {\n [mode]: true,\n }) }, h(\"div\", { class: \"textarea-wrapper\", ref: (el) => (this.textareaWrapper = el) }, h(\"textarea\", Object.assign({ class: \"native-textarea\", \"aria-labelledby\": label ? labelId : null, ref: (el) => (this.nativeInput = el), autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, disabled: this.disabled, maxLength: this.maxlength, minLength: this.minlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"debounce\": [\"debounceChanged\"],\n \"disabled\": [\"disabledChanged\"],\n \"value\": [\"valueChanged\"]\n }; }\n static get style() { return {\n ios: textareaIosCss,\n md: textareaMdCss\n }; }\n}, [34, \"ion-textarea\", {\n \"fireFocusEvents\": [4, \"fire-focus-events\"],\n \"color\": [513],\n \"autocapitalize\": [1],\n \"autofocus\": [4],\n \"clearOnEdit\": [1028, \"clear-on-edit\"],\n \"debounce\": [2],\n \"disabled\": [4],\n \"inputmode\": [1],\n \"enterkeyhint\": [1],\n \"maxlength\": [2],\n \"minlength\": [2],\n \"name\": [1],\n \"placeholder\": [1],\n \"readonly\": [4],\n \"required\": [4],\n \"spellcheck\": [4],\n \"cols\": [2],\n \"rows\": [2],\n \"wrap\": [1],\n \"autoGrow\": [516, \"auto-grow\"],\n \"value\": [1025],\n \"hasFocus\": [32],\n \"setFocus\": [64],\n \"setBlur\": [64],\n \"getInputElement\": [64]\n }]);\nlet textareaIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-textarea\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-textarea\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Textarea);\n }\n break;\n } });\n}\n\nconst IonTextarea = Textarea;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonTextarea, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\n\nconst thumbnailCss = \":host{--size:48px;--border-radius:0;border-radius:var(--border-radius);display:block;width:var(--size);height:var(--size)}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}\";\n\nconst Thumbnail = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n }\n render() {\n return (h(Host, { class: getIonMode(this) }, h(\"slot\", null)));\n }\n static get style() { return thumbnailCss; }\n}, [1, \"ion-thumbnail\"]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-thumbnail\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-thumbnail\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Thumbnail);\n }\n break;\n } });\n}\n\nconst IonThumbnail = Thumbnail;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonThumbnail, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst titleIosCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{left:0;top:0;padding-left:90px;padding-right:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px}}:host(.title-small){padding-left:9px;padding-right:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-small){padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}:host(.title-large){padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;padding-bottom:6px;font-size:34px;font-weight:700;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-large){padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}\";\n\nconst titleMdCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{padding-left:20px;padding-right:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}\";\n\nconst ToolbarTitle = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n }\n sizeChanged() {\n this.emitStyle();\n }\n connectedCallback() {\n this.emitStyle();\n }\n emitStyle() {\n const size = this.getSize();\n this.ionStyle.emit({\n [`title-${size}`]: true,\n });\n }\n getSize() {\n return this.size !== undefined ? this.size : 'default';\n }\n render() {\n const mode = getIonMode(this);\n const size = this.getSize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n [`title-${size}`]: true,\n 'title-rtl': document.dir === 'rtl',\n }) }, h(\"div\", { class: \"toolbar-title\" }, h(\"slot\", null))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"size\": [\"sizeChanged\"]\n }; }\n static get style() { return {\n ios: titleIosCss,\n md: titleMdCss\n }; }\n}, [33, \"ion-title\", {\n \"color\": [513],\n \"size\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-title\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-title\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ToolbarTitle);\n }\n break;\n } });\n}\n\nconst IonTitle = ToolbarTitle;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonTitle, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { t as checkmarkOutline, u as removeOutline, v as ellipseOutline } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { n as getAriaLabel, e as renderHiddenInput } from './helpers.js';\nimport { d as hapticSelection } from './haptic.js';\nimport { i as isRTL } from './dir.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst toggleIosCss = \":host{-webkit-box-sizing:content-box !important;box-sizing:content-box !important;display:inline-block;position:relative;outline:none;contain:content;cursor:pointer;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.ion-focused) input{border:2px solid #5e9ed6}:host(.toggle-disabled){pointer-events:none}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0;pointer-events:none}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.toggle-icon-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;-webkit-transition:var(--handle-transition);transition:var(--handle-transition);will-change:transform}.toggle-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;background:var(--background);pointer-events:none;overflow:inherit}:host(.toggle-checked) .toggle-icon{background:var(--background-checked)}.toggle-inner{border-radius:var(--handle-border-radius);position:absolute;width:var(--handle-width);height:var(--handle-height);max-height:var(--handle-max-height);-webkit-transition:var(--handle-transition);transition:var(--handle-transition);background:var(--handle-background);-webkit-box-shadow:var(--handle-box-shadow);box-shadow:var(--handle-box-shadow);contain:strict}:host(.toggle-ltr) .toggle-inner{left:var(--handle-spacing)}:host(.toggle-rtl) .toggle-inner{right:var(--handle-spacing)}:host(.toggle-ltr.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(100% - var(--handle-width)), 0, 0);transform:translate3d(calc(100% - var(--handle-width)), 0, 0)}:host(.toggle-rtl.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(-100% + var(--handle-width)), 0, 0);transform:translate3d(calc(-100% + var(--handle-width)), 0, 0)}:host(.toggle-checked) .toggle-inner{background:var(--handle-background-checked)}:host(.toggle-ltr.toggle-checked) .toggle-inner{-webkit-transform:translate3d(calc(var(--handle-spacing) * -2), 0, 0);transform:translate3d(calc(var(--handle-spacing) * -2), 0, 0)}:host(.toggle-rtl.toggle-checked) .toggle-inner{-webkit-transform:translate3d(calc(var(--handle-spacing) * 2), 0, 0);transform:translate3d(calc(var(--handle-spacing) * 2), 0, 0)}:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.088);--background-checked:var(--ion-color-primary, #3880ff);--border-radius:16px;--handle-background:#ffffff;--handle-background-checked:#ffffff;--handle-border-radius:25.5px;--handle-box-shadow:0 3px 12px rgba(0, 0, 0, 0.16), 0 3px 1px rgba(0, 0, 0, 0.1);--handle-height:calc(32px - (2px * 2));--handle-max-height:calc(100% - var(--handle-spacing) * 2);--handle-width:calc(32px - (2px * 2));--handle-spacing:2px;--handle-transition:transform 300ms, width 120ms ease-in-out 80ms, left 110ms ease-in-out 80ms, right 110ms ease-in-out 80ms;width:51px;height:32px;contain:strict;overflow:hidden}:host(.ion-color.toggle-checked) .toggle-icon{background:var(--ion-color-base)}:host(.toggle-activated) .toggle-switch-icon{opacity:0}.toggle-icon{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:background-color 300ms;transition:background-color 300ms}.toggle-inner{will-change:transform}.toggle-switch-icon{position:absolute;top:50%;width:11px;height:11px;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:opacity 300ms, color 300ms;transition:opacity 300ms, color 300ms}.toggle-switch-icon{position:absolute;color:var(--ion-color-dark)}:host(.toggle-ltr) .toggle-switch-icon{right:6px}:host(.toggle-rtl) .toggle-switch-icon{right:initial;left:6px;}:host(.toggle-checked) .toggle-switch-icon.toggle-switch-icon-checked{color:var(--ion-color-contrast, #fff)}:host(.toggle-checked) .toggle-switch-icon:not(.toggle-switch-icon-checked){opacity:0}.toggle-switch-icon-checked{position:absolute;width:15px;height:15px;-webkit-transform:translateY(-50%) rotate(90deg);transform:translateY(-50%) rotate(90deg)}:host(.toggle-ltr) .toggle-switch-icon-checked{right:initial;left:4px;}:host(.toggle-rtl) .toggle-switch-icon-checked{right:4px}:host(.toggle-activated) .toggle-icon::before,:host(.toggle-checked) .toggle-icon::before{-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0)}:host(.toggle-activated.toggle-checked) .toggle-inner::before{-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0)}:host(.toggle-activated) .toggle-inner{width:calc(var(--handle-width) + 6px)}:host(.toggle-ltr.toggle-activated.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(100% - var(--handle-width) - 6px), 0, 0);transform:translate3d(calc(100% - var(--handle-width) - 6px), 0, 0)}:host(.toggle-rtl.toggle-activated.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(-100% + var(--handle-width) + 6px), 0, 0);transform:translate3d(calc(-100% + var(--handle-width) + 6px), 0, 0)}:host(.toggle-disabled){opacity:0.3}:host(.in-item[slot]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:20px;padding-right:10px;padding-top:6px;padding-bottom:5px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot]){padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:10px;padding-inline-end:10px}}:host(.in-item[slot=start]){padding-left:0;padding-right:16px;padding-top:6px;padding-bottom:5px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){padding-left:unset;padding-right:unset;-webkit-padding-start:0;padding-inline-start:0;-webkit-padding-end:16px;padding-inline-end:16px}}\";\n\nconst toggleMdCss = \":host{-webkit-box-sizing:content-box !important;box-sizing:content-box !important;display:inline-block;position:relative;outline:none;contain:content;cursor:pointer;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.ion-focused) input{border:2px solid #5e9ed6}:host(.toggle-disabled){pointer-events:none}label{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0;pointer-events:none}[dir=rtl] label,:host-context([dir=rtl]) label{left:unset;right:unset;right:0}label::-moz-focus-inner{border:0}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.toggle-icon-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;-webkit-transition:var(--handle-transition);transition:var(--handle-transition);will-change:transform}.toggle-icon{border-radius:var(--border-radius);display:block;position:relative;width:100%;height:100%;background:var(--background);pointer-events:none;overflow:inherit}:host(.toggle-checked) .toggle-icon{background:var(--background-checked)}.toggle-inner{border-radius:var(--handle-border-radius);position:absolute;width:var(--handle-width);height:var(--handle-height);max-height:var(--handle-max-height);-webkit-transition:var(--handle-transition);transition:var(--handle-transition);background:var(--handle-background);-webkit-box-shadow:var(--handle-box-shadow);box-shadow:var(--handle-box-shadow);contain:strict}:host(.toggle-ltr) .toggle-inner{left:var(--handle-spacing)}:host(.toggle-rtl) .toggle-inner{right:var(--handle-spacing)}:host(.toggle-ltr.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(100% - var(--handle-width)), 0, 0);transform:translate3d(calc(100% - var(--handle-width)), 0, 0)}:host(.toggle-rtl.toggle-checked) .toggle-icon-wrapper{-webkit-transform:translate3d(calc(-100% + var(--handle-width)), 0, 0);transform:translate3d(calc(-100% + var(--handle-width)), 0, 0)}:host(.toggle-checked) .toggle-inner{background:var(--handle-background-checked)}:host(.toggle-ltr.toggle-checked) .toggle-inner{-webkit-transform:translate3d(calc(var(--handle-spacing) * -2), 0, 0);transform:translate3d(calc(var(--handle-spacing) * -2), 0, 0)}:host(.toggle-rtl.toggle-checked) .toggle-inner{-webkit-transform:translate3d(calc(var(--handle-spacing) * 2), 0, 0);transform:translate3d(calc(var(--handle-spacing) * 2), 0, 0)}:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.39);--background-checked:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.5);--border-radius:14px;--handle-background:#ffffff;--handle-background-checked:var(--ion-color-primary, #3880ff);--handle-border-radius:50%;--handle-box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);--handle-width:20px;--handle-height:20px;--handle-max-height:calc(100% + 6px);--handle-spacing:0;--handle-transition:transform 160ms cubic-bezier(0.4, 0, 0.2, 1), background-color 160ms cubic-bezier(0.4, 0, 0.2, 1);padding-left:12px;padding-right:12px;padding-top:12px;padding-bottom:12px;width:36px;height:14px;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host(.ion-color.toggle-checked) .toggle-icon{background:rgba(var(--ion-color-base-rgb), 0.5)}:host(.ion-color.toggle-checked) .toggle-inner{background:var(--ion-color-base)}:host(.toggle-checked) .toggle-inner{color:var(--ion-color-contrast, #fff)}.toggle-icon{-webkit-transition:background-color 160ms;transition:background-color 160ms}.toggle-inner{will-change:background-color, transform;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:#000}.toggle-inner .toggle-switch-icon{padding-left:1px;padding-right:1px;padding-top:1px;padding-bottom:1px;width:100%;height:100%}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toggle-inner .toggle-switch-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:1px;padding-inline-start:1px;-webkit-padding-end:1px;padding-inline-end:1px}}:host(.toggle-disabled){opacity:0.3}:host(.in-item[slot]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:16px;padding-right:0;padding-top:12px;padding-bottom:12px;cursor:pointer}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot]){padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:0;padding-inline-end:0}}:host(.in-item[slot=start]){padding-left:2px;padding-right:18px;padding-top:12px;padding-bottom:12px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-item[slot=start]){padding-left:unset;padding-right:unset;-webkit-padding-start:2px;padding-inline-start:2px;-webkit-padding-end:18px;padding-inline-end:18px}}\";\n\nconst Toggle = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionChange = createEvent(this, \"ionChange\", 7);\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n this.inputId = `ion-tg-${toggleIds++}`;\n this.lastDrag = 0;\n this.activated = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.inputId;\n /**\n * If `true`, the toggle is selected.\n */\n this.checked = false;\n /**\n * If `true`, the user cannot interact with the toggle.\n */\n this.disabled = false;\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n this.value = 'on';\n /**\n * Enables the on/off accessibility switch labels within the toggle.\n */\n this.enableOnOffLabels = undefined;\n this.onClick = (ev) => {\n ev.preventDefault();\n if (this.lastDrag + 300 < Date.now()) {\n this.checked = !this.checked;\n }\n };\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n this.getSwitchLabelIcon = (mode, checked) => {\n if (mode === 'md') {\n return checked ? checkmarkOutline : removeOutline;\n }\n return checked ? removeOutline : ellipseOutline;\n };\n }\n checkedChanged(isChecked) {\n this.ionChange.emit({\n checked: isChecked,\n value: this.value,\n });\n }\n disabledChanged() {\n this.emitStyle();\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async connectedCallback() {\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.el,\n gestureName: 'toggle',\n gesturePriority: 100,\n threshold: 5,\n passive: false,\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.disabledChanged();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n componentWillLoad() {\n this.emitStyle();\n }\n emitStyle() {\n this.ionStyle.emit({\n 'interactive-disabled': this.disabled,\n });\n }\n onStart() {\n this.activated = true;\n // touch-action does not work in iOS\n this.setFocus();\n }\n onMove(detail) {\n if (shouldToggle(isRTL(this.el), this.checked, detail.deltaX, -10)) {\n this.checked = !this.checked;\n hapticSelection();\n }\n }\n onEnd(ev) {\n this.activated = false;\n this.lastDrag = Date.now();\n ev.event.preventDefault();\n ev.event.stopImmediatePropagation();\n }\n getValue() {\n return this.value || '';\n }\n setFocus() {\n if (this.focusEl) {\n this.focusEl.focus();\n }\n }\n renderOnOffSwitchLabels(mode, checked) {\n const icon = this.getSwitchLabelIcon(mode, checked);\n return (h(\"ion-icon\", { class: {\n 'toggle-switch-icon': true,\n 'toggle-switch-icon-checked': checked,\n }, icon: icon }));\n }\n render() {\n const { activated, color, checked, disabled, el, inputId, name, enableOnOffLabels } = this;\n const mode = getIonMode(this);\n const { label, labelId, labelText } = getAriaLabel(el, inputId);\n const value = this.getValue();\n const rtl = isRTL(el) ? 'rtl' : 'ltr';\n renderHiddenInput(true, el, name, checked ? value : '', disabled);\n return (h(Host, { onClick: this.onClick, \"aria-labelledby\": label ? labelId : null, \"aria-checked\": `${checked}`, \"aria-hidden\": disabled ? 'true' : null, role: \"switch\", class: createColorClasses(color, {\n [mode]: true,\n 'in-item': hostContext('ion-item', el),\n 'toggle-activated': activated,\n 'toggle-checked': checked,\n 'toggle-disabled': disabled,\n interactive: true,\n [`toggle-${rtl}`]: true,\n }) }, h(\"div\", { class: \"toggle-icon\", part: \"track\" }, enableOnOffLabels &&\n mode === 'ios' && [this.renderOnOffSwitchLabels(mode, true), this.renderOnOffSwitchLabels(mode, false)], h(\"div\", { class: \"toggle-icon-wrapper\" }, h(\"div\", { class: \"toggle-inner\", part: \"handle\" }, enableOnOffLabels && mode === 'md' && this.renderOnOffSwitchLabels(mode, checked)))), h(\"label\", { htmlFor: inputId }, labelText), h(\"input\", { type: \"checkbox\", role: \"switch\", \"aria-checked\": `${checked}`, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) })));\n }\n get el() { return this; }\n static get watchers() { return {\n \"checked\": [\"checkedChanged\"],\n \"disabled\": [\"disabledChanged\"]\n }; }\n static get style() { return {\n ios: toggleIosCss,\n md: toggleMdCss\n }; }\n}, [33, \"ion-toggle\", {\n \"color\": [513],\n \"name\": [1],\n \"checked\": [1028],\n \"disabled\": [4],\n \"value\": [1],\n \"enableOnOffLabels\": [4, \"enable-on-off-labels\"],\n \"activated\": [32]\n }]);\nconst shouldToggle = (rtl, checked, deltaX, margin) => {\n if (checked) {\n return (!rtl && margin > deltaX) || (rtl && -margin < deltaX);\n }\n else {\n return (!rtl && -margin < deltaX) || (rtl && margin > deltaX);\n }\n};\nlet toggleIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-toggle\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-toggle\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Toggle);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonToggle = Toggle;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonToggle, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses, h as hostContext } from './theme.js';\n\nconst toolbarIosCss = \":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #f7f7f7));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}\";\n\nconst toolbarMdCss = \":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){margin-left:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-first-slot){margin-left:unset;-webkit-margin-start:4px;margin-inline-start:4px}}::slotted(.buttons-last-slot){margin-right:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-last-slot){margin-right:unset;-webkit-margin-end:4px;margin-inline-end:4px}}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}\";\n\nconst Toolbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.childrenStyles = new Map();\n }\n componentWillLoad() {\n const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));\n const firstButtons = buttons.find((button) => {\n return button.slot === 'start';\n });\n if (firstButtons) {\n firstButtons.classList.add('buttons-first-slot');\n }\n const buttonsReversed = buttons.reverse();\n const lastButtons = buttonsReversed.find((button) => button.slot === 'end') ||\n buttonsReversed.find((button) => button.slot === 'primary') ||\n buttonsReversed.find((button) => button.slot === 'secondary');\n if (lastButtons) {\n lastButtons.classList.add('buttons-last-slot');\n }\n }\n childrenStyle(ev) {\n ev.stopPropagation();\n const tagName = ev.target.tagName;\n const updatedStyles = ev.detail;\n const newStyles = {};\n const childStyles = this.childrenStyles.get(tagName) || {};\n let hasStyleChange = false;\n Object.keys(updatedStyles).forEach((key) => {\n const childKey = `toolbar-${key}`;\n const newValue = updatedStyles[key];\n if (newValue !== childStyles[childKey]) {\n hasStyleChange = true;\n }\n if (newValue) {\n newStyles[childKey] = true;\n }\n });\n if (hasStyleChange) {\n this.childrenStyles.set(tagName, newStyles);\n forceUpdate(this);\n }\n }\n render() {\n const mode = getIonMode(this);\n const childStyles = {};\n this.childrenStyles.forEach((value) => {\n Object.assign(childStyles, value);\n });\n return (h(Host, { class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n })) }, h(\"div\", { class: \"toolbar-background\" }), h(\"div\", { class: \"toolbar-container\" }, h(\"slot\", { name: \"start\" }), h(\"slot\", { name: \"secondary\" }), h(\"div\", { class: \"toolbar-content\" }, h(\"slot\", null)), h(\"slot\", { name: \"primary\" }), h(\"slot\", { name: \"end\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: toolbarIosCss,\n md: toolbarMdCss\n }; }\n}, [33, \"ion-toolbar\", {\n \"color\": [513]\n }, [[0, \"ionStyle\", \"childrenStyle\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-toolbar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-toolbar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Toolbar);\n }\n break;\n } });\n}\n\nconst IonToolbar = Toolbar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonToolbar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, readTask, writeTask, forceUpdate, h, Host } from '@stencil/core/internal/client';\nimport { c as componentOnReady } from './helpers.js';\n\nconst CELL_TYPE_ITEM = 'item';\nconst CELL_TYPE_HEADER = 'header';\nconst CELL_TYPE_FOOTER = 'footer';\nconst NODE_CHANGE_NONE = 0;\nconst NODE_CHANGE_POSITION = 1;\nconst NODE_CHANGE_CELL = 2;\n\nconst MIN_READS = 2;\nconst updateVDom = (dom, heightIndex, cells, range) => {\n // reset dom\n for (const node of dom) {\n node.change = NODE_CHANGE_NONE;\n node.d = true;\n }\n // try to match into exisiting dom\n const toMutate = [];\n const end = range.offset + range.length;\n for (let i = range.offset; i < end; i++) {\n const cell = cells[i];\n const node = dom.find((n) => n.d && n.cell === cell);\n if (node) {\n const top = heightIndex[i];\n if (top !== node.top) {\n node.top = top;\n node.change = NODE_CHANGE_POSITION;\n }\n node.d = false;\n }\n else {\n toMutate.push(cell);\n }\n }\n // needs to append\n const pool = dom.filter((n) => n.d);\n for (const cell of toMutate) {\n const node = pool.find((n) => n.d && n.cell.type === cell.type);\n const index = cell.i;\n if (node) {\n node.d = false;\n node.change = NODE_CHANGE_CELL;\n node.cell = cell;\n node.top = heightIndex[index];\n }\n else {\n dom.push({\n d: false,\n cell,\n visible: true,\n change: NODE_CHANGE_CELL,\n top: heightIndex[index],\n });\n }\n }\n dom\n .filter((n) => n.d && n.top !== -9999)\n .forEach((n) => {\n n.change = NODE_CHANGE_POSITION;\n n.top = -9999;\n });\n};\nconst doRender = (el, nodeRender, dom, updateCellHeight) => {\n var _a;\n const children = Array.from(el.children).filter((n) => n.tagName !== 'TEMPLATE');\n const childrenNu = children.length;\n let child;\n for (let i = 0; i < dom.length; i++) {\n const node = dom[i];\n const cell = node.cell;\n // the cell change, the content must be updated\n if (node.change === NODE_CHANGE_CELL) {\n if (i < childrenNu) {\n child = children[i];\n nodeRender(child, cell, i);\n }\n else {\n const newChild = createNode(el, cell.type);\n child = (_a = nodeRender(newChild, cell, i)) !== null && _a !== void 0 ? _a : newChild;\n child.classList.add('virtual-item');\n el.appendChild(child);\n }\n child['$ionCell'] = cell;\n }\n else {\n child = children[i];\n }\n // only update position when it changes\n if (node.change !== NODE_CHANGE_NONE) {\n child.style.transform = `translate3d(0,${node.top}px,0)`;\n }\n // update visibility\n const visible = cell.visible;\n if (node.visible !== visible) {\n if (visible) {\n child.classList.remove('virtual-loading');\n }\n else {\n child.classList.add('virtual-loading');\n }\n node.visible = visible;\n }\n // dynamic height\n if (cell.reads > 0) {\n updateCellHeight(cell, child);\n cell.reads--;\n }\n }\n};\nconst createNode = (el, type) => {\n const template = getTemplate(el, type);\n if (template && el.ownerDocument !== null) {\n return el.ownerDocument.importNode(template.content, true).children[0];\n }\n return null;\n};\nconst getTemplate = (el, type) => {\n switch (type) {\n case CELL_TYPE_ITEM:\n return el.querySelector('template:not([name])');\n case CELL_TYPE_HEADER:\n return el.querySelector('template[name=header]');\n case CELL_TYPE_FOOTER:\n return el.querySelector('template[name=footer]');\n }\n};\nconst getViewport = (scrollTop, vierportHeight, margin) => {\n return {\n top: Math.max(scrollTop - margin, 0),\n bottom: scrollTop + vierportHeight + margin,\n };\n};\nconst getRange = (heightIndex, viewport, buffer) => {\n const topPos = viewport.top;\n const bottomPos = viewport.bottom;\n // find top index\n let i = 0;\n for (; i < heightIndex.length; i++) {\n if (heightIndex[i] > topPos) {\n break;\n }\n }\n const offset = Math.max(i - buffer - 1, 0);\n // find bottom index\n for (; i < heightIndex.length; i++) {\n if (heightIndex[i] >= bottomPos) {\n break;\n }\n }\n const end = Math.min(i + buffer, heightIndex.length);\n const length = end - offset;\n return { offset, length };\n};\nconst getShouldUpdate = (dirtyIndex, currentRange, range) => {\n const end = range.offset + range.length;\n return dirtyIndex <= end || currentRange.offset !== range.offset || currentRange.length !== range.length;\n};\nconst findCellIndex = (cells, index) => {\n const max = cells.length > 0 ? cells[cells.length - 1].index : 0;\n if (index === 0) {\n return 0;\n }\n else if (index === max + 1) {\n return cells.length;\n }\n else {\n return cells.findIndex((c) => c.index === index);\n }\n};\nconst inplaceUpdate = (dst, src, offset) => {\n if (offset === 0 && src.length >= dst.length) {\n return src;\n }\n for (let i = 0; i < src.length; i++) {\n dst[i + offset] = src[i];\n }\n return dst;\n};\nconst calcCells = (items, itemHeight, headerHeight, footerHeight, headerFn, footerFn, approxHeaderHeight, approxFooterHeight, approxItemHeight, j, offset, len) => {\n const cells = [];\n const end = len + offset;\n for (let i = offset; i < end; i++) {\n const item = items[i];\n if (headerFn) {\n const value = headerFn(item, i, items);\n if (value != null) {\n cells.push({\n i: j++,\n type: CELL_TYPE_HEADER,\n value,\n index: i,\n height: headerHeight ? headerHeight(value, i) : approxHeaderHeight,\n reads: headerHeight ? 0 : MIN_READS,\n visible: !!headerHeight,\n });\n }\n }\n cells.push({\n i: j++,\n type: CELL_TYPE_ITEM,\n value: item,\n index: i,\n height: itemHeight ? itemHeight(item, i) : approxItemHeight,\n reads: itemHeight ? 0 : MIN_READS,\n visible: !!itemHeight,\n });\n if (footerFn) {\n const value = footerFn(item, i, items);\n if (value != null) {\n cells.push({\n i: j++,\n type: CELL_TYPE_FOOTER,\n value,\n index: i,\n height: footerHeight ? footerHeight(value, i) : approxFooterHeight,\n reads: footerHeight ? 0 : MIN_READS,\n visible: !!footerHeight,\n });\n }\n }\n }\n return cells;\n};\nconst calcHeightIndex = (buf, cells, index) => {\n let acum = buf[index];\n for (let i = index; i < buf.length; i++) {\n buf[i] = acum;\n acum += cells[i].height;\n }\n return acum;\n};\nconst resizeBuffer = (buf, len) => {\n if (!buf) {\n return new Uint32Array(len);\n }\n if (buf.length === len) {\n return buf;\n }\n else if (len > buf.length) {\n const newBuf = new Uint32Array(len);\n newBuf.set(buf);\n return newBuf;\n }\n else {\n return buf.subarray(0, len);\n }\n};\nconst positionForIndex = (index, cells, heightIndex) => {\n const cell = cells.find((c) => c.type === CELL_TYPE_ITEM && c.index === index);\n if (cell) {\n return heightIndex[cell.i];\n }\n return -1;\n};\n\nconst virtualScrollCss = \"ion-virtual-scroll{display:block;position:relative;width:100%;contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-virtual-scroll>.virtual-loading{opacity:0}ion-virtual-scroll>.virtual-item{position:absolute !important;top:0 !important;right:0 !important;left:0 !important;-webkit-transition-duration:0ms;transition-duration:0ms;will-change:transform}\";\n\nconst VirtualScroll = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.range = { offset: 0, length: 0 };\n this.viewportHeight = 0;\n this.cells = [];\n this.virtualDom = [];\n this.isEnabled = false;\n this.viewportOffset = 0;\n this.currentScrollTop = 0;\n this.indexDirty = 0;\n this.lastItemLen = 0;\n this.totalHeight = 0;\n /**\n * It is important to provide this\n * if virtual item height will be significantly larger than the default\n * The approximate height of each virtual item template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxItemHeight = 45;\n /**\n * The approximate height of each header template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxHeaderHeight = 30;\n /**\n * The approximate width of each footer template's cell.\n * This dimension is used to help determine how many cells should\n * be created when initialized, and to help calculate the height of\n * the scrollable area. This height value can only use `px` units.\n * Note that the actual rendered size of each cell comes from the\n * app's CSS, whereas this approximation is used to help calculate\n * initial dimensions before the item has been rendered.\n */\n this.approxFooterHeight = 30;\n this.onScroll = () => {\n this.updateVirtualScroll();\n };\n }\n itemsChanged() {\n this.calcCells();\n this.updateVirtualScroll();\n }\n componentWillLoad() {\n console.warn(`[Deprecation Warning]: ion-virtual-scroll has been deprecated and will be removed in Ionic Framework v7.0. See https://ionicframework.com/docs/angular/virtual-scroll for migration steps.`);\n }\n async connectedCallback() {\n const contentEl = this.el.closest('ion-content');\n if (!contentEl) {\n console.error('<ion-virtual-scroll> must be used inside an <ion-content>');\n return;\n }\n this.scrollEl = await contentEl.getScrollElement();\n this.contentEl = contentEl;\n this.calcCells();\n this.updateState();\n }\n componentDidUpdate() {\n this.updateState();\n }\n disconnectedCallback() {\n this.scrollEl = undefined;\n }\n onResize() {\n this.calcCells();\n this.updateVirtualScroll();\n }\n /**\n * Returns the position of the virtual item at the given index.\n */\n positionForItem(index) {\n return Promise.resolve(positionForIndex(index, this.cells, this.getHeightIndex()));\n }\n /**\n * This method marks a subset of items as dirty, so they can be re-rendered. Items should be marked as\n * dirty any time the content or their style changes.\n *\n * The subset of items to be updated can are specifying by an offset and a length.\n */\n async checkRange(offset, len = -1) {\n // TODO: kind of hacky how we do in-place updated of the cells\n // array. this part needs a complete refactor\n if (!this.items) {\n return;\n }\n const length = len === -1 ? this.items.length - offset : len;\n const cellIndex = findCellIndex(this.cells, offset);\n const cells = calcCells(this.items, this.itemHeight, this.headerHeight, this.footerHeight, this.headerFn, this.footerFn, this.approxHeaderHeight, this.approxFooterHeight, this.approxItemHeight, cellIndex, offset, length);\n this.cells = inplaceUpdate(this.cells, cells, cellIndex);\n this.lastItemLen = this.items.length;\n this.indexDirty = Math.max(offset - 1, 0);\n this.scheduleUpdate();\n }\n /**\n * This method marks the tail the items array as dirty, so they can be re-rendered.\n *\n * It's equivalent to calling:\n *\n * ```js\n * virtualScroll.checkRange(lastItemLen);\n * ```\n */\n async checkEnd() {\n if (this.items) {\n this.checkRange(this.lastItemLen);\n }\n }\n updateVirtualScroll() {\n // do nothing if virtual-scroll is disabled\n if (!this.isEnabled || !this.scrollEl) {\n return;\n }\n // unschedule future updates\n if (this.timerUpdate) {\n clearTimeout(this.timerUpdate);\n this.timerUpdate = undefined;\n }\n // schedule DOM operations into the stencil queue\n readTask(this.readVS.bind(this));\n writeTask(this.writeVS.bind(this));\n }\n readVS() {\n const { contentEl, scrollEl, el } = this;\n let topOffset = 0;\n let node = el;\n while (node !== null && node !== contentEl) {\n topOffset += node.offsetTop;\n node = node.offsetParent;\n }\n this.viewportOffset = topOffset;\n if (scrollEl) {\n this.viewportHeight = scrollEl.offsetHeight;\n this.currentScrollTop = scrollEl.scrollTop;\n }\n }\n writeVS() {\n const dirtyIndex = this.indexDirty;\n // get visible viewport\n const scrollTop = this.currentScrollTop - this.viewportOffset;\n const viewport = getViewport(scrollTop, this.viewportHeight, 100);\n // compute lazily the height index\n const heightIndex = this.getHeightIndex();\n // get array bounds of visible cells base in the viewport\n const range = getRange(heightIndex, viewport, 2);\n // fast path, do nothing\n const shouldUpdate = getShouldUpdate(dirtyIndex, this.range, range);\n if (!shouldUpdate) {\n return;\n }\n this.range = range;\n // in place mutation of the virtual DOM\n updateVDom(this.virtualDom, heightIndex, this.cells, range);\n // Write DOM\n // Different code paths taken depending of the render API used\n if (this.nodeRender) {\n doRender(this.el, this.nodeRender, this.virtualDom, this.updateCellHeight.bind(this));\n }\n else if (this.domRender) {\n this.domRender(this.virtualDom);\n }\n else if (this.renderItem) {\n forceUpdate(this);\n }\n }\n updateCellHeight(cell, node) {\n const update = () => {\n if (node['$ionCell'] === cell) {\n const style = window.getComputedStyle(node);\n const height = node.offsetHeight + parseFloat(style.getPropertyValue('margin-bottom'));\n this.setCellHeight(cell, height);\n }\n };\n if (node) {\n componentOnReady(node, update);\n }\n else {\n update();\n }\n }\n setCellHeight(cell, height) {\n const index = cell.i;\n // the cell might changed since the height update was scheduled\n if (cell !== this.cells[index]) {\n return;\n }\n if (cell.height !== height || cell.visible !== true) {\n cell.visible = true;\n cell.height = height;\n this.indexDirty = Math.min(this.indexDirty, index);\n this.scheduleUpdate();\n }\n }\n scheduleUpdate() {\n clearTimeout(this.timerUpdate);\n this.timerUpdate = setTimeout(() => this.updateVirtualScroll(), 100);\n }\n updateState() {\n const shouldEnable = !!(this.scrollEl && this.cells.length > 0);\n if (shouldEnable !== this.isEnabled) {\n this.enableScrollEvents(shouldEnable);\n if (shouldEnable) {\n this.updateVirtualScroll();\n }\n }\n }\n calcCells() {\n if (!this.items) {\n return;\n }\n this.lastItemLen = this.items.length;\n this.cells = calcCells(this.items, this.itemHeight, this.headerHeight, this.footerHeight, this.headerFn, this.footerFn, this.approxHeaderHeight, this.approxFooterHeight, this.approxItemHeight, 0, 0, this.lastItemLen);\n this.indexDirty = 0;\n }\n getHeightIndex() {\n if (this.indexDirty !== Infinity) {\n this.calcHeightIndex(this.indexDirty);\n }\n return this.heightIndex;\n }\n calcHeightIndex(index = 0) {\n // TODO: optimize, we don't need to calculate all the cells\n this.heightIndex = resizeBuffer(this.heightIndex, this.cells.length);\n this.totalHeight = calcHeightIndex(this.heightIndex, this.cells, index);\n this.indexDirty = Infinity;\n }\n enableScrollEvents(shouldListen) {\n if (this.rmEvent) {\n this.rmEvent();\n this.rmEvent = undefined;\n }\n const scrollEl = this.scrollEl;\n if (scrollEl) {\n this.isEnabled = shouldListen;\n scrollEl.addEventListener('scroll', this.onScroll);\n this.rmEvent = () => {\n scrollEl.removeEventListener('scroll', this.onScroll);\n };\n }\n }\n renderVirtualNode(node) {\n const { type, value, index } = node.cell;\n switch (type) {\n case CELL_TYPE_ITEM:\n return this.renderItem(value, index);\n case CELL_TYPE_HEADER:\n return this.renderHeader(value, index);\n case CELL_TYPE_FOOTER:\n return this.renderFooter(value, index);\n }\n }\n render() {\n return (h(Host, { style: {\n height: `${this.totalHeight}px`,\n } }, this.renderItem && (h(VirtualProxy, { dom: this.virtualDom }, this.virtualDom.map((node) => this.renderVirtualNode(node))))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"itemHeight\": [\"itemsChanged\"],\n \"headerHeight\": [\"itemsChanged\"],\n \"footerHeight\": [\"itemsChanged\"],\n \"items\": [\"itemsChanged\"]\n }; }\n static get style() { return virtualScrollCss; }\n}, [0, \"ion-virtual-scroll\", {\n \"approxItemHeight\": [2, \"approx-item-height\"],\n \"approxHeaderHeight\": [2, \"approx-header-height\"],\n \"approxFooterHeight\": [2, \"approx-footer-height\"],\n \"headerFn\": [16],\n \"footerFn\": [16],\n \"items\": [16],\n \"itemHeight\": [16],\n \"headerHeight\": [16],\n \"footerHeight\": [16],\n \"renderItem\": [16],\n \"renderHeader\": [16],\n \"renderFooter\": [16],\n \"nodeRender\": [16],\n \"domRender\": [16],\n \"totalHeight\": [32],\n \"positionForItem\": [64],\n \"checkRange\": [64],\n \"checkEnd\": [64]\n }, [[9, \"resize\", \"onResize\"]]]);\nconst VirtualProxy = ({ dom }, children, utils) => {\n return utils.map(children, (child, i) => {\n const node = dom[i];\n const vattrs = child.vattrs || {};\n let classes = vattrs.class || '';\n classes += 'virtual-item ';\n if (!node.visible) {\n classes += 'virtual-loading';\n }\n return Object.assign(Object.assign({}, child), { vattrs: Object.assign(Object.assign({}, vattrs), { class: classes, style: Object.assign(Object.assign({}, vattrs.style), { transform: `translate3d(0,${node.top}px,0)` }) }) });\n });\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-virtual-scroll\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-virtual-scroll\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, VirtualScroll);\n }\n break;\n } });\n}\n\nconst IonVirtualScroll = VirtualScroll;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonVirtualScroll, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { e as ellipsisHorizontal, d as chevronForwardOutline } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { i as inheritAriaAttributes } from './helpers.js';\nimport { o as openURL, c as createColorClasses, h as hostContext } from './theme.js';\nimport { d as defineCustomElement$2 } from './icon.js';\n\nconst breadcrumbIosCss = \":host{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center;color:var(--color);font-size:16px;font-weight:400;line-height:1.5}.breadcrumb-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;outline:none;background:inherit}:host(.breadcrumb-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.breadcrumb-active){color:var(--color-active)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .breadcrumb-native{background:var(--background-focused)}@media (any-hover: hover){:host(.ion-activatable:hover){color:var(--color-hover)}:host(.ion-activatable.in-breadcrumbs-color:hover),:host(.ion-activatable.ion-color:hover){color:var(--ion-color-shade)}}.breadcrumb-separator{display:-ms-inline-flexbox;display:inline-flex}:host(.breadcrumb-collapsed) .breadcrumb-native{display:none}:host(.in-breadcrumbs-color),:host(.in-breadcrumbs-color.breadcrumb-active){color:var(--ion-color-base)}:host(.in-breadcrumbs-color) .breadcrumb-separator{color:var(--ion-color-base)}:host(.ion-color){color:var(--ion-color-base)}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumb-separator{color:rgba(var(--ion-color-contrast-rgb), 0.8)}:host(.in-toolbar-color.breadcrumb-active){color:var(--ion-color-contrast)}.breadcrumbs-collapsed-indicator{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:14px;margin-right:14px;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:32px;height:18px;border:0;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.breadcrumbs-collapsed-indicator{margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:14px;margin-inline-end:14px}}.breadcrumbs-collapsed-indicator ion-icon{margin-top:1px;font-size:22px}:host{--color:var(--ion-color-step-850, #2d4665);--color-active:var(--ion-text-color, #03060b);--color-hover:var(--ion-text-color, #03060b);--color-focused:var(--color-active);--background-focused:var(--ion-color-step-50, rgba(233, 237, 243, 0.7))}:host(.breadcrumb-active){font-weight:600}.breadcrumb-native{border-radius:4px;padding-left:12px;padding-right:12px;padding-top:5px;padding-bottom:5px;border:1px solid transparent}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.breadcrumb-native{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}:host(.ion-focused) .breadcrumb-native{border-radius:8px}:host(.in-breadcrumbs-color.ion-focused) .breadcrumb-native,:host(.ion-color.ion-focused) .breadcrumb-native{background:rgba(var(--ion-color-base-rgb), 0.1);color:var(--ion-color-base)}:host(.ion-focused) ::slotted(ion-icon),:host(.in-breadcrumbs-color.ion-focused) ::slotted(ion-icon),:host(.ion-color.ion-focused) ::slotted(ion-icon){color:var(--ion-color-step-750, #445b78)}.breadcrumb-separator{color:var(--ion-color-step-550, #73849a)}::slotted(ion-icon){color:var(--ion-color-step-400, #92a0b3);font-size:18px}::slotted(ion-icon[slot=start]){margin-right:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:8px;margin-inline-end:8px}}::slotted(ion-icon[slot=end]){margin-left:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;-webkit-margin-start:8px;margin-inline-start:8px}}:host(.breadcrumb-active) ::slotted(ion-icon){color:var(--ion-color-step-850, #242d39)}.breadcrumbs-collapsed-indicator{border-radius:4px;background:var(--ion-color-step-100, #e9edf3);color:var(--ion-color-step-550, #73849a)}.breadcrumbs-collapsed-indicator:hover{opacity:0.45}.breadcrumbs-collapsed-indicator:focus{background:var(--ion-color-step-150, #d9e0ea)}\";\n\nconst breadcrumbMdCss = \":host{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center;color:var(--color);font-size:16px;font-weight:400;line-height:1.5}.breadcrumb-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;outline:none;background:inherit}:host(.breadcrumb-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.breadcrumb-active){color:var(--color-active)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .breadcrumb-native{background:var(--background-focused)}@media (any-hover: hover){:host(.ion-activatable:hover){color:var(--color-hover)}:host(.ion-activatable.in-breadcrumbs-color:hover),:host(.ion-activatable.ion-color:hover){color:var(--ion-color-shade)}}.breadcrumb-separator{display:-ms-inline-flexbox;display:inline-flex}:host(.breadcrumb-collapsed) .breadcrumb-native{display:none}:host(.in-breadcrumbs-color),:host(.in-breadcrumbs-color.breadcrumb-active){color:var(--ion-color-base)}:host(.in-breadcrumbs-color) .breadcrumb-separator{color:var(--ion-color-base)}:host(.ion-color){color:var(--ion-color-base)}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumb-separator{color:rgba(var(--ion-color-contrast-rgb), 0.8)}:host(.in-toolbar-color.breadcrumb-active){color:var(--ion-color-contrast)}.breadcrumbs-collapsed-indicator{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:14px;margin-right:14px;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:32px;height:18px;border:0;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.breadcrumbs-collapsed-indicator{margin-left:unset;margin-right:unset;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:14px;margin-inline-end:14px}}.breadcrumbs-collapsed-indicator ion-icon{margin-top:1px;font-size:22px}:host{--color:var(--ion-color-step-600, #677483);--color-active:var(--ion-text-color, #03060b);--color-hover:var(--ion-text-color, #03060b);--color-focused:var(--ion-color-step-800, #35404e);--background-focused:$breadcrumb-md-background-focused}:host(.breadcrumb-active){font-weight:500}.breadcrumb-native{padding-left:12px;padding-right:12px;padding-top:6px;padding-bottom:6px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.breadcrumb-native{padding-left:unset;padding-right:unset;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px}}.breadcrumb-separator{margin-left:10px;margin-right:10px;margin-top:-1px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.breadcrumb-separator{margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.ion-focused) .breadcrumb-native{border-radius:4px;-webkit-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2), 0px 2px 8px rgba(0, 0, 0, 0.12);box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2), 0px 2px 8px rgba(0, 0, 0, 0.12)}.breadcrumb-separator{color:var(--ion-color-step-550, #73849a)}::slotted(ion-icon){color:var(--ion-color-step-550, #7d8894);font-size:18px}::slotted(ion-icon[slot=start]){margin-right:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:8px;margin-inline-end:8px}}::slotted(ion-icon[slot=end]){margin-left:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;-webkit-margin-start:8px;margin-inline-start:8px}}:host(.breadcrumb-active) ::slotted(ion-icon){color:var(--ion-color-step-850, #222d3a)}.breadcrumbs-collapsed-indicator{border-radius:2px;background:var(--ion-color-step-100, #eef1f3);color:var(--ion-color-step-550, #73849a)}.breadcrumbs-collapsed-indicator:hover{opacity:0.7}.breadcrumbs-collapsed-indicator:focus{background:var(--ion-color-step-150, #dfe5e8)}\";\n\nconst Breadcrumb = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.collapsedClick = createEvent(this, \"collapsedClick\", 7);\n this.inheritedAttributes = {};\n /** @internal */\n this.collapsed = false;\n /**\n * If `true`, the breadcrumb will take on a different look to show that\n * it is the currently active breadcrumb. Defaults to `true` for the\n * last breadcrumb if it is not set on any.\n */\n this.active = false;\n /**\n * If `true`, the user cannot interact with the breadcrumb.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n this.collapsedIndicatorClick = () => {\n this.collapsedClick.emit({ ionShadowTarget: this.collapsedRef });\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n isClickable() {\n return this.href !== undefined;\n }\n render() {\n const { color, active, collapsed, disabled, download, el, inheritedAttributes, last, routerAnimation, routerDirection, separator, showCollapsedIndicator, target, } = this;\n const clickable = this.isClickable();\n const TagType = this.href === undefined ? 'span' : 'a';\n // Links can still be tabbed to when set to disabled if they have an href\n // in order to truly disable them we can keep it as an anchor but remove the href\n const href = disabled ? undefined : this.href;\n const mode = getIonMode(this);\n const attrs = TagType === 'span'\n ? {}\n : {\n download,\n href,\n target,\n };\n // If the breadcrumb is collapsed, check if it contains the collapsed indicator\n // to show the separator as long as it isn't also the last breadcrumb\n // otherwise if not collapsed use the value in separator\n const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;\n return (h(Host, { onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), \"aria-disabled\": disabled ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n 'breadcrumb-active': active,\n 'breadcrumb-collapsed': collapsed,\n 'breadcrumb-disabled': disabled,\n 'in-breadcrumbs-color': hostContext('ion-breadcrumbs[color]', el),\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'ion-activatable': clickable,\n 'ion-focusable': clickable,\n }) }, h(TagType, Object.assign({}, attrs, { class: \"breadcrumb-native\", part: \"native\", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), h(\"slot\", { name: \"start\" }), h(\"slot\", null), h(\"slot\", { name: \"end\" })), showCollapsedIndicator && (h(\"button\", { part: \"collapsed-indicator\", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {\n 'breadcrumbs-collapsed-indicator': true,\n } }, h(\"ion-icon\", { icon: ellipsisHorizontal, lazy: false }))), showSeparator && (\n /**\n * Separators should not be announced by narrators.\n * We add aria-hidden on the span so that this applies\n * to any custom separators too.\n */\n h(\"span\", { class: \"breadcrumb-separator\", part: \"separator\", \"aria-hidden\": \"true\" }, h(\"slot\", { name: \"separator\" }, mode === 'ios' ? (h(\"ion-icon\", { icon: chevronForwardOutline, lazy: false, \"flip-rtl\": true })) : (h(\"span\", null, \"/\")))))));\n }\n get el() { return this; }\n static get style() { return {\n ios: breadcrumbIosCss,\n md: breadcrumbMdCss\n }; }\n}, [33, \"ion-breadcrumb\", {\n \"collapsed\": [4],\n \"last\": [4],\n \"showCollapsedIndicator\": [4, \"show-collapsed-indicator\"],\n \"color\": [1],\n \"active\": [4],\n \"disabled\": [4],\n \"download\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"separator\": [4],\n \"target\": [1],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-breadcrumb\", \"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-breadcrumb\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Breadcrumb);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonBreadcrumb = Breadcrumb;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonBreadcrumb, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { B as Button, d as defineCustomElement$1 } from './button.js';\n\nconst IonButton = Button;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { d as inheritAttributes } from './helpers.js';\nimport { o as openURL, c as createColorClasses } from './theme.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst cardIosCss = \":host{--ion-safe-area-left:0px;--ion-safe-area-right:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.card-disabled){cursor:default;opacity:0.3;pointer-events:none}.card-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:inherit}.card-native::-moz-focus-inner{border:0}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));--color:var(--ion-card-color, var(--ion-item-color, var(--ion-color-step-600, #666666)));margin-left:16px;margin-right:16px;margin-top:24px;margin-bottom:24px;border-radius:8px;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1), -webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);font-size:14px;-webkit-box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}:host(.ion-activated){-webkit-transform:scale3d(0.97, 0.97, 1);transform:scale3d(0.97, 0.97, 1)}\";\n\nconst cardMdCss = \":host{--ion-safe-area-left:0px;--ion-safe-area-right:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.card-disabled){cursor:default;opacity:0.3;pointer-events:none}.card-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:inherit}.card-native::-moz-focus-inner{border:0}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));--color:var(--ion-card-color, var(--ion-item-color, var(--ion-color-step-550, #737373)));margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:10px;border-radius:4px;font-size:14px;-webkit-box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}\";\n\nconst Card = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.inheritedAriaAttributes = {};\n /**\n * If `true`, a button tag will be rendered and the card will be tappable.\n */\n this.button = false;\n /**\n * The type of the button. Only used when an `onclick` or `button` property is present.\n */\n this.type = 'button';\n /**\n * If `true`, the user cannot interact with the card.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n }\n componentWillLoad() {\n this.inheritedAriaAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n isClickable() {\n return this.href !== undefined || this.button;\n }\n renderCard(mode) {\n const clickable = this.isClickable();\n if (!clickable) {\n return [h(\"slot\", null)];\n }\n const { href, routerAnimation, routerDirection, inheritedAriaAttributes } = this;\n const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';\n const attrs = TagType === 'button'\n ? { type: this.type }\n : {\n download: this.download,\n href: this.href,\n rel: this.rel,\n target: this.target,\n };\n return (h(TagType, Object.assign({}, attrs, inheritedAriaAttributes, { class: \"card-native\", part: \"native\", disabled: this.disabled, onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation) }), h(\"slot\", null), clickable && mode === 'md' && h(\"ion-ripple-effect\", null)));\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'card-disabled': this.disabled,\n 'ion-activatable': this.isClickable(),\n }) }, this.renderCard(mode)));\n }\n get el() { return this; }\n static get style() { return {\n ios: cardIosCss,\n md: cardMdCss\n }; }\n}, [33, \"ion-card\", {\n \"color\": [513],\n \"button\": [4],\n \"type\": [1],\n \"disabled\": [4],\n \"download\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16],\n \"target\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-card\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-card\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Card);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonCard = Card;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonCard, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { i as close } from './index7.js';\nimport { b as getIonMode } from './ionic-global.js';\nimport { i as inheritAriaAttributes } from './helpers.js';\nimport { h as hostContext, c as createColorClasses, o as openURL } from './theme.js';\nimport { d as defineCustomElement$3 } from './icon.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst fabButtonIosCss = \":host{--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--background-hover:var(--ion-color-primary-contrast, #fff);--background-hover-opacity:.08;--transition:background-color, opacity 100ms linear;--ripple-color:currentColor;--border-radius:50%;--border-width:0;--border-style:none;--border-color:initial;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:56px;height:56px;font-size:14px;text-align:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transform:var(--transform);transform:var(--transform);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);background-clip:padding-box;color:var(--color);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:strict;cursor:pointer;overflow:hidden;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}::slotted(ion-icon){line-height:1}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{left:0;right:0;top:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;z-index:1}:host(.fab-button-disabled){cursor:default;opacity:0.5;pointer-events:none}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-activated) .button-native{color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}::slotted(ion-icon){line-height:1}:host(.fab-button-small){margin-left:8px;margin-right:8px;margin-top:8px;margin-bottom:8px;width:40px;height:40px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-button-small){margin-left:unset;margin-right:unset;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:8px;margin-inline-end:8px}}.close-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;left:0;right:0;top:0;position:absolute;height:100%;-webkit-transform:scale(0.4) rotateZ(-45deg);transform:scale(0.4) rotateZ(-45deg);-webkit-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;font-size:var(--close-icon-font-size);opacity:0;z-index:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.close-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.fab-button-close-active) .close-icon{-webkit-transform:scale(1) rotateZ(0deg);transform:scale(1) rotateZ(0deg);opacity:1}:host(.fab-button-close-active) .button-inner{-webkit-transform:scale(0.4) rotateZ(45deg);transform:scale(0.4) rotateZ(45deg);opacity:0}ion-ripple-effect{color:var(--ripple-color)}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.fab-button-translucent) .button-native{-webkit-backdrop-filter:var(--backdrop-filter);backdrop-filter:var(--backdrop-filter)}}:host(.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host{--background:var(--ion-color-primary, #3880ff);--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1;--color:var(--ion-color-primary-contrast, #fff);--box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);--transition:0.2s transform cubic-bezier(0.25, 1.11, 0.78, 1.59);--close-icon-font-size:28px}:host(.ion-activated){--box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);--transform:scale(1.1);--transition:0.2s transform ease-out}::slotted(ion-icon){font-size:28px}:host(.fab-button-in-list){--background:var(--ion-color-light, #f4f5f8);--background-activated:var(--ion-color-light-shade, #d7d8da);--background-focused:var(--background-activated);--background-hover:var(--ion-color-light-tint, #f5f6f9);--color:var(--ion-color-light-contrast, #000);--color-activated:var(--ion-color-light-contrast, #000);--color-focused:var(--color-activated);--transition:transform 200ms ease 10ms, opacity 200ms ease 10ms}:host(.fab-button-in-list) ::slotted(ion-icon){font-size:18px}:host(.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}:host(.ion-color.ion-focused) .button-native,:host(.ion-color.ion-activated) .button-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .button-native::after,:host(.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-contrast)}:host(.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.fab-button-translucent){--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.9);--background-hover:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.8);--background-focused:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.82);--backdrop-filter:saturate(180%) blur(20px)}:host(.fab-button-translucent-in-list){--background:rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.9);--background-hover:rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.8);--background-focused:rgba(var(--ion-color-light-rgb, 244, 245, 248), 0.82)}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){@media (any-hover: hover){:host(.fab-button-translucent.ion-color:hover) .button-native{background:rgba(var(--ion-color-base-rgb), 0.8)}}:host(.ion-color.fab-button-translucent) .button-native{background:rgba(var(--ion-color-base-rgb), 0.9)}:host(.ion-color.ion-focused.fab-button-translucent) .button-native,:host(.ion-color.ion-activated.fab-button-translucent) .button-native{background:var(--ion-color-base)}}\";\n\nconst fabButtonMdCss = \":host{--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--background-hover:var(--ion-color-primary-contrast, #fff);--background-hover-opacity:.08;--transition:background-color, opacity 100ms linear;--ripple-color:currentColor;--border-radius:50%;--border-width:0;--border-style:none;--border-color:initial;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:56px;height:56px;font-size:14px;text-align:center;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-font-kerning:none;font-kerning:none}.button-native{border-radius:var(--border-radius);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transform:var(--transform);transform:var(--transform);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);background-clip:padding-box;color:var(--color);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:strict;cursor:pointer;overflow:hidden;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}::slotted(ion-icon){line-height:1}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{left:0;right:0;top:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;z-index:1}:host(.fab-button-disabled){cursor:default;opacity:0.5;pointer-events:none}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-activated) .button-native{color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}::slotted(ion-icon){line-height:1}:host(.fab-button-small){margin-left:8px;margin-right:8px;margin-top:8px;margin-bottom:8px;width:40px;height:40px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.fab-button-small){margin-left:unset;margin-right:unset;-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:8px;margin-inline-end:8px}}.close-icon{margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;left:0;right:0;top:0;position:absolute;height:100%;-webkit-transform:scale(0.4) rotateZ(-45deg);transform:scale(0.4) rotateZ(-45deg);-webkit-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;font-size:var(--close-icon-font-size);opacity:0;z-index:1}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.close-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}:host(.fab-button-close-active) .close-icon{-webkit-transform:scale(1) rotateZ(0deg);transform:scale(1) rotateZ(0deg);opacity:1}:host(.fab-button-close-active) .button-inner{-webkit-transform:scale(0.4) rotateZ(45deg);transform:scale(0.4) rotateZ(45deg);opacity:0}ion-ripple-effect{color:var(--ripple-color)}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.fab-button-translucent) .button-native{-webkit-backdrop-filter:var(--backdrop-filter);backdrop-filter:var(--backdrop-filter)}}:host(.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host{--background:var(--ion-color-primary, #3880ff);--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--color:var(--ion-color-primary-contrast, #fff);--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1), background-color 280ms cubic-bezier(0.4, 0, 0.2, 1), color 280ms cubic-bezier(0.4, 0, 0.2, 1), opacity 15ms linear 30ms, transform 270ms cubic-bezier(0, 0, 0.2, 1) 0ms;--close-icon-font-size:24px}:host(.ion-activated){--box-shadow:0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12)}::slotted(ion-icon){font-size:24px}:host(.fab-button-in-list){--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);--color-activated:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);--color-focused:var(--color-activated);--background:var(--ion-color-light, #f4f5f8);--background-activated:transparent;--background-focused:var(--ion-color-light-shade, #d7d8da);--background-hover:var(--ion-color-light-tint, #f5f6f9)}:host(.fab-button-in-list) ::slotted(ion-icon){font-size:18px}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .button-native::after{background:var(--ion-color-contrast)}:host(.ion-color.ion-activated) .button-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-activated) .button-native::after{background:transparent}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-contrast)}:host(.ion-color:hover) .button-native::after{background:var(--ion-color-contrast)}}\";\n\nconst FabButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionFocus = createEvent(this, \"ionFocus\", 7);\n this.ionBlur = createEvent(this, \"ionBlur\", 7);\n this.fab = null;\n this.inheritedAttributes = {};\n /**\n * If `true`, the fab button will be show a close icon.\n */\n this.activated = false;\n /**\n * If `true`, the user cannot interact with the fab button.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n /**\n * If `true`, the fab button will show when in a fab-list.\n */\n this.show = false;\n /**\n * If `true`, the fab button will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n /**\n * The icon name to use for the close icon. This will appear when the fab button\n * is pressed. Only applies if it is the main button inside of a fab containing a\n * fab list.\n */\n this.closeIcon = close;\n this.onFocus = () => {\n this.ionFocus.emit();\n };\n this.onBlur = () => {\n this.ionBlur.emit();\n };\n this.onClick = () => {\n const { fab } = this;\n if (!fab) {\n return;\n }\n fab.toggle();\n };\n }\n connectedCallback() {\n this.fab = this.el.closest('ion-fab');\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n }\n render() {\n const { el, disabled, color, href, activated, show, translucent, size, inheritedAttributes } = this;\n const inList = hostContext('ion-fab-list', el);\n const mode = getIonMode(this);\n const TagType = href === undefined ? 'button' : 'a';\n const attrs = TagType === 'button'\n ? { type: this.type }\n : {\n download: this.download,\n href,\n rel: this.rel,\n target: this.target,\n };\n return (h(Host, { onClick: this.onClick, \"aria-disabled\": disabled ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n 'fab-button-in-list': inList,\n 'fab-button-translucent-in-list': inList && translucent,\n 'fab-button-close-active': activated,\n 'fab-button-show': show,\n 'fab-button-disabled': disabled,\n 'fab-button-translucent': translucent,\n 'ion-activatable': true,\n 'ion-focusable': true,\n [`fab-button-${size}`]: size !== undefined,\n }) }, h(TagType, Object.assign({}, attrs, { class: \"button-native\", part: \"native\", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), h(\"ion-icon\", { icon: this.closeIcon, part: \"close-icon\", class: \"close-icon\", lazy: false }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", null)), mode === 'md' && h(\"ion-ripple-effect\", null))));\n }\n get el() { return this; }\n static get style() { return {\n ios: fabButtonIosCss,\n md: fabButtonMdCss\n }; }\n}, [33, \"ion-fab-button\", {\n \"color\": [513],\n \"activated\": [4],\n \"disabled\": [4],\n \"download\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16],\n \"target\": [1],\n \"show\": [4],\n \"translucent\": [4],\n \"type\": [1],\n \"size\": [1],\n \"closeIcon\": [1, \"close-icon\"]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-fab-button\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-fab-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, FabButton);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonFabButton = FabButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonFabButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createColorClasses } from './theme.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst itemOptionIosCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(0.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(0.7em + var(--ion-safe-area-right));padding-inline-end:calc(0.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(0.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(0.7em + var(--ion-safe-area-left));padding-inline-start:calc(0.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:16px}:host(.ion-activated){background:var(--ion-color-primary-shade, #3171e0)}:host(.ion-color.ion-activated){background:var(--ion-color-shade)}\";\n\nconst itemOptionMdCss = \":host{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff);background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit)}:host(.in-list.item-options-end:last-child){padding-right:calc(0.7em + var(--ion-safe-area-right))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-end:last-child){padding-right:unset;-webkit-padding-end:calc(0.7em + var(--ion-safe-area-right));padding-inline-end:calc(0.7em + var(--ion-safe-area-right))}}:host(.in-list.item-options-start:first-child){padding-left:calc(0.7em + var(--ion-safe-area-left))}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.in-list.item-options-start:first-child){padding-left:unset;-webkit-padding-start:calc(0.7em + var(--ion-safe-area-left));padding-inline-start:calc(0.7em + var(--ion-safe-area-left))}}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}.button-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0.7em;padding-right:0.7em;padding-top:0;padding-bottom:0;display:inline-block;position:relative;width:100%;height:100%;border:0;outline:none;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:0.7em;padding-inline-start:0.7em;-webkit-padding-end:0.7em;padding-inline-end:0.7em}}.button-inner{display:-ms-flexbox;display:flex;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.horizontal-wrapper{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%}::slotted(*){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]){margin-left:0;margin-right:5px;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:5px;margin-inline-end:5px}}::slotted([slot=end]){margin-left:5px;margin-right:0;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:5px;margin-inline-start:5px;-webkit-margin-end:0;margin-inline-end:0}}::slotted([slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:10px;margin-right:10px;margin-top:0;margin-bottom:0;min-width:0.9em;font-size:1.8em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted([slot=icon-only]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-option-expandable){-ms-flex-negative:0;flex-shrink:0;-webkit-transition-duration:0;transition-duration:0;-webkit-transition-property:none;transition-property:none;-webkit-transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1);transition-timing-function:cubic-bezier(0.65, 0.05, 0.36, 1)}:host(.item-option-disabled){pointer-events:none}:host(.item-option-disabled) .button-native{cursor:default;opacity:0.5;pointer-events:none}:host{font-size:14px;font-weight:500;text-transform:uppercase}\";\n\nconst ItemOption = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * If `true`, the user cannot interact with the item option.\n */\n this.disabled = false;\n /**\n * If `true`, the option will expand to take up the available width and cover any other options.\n */\n this.expandable = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = (ev) => {\n const el = ev.target.closest('ion-item-option');\n if (el) {\n ev.preventDefault();\n }\n };\n }\n render() {\n const { disabled, expandable, href } = this;\n const TagType = href === undefined ? 'button' : 'a';\n const mode = getIonMode(this);\n const attrs = TagType === 'button'\n ? { type: this.type }\n : {\n download: this.download,\n href: this.href,\n target: this.target,\n };\n return (h(Host, { onClick: this.onClick, class: createColorClasses(this.color, {\n [mode]: true,\n 'item-option-disabled': disabled,\n 'item-option-expandable': expandable,\n 'ion-activatable': true,\n }) }, h(TagType, Object.assign({}, attrs, { class: \"button-native\", part: \"native\", disabled: disabled }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", { name: \"top\" }), h(\"div\", { class: \"horizontal-wrapper\" }, h(\"slot\", { name: \"start\" }), h(\"slot\", { name: \"icon-only\" }), h(\"slot\", null), h(\"slot\", { name: \"end\" })), h(\"slot\", { name: \"bottom\" })), mode === 'md' && h(\"ion-ripple-effect\", null))));\n }\n get el() { return this; }\n static get style() { return {\n ios: itemOptionIosCss,\n md: itemOptionMdCss\n }; }\n}, [33, \"ion-item-option\", {\n \"color\": [513],\n \"disabled\": [4],\n \"download\": [1],\n \"expandable\": [4],\n \"href\": [1],\n \"rel\": [1],\n \"target\": [1],\n \"type\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-item-option\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-item-option\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ItemOption);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonItemOption = ItemOption;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonItemOption, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { o as openURL, c as createColorClasses } from './theme.js';\n\nconst routerLinkCss = \":host{--background:transparent;--color:var(--ion-color-primary, #3880ff);background:var(--background);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}a{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit}\";\n\nconst RouterLink = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n this.onClick = (ev) => {\n openURL(this.href, ev, this.routerDirection, this.routerAnimation);\n };\n }\n render() {\n const mode = getIonMode(this);\n const attrs = {\n href: this.href,\n rel: this.rel,\n target: this.target,\n };\n return (h(Host, { onClick: this.onClick, class: createColorClasses(this.color, {\n [mode]: true,\n 'ion-activatable': true,\n }) }, h(\"a\", Object.assign({}, attrs), h(\"slot\", null))));\n }\n static get style() { return routerLinkCss; }\n}, [1, \"ion-router-link\", {\n \"color\": [513],\n \"href\": [1],\n \"rel\": [1],\n \"routerDirection\": [1, \"router-direction\"],\n \"routerAnimation\": [16],\n \"target\": [1]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-router-link\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-router-link\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RouterLink);\n }\n break;\n } });\n}\n\nconst IonRouterLink = RouterLink;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRouterLink, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { B as BACKDROP, d as prepareOverlay, e as present, f as dismiss, g as eventMethod } from './overlays.js';\nimport { s as sanitizeDOMString } from './index3.js';\nimport { g as getClassMap } from './theme.js';\nimport { c as createAnimation } from './animation.js';\nimport { d as defineCustomElement$3 } from './backdrop.js';\nimport { d as defineCustomElement$2 } from './spinner.js';\n\n/**\n * iOS Loading Enter Animation\n */\nconst iosEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.loading-wrapper')).keyframes([\n { offset: 0, opacity: 0.01, transform: 'scale(1.1)' },\n { offset: 1, opacity: 1, transform: 'scale(1)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Loading Leave Animation\n */\nconst iosLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.loading-wrapper')).keyframes([\n { offset: 0, opacity: 0.99, transform: 'scale(1)' },\n { offset: 1, opacity: 0, transform: 'scale(0.9)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Loading Enter Animation\n */\nconst mdEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.loading-wrapper')).keyframes([\n { offset: 0, opacity: 0.01, transform: 'scale(1.1)' },\n { offset: 1, opacity: 1, transform: 'scale(1)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Loading Leave Animation\n */\nconst mdLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.loading-wrapper')).keyframes([\n { offset: 0, opacity: 0.99, transform: 'scale(1)' },\n { offset: 1, opacity: 0, transform: 'scale(0.9)' },\n ]);\n return baseAnimation\n .addElement(baseEl)\n .easing('ease-in-out')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst loadingIosCss = \".sc-ion-loading-ios-h{--min-width:auto;--width:auto;--min-height:auto;--height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-loading-ios-h{display:none}.loading-wrapper.sc-ion-loading-ios{display:-ms-flexbox;display:flex;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);opacity:0;z-index:10}ion-spinner.sc-ion-loading-ios{color:var(--spinner-color)}.sc-ion-loading-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--max-width:270px;--max-height:90%;--spinner-color:var(--ion-color-step-600, #666666);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);color:var(--ion-text-color, #000);font-size:14px}.loading-wrapper.sc-ion-loading-ios{border-radius:8px;padding-left:34px;padding-right:34px;padding-top:24px;padding-bottom:24px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-wrapper.sc-ion-loading-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:34px;padding-inline-start:34px;-webkit-padding-end:34px;padding-inline-end:34px}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.loading-translucent.sc-ion-loading-ios-h .loading-wrapper.sc-ion-loading-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.loading-content.sc-ion-loading-ios{font-weight:bold}.loading-spinner.sc-ion-loading-ios+.loading-content.sc-ion-loading-ios{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-spinner.sc-ion-loading-ios+.loading-content.sc-ion-loading-ios{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}\";\n\nconst loadingMdCss = \".sc-ion-loading-md-h{--min-width:auto;--width:auto;--min-height:auto;--height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-loading-md-h{display:none}.loading-wrapper.sc-ion-loading-md{display:-ms-flexbox;display:flex;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);opacity:0;z-index:10}ion-spinner.sc-ion-loading-md{color:var(--spinner-color)}.sc-ion-loading-md-h{--background:var(--ion-color-step-50, #f2f2f2);--max-width:280px;--max-height:90%;--spinner-color:var(--ion-color-primary, #3880ff);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);color:var(--ion-color-step-850, #262626);font-size:14px}.loading-wrapper.sc-ion-loading-md{border-radius:2px;padding-left:24px;padding-right:24px;padding-top:24px;padding-bottom:24px;-webkit-box-shadow:0 16px 20px rgba(0, 0, 0, 0.4);box-shadow:0 16px 20px rgba(0, 0, 0, 0.4)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-wrapper.sc-ion-loading-md{padding-left:unset;padding-right:unset;-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px}}.loading-spinner.sc-ion-loading-md+.loading-content.sc-ion-loading-md{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-spinner.sc-ion-loading-md+.loading-content.sc-ion-loading-md{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}\";\n\nconst Loading = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = createEvent(this, \"ionLoadingDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionLoadingWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionLoadingWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionLoadingDidDismiss\", 7);\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * Number of milliseconds to wait before dismissing the loading indicator.\n */\n this.duration = 0;\n /**\n * If `true`, the loading indicator will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = false;\n /**\n * If `true`, a backdrop will be displayed behind the loading indicator.\n */\n this.showBackdrop = true;\n /**\n * If `true`, the loading indicator will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the loading indicator will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, BACKDROP);\n };\n }\n connectedCallback() {\n prepareOverlay(this.el);\n }\n componentWillLoad() {\n if (this.spinner === undefined) {\n const mode = getIonMode(this);\n this.spinner = config.get('loadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent'));\n }\n }\n /**\n * Present the loading overlay after it has been created.\n */\n async present() {\n await present(this, 'loadingEnter', iosEnterAnimation, mdEnterAnimation, undefined);\n if (this.duration > 0) {\n this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);\n }\n }\n /**\n * Dismiss the loading overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the loading.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the loading.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n if (this.durationTimeout) {\n clearTimeout(this.durationTimeout);\n }\n return dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation, mdLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the loading did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionLoadingDidDismiss');\n }\n /**\n * Returns a promise that resolves when the loading will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionLoadingWillDismiss');\n }\n render() {\n const { message, spinner, htmlAttributes } = this;\n const mode = getIonMode(this);\n return (h(Host, Object.assign({ tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${40000 + this.overlayIndex}`,\n }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h(\"ion-backdrop\", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h(\"div\", { tabindex: \"0\" }), h(\"div\", { class: \"loading-wrapper ion-overlay-wrapper\", role: \"dialog\" }, spinner && (h(\"div\", { class: \"loading-spinner\" }, h(\"ion-spinner\", { name: spinner, \"aria-hidden\": \"true\" }))), message !== undefined && h(\"div\", { class: \"loading-content\", innerHTML: sanitizeDOMString(message) })), h(\"div\", { tabindex: \"0\" })));\n }\n get el() { return this; }\n static get style() { return {\n ios: loadingIosCss,\n md: loadingMdCss\n }; }\n}, [34, \"ion-loading\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"message\": [1],\n \"cssClass\": [1, \"css-class\"],\n \"duration\": [2],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"showBackdrop\": [4, \"show-backdrop\"],\n \"spinner\": [1025],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-loading\", \"ion-backdrop\", \"ion-spinner\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-loading\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Loading);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-spinner\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonLoading = Loading;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonLoading, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { j as isCancel, d as prepareOverlay, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays.js';\nimport { s as sanitizeDOMString } from './index3.js';\nimport { g as getClassMap, c as createColorClasses } from './theme.js';\nimport { c as createAnimation } from './animation.js';\nimport { g as getElementRoot } from './helpers.js';\nimport { d as defineCustomElement$3 } from './icon.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\n/**\n * iOS Toast Enter Animation\n */\nconst iosEnterAnimation = (baseEl, position) => {\n const baseAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n const root = getElementRoot(baseEl);\n const wrapperEl = root.querySelector('.toast-wrapper');\n const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;\n const top = `calc(10px + var(--ion-safe-area-top, 0px))`;\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperAnimation.fromTo('transform', 'translateY(-100%)', `translateY(${top})`);\n break;\n case 'middle':\n const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);\n wrapperEl.style.top = `${topPosition}px`;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n default:\n wrapperAnimation.fromTo('transform', 'translateY(100%)', `translateY(${bottom})`);\n break;\n }\n return baseAnimation.easing('cubic-bezier(.155,1.105,.295,1.12)').duration(400).addAnimation(wrapperAnimation);\n};\n\n/**\n * iOS Toast Leave Animation\n */\nconst iosLeaveAnimation = (baseEl, position) => {\n const baseAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n const root = getElementRoot(baseEl);\n const wrapperEl = root.querySelector('.toast-wrapper');\n const bottom = `calc(-10px - var(--ion-safe-area-bottom, 0px))`;\n const top = `calc(10px + var(--ion-safe-area-top, 0px))`;\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperAnimation.fromTo('transform', `translateY(${top})`, 'translateY(-100%)');\n break;\n case 'middle':\n wrapperAnimation.fromTo('opacity', 0.99, 0);\n break;\n default:\n wrapperAnimation.fromTo('transform', `translateY(${bottom})`, 'translateY(100%)');\n break;\n }\n return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);\n};\n\n/**\n * MD Toast Enter Animation\n */\nconst mdEnterAnimation = (baseEl, position) => {\n const baseAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n const root = getElementRoot(baseEl);\n const wrapperEl = root.querySelector('.toast-wrapper');\n const bottom = `calc(8px + var(--ion-safe-area-bottom, 0px))`;\n const top = `calc(8px + var(--ion-safe-area-top, 0px))`;\n wrapperAnimation.addElement(wrapperEl);\n switch (position) {\n case 'top':\n wrapperEl.style.top = top;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n case 'middle':\n const topPosition = Math.floor(baseEl.clientHeight / 2 - wrapperEl.clientHeight / 2);\n wrapperEl.style.top = `${topPosition}px`;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n default:\n wrapperEl.style.bottom = bottom;\n wrapperAnimation.fromTo('opacity', 0.01, 1);\n break;\n }\n return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(400).addAnimation(wrapperAnimation);\n};\n\n/**\n * md Toast Leave Animation\n */\nconst mdLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n const root = getElementRoot(baseEl);\n const wrapperEl = root.querySelector('.toast-wrapper');\n wrapperAnimation.addElement(wrapperEl).fromTo('opacity', 0.99, 0);\n return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);\n};\n\nconst toastIosCss = \":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);left:var(--start);right:var(--end);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}[dir=rtl] .toast-wrapper,:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-icon{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--start:10px;--end:10px;font-size:14px}.toast-wrapper{margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-wrapper{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-middle{opacity:0.01}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-content{padding-left:15px;padding-right:15px;padding-top:15px;padding-bottom:15px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-content{padding-left:unset;padding-right:unset;-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px}}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{padding-left:15px;padding-right:15px;padding-top:10px;padding-bottom:10px;height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:17px;font-weight:500;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-button{padding-left:unset;padding-right:unset;-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px}}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}\";\n\nconst toastMdCss = \":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);left:var(--start);right:var(--end);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}[dir=rtl] .toast-wrapper,:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-icon{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, #333333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-50, #f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}.toast-wrapper{margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-wrapper{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.toast-content{padding-left:16px;padding-right:16px;padding-top:14px;padding-bottom:14px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-content{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.toast-header{margin-bottom:2px;font-weight:500;line-height:20px}.toast-message{line-height:20px}.toast-button-group-start{margin-left:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-button-group-start{margin-left:unset;-webkit-margin-start:8px;margin-inline-start:8px}}.toast-button-group-end{margin-right:8px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-button-group-end{margin-right:unset;-webkit-margin-end:8px;margin-inline-end:8px}}.toast-button{padding-left:15px;padding-right:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-button{padding-left:unset;padding-right:unset;-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px}}.toast-button-cancel{color:var(--ion-color-step-100, #e6e6e6)}.toast-button-icon-only{border-radius:50%;padding-left:9px;padding-right:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toast-button-icon-only{padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}\";\n\nconst Toast = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.didPresent = createEvent(this, \"ionToastDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionToastWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionToastWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionToastDidDismiss\", 7);\n this.presented = false;\n /**\n * How many milliseconds to wait before hiding the toast. By default, it will show\n * until `dismiss()` is called.\n */\n this.duration = 0;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = false;\n /**\n * The position of the toast on the screen.\n */\n this.position = 'bottom';\n /**\n * If `true`, the toast will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the toast will animate.\n */\n this.animated = true;\n this.dispatchCancelHandler = (ev) => {\n const role = ev.detail.role;\n if (isCancel(role)) {\n const cancelButton = this.getButtons().find((b) => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n connectedCallback() {\n prepareOverlay(this.el);\n }\n /**\n * Present the toast overlay after it has been created.\n */\n async present() {\n await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position);\n if (this.duration > 0) {\n this.durationTimeout = setTimeout(() => this.dismiss(undefined, 'timeout'), this.duration);\n }\n }\n /**\n * Dismiss the toast overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the toast.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the toast.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n if (this.durationTimeout) {\n clearTimeout(this.durationTimeout);\n }\n return dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);\n }\n /**\n * Returns a promise that resolves when the toast did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionToastDidDismiss');\n }\n /**\n * Returns a promise that resolves when the toast will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionToastWillDismiss');\n }\n getButtons() {\n const buttons = this.buttons\n ? this.buttons.map((b) => {\n return typeof b === 'string' ? { text: b } : b;\n })\n : [];\n return buttons;\n }\n async buttonClick(button) {\n const role = button.role;\n if (isCancel(role)) {\n return this.dismiss(undefined, role);\n }\n const shouldDismiss = await this.callButtonHandler(button);\n if (shouldDismiss) {\n return this.dismiss(undefined, role);\n }\n return Promise.resolve();\n }\n async callButtonHandler(button) {\n if (button === null || button === void 0 ? void 0 : button.handler) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n try {\n const rtn = await safeCall(button.handler);\n if (rtn === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n }\n catch (e) {\n console.error(e);\n }\n }\n return true;\n }\n renderButtons(buttons, side) {\n if (buttons.length === 0) {\n return;\n }\n const mode = getIonMode(this);\n const buttonGroupsClasses = {\n 'toast-button-group': true,\n [`toast-button-group-${side}`]: true,\n };\n return (h(\"div\", { class: buttonGroupsClasses }, buttons.map((b) => (h(\"button\", { type: \"button\", class: buttonClass(b), tabIndex: 0, onClick: () => this.buttonClick(b), part: \"button\" }, h(\"div\", { class: \"toast-button-inner\" }, b.icon && (h(\"ion-icon\", { icon: b.icon, slot: b.text === undefined ? 'icon-only' : undefined, class: \"toast-button-icon\" })), b.text), mode === 'md' && (h(\"ion-ripple-effect\", { type: b.icon !== undefined && b.text === undefined ? 'unbounded' : 'bounded' })))))));\n }\n render() {\n const allButtons = this.getButtons();\n const startButtons = allButtons.filter((b) => b.side === 'start');\n const endButtons = allButtons.filter((b) => b.side !== 'start');\n const mode = getIonMode(this);\n const wrapperClass = {\n 'toast-wrapper': true,\n [`toast-${this.position}`]: true,\n };\n const role = allButtons.length > 0 ? 'dialog' : 'status';\n return (h(Host, Object.assign({ \"aria-live\": \"polite\", \"aria-atomic\": \"true\", role: role, tabindex: \"-1\" }, this.htmlAttributes, { style: {\n zIndex: `${60000 + this.overlayIndex}`,\n }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h(\"div\", { class: wrapperClass }, h(\"div\", { class: \"toast-container\", part: \"container\" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h(\"ion-icon\", { class: \"toast-icon\", part: \"icon\", icon: this.icon, lazy: false, \"aria-hidden\": \"true\" })), h(\"div\", { class: \"toast-content\" }, this.header !== undefined && (h(\"div\", { class: \"toast-header\", part: \"header\" }, this.header)), this.message !== undefined && (h(\"div\", { class: \"toast-message\", part: \"message\", innerHTML: sanitizeDOMString(this.message) }))), this.renderButtons(endButtons, 'end')))));\n }\n get el() { return this; }\n static get style() { return {\n ios: toastIosCss,\n md: toastMdCss\n }; }\n}, [33, \"ion-toast\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"color\": [513],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"duration\": [2],\n \"header\": [1],\n \"message\": [1],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"position\": [1],\n \"buttons\": [16],\n \"translucent\": [4],\n \"animated\": [4],\n \"icon\": [1],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n }]);\nconst buttonClass = (button) => {\n return Object.assign({ 'toast-button': true, 'toast-button-icon-only': button.icon !== undefined && button.text === undefined, [`toast-button-${button.role}`]: button.role !== undefined, 'ion-focusable': true, 'ion-activatable': true }, getClassMap(button.cssClass));\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-toast\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-toast\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Toast);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonToast = Toast;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonToast, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { h as clamp } from './helpers.js';\nimport { b as hapticSelectionChanged, c as hapticSelectionEnd, a as hapticSelectionStart } from './haptic.js';\n\nconst pickerColumnIosCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{left:0;top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{padding-left:4px;padding-right:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-col{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}\";\n\nconst pickerColumnMdCss = \".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{left:0;top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-col{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #3880ff)}\";\n\nconst PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.ionPickerColChange = createEvent(this, \"ionPickerColChange\", 7);\n this.optHeight = 0;\n this.rotateFactor = 0;\n this.scaleFactor = 1;\n this.velocity = 0;\n this.y = 0;\n this.noAnimate = true;\n }\n colChanged() {\n this.refresh();\n }\n async connectedCallback() {\n let pickerRotateFactor = 0;\n let pickerScaleFactor = 0.81;\n const mode = getIonMode(this);\n if (mode === 'ios') {\n pickerRotateFactor = -0.46;\n pickerScaleFactor = 1;\n }\n this.rotateFactor = pickerRotateFactor;\n this.scaleFactor = pickerScaleFactor;\n this.gesture = (await import('./index2.js')).createGesture({\n el: this.el,\n gestureName: 'picker-swipe',\n gesturePriority: 100,\n threshold: 0,\n passive: false,\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable();\n this.tmrId = setTimeout(() => {\n this.noAnimate = false;\n this.refresh(true);\n }, 250);\n }\n componentDidLoad() {\n const colEl = this.optsEl;\n if (colEl) {\n // DOM READ\n // We perfom a DOM read over a rendered item, this needs to happen after the first render\n this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;\n }\n this.refresh();\n }\n disconnectedCallback() {\n cancelAnimationFrame(this.rafId);\n clearTimeout(this.tmrId);\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n emitColChange() {\n this.ionPickerColChange.emit(this.col);\n }\n setSelected(selectedIndex, duration) {\n // if there is a selected index, then figure out it's y position\n // if there isn't a selected index, then just use the top y position\n const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;\n this.velocity = 0;\n // set what y position we're at\n cancelAnimationFrame(this.rafId);\n this.update(y, duration, true);\n this.emitColChange();\n }\n update(y, duration, saveY) {\n if (!this.optsEl) {\n return;\n }\n // ensure we've got a good round number :)\n let translateY = 0;\n let translateZ = 0;\n const { col, rotateFactor } = this;\n const selectedIndex = (col.selectedIndex = this.indexForY(-y));\n const durationStr = duration === 0 ? '' : duration + 'ms';\n const scaleStr = `scale(${this.scaleFactor})`;\n const children = this.optsEl.children;\n for (let i = 0; i < children.length; i++) {\n const button = children[i];\n const opt = col.options[i];\n const optOffset = i * this.optHeight + y;\n let transform = '';\n if (rotateFactor !== 0) {\n const rotateX = optOffset * rotateFactor;\n if (Math.abs(rotateX) <= 90) {\n translateY = 0;\n translateZ = 90;\n transform = `rotateX(${rotateX}deg) `;\n }\n else {\n translateY = -9999;\n }\n }\n else {\n translateZ = 0;\n translateY = optOffset;\n }\n const selected = selectedIndex === i;\n transform += `translate3d(0px,${translateY}px,${translateZ}px) `;\n if (this.scaleFactor !== 1 && !selected) {\n transform += scaleStr;\n }\n // Update transition duration\n if (this.noAnimate) {\n opt.duration = 0;\n button.style.transitionDuration = '';\n }\n else if (duration !== opt.duration) {\n opt.duration = duration;\n button.style.transitionDuration = durationStr;\n }\n // Update transform\n if (transform !== opt.transform) {\n opt.transform = transform;\n }\n button.style.transform = transform;\n // Update selected item\n if (selected !== opt.selected) {\n opt.selected = selected;\n if (selected) {\n button.classList.add(PICKER_OPT_SELECTED);\n }\n else {\n button.classList.remove(PICKER_OPT_SELECTED);\n }\n }\n }\n this.col.prevSelected = selectedIndex;\n if (saveY) {\n this.y = y;\n }\n if (this.lastIndex !== selectedIndex) {\n // have not set a last index yet\n hapticSelectionChanged();\n this.lastIndex = selectedIndex;\n }\n }\n decelerate() {\n if (this.velocity !== 0) {\n // still decelerating\n this.velocity *= DECELERATION_FRICTION;\n // do not let it go slower than a velocity of 1\n this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);\n let y = this.y + this.velocity;\n if (y > this.minY) {\n // whoops, it's trying to scroll up farther than the options we have!\n y = this.minY;\n this.velocity = 0;\n }\n else if (y < this.maxY) {\n // gahh, it's trying to scroll down farther than we can!\n y = this.maxY;\n this.velocity = 0;\n }\n this.update(y, 0, true);\n const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;\n if (notLockedIn) {\n // isn't locked in yet, keep decelerating until it is\n this.rafId = requestAnimationFrame(() => this.decelerate());\n }\n else {\n this.velocity = 0;\n this.emitColChange();\n hapticSelectionEnd();\n }\n }\n else if (this.y % this.optHeight !== 0) {\n // needs to still get locked into a position so options line up\n const currentPos = Math.abs(this.y % this.optHeight);\n // create a velocity in the direction it needs to scroll\n this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;\n this.decelerate();\n }\n }\n indexForY(y) {\n return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);\n }\n onStart(detail) {\n // We have to prevent default in order to block scrolling under the picker\n // but we DO NOT have to stop propagation, since we still want\n // some \"click\" events to capture\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n hapticSelectionStart();\n // reset everything\n cancelAnimationFrame(this.rafId);\n const options = this.col.options;\n let minY = options.length - 1;\n let maxY = 0;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n minY = Math.min(minY, i);\n maxY = Math.max(maxY, i);\n }\n }\n this.minY = -(minY * this.optHeight);\n this.maxY = -(maxY * this.optHeight);\n }\n onMove(detail) {\n if (detail.event.cancelable) {\n detail.event.preventDefault();\n }\n detail.event.stopPropagation();\n // update the scroll position relative to pointer start position\n let y = this.y + detail.deltaY;\n if (y > this.minY) {\n // scrolling up higher than scroll area\n y = Math.pow(y, 0.8);\n this.bounceFrom = y;\n }\n else if (y < this.maxY) {\n // scrolling down below scroll area\n y += Math.pow(this.maxY - y, 0.9);\n this.bounceFrom = y;\n }\n else {\n this.bounceFrom = 0;\n }\n this.update(y, 0, false);\n }\n onEnd(detail) {\n if (this.bounceFrom > 0) {\n // bounce back up\n this.update(this.minY, 100, true);\n this.emitColChange();\n return;\n }\n else if (this.bounceFrom < 0) {\n // bounce back down\n this.update(this.maxY, 100, true);\n this.emitColChange();\n return;\n }\n this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);\n if (this.velocity === 0 && detail.deltaY === 0) {\n const opt = detail.event.target.closest('.picker-opt');\n if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {\n this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);\n }\n }\n else {\n this.y += detail.deltaY;\n if (Math.abs(detail.velocityY) < 0.05) {\n const isScrollingUp = detail.deltaY > 0;\n const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;\n if (isScrollingUp && optHeightFraction > 0.5) {\n this.velocity = Math.abs(this.velocity) * -1;\n }\n else if (!isScrollingUp && optHeightFraction <= 0.5) {\n this.velocity = Math.abs(this.velocity);\n }\n }\n this.decelerate();\n }\n }\n refresh(forceRefresh) {\n var _a;\n let min = this.col.options.length - 1;\n let max = 0;\n const options = this.col.options;\n for (let i = 0; i < options.length; i++) {\n if (!options[i].disabled) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n /**\n * Only update selected value if column has a\n * velocity of 0. If it does not, then the\n * column is animating might land on\n * a value different than the value at\n * selectedIndex\n */\n if (this.velocity !== 0) {\n return;\n }\n const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);\n if (this.col.prevSelected !== selectedIndex || forceRefresh) {\n const y = selectedIndex * this.optHeight * -1;\n this.velocity = 0;\n this.update(y, TRANSITION_DURATION, true);\n }\n }\n render() {\n const col = this.col;\n const Button = 'button';\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'picker-col': true,\n 'picker-opts-left': this.col.align === 'left',\n 'picker-opts-right': this.col.align === 'right',\n }, style: {\n 'max-width': this.col.columnWidth,\n } }, col.prefix && (h(\"div\", { class: \"picker-prefix\", style: { width: col.prefixWidth } }, col.prefix)), h(\"div\", { class: \"picker-opts\", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h(Button, { type: \"button\", class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, \"opt-index\": index }, o.text)))), col.suffix && (h(\"div\", { class: \"picker-suffix\", style: { width: col.suffixWidth } }, col.suffix))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"col\": [\"colChanged\"]\n }; }\n static get style() { return {\n ios: pickerColumnIosCss,\n md: pickerColumnMdCss\n }; }\n}, [32, \"ion-picker-column\", {\n \"col\": [16]\n }]);\nconst PICKER_OPT_SELECTED = 'picker-opt-selected';\nconst DECELERATION_FRICTION = 0.97;\nconst MAX_PICKER_SPEED = 90;\nconst TRANSITION_DURATION = 150;\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker-column\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-picker-column\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, PickerColumnCmp);\n }\n break;\n } });\n}\n\nexport { PickerColumnCmp as P, defineCustomElement as d };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { B as BACKDROP, j as isCancel, d as prepareOverlay, e as present, f as dismiss, g as eventMethod, s as safeCall } from './overlays.js';\nimport { g as getClassMap } from './theme.js';\nimport { c as createAnimation } from './animation.js';\nimport { d as defineCustomElement$3 } from './backdrop.js';\nimport { d as defineCustomElement$2 } from './picker-column.js';\n\n/**\n * iOS Picker Enter Animation\n */\nconst iosEnterAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n wrapperAnimation\n .addElement(baseEl.querySelector('.picker-wrapper'))\n .fromTo('transform', 'translateY(100%)', 'translateY(0%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(400)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Picker Leave Animation\n */\nconst iosLeaveAnimation = (baseEl) => {\n const baseAnimation = createAnimation();\n const backdropAnimation = createAnimation();\n const wrapperAnimation = createAnimation();\n backdropAnimation\n .addElement(baseEl.querySelector('ion-backdrop'))\n .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);\n wrapperAnimation\n .addElement(baseEl.querySelector('.picker-wrapper'))\n .fromTo('transform', 'translateY(0%)', 'translateY(100%)');\n return baseAnimation\n .addElement(baseEl)\n .easing('cubic-bezier(.36,.66,.04,1)')\n .duration(400)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst pickerIosCss = \".sc-ion-picker-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}[dir=rtl].sc-ion-picker-ios-h,[dir=rtl] .sc-ion-picker-ios-h{left:unset;right:unset;right:0}.overlay-hidden.sc-ion-picker-ios-h{display:none}.picker-wrapper.sc-ion-picker-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-wrapper.sc-ion-picker-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.picker-toolbar.sc-ion-picker-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-ios:active,.picker-button.sc-ion-picker-ios:focus{outline:none}.picker-columns.sc-ion-picker-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;direction:ltr;overflow:hidden}.picker-above-highlight.sc-ion-picker-ios,.picker-below-highlight.sc-ion-picker-ios{display:none;pointer-events:none}.sc-ion-picker-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-ios:last-child .picker-button.sc-ion-picker-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-ios,.picker-button.ion-activated.sc-ion-picker-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:1em;padding-right:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-button.sc-ion-picker-ios,.picker-button.ion-activated.sc-ion-picker-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em}}.picker-columns.sc-ion-picker-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-ios{left:0;top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}[dir=rtl].sc-ion-picker-ios .picker-above-highlight.sc-ion-picker-ios,[dir=rtl].sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}.picker-below-highlight.sc-ion-picker-ios{left:0;top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}[dir=rtl].sc-ion-picker-ios .picker-below-highlight.sc-ion-picker-ios,[dir=rtl].sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}\";\n\nconst pickerMdCss = \".sc-ion-picker-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}[dir=rtl].sc-ion-picker-md-h,[dir=rtl] .sc-ion-picker-md-h{left:unset;right:unset;right:0}.overlay-hidden.sc-ion-picker-md-h{display:none}.picker-wrapper.sc-ion-picker-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-wrapper.sc-ion-picker-md{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.picker-toolbar.sc-ion-picker-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-md:active,.picker-button.sc-ion-picker-md:focus{outline:none}.picker-columns.sc-ion-picker-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;direction:ltr;overflow:hidden}.picker-above-highlight.sc-ion-picker-md,.picker-below-highlight.sc-ion-picker-md{display:none;pointer-events:none}.sc-ion-picker-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-md,.picker-button.ion-activated.sc-ion-picker-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:1.1em;padding-right:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-button.sc-ion-picker-md,.picker-button.ion-activated.sc-ion-picker-md{padding-left:unset;padding-right:unset;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em}}.picker-columns.sc-ion-picker-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-md{left:0;top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}[dir=rtl].sc-ion-picker-md .picker-above-highlight.sc-ion-picker-md,[dir=rtl].sc-ion-picker-md-h .picker-above-highlight.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-above-highlight.sc-ion-picker-md{left:unset;right:unset;right:0}.picker-below-highlight.sc-ion-picker-md{left:0;top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}[dir=rtl].sc-ion-picker-md .picker-below-highlight.sc-ion-picker-md,[dir=rtl].sc-ion-picker-md-h .picker-below-highlight.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-below-highlight.sc-ion-picker-md{left:unset;right:unset;right:0}\";\n\nconst Picker = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = createEvent(this, \"ionPickerDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionPickerWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionPickerWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionPickerDidDismiss\", 7);\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * Array of buttons to be displayed at the top of the picker.\n */\n this.buttons = [];\n /**\n * Array of columns to be displayed in the picker.\n */\n this.columns = [];\n /**\n * Number of milliseconds to wait before dismissing the picker.\n */\n this.duration = 0;\n /**\n * If `true`, a backdrop will be displayed behind the picker.\n */\n this.showBackdrop = true;\n /**\n * If `true`, the picker will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, the picker will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, BACKDROP);\n };\n this.dispatchCancelHandler = (ev) => {\n const role = ev.detail.role;\n if (isCancel(role)) {\n const cancelButton = this.buttons.find((b) => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n connectedCallback() {\n prepareOverlay(this.el);\n }\n /**\n * Present the picker overlay after it has been created.\n */\n async present() {\n await present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, undefined);\n if (this.duration > 0) {\n this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);\n }\n }\n /**\n * Dismiss the picker overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the picker.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the picker.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n if (this.durationTimeout) {\n clearTimeout(this.durationTimeout);\n }\n return dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation, iosLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the picker did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionPickerDidDismiss');\n }\n /**\n * Returns a promise that resolves when the picker will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionPickerWillDismiss');\n }\n /**\n * Get the column that matches the specified name.\n *\n * @param name The name of the column.\n */\n getColumn(name) {\n return Promise.resolve(this.columns.find((column) => column.name === name));\n }\n async buttonClick(button) {\n const role = button.role;\n if (isCancel(role)) {\n return this.dismiss(undefined, role);\n }\n const shouldDismiss = await this.callButtonHandler(button);\n if (shouldDismiss) {\n return this.dismiss(this.getSelected(), button.role);\n }\n return Promise.resolve();\n }\n async callButtonHandler(button) {\n if (button) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n const rtn = await safeCall(button.handler, this.getSelected());\n if (rtn === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n }\n return true;\n }\n getSelected() {\n const selected = {};\n this.columns.forEach((col, index) => {\n const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;\n selected[col.name] = {\n text: selectedColumn ? selectedColumn.text : undefined,\n value: selectedColumn ? selectedColumn.value : undefined,\n columnIndex: index,\n };\n });\n return selected;\n }\n render() {\n const { htmlAttributes } = this;\n const mode = getIonMode(this);\n return (h(Host, Object.assign({ \"aria-modal\": \"true\", tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${20000 + this.overlayIndex}`,\n }, class: Object.assign({ [mode]: true,\n // Used internally for styling\n [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h(\"ion-backdrop\", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h(\"div\", { tabindex: \"0\" }), h(\"div\", { class: \"picker-wrapper ion-overlay-wrapper\", role: \"dialog\" }, h(\"div\", { class: \"picker-toolbar\" }, this.buttons.map((b) => (h(\"div\", { class: buttonWrapperClass(b) }, h(\"button\", { type: \"button\", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h(\"div\", { class: \"picker-columns\" }, h(\"div\", { class: \"picker-above-highlight\" }), this.presented && this.columns.map((c) => h(\"ion-picker-column\", { col: c })), h(\"div\", { class: \"picker-below-highlight\" }))), h(\"div\", { tabindex: \"0\" })));\n }\n get el() { return this; }\n static get style() { return {\n ios: pickerIosCss,\n md: pickerMdCss\n }; }\n}, [34, \"ion-picker\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"buttons\": [16],\n \"columns\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"duration\": [2],\n \"showBackdrop\": [4, \"show-backdrop\"],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"presented\": [32],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64],\n \"getColumn\": [64]\n }]);\nconst buttonWrapperClass = (button) => {\n return {\n [`picker-toolbar-${button.role}`]: button.role !== undefined,\n 'picker-toolbar-button': true,\n };\n};\nconst buttonClass = (button) => {\n return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-picker\", \"ion-backdrop\", \"ion-picker-column\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-picker\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Picker);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-picker-column\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonPicker = Picker;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonPicker, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, writeTask, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { a as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, f as findIonContent, p as printIonContentErrorMsg } from './index9.js';\nimport { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate.js';\nimport { g as getElementRoot, h as clamp, r as raf, d as inheritAttributes } from './helpers.js';\nimport { KEYBOARD_DID_OPEN } from './keyboard.js';\nimport { p as printIonWarning } from './index8.js';\nimport { w as win } from './index6.js';\nimport { B as BACKDROP, d as prepareOverlay, e as present, i as activeAnimations, f as dismiss, g as eventMethod } from './overlays.js';\nimport { g as getClassMap } from './theme.js';\nimport { e as deepReady } from './index4.js';\nimport { c as createAnimation } from './animation.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier.js';\nimport { createGesture } from './index2.js';\nimport { d as defineCustomElement$2 } from './backdrop.js';\n\nvar Style;\n(function (Style) {\n Style[\"Dark\"] = \"DARK\";\n Style[\"Light\"] = \"LIGHT\";\n Style[\"Default\"] = \"DEFAULT\";\n})(Style || (Style = {}));\nconst StatusBar = {\n getEngine() {\n var _a;\n return ((_a = win === null || win === void 0 ? void 0 : win.Capacitor) === null || _a === void 0 ? void 0 : _a.isPluginAvailable('StatusBar')) && (win === null || win === void 0 ? void 0 : win.Capacitor.Plugins.StatusBar);\n },\n supportsDefaultStatusBarStyle() {\n var _a;\n /**\n * The 'DEFAULT' status bar style was added\n * to the @capacitor/status-bar plugin in Capacitor 3.\n * PluginHeaders is only supported in Capacitor 3+,\n * so we can use this to detect Capacitor 3.\n */\n return !!((_a = win === null || win === void 0 ? void 0 : win.Capacitor) === null || _a === void 0 ? void 0 : _a.PluginHeaders);\n },\n setStyle(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n engine.setStyle(options);\n },\n getStyle: async function () {\n const engine = this.getEngine();\n if (!engine) {\n return Style.Default;\n }\n const { style } = await engine.getInfo();\n return style;\n },\n};\n\n/**\n * Use y = mx + b to\n * figure out the backdrop value\n * at a particular x coordinate. This\n * is useful when the backdrop does\n * not begin to fade in until after\n * the 0 breakpoint.\n */\nconst getBackdropValueForSheet = (x, backdropBreakpoint) => {\n /**\n * We will use these points:\n * (backdropBreakpoint, 0)\n * (maxBreakpoint, 1)\n * We know that at the beginning breakpoint,\n * the backdrop will be hidden. We also\n * know that at the maxBreakpoint, the backdrop\n * must be fully visible. maxBreakpoint should\n * always be 1 even if the maximum value\n * of the breakpoints array is not 1 since\n * the animation runs from a progress of 0\n * to a progress of 1.\n * m = (y2 - y1) / (x2 - x1)\n *\n * This is simplified from:\n * m = (1 - 0) / (maxBreakpoint - backdropBreakpoint)\n *\n * If the backdropBreakpoint is 1, we return 0 as the\n * backdrop is completely hidden.\n *\n */\n if (backdropBreakpoint === 1) {\n return 0;\n }\n const slope = 1 / (1 - backdropBreakpoint);\n /**\n * From here, compute b which is\n * the backdrop opacity if the offset\n * is 0. If the backdrop does not\n * begin to fade in until after the\n * 0 breakpoint, this b value will be\n * negative. This is fine as we never pass\n * b directly into the animation keyframes.\n * b = y - mx\n * Use a known point: (backdropBreakpoint, 0)\n * This is simplified from:\n * b = 0 - (backdropBreakpoint * slope)\n */\n const b = -(backdropBreakpoint * slope);\n /**\n * Finally, we can now determine the\n * backdrop offset given an arbitrary\n * gesture offset.\n */\n return x * slope + b;\n};\n/**\n * The tablet/desktop card modal activates\n * when the window width is >= 768.\n * At that point, the presenting element\n * is not transformed, so we do not need to\n * adjust the status bar color.\n *\n * Note: We check supportsDefaultStatusBarStyle so that\n * Capacitor <= 2 users do not get their status bar\n * stuck in an inconsistent state due to a lack of\n * support for Style.Default.\n */\nconst setCardStatusBarDark = () => {\n if (!win || win.innerWidth >= 768 || !StatusBar.supportsDefaultStatusBarStyle()) {\n return;\n }\n StatusBar.setStyle({ style: Style.Dark });\n};\nconst setCardStatusBarDefault = (defaultStyle = Style.Default) => {\n if (!win || win.innerWidth >= 768 || !StatusBar.supportsDefaultStatusBarStyle()) {\n return;\n }\n StatusBar.setStyle({ style: defaultStyle });\n};\n\nconst handleCanDismiss = async (el, animation) => {\n /**\n * If canDismiss is not a function\n * then we can return early. If canDismiss is `true`,\n * then canDismissBlocksGesture is `false` as canDismiss\n * will never interrupt the gesture. As a result,\n * this code block is never reached. If canDismiss is `false`,\n * then we never dismiss.\n */\n if (typeof el.canDismiss !== 'function') {\n return;\n }\n /**\n * Run the canDismiss callback.\n * If the function returns `true`,\n * then we can proceed with dismiss.\n */\n const shouldDismiss = await el.canDismiss();\n if (!shouldDismiss) {\n return;\n }\n /**\n * If canDismiss resolved after the snap\n * back animation finished, we can\n * dismiss immediately.\n *\n * If canDismiss resolved before the snap\n * back animation finished, we need to\n * wait until the snap back animation is\n * done before dismissing.\n */\n if (animation.isRunning()) {\n animation.onFinish(() => {\n el.dismiss(undefined, 'handler');\n }, { oneTimeCallback: true });\n }\n else {\n el.dismiss(undefined, 'handler');\n }\n};\n/**\n * This function lets us simulate a realistic spring-like animation\n * when swiping down on the modal.\n * There are two forces that we need to use to compute the spring physics:\n *\n * 1. Stiffness, k: This is a measure of resistance applied a spring.\n * 2. Dampening, c: This value has the effect of reducing or preventing oscillation.\n *\n * Using these two values, we can calculate the Spring Force and the Dampening Force\n * to compute the total force applied to a spring.\n *\n * Spring Force: This force pulls a spring back into its equilibrium position.\n * Hooke's Law tells us that that spring force (FS) = kX.\n * k is the stiffness of a spring, and X is the displacement of the spring from its\n * equilibrium position. In this case, it is the amount by which the free end\n * of a spring was displaced (stretched/pushed) from its \"relaxed\" position.\n *\n * Dampening Force: This force slows down motion. Without it, a spring would oscillate forever.\n * The dampening force, FD, can be found via this formula: FD = -cv\n * where c the dampening value and v is velocity.\n *\n * Therefore, the resulting force that is exerted on the block is:\n * F = FS + FD = -kX - cv\n *\n * Newton's 2nd Law tells us that F = ma:\n * ma = -kX - cv.\n *\n * For Ionic's purposes, we can assume that m = 1:\n * a = -kX - cv\n *\n * Imagine a block attached to the end of a spring. At equilibrium\n * the block is at position x = 1.\n * Pressing on the block moves it to position x = 0;\n * So, to calculate the displacement, we need to take the\n * current position and subtract the previous position from it.\n * X = x - x0 = 0 - 1 = -1.\n *\n * For Ionic's purposes, we are only pushing on the spring modal\n * so we have a max position of 1.\n * As a result, we can expand displacement to this formula:\n * X = x - 1\n *\n * a = -k(x - 1) - cv\n *\n * We can represent the motion of something as a function of time: f(t) = x.\n * The derivative of position gives us the velocity: f'(t)\n * The derivative of the velocity gives us the acceleration: f''(t)\n *\n * We can substitute the formula above with these values:\n *\n * f\"(t) = -k * (f(t) - 1) - c * f'(t)\n *\n * This is called a differential equation.\n *\n * We know that at t = 0, we are at x = 0 because the modal does not move: f(0) = 0\n * This means our velocity is also zero: f'(0) = 0.\n *\n * We can cheat a bit and plug the formula into Wolfram Alpha.\n * However, we need to pick stiffness and dampening values:\n * k = 0.57\n * c = 15\n *\n * I picked these as they are fairly close to native iOS's spring effect\n * with the modal.\n *\n * What we plug in is this: f(0) = 0; f'(0) = 0; f''(t) = -0.57(f(t) - 1) - 15f'(t)\n *\n * The result is a formula that lets us calculate the acceleration\n * for a given time t.\n * Note: This is the approximate form of the solution. Wolfram Alpha will\n * give you a complex differential equation too.\n */\nconst calculateSpringStep = (t) => {\n return 0.00255275 * 2.71828 ** (-14.9619 * t) - 1.00255 * 2.71828 ** (-0.0380968 * t) + 1;\n};\n\n// Defaults for the card swipe animation\nconst SwipeToCloseDefaults = {\n MIN_PRESENTING_SCALE: 0.93,\n};\nconst createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) => {\n /**\n * The step value at which a card modal\n * is eligible for dismissing via gesture.\n */\n const DISMISS_THRESHOLD = 0.5;\n const height = el.offsetHeight;\n let isOpen = false;\n let canDismissBlocksGesture = false;\n let contentEl = null;\n let scrollEl = null;\n const canDismissMaxStep = 0.2;\n let initialScrollY = true;\n let lastStep = 0;\n const getScrollY = () => {\n if (contentEl && isIonContent(contentEl)) {\n return contentEl.scrollY;\n /**\n * Custom scroll containers are intended to be\n * used with virtual scrolling, so we assume\n * there is scrolling in this case.\n */\n }\n else {\n return true;\n }\n };\n const canStart = (detail) => {\n const target = detail.event.target;\n if (target === null || !target.closest) {\n return true;\n }\n /**\n * If we are swiping on the content,\n * swiping should only be possible if\n * the content is scrolled all the way\n * to the top so that we do not interfere\n * with scrolling.\n *\n * We cannot assume that the `ion-content`\n * target will remain consistent between\n * swipes. For example, when using\n * ion-nav within a card modal it is\n * possible to swipe, push a view, and then\n * swipe again. The target content will not\n * be the same between swipes.\n */\n contentEl = findClosestIonContent(target);\n if (contentEl) {\n /**\n * The card should never swipe to close\n * on the content with a refresher.\n * Note: We cannot solve this by making the\n * swipeToClose gesture have a higher priority\n * than the refresher gesture as the iOS native\n * refresh gesture uses a scroll listener in\n * addition to a gesture.\n *\n * Note: Do not use getScrollElement here\n * because we need this to be a synchronous\n * operation, and getScrollElement is\n * asynchronous.\n */\n if (isIonContent(contentEl)) {\n const root = getElementRoot(contentEl);\n scrollEl = root.querySelector('.inner-scroll');\n }\n else {\n scrollEl = contentEl;\n }\n const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');\n return !hasRefresherInContent && scrollEl.scrollTop === 0;\n }\n /**\n * Card should be swipeable on all\n * parts of the modal except for the footer.\n */\n const footer = target.closest('ion-footer');\n if (footer === null) {\n return true;\n }\n return false;\n };\n const onStart = (detail) => {\n const { deltaY } = detail;\n /**\n * Get the initial scrollY value so\n * that we can correctly reset the scrollY\n * prop when the gesture ends.\n */\n initialScrollY = getScrollY();\n /**\n * If canDismiss is anything other than `true`\n * then users should be able to swipe down\n * until a threshold is hit. At that point,\n * the card modal should not proceed any further.\n * TODO (FW-937)\n * Remove undefined check\n */\n canDismissBlocksGesture = el.canDismiss !== undefined && el.canDismiss !== true;\n /**\n * If we are pulling down, then\n * it is possible we are pulling on the\n * content. We do not want scrolling to\n * happen at the same time as the gesture.\n */\n if (deltaY > 0 && contentEl) {\n disableContentScrollY(contentEl);\n }\n animation.progressStart(true, isOpen ? 1 : 0);\n };\n const onMove = (detail) => {\n const { deltaY } = detail;\n /**\n * If we are pulling down, then\n * it is possible we are pulling on the\n * content. We do not want scrolling to\n * happen at the same time as the gesture.\n */\n if (deltaY > 0 && contentEl) {\n disableContentScrollY(contentEl);\n }\n /**\n * If we are swiping on the content\n * then the swipe gesture should only\n * happen if we are pulling down.\n *\n * However, if we pull up and\n * then down such that the scroll position\n * returns to 0, we should be able to swipe\n * the card.\n */\n const step = detail.deltaY / height;\n /**\n * Check if user is swiping down and\n * if we have a canDismiss value that\n * should block the gesture from\n * proceeding,\n */\n const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;\n /**\n * If we are blocking the gesture from dismissing,\n * set the max step value so that the sheet cannot be\n * completely hidden.\n */\n const maxStep = isAttemptingDismissWithCanDismiss ? canDismissMaxStep : 0.9999;\n /**\n * If we are blocking the gesture from\n * dismissing, calculate the spring modifier value\n * this will be added to the starting breakpoint\n * value to give the gesture a spring-like feeling.\n * Note that the starting breakpoint is always 0,\n * so we omit adding 0 to the result.\n */\n const processedStep = isAttemptingDismissWithCanDismiss ? calculateSpringStep(step / maxStep) : step;\n const clampedStep = clamp(0.0001, processedStep, maxStep);\n animation.progressStep(clampedStep);\n /**\n * When swiping down half way, the status bar style\n * should be reset to its default value.\n *\n * We track lastStep so that we do not fire these\n * functions on every onMove, only when the user has\n * crossed a certain threshold.\n */\n if (clampedStep >= DISMISS_THRESHOLD && lastStep < DISMISS_THRESHOLD) {\n setCardStatusBarDefault(statusBarStyle);\n /**\n * However, if we swipe back up, then the\n * status bar style should be set to have light\n * text on a dark background.\n */\n }\n else if (clampedStep < DISMISS_THRESHOLD && lastStep >= DISMISS_THRESHOLD) {\n setCardStatusBarDark();\n }\n lastStep = clampedStep;\n };\n const onEnd = (detail) => {\n const velocity = detail.velocityY;\n const step = detail.deltaY / height;\n const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;\n const maxStep = isAttemptingDismissWithCanDismiss ? canDismissMaxStep : 0.9999;\n const processedStep = isAttemptingDismissWithCanDismiss ? calculateSpringStep(step / maxStep) : step;\n const clampedStep = clamp(0.0001, processedStep, maxStep);\n const threshold = (detail.deltaY + velocity * 1000) / height;\n /**\n * If canDismiss blocks\n * the swipe gesture, then the\n * animation can never complete until\n * canDismiss is checked.\n */\n const shouldComplete = !isAttemptingDismissWithCanDismiss && threshold >= DISMISS_THRESHOLD;\n let newStepValue = shouldComplete ? -0.001 : 0.001;\n if (!shouldComplete) {\n animation.easing('cubic-bezier(1, 0, 0.68, 0.28)');\n newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], clampedStep)[0];\n }\n else {\n animation.easing('cubic-bezier(0.32, 0.72, 0, 1)');\n newStepValue += getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], clampedStep)[0];\n }\n const duration = shouldComplete\n ? computeDuration(step * height, velocity)\n : computeDuration((1 - clampedStep) * height, velocity);\n isOpen = shouldComplete;\n gesture.enable(false);\n if (contentEl) {\n resetContentScrollY(contentEl, initialScrollY);\n }\n animation\n .onFinish(() => {\n if (!shouldComplete) {\n gesture.enable(true);\n }\n })\n .progressEnd(shouldComplete ? 1 : 0, newStepValue, duration);\n /**\n * If the canDismiss value blocked the gesture\n * from proceeding, then we should ignore whatever\n * shouldComplete is. Whether or not the modal\n * animation should complete is now determined by\n * canDismiss.\n *\n * If the user swiped >25% of the way\n * to the max step, then we should\n * check canDismiss. 25% was chosen\n * to avoid accidental swipes.\n */\n if (isAttemptingDismissWithCanDismiss && clampedStep > maxStep / 4) {\n handleCanDismiss(el, animation);\n }\n else if (shouldComplete) {\n onDismiss();\n }\n };\n const gesture = createGesture({\n el,\n gestureName: 'modalSwipeToClose',\n gesturePriority: 39,\n direction: 'y',\n threshold: 10,\n canStart,\n onStart,\n onMove,\n onEnd,\n });\n return gesture;\n};\nconst computeDuration = (remaining, velocity) => {\n return clamp(400, remaining / Math.abs(velocity * 1.1), 500);\n};\n\nconst createSheetEnterAnimation = (opts) => {\n const { currentBreakpoint, backdropBreakpoint } = opts;\n /**\n * If the backdropBreakpoint is undefined, then the backdrop\n * should always fade in. If the backdropBreakpoint came before the\n * current breakpoint, then the backdrop should be fading in.\n */\n const shouldShowBackdrop = backdropBreakpoint === undefined || backdropBreakpoint < currentBreakpoint;\n const initialBackdrop = shouldShowBackdrop ? `calc(var(--backdrop-opacity) * ${currentBreakpoint})` : '0';\n const backdropAnimation = createAnimation('backdropAnimation').fromTo('opacity', 0, initialBackdrop);\n if (shouldShowBackdrop) {\n backdropAnimation\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n }\n const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([\n { offset: 0, opacity: 1, transform: 'translateY(100%)' },\n { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },\n ]);\n return { wrapperAnimation, backdropAnimation };\n};\nconst createSheetLeaveAnimation = (opts) => {\n const { currentBreakpoint, backdropBreakpoint } = opts;\n /**\n * Backdrop does not always fade in from 0 to 1 if backdropBreakpoint\n * is defined, so we need to account for that offset by figuring out\n * what the current backdrop value should be.\n */\n const backdropValue = `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(currentBreakpoint, backdropBreakpoint)})`;\n const defaultBackdrop = [\n { offset: 0, opacity: backdropValue },\n { offset: 1, opacity: 0 },\n ];\n const customBackdrop = [\n { offset: 0, opacity: backdropValue },\n { offset: backdropBreakpoint, opacity: 0 },\n { offset: 1, opacity: 0 },\n ];\n const backdropAnimation = createAnimation('backdropAnimation').keyframes(backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop);\n const wrapperAnimation = createAnimation('wrapperAnimation').keyframes([\n { offset: 0, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },\n { offset: 1, opacity: 1, transform: `translateY(100%)` },\n ]);\n return { wrapperAnimation, backdropAnimation };\n};\n\nconst createEnterAnimation$1 = () => {\n const backdropAnimation = createAnimation()\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');\n return { backdropAnimation, wrapperAnimation };\n};\n/**\n * iOS Modal Enter Animation for the Card presentation style\n */\nconst iosEnterAnimation = (baseEl, opts) => {\n const { presentingEl, currentBreakpoint } = opts;\n const root = getElementRoot(baseEl);\n const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();\n backdropAnimation.addElement(root.querySelector('ion-backdrop'));\n wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });\n const baseAnimation = createAnimation('entering-base')\n .addElement(baseEl)\n .easing('cubic-bezier(0.32,0.72,0,1)')\n .duration(500)\n .addAnimation(wrapperAnimation);\n if (presentingEl) {\n const isMobile = window.innerWidth < 768;\n const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;\n const presentingElRoot = getElementRoot(presentingEl);\n const presentingAnimation = createAnimation().beforeStyles({\n transform: 'translateY(0)',\n 'transform-origin': 'top center',\n overflow: 'hidden',\n });\n const bodyEl = document.body;\n if (isMobile) {\n /**\n * Fallback for browsers that does not support `max()` (ex: Firefox)\n * No need to worry about statusbar padding since engines like Gecko\n * are not used as the engine for standalone Cordova/Capacitor apps\n */\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)') ? '30px' : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .beforeAddWrite(() => bodyEl.style.setProperty('background-color', 'black'))\n .addElement(presentingEl)\n .keyframes([\n { offset: 0, filter: 'contrast(1)', transform: 'translateY(0px) scale(1)', borderRadius: '0px' },\n { offset: 1, filter: 'contrast(0.85)', transform: finalTransform, borderRadius: '10px 10px 0 0' },\n ]);\n baseAnimation.addAnimation(presentingAnimation);\n }\n else {\n baseAnimation.addAnimation(backdropAnimation);\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '0', '1');\n }\n else {\n const toPresentingScale = hasCardModal ? SwipeToCloseDefaults.MIN_PRESENTING_SCALE : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n presentingAnimation\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingElRoot.querySelector('.modal-wrapper'))\n .keyframes([\n { offset: 0, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n { offset: 1, filter: 'contrast(0.85)', transform: finalTransform },\n ]);\n const shadowAnimation = createAnimation()\n .afterStyles({\n transform: finalTransform,\n })\n .addElement(presentingElRoot.querySelector('.modal-shadow'))\n .keyframes([\n { offset: 0, opacity: '1', transform: 'translateY(0) scale(1)' },\n { offset: 1, opacity: '0', transform: finalTransform },\n ]);\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n }\n else {\n baseAnimation.addAnimation(backdropAnimation);\n }\n return baseAnimation;\n};\n\nconst createLeaveAnimation$1 = () => {\n const backdropAnimation = createAnimation().fromTo('opacity', 'var(--backdrop-opacity)', 0);\n const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(0vh)', 'translateY(100vh)');\n return { backdropAnimation, wrapperAnimation };\n};\n/**\n * iOS Modal Leave Animation\n */\nconst iosLeaveAnimation = (baseEl, opts, duration = 500) => {\n const { presentingEl, currentBreakpoint } = opts;\n const root = getElementRoot(baseEl);\n const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();\n backdropAnimation.addElement(root.querySelector('ion-backdrop'));\n wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });\n const baseAnimation = createAnimation('leaving-base')\n .addElement(baseEl)\n .easing('cubic-bezier(0.32,0.72,0,1)')\n .duration(duration)\n .addAnimation(wrapperAnimation);\n if (presentingEl) {\n const isMobile = window.innerWidth < 768;\n const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;\n const presentingElRoot = getElementRoot(presentingEl);\n const presentingAnimation = createAnimation()\n .beforeClearStyles(['transform'])\n .afterClearStyles(['transform'])\n .onFinish((currentStep) => {\n // only reset background color if this is the last card-style modal\n if (currentStep !== 1) {\n return;\n }\n presentingEl.style.setProperty('overflow', '');\n const numModals = Array.from(bodyEl.querySelectorAll('ion-modal')).filter((m) => m.presentingElement !== undefined).length;\n if (numModals <= 1) {\n bodyEl.style.setProperty('background-color', '');\n }\n });\n const bodyEl = document.body;\n if (isMobile) {\n const transformOffset = !CSS.supports('width', 'max(0px, 1px)') ? '30px' : 'max(30px, var(--ion-safe-area-top))';\n const modalTransform = hasCardModal ? '-10px' : transformOffset;\n const toPresentingScale = SwipeToCloseDefaults.MIN_PRESENTING_SCALE;\n const finalTransform = `translateY(${modalTransform}) scale(${toPresentingScale})`;\n presentingAnimation.addElement(presentingEl).keyframes([\n { offset: 0, filter: 'contrast(0.85)', transform: finalTransform, borderRadius: '10px 10px 0 0' },\n { offset: 1, filter: 'contrast(1)', transform: 'translateY(0px) scale(1)', borderRadius: '0px' },\n ]);\n baseAnimation.addAnimation(presentingAnimation);\n }\n else {\n baseAnimation.addAnimation(backdropAnimation);\n if (!hasCardModal) {\n wrapperAnimation.fromTo('opacity', '1', '0');\n }\n else {\n const toPresentingScale = hasCardModal ? SwipeToCloseDefaults.MIN_PRESENTING_SCALE : 1;\n const finalTransform = `translateY(-10px) scale(${toPresentingScale})`;\n presentingAnimation\n .addElement(presentingElRoot.querySelector('.modal-wrapper'))\n .afterStyles({\n transform: 'translate3d(0, 0, 0)',\n })\n .keyframes([\n { offset: 0, filter: 'contrast(0.85)', transform: finalTransform },\n { offset: 1, filter: 'contrast(1)', transform: 'translateY(0) scale(1)' },\n ]);\n const shadowAnimation = createAnimation()\n .addElement(presentingElRoot.querySelector('.modal-shadow'))\n .afterStyles({\n transform: 'translateY(0) scale(1)',\n })\n .keyframes([\n { offset: 0, opacity: '0', transform: finalTransform },\n { offset: 1, opacity: '1', transform: 'translateY(0) scale(1)' },\n ]);\n baseAnimation.addAnimation([presentingAnimation, shadowAnimation]);\n }\n }\n }\n else {\n baseAnimation.addAnimation(backdropAnimation);\n }\n return baseAnimation;\n};\n\nconst createEnterAnimation = () => {\n const backdropAnimation = createAnimation()\n .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')\n .beforeStyles({\n 'pointer-events': 'none',\n })\n .afterClearStyles(['pointer-events']);\n const wrapperAnimation = createAnimation().keyframes([\n { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },\n { offset: 1, opacity: 1, transform: `translateY(0px)` },\n ]);\n return { backdropAnimation, wrapperAnimation };\n};\n/**\n * Md Modal Enter Animation\n */\nconst mdEnterAnimation = (baseEl, opts) => {\n const { currentBreakpoint } = opts;\n const root = getElementRoot(baseEl);\n const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();\n backdropAnimation.addElement(root.querySelector('ion-backdrop'));\n wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));\n return createAnimation()\n .addElement(baseEl)\n .easing('cubic-bezier(0.36,0.66,0.04,1)')\n .duration(280)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst createLeaveAnimation = () => {\n const backdropAnimation = createAnimation().fromTo('opacity', 'var(--backdrop-opacity)', 0);\n const wrapperAnimation = createAnimation().keyframes([\n { offset: 0, opacity: 0.99, transform: `translateY(0px)` },\n { offset: 1, opacity: 0, transform: 'translateY(40px)' },\n ]);\n return { backdropAnimation, wrapperAnimation };\n};\n/**\n * Md Modal Leave Animation\n */\nconst mdLeaveAnimation = (baseEl, opts) => {\n const { currentBreakpoint } = opts;\n const root = getElementRoot(baseEl);\n const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();\n backdropAnimation.addElement(root.querySelector('ion-backdrop'));\n wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));\n return createAnimation()\n .easing('cubic-bezier(0.47,0,0.745,0.715)')\n .duration(200)\n .addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\nconst createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {\n // Defaults for the sheet swipe animation\n const defaultBackdrop = [\n { offset: 0, opacity: 'var(--backdrop-opacity)' },\n { offset: 1, opacity: 0.01 },\n ];\n const customBackdrop = [\n { offset: 0, opacity: 'var(--backdrop-opacity)' },\n { offset: 1 - backdropBreakpoint, opacity: 0 },\n { offset: 1, opacity: 0 },\n ];\n const SheetDefaults = {\n WRAPPER_KEYFRAMES: [\n { offset: 0, transform: 'translateY(0%)' },\n { offset: 1, transform: 'translateY(100%)' },\n ],\n BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,\n };\n const contentEl = baseEl.querySelector('ion-content');\n const height = wrapperEl.clientHeight;\n let currentBreakpoint = initialBreakpoint;\n let offset = 0;\n let canDismissBlocksGesture = false;\n const canDismissMaxStep = 0.95;\n const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');\n const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');\n const maxBreakpoint = breakpoints[breakpoints.length - 1];\n const minBreakpoint = breakpoints[0];\n const enableBackdrop = () => {\n baseEl.style.setProperty('pointer-events', 'auto');\n backdropEl.style.setProperty('pointer-events', 'auto');\n /**\n * When the backdrop is enabled, elements such\n * as inputs should not be focusable outside\n * the sheet.\n */\n baseEl.classList.remove('ion-disable-focus-trap');\n };\n const disableBackdrop = () => {\n baseEl.style.setProperty('pointer-events', 'none');\n backdropEl.style.setProperty('pointer-events', 'none');\n /**\n * When the backdrop is enabled, elements such\n * as inputs should not be focusable outside\n * the sheet.\n * Adding this class disables focus trapping\n * for the sheet temporarily.\n */\n baseEl.classList.add('ion-disable-focus-trap');\n };\n /**\n * After the entering animation completes,\n * we need to set the animation to go from\n * offset 0 to offset 1 so that users can\n * swipe in any direction. We then set the\n * animation offset to the current breakpoint\n * so there is no flickering.\n */\n if (wrapperAnimation && backdropAnimation) {\n wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);\n backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);\n animation.progressStart(true, 1 - currentBreakpoint);\n /**\n * If backdrop is not enabled, then content\n * behind modal should be clickable. To do this, we need\n * to remove pointer-events from ion-modal as a whole.\n * ion-backdrop and .modal-wrapper always have pointer-events: auto\n * applied, so the modal content can still be interacted with.\n */\n const shouldEnableBackdrop = currentBreakpoint > backdropBreakpoint;\n if (shouldEnableBackdrop) {\n enableBackdrop();\n }\n else {\n disableBackdrop();\n }\n }\n if (contentEl && currentBreakpoint !== maxBreakpoint) {\n contentEl.scrollY = false;\n }\n const canStart = (detail) => {\n /**\n * If the sheet is fully expanded and\n * the user is swiping on the content,\n * the gesture should not start to\n * allow for scrolling on the content.\n */\n const content = detail.event.target.closest('ion-content');\n currentBreakpoint = getCurrentBreakpoint();\n if (currentBreakpoint === 1 && content) {\n return false;\n }\n return true;\n };\n const onStart = () => {\n /**\n * If canDismiss is anything other than `true`\n * then users should be able to swipe down\n * until a threshold is hit. At that point,\n * the card modal should not proceed any further.\n *\n * canDismiss is never fired via gesture if there is\n * no 0 breakpoint. However, it can be fired if the user\n * presses Esc or the hardware back button.\n * TODO (FW-937)\n * Remove undefined check\n */\n canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;\n /**\n * If swiping on the content\n * we should disable scrolling otherwise\n * the sheet will expand and the content will scroll.\n */\n if (contentEl) {\n contentEl.scrollY = false;\n }\n raf(() => {\n /**\n * Dismisses the open keyboard when the sheet drag gesture is started.\n * Sets the focus onto the modal element.\n */\n baseEl.focus();\n });\n animation.progressStart(true, 1 - currentBreakpoint);\n };\n const onMove = (detail) => {\n /**\n * Given the change in gesture position on the Y axis,\n * compute where the offset of the animation should be\n * relative to where the user dragged.\n */\n const initialStep = 1 - currentBreakpoint;\n const secondToLastBreakpoint = breakpoints.length > 1 ? 1 - breakpoints[1] : undefined;\n const step = initialStep + detail.deltaY / height;\n const isAttemptingDismissWithCanDismiss = secondToLastBreakpoint !== undefined && step >= secondToLastBreakpoint && canDismissBlocksGesture;\n /**\n * If we are blocking the gesture from dismissing,\n * set the max step value so that the sheet cannot be\n * completely hidden.\n */\n const maxStep = isAttemptingDismissWithCanDismiss ? canDismissMaxStep : 0.9999;\n /**\n * If we are blocking the gesture from\n * dismissing, calculate the spring modifier value\n * this will be added to the starting breakpoint\n * value to give the gesture a spring-like feeling.\n * Note that when isAttemptingDismissWithCanDismiss is true,\n * the modifier is always added to the breakpoint that\n * appears right after the 0 breakpoint.\n *\n * Note that this modifier is essentially the progression\n * between secondToLastBreakpoint and maxStep which is\n * why we subtract secondToLastBreakpoint. This lets us get\n * the result as a value from 0 to 1.\n */\n const processedStep = isAttemptingDismissWithCanDismiss && secondToLastBreakpoint !== undefined\n ? secondToLastBreakpoint +\n calculateSpringStep((step - secondToLastBreakpoint) / (maxStep - secondToLastBreakpoint))\n : step;\n offset = clamp(0.0001, processedStep, maxStep);\n animation.progressStep(offset);\n };\n const onEnd = (detail) => {\n /**\n * When the gesture releases, we need to determine\n * the closest breakpoint to snap to.\n */\n const velocity = detail.velocityY;\n const threshold = (detail.deltaY + velocity * 350) / height;\n const diff = currentBreakpoint - threshold;\n const closest = breakpoints.reduce((a, b) => {\n return Math.abs(b - diff) < Math.abs(a - diff) ? b : a;\n });\n moveSheetToBreakpoint({\n breakpoint: closest,\n breakpointOffset: offset,\n canDismiss: canDismissBlocksGesture,\n });\n };\n const moveSheetToBreakpoint = (options) => {\n const { breakpoint, canDismiss, breakpointOffset } = options;\n /**\n * canDismiss should only prevent snapping\n * when users are trying to dismiss. If canDismiss\n * is present but the user is trying to swipe upwards,\n * we should allow that to happen,\n */\n const shouldPreventDismiss = canDismiss && breakpoint === 0;\n const snapToBreakpoint = shouldPreventDismiss ? currentBreakpoint : breakpoint;\n const shouldRemainOpen = snapToBreakpoint !== 0;\n currentBreakpoint = 0;\n /**\n * Update the animation so that it plays from\n * the last offset to the closest snap point.\n */\n if (wrapperAnimation && backdropAnimation) {\n wrapperAnimation.keyframes([\n { offset: 0, transform: `translateY(${breakpointOffset * 100}%)` },\n { offset: 1, transform: `translateY(${(1 - snapToBreakpoint) * 100}%)` },\n ]);\n backdropAnimation.keyframes([\n {\n offset: 0,\n opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(1 - breakpointOffset, backdropBreakpoint)})`,\n },\n {\n offset: 1,\n opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,\n },\n ]);\n animation.progressStep(0);\n }\n /**\n * Gesture should remain disabled until the\n * snapping animation completes.\n */\n gesture.enable(false);\n if (shouldPreventDismiss) {\n handleCanDismiss(baseEl, animation);\n }\n else if (!shouldRemainOpen) {\n onDismiss();\n }\n return new Promise((resolve) => {\n animation\n .onFinish(() => {\n if (shouldRemainOpen) {\n /**\n * Once the snapping animation completes,\n * we need to reset the animation to go\n * from 0 to 1 so users can swipe in any direction.\n * We then set the animation offset to the current\n * breakpoint so that it starts at the snapped position.\n */\n if (wrapperAnimation && backdropAnimation) {\n raf(() => {\n wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);\n backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);\n animation.progressStart(true, 1 - snapToBreakpoint);\n currentBreakpoint = snapToBreakpoint;\n onBreakpointChange(currentBreakpoint);\n /**\n * If the sheet is fully expanded, we can safely\n * enable scrolling again.\n */\n if (contentEl && currentBreakpoint === breakpoints[breakpoints.length - 1]) {\n contentEl.scrollY = true;\n }\n /**\n * Backdrop should become enabled\n * after the backdropBreakpoint value\n */\n const shouldEnableBackdrop = currentBreakpoint > backdropBreakpoint;\n if (shouldEnableBackdrop) {\n enableBackdrop();\n }\n else {\n disableBackdrop();\n }\n gesture.enable(true);\n resolve();\n });\n }\n else {\n gesture.enable(true);\n resolve();\n }\n }\n else {\n resolve();\n }\n /**\n * This must be a one time callback\n * otherwise a new callback will\n * be added every time onEnd runs.\n */\n }, { oneTimeCallback: true })\n .progressEnd(1, 0, 500);\n });\n };\n const gesture = createGesture({\n el: wrapperEl,\n gestureName: 'modalSheet',\n gesturePriority: 40,\n direction: 'y',\n threshold: 10,\n canStart,\n onStart,\n onMove,\n onEnd,\n });\n return {\n gesture,\n moveSheetToBreakpoint,\n };\n};\n\nconst modalIosCss = \":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;margin-left:auto;margin-right:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, #c0c0be);cursor:pointer;z-index:11}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.modal-handle{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.modal-handle::before{padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\\\"\\\"}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.modal-handle::before{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: 1px){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: 1px){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.modal-card) .modal-wrapper,:host-context([dir=rtl]).modal-card .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}:host-context([dir=rtl]):host(.modal-sheet) .modal-wrapper,:host-context([dir=rtl]).modal-sheet .modal-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0;border-bottom-left-radius:0}\";\n\nconst modalMdCss = \":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;margin-left:auto;margin-right:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, #c0c0be);cursor:pointer;z-index:11}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.modal-handle{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.modal-handle::before{padding-left:4px;padding-right:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\\\"\\\"}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.modal-handle::before{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}\";\n\nconst Modal = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.didPresent = createEvent(this, \"ionModalDidPresent\", 7);\n this.willPresent = createEvent(this, \"ionModalWillPresent\", 7);\n this.willDismiss = createEvent(this, \"ionModalWillDismiss\", 7);\n this.didDismiss = createEvent(this, \"ionModalDidDismiss\", 7);\n this.ionBreakpointDidChange = createEvent(this, \"ionBreakpointDidChange\", 7);\n this.didPresentShorthand = createEvent(this, \"didPresent\", 7);\n this.willPresentShorthand = createEvent(this, \"willPresent\", 7);\n this.willDismissShorthand = createEvent(this, \"willDismiss\", 7);\n this.didDismissShorthand = createEvent(this, \"didDismiss\", 7);\n this.modalIndex = modalIds++;\n this.coreDelegate = CoreDelegate();\n this.isSheetModal = false;\n this.inheritedAttributes = {};\n this.inline = false;\n // Whether or not modal is being dismissed via gesture\n this.gestureAnimationDismissing = false;\n this.presented = false;\n /** @internal */\n this.hasController = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * A decimal value between 0 and 1 that indicates the\n * point after which the backdrop will begin to fade in\n * when using a sheet modal. Prior to this point, the\n * backdrop will be hidden and the content underneath\n * the sheet can be interacted with. This value is exclusive\n * meaning the backdrop will become active after the value\n * specified.\n */\n this.backdropBreakpoint = 0;\n /**\n * The interaction behavior for the sheet modal when the handle is pressed.\n *\n * Defaults to `\"none\"`, which means the modal will not change size or position when the handle is pressed.\n * Set to `\"cycle\"` to let the modal cycle between available breakpoints when pressed.\n *\n * Handle behavior is unavailable when the `handle` property is set to `false` or\n * when the `breakpoints` property is not set (using a fullscreen or card modal).\n */\n this.handleBehavior = 'none';\n /**\n * If `true`, the modal will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, a backdrop will be displayed behind the modal.\n * This property controls whether or not the backdrop\n * darkens the screen when the modal is presented.\n * It does not control whether or not the backdrop\n * is active or present in the DOM.\n */\n this.showBackdrop = true;\n /**\n * If `true`, the modal will animate.\n */\n this.animated = true;\n /**\n * If `true`, the modal can be swiped to dismiss. Only applies in iOS mode.\n * @deprecated - To prevent modals from dismissing, use canDismiss instead.\n */\n this.swipeToClose = false;\n /**\n * If `true`, the modal will open. If `false`, the modal will close.\n * Use this if you need finer grained control over presentation, otherwise\n * just use the modalController or the `trigger` property.\n * Note: `isOpen` will not automatically be set back to `false` when\n * the modal dismisses. You will need to do that in your code.\n */\n this.isOpen = false;\n /**\n * If `true`, the component passed into `ion-modal` will\n * automatically be mounted when the modal is created. The\n * component will remain mounted even when the modal is dismissed.\n * However, the component will be destroyed when the modal is\n * destroyed. This property is not reactive and should only be\n * used when initially creating a modal.\n *\n * Note: This feature only applies to inline modals in JavaScript\n * frameworks such as Angular, React, and Vue.\n */\n this.keepContentsMounted = false;\n this.configureTriggerInteraction = () => {\n const { trigger, el, destroyTriggerInteraction } = this;\n if (destroyTriggerInteraction) {\n destroyTriggerInteraction();\n }\n const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null;\n if (!triggerEl) {\n return;\n }\n const configureTriggerInteraction = (trigEl, modalEl) => {\n const openModal = () => {\n modalEl.present();\n };\n trigEl.addEventListener('click', openModal);\n return () => {\n trigEl.removeEventListener('click', openModal);\n };\n };\n this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, el);\n };\n this.onHandleClick = () => {\n const { sheetTransition, handleBehavior } = this;\n if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {\n /**\n * The sheet modal should not advance to the next breakpoint\n * if the handle behavior is not `cycle` or if the handle\n * is clicked while the sheet is moving to a breakpoint.\n */\n return;\n }\n this.moveToNextBreakpoint();\n };\n this.onBackdropTap = () => {\n const { sheetTransition } = this;\n if (sheetTransition !== undefined) {\n /**\n * When the handle is double clicked at the largest breakpoint,\n * it will start to move to the first breakpoint. While transitioning,\n * the backdrop will often receive the second click. We prevent the\n * backdrop from dismissing the modal while moving between breakpoints.\n */\n return;\n }\n this.dismiss(undefined, BACKDROP);\n };\n this.onLifecycle = (modalEvent) => {\n const el = this.usersElement;\n const name = LIFECYCLE_MAP[modalEvent.type];\n if (el && name) {\n const ev = new CustomEvent(name, {\n bubbles: false,\n cancelable: false,\n detail: modalEvent.detail,\n });\n el.dispatchEvent(ev);\n }\n };\n }\n onIsOpenChange(newValue, oldValue) {\n if (newValue === true && oldValue === false) {\n this.present();\n }\n else if (newValue === false && oldValue === true) {\n this.dismiss();\n }\n }\n onTriggerChange() {\n this.configureTriggerInteraction();\n }\n async swipeToCloseChanged(enable) {\n if (this.gesture) {\n this.gesture.enable(enable);\n }\n else if (enable) {\n await this.initSwipeToClose();\n }\n }\n breakpointsChanged(breakpoints) {\n if (breakpoints !== undefined) {\n this.sortedBreakpoints = breakpoints.sort((a, b) => a - b);\n }\n }\n connectedCallback() {\n const { configureTriggerInteraction, el } = this;\n prepareOverlay(el);\n configureTriggerInteraction();\n }\n disconnectedCallback() {\n const { destroyTriggerInteraction } = this;\n if (destroyTriggerInteraction) {\n destroyTriggerInteraction();\n }\n }\n componentWillLoad() {\n const { breakpoints, initialBreakpoint, swipeToClose, el } = this;\n this.inheritedAttributes = inheritAttributes(el, ['aria-label', 'role']);\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n this.modalId = this.el.hasAttribute('id') ? this.el.getAttribute('id') : `ion-modal-${this.modalIndex}`;\n const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined);\n if (isSheetModal) {\n this.currentBreakpoint = this.initialBreakpoint;\n }\n if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {\n printIonWarning('Your breakpoints array must include the initialBreakpoint value.');\n }\n if (swipeToClose) {\n printIonWarning('swipeToClose has been deprecated in favor of canDismiss.\\n\\nIf you want a card modal to be swipeable, set canDismiss to `true`. In the next major release of Ionic, swipeToClose will be removed, and all card modals will be swipeable by default.');\n }\n }\n componentDidLoad() {\n /**\n * If modal was rendered with isOpen=\"true\"\n * then we should open modal immediately.\n */\n if (this.isOpen === true) {\n raf(() => this.present());\n }\n this.breakpointsChanged(this.breakpoints);\n }\n /**\n * Determines whether or not an overlay\n * is being used inline or via a controller/JS\n * and returns the correct delegate.\n * By default, subsequent calls to getDelegate\n * will use a cached version of the delegate.\n * This is useful for calling dismiss after\n * present so that the correct delegate is given.\n */\n getDelegate(force = false) {\n if (this.workingDelegate && !force) {\n return {\n delegate: this.workingDelegate,\n inline: this.inline,\n };\n }\n /**\n * If using overlay inline\n * we potentially need to use the coreDelegate\n * so that this works in vanilla JS apps.\n * If a developer has presented this component\n * via a controller, then we can assume\n * the component is already in the\n * correct place.\n */\n const parentEl = this.el.parentNode;\n const inline = (this.inline = parentEl !== null && !this.hasController);\n const delegate = (this.workingDelegate = inline ? this.delegate || this.coreDelegate : this.delegate);\n return { inline, delegate };\n }\n /**\n * Determines whether or not the\n * modal is allowed to dismiss based\n * on the state of the canDismiss prop.\n */\n async checkCanDismiss() {\n const { canDismiss } = this;\n /**\n * TODO (FW-937) - Remove the following check in\n * the next major release of Ionic.\n */\n if (canDismiss === undefined) {\n return true;\n }\n if (typeof canDismiss === 'function') {\n return canDismiss();\n }\n return canDismiss;\n }\n /**\n * Present the modal overlay after it has been created.\n */\n async present() {\n if (this.presented) {\n return;\n }\n /**\n * When using an inline modal\n * and dismissing a modal it is possible to\n * quickly present the modal while it is\n * dismissing. We need to await any current\n * transition to allow the dismiss to finish\n * before presenting again.\n */\n if (this.currentTransition !== undefined) {\n await this.currentTransition;\n }\n /**\n * If the modal is presented multiple times (inline modals), we\n * need to reset the current breakpoint to the initial breakpoint.\n */\n this.currentBreakpoint = this.initialBreakpoint;\n const data = Object.assign(Object.assign({}, this.componentProps), { modal: this.el });\n const { inline, delegate } = this.getDelegate(true);\n this.usersElement = await attachComponent(delegate, this.el, this.component, ['ion-page'], data, inline);\n await deepReady(this.usersElement);\n writeTask(() => this.el.classList.add('show-modal'));\n this.currentTransition = present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {\n presentingEl: this.presentingElement,\n currentBreakpoint: this.initialBreakpoint,\n backdropBreakpoint: this.backdropBreakpoint,\n });\n /**\n * TODO (FW-937) - In the next major release of Ionic, all card modals\n * will be swipeable by default. canDismiss will be used to determine if the\n * modal can be dismissed. This check should change to check the presence of\n * presentingElement instead.\n *\n * If we did not do this check, then not using swipeToClose would mean you could\n * not run canDismiss on swipe as there would be no swipe gesture created.\n */\n const hasCardModal = this.presentingElement !== undefined && (this.swipeToClose || this.canDismiss !== undefined);\n /**\n * We need to change the status bar at the\n * start of the animation so that it completes\n * by the time the card animation is done.\n */\n if (hasCardModal && getIonMode(this) === 'ios') {\n // Cache the original status bar color before the modal is presented\n this.statusBarStyle = await StatusBar.getStyle();\n setCardStatusBarDark();\n }\n await this.currentTransition;\n if (this.isSheetModal) {\n this.initSheetGesture();\n }\n else if (hasCardModal) {\n await this.initSwipeToClose();\n }\n /* tslint:disable-next-line */\n if (typeof window !== 'undefined') {\n this.keyboardOpenCallback = () => {\n if (this.gesture) {\n /**\n * When the native keyboard is opened and the webview\n * is resized, the gesture implementation will become unresponsive\n * and enter a free-scroll mode.\n *\n * When the keyboard is opened, we disable the gesture for\n * a single frame and re-enable once the contents have repositioned\n * from the keyboard placement.\n */\n this.gesture.enable(false);\n raf(() => {\n if (this.gesture) {\n this.gesture.enable(true);\n }\n });\n }\n };\n window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);\n }\n this.currentTransition = undefined;\n }\n initSwipeToClose() {\n var _a;\n if (getIonMode(this) !== 'ios') {\n return;\n }\n const { el } = this;\n // All of the elements needed for the swipe gesture\n // should be in the DOM and referenced by now, except\n // for the presenting el\n const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);\n const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));\n const contentEl = findIonContent(el);\n if (!contentEl) {\n printIonContentErrorMsg(el);\n return;\n }\n const statusBarStyle = (_a = this.statusBarStyle) !== null && _a !== void 0 ? _a : Style.Default;\n this.gesture = createSwipeToCloseGesture(el, ani, statusBarStyle, () => {\n /**\n * While the gesture animation is finishing\n * it is possible for a user to tap the backdrop.\n * This would result in the dismiss animation\n * being played again. Typically this is avoided\n * by setting `presented = false` on the overlay\n * component; however, we cannot do that here as\n * that would prevent the element from being\n * removed from the DOM.\n */\n this.gestureAnimationDismissing = true;\n this.animation.onFinish(async () => {\n await this.dismiss(undefined, 'gesture');\n this.gestureAnimationDismissing = false;\n });\n });\n this.gesture.enable(true);\n }\n initSheetGesture() {\n const { wrapperEl, initialBreakpoint, backdropBreakpoint } = this;\n if (!wrapperEl || initialBreakpoint === undefined) {\n return;\n }\n const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation);\n const ani = (this.animation = animationBuilder(this.el, {\n presentingEl: this.presentingElement,\n currentBreakpoint: initialBreakpoint,\n backdropBreakpoint,\n }));\n ani.progressStart(true, 1);\n const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {\n if (this.currentBreakpoint !== breakpoint) {\n this.currentBreakpoint = breakpoint;\n this.ionBreakpointDidChange.emit({ breakpoint });\n }\n });\n this.gesture = gesture;\n this.moveSheetToBreakpoint = moveSheetToBreakpoint;\n this.gesture.enable(true);\n }\n sheetOnDismiss() {\n /**\n * While the gesture animation is finishing\n * it is possible for a user to tap the backdrop.\n * This would result in the dismiss animation\n * being played again. Typically this is avoided\n * by setting `presented = false` on the overlay\n * component; however, we cannot do that here as\n * that would prevent the element from being\n * removed from the DOM.\n */\n this.gestureAnimationDismissing = true;\n this.animation.onFinish(async () => {\n this.currentBreakpoint = 0;\n this.ionBreakpointDidChange.emit({ breakpoint: this.currentBreakpoint });\n await this.dismiss(undefined, 'gesture');\n this.gestureAnimationDismissing = false;\n });\n }\n /**\n * Dismiss the modal overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.\n */\n async dismiss(data, role) {\n var _a;\n if (this.gestureAnimationDismissing && role !== 'gesture') {\n return false;\n }\n /**\n * If a canDismiss handler is responsible\n * for calling the dismiss method, we should\n * not run the canDismiss check again.\n */\n if (role !== 'handler' && !(await this.checkCanDismiss())) {\n return false;\n }\n /**\n * We need to start the status bar change\n * before the animation so that the change\n * finishes when the dismiss animation does.\n * TODO (FW-937)\n */\n const hasCardModal = this.presentingElement !== undefined && (this.swipeToClose || this.canDismiss !== undefined);\n if (hasCardModal && getIonMode(this) === 'ios') {\n setCardStatusBarDefault(this.statusBarStyle);\n }\n /* tslint:disable-next-line */\n if (typeof window !== 'undefined' && this.keyboardOpenCallback) {\n window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);\n }\n /**\n * When using an inline modal\n * and presenting a modal it is possible to\n * quickly dismiss the modal while it is\n * presenting. We need to await any current\n * transition to allow the present to finish\n * before dismissing again.\n */\n if (this.currentTransition !== undefined) {\n await this.currentTransition;\n }\n const enteringAnimation = activeAnimations.get(this) || [];\n this.currentTransition = dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {\n presentingEl: this.presentingElement,\n currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,\n backdropBreakpoint: this.backdropBreakpoint,\n });\n const dismissed = await this.currentTransition;\n if (dismissed) {\n const { delegate } = this.getDelegate();\n await detachComponent(delegate, this.usersElement);\n writeTask(() => this.el.classList.remove('show-modal'));\n if (this.animation) {\n this.animation.destroy();\n }\n if (this.gesture) {\n this.gesture.destroy();\n }\n enteringAnimation.forEach((ani) => ani.destroy());\n }\n this.currentBreakpoint = undefined;\n this.currentTransition = undefined;\n this.animation = undefined;\n return dismissed;\n }\n /**\n * Returns a promise that resolves when the modal did dismiss.\n */\n onDidDismiss() {\n return eventMethod(this.el, 'ionModalDidDismiss');\n }\n /**\n * Returns a promise that resolves when the modal will dismiss.\n */\n onWillDismiss() {\n return eventMethod(this.el, 'ionModalWillDismiss');\n }\n /**\n * Move a sheet style modal to a specific breakpoint. The breakpoint value must\n * be a value defined in your `breakpoints` array.\n */\n async setCurrentBreakpoint(breakpoint) {\n if (!this.isSheetModal) {\n printIonWarning('setCurrentBreakpoint is only supported on sheet modals.');\n return;\n }\n if (!this.breakpoints.includes(breakpoint)) {\n printIonWarning(`Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);\n return;\n }\n const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints } = this;\n if (currentBreakpoint === breakpoint) {\n return;\n }\n if (moveSheetToBreakpoint) {\n this.sheetTransition = moveSheetToBreakpoint({\n breakpoint,\n breakpointOffset: 1 - currentBreakpoint,\n canDismiss: canDismiss !== undefined && canDismiss !== true && breakpoints[0] === 0,\n });\n await this.sheetTransition;\n this.sheetTransition = undefined;\n }\n }\n /**\n * Returns the current breakpoint of a sheet style modal\n */\n async getCurrentBreakpoint() {\n return this.currentBreakpoint;\n }\n async moveToNextBreakpoint() {\n const { breakpoints, currentBreakpoint } = this;\n if (!breakpoints || currentBreakpoint == null) {\n /**\n * If the modal does not have breakpoints and/or the current\n * breakpoint is not set, we can't move to the next breakpoint.\n */\n return false;\n }\n const allowedBreakpoints = breakpoints.filter((b) => b !== 0);\n const currentBreakpointIndex = allowedBreakpoints.indexOf(currentBreakpoint);\n const nextBreakpointIndex = (currentBreakpointIndex + 1) % allowedBreakpoints.length;\n const nextBreakpoint = allowedBreakpoints[nextBreakpointIndex];\n /**\n * Sets the current breakpoint to the next available breakpoint.\n * If the current breakpoint is the last breakpoint, we set the current\n * breakpoint to the first non-zero breakpoint to avoid dismissing the sheet.\n */\n await this.setCurrentBreakpoint(nextBreakpoint);\n return true;\n }\n render() {\n const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes } = this;\n const showHandle = handle !== false && isSheetModal;\n const mode = getIonMode(this);\n const { modalId } = this;\n const isCardModal = presentingElement !== undefined && mode === 'ios';\n const isHandleCycle = handleBehavior === 'cycle';\n return (h(Host, Object.assign({ \"no-router\": true, tabindex: \"-1\" }, htmlAttributes, { style: {\n zIndex: `${20000 + this.overlayIndex}`,\n }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), id: modalId, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h(\"ion-backdrop\", { ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: \"backdrop\" }), mode === 'ios' && h(\"div\", { class: \"modal-shadow\" }), h(\"div\", Object.assign({\n /*\n role and aria-modal must be used on the\n same element. They must also be set inside the\n shadow DOM otherwise ion-button will not be highlighted\n when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134\n */\n role: \"dialog\"\n }, inheritedAttributes, { \"aria-modal\": \"true\", class: \"modal-wrapper ion-overlay-wrapper\", part: \"content\", ref: (el) => (this.wrapperEl = el) }), showHandle && (h(\"button\", { class: \"modal-handle\",\n // Prevents the handle from receiving keyboard focus when it does not cycle\n tabIndex: !isHandleCycle ? -1 : 0, \"aria-label\": \"Activate to adjust the size of the dialog overlaying the screen\", onClick: isHandleCycle ? this.onHandleClick : undefined, part: \"handle\" })), h(\"slot\", null))));\n }\n get el() { return this; }\n static get watchers() { return {\n \"isOpen\": [\"onIsOpenChange\"],\n \"trigger\": [\"onTriggerChange\"],\n \"swipeToClose\": [\"swipeToCloseChanged\"]\n }; }\n static get style() { return {\n ios: modalIosCss,\n md: modalMdCss\n }; }\n}, [33, \"ion-modal\", {\n \"hasController\": [4, \"has-controller\"],\n \"overlayIndex\": [2, \"overlay-index\"],\n \"delegate\": [16],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"breakpoints\": [16],\n \"initialBreakpoint\": [2, \"initial-breakpoint\"],\n \"backdropBreakpoint\": [2, \"backdrop-breakpoint\"],\n \"handle\": [4],\n \"handleBehavior\": [1, \"handle-behavior\"],\n \"component\": [1],\n \"componentProps\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"showBackdrop\": [4, \"show-backdrop\"],\n \"animated\": [4],\n \"swipeToClose\": [4, \"swipe-to-close\"],\n \"presentingElement\": [16],\n \"htmlAttributes\": [16],\n \"isOpen\": [4, \"is-open\"],\n \"trigger\": [1],\n \"keepContentsMounted\": [4, \"keep-contents-mounted\"],\n \"canDismiss\": [4, \"can-dismiss\"],\n \"presented\": [32],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64],\n \"setCurrentBreakpoint\": [64],\n \"getCurrentBreakpoint\": [64]\n }]);\nconst LIFECYCLE_MAP = {\n ionModalDidPresent: 'ionViewDidEnter',\n ionModalWillPresent: 'ionViewWillEnter',\n ionModalWillDismiss: 'ionViewWillLeave',\n ionModalDidDismiss: 'ionViewDidLeave',\n};\nlet modalIds = 0;\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-modal\", \"ion-backdrop\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-modal\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Modal);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonModal = Modal;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonModal, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config, a as isPlatform } from './ionic-global.js';\n\nconst appCss = \"html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}\";\n\nconst App = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n }\n componentDidLoad() {\n if (Build.isBrowser) {\n rIC(async () => {\n const isHybrid = isPlatform(window, 'hybrid');\n if (!config.getBoolean('_testing')) {\n import('./index10.js').then((module) => module.startTapClick(config));\n }\n if (config.getBoolean('statusTap', isHybrid)) {\n import('./status-tap.js').then((module) => module.startStatusTap());\n }\n if (config.getBoolean('inputShims', needInputShims())) {\n /**\n * needInputShims() ensures that only iOS and Android\n * platforms proceed into this block.\n */\n const platform = isPlatform(window, 'ios') ? 'ios' : 'android';\n import('./input-shims.js').then((module) => module.startInputShims(config, platform));\n }\n const hardwareBackButtonModule = await import('./hardware-back-button.js');\n if (config.getBoolean('hardwareBackButton', isHybrid)) {\n hardwareBackButtonModule.startHardwareBackButton();\n }\n else {\n hardwareBackButtonModule.blockHardwareBackButton();\n }\n if (typeof window !== 'undefined') {\n import('./keyboard.js').then((module) => module.startKeyboardAssist(window));\n }\n import('./focus-visible.js').then((module) => (this.focusVisible = module.startFocusVisible()));\n });\n }\n }\n /**\n * @internal\n * Used to set focus on an element that uses `ion-focusable`.\n * Do not use this if focusing the element as a result of a keyboard\n * event as the focus utility should handle this for us. This method\n * should be used when we want to programmatically focus an element as\n * a result of another user action. (Ex: We focus the first element\n * inside of a popover when the user presents it, but the popover is not always\n * presented as a result of keyboard action.)\n */\n async setFocus(elements) {\n if (this.focusVisible) {\n this.focusVisible.setFocus(elements);\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'ion-page': true,\n 'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),\n } }));\n }\n get el() { return this; }\n static get style() { return appCss; }\n}, [0, \"ion-app\", {\n \"setFocus\": [64]\n }]);\nconst needInputShims = () => {\n /**\n * iOS always needs input shims\n */\n const needsShimsIOS = isPlatform(window, 'ios') && isPlatform(window, 'mobile');\n if (needsShimsIOS) {\n return true;\n }\n /**\n * Android only needs input shims when running\n * in the browser and only if the browser is using the\n * new Chrome 108+ resize behavior: https://developer.chrome.com/blog/viewport-resize-behavior/\n */\n const isAndroidMobileWeb = isPlatform(window, 'android') && isPlatform(window, 'mobileweb');\n if (isAndroidMobileWeb) {\n return true;\n }\n return false;\n};\nconst rIC = (callback) => {\n if ('requestIdleCallback' in window) {\n window.requestIdleCallback(callback);\n }\n else {\n setTimeout(callback, 32);\n }\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-app\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-app\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, App);\n }\n break;\n } });\n}\n\nconst IonApp = App;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonApp, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';\nimport { a as chevronBack, b as arrowBackSharp } from './index7.js';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { i as inheritAriaAttributes } from './helpers.js';\nimport { o as openURL, c as createColorClasses, h as hostContext } from './theme.js';\nimport { d as defineCustomElement$3 } from './icon.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst backButtonIosCss = \":host{--background:transparent;--color-focused:currentColor;--color-hover:currentColor;--icon-margin-top:0;--icon-margin-bottom:0;--icon-padding-top:0;--icon-padding-end:0;--icon-padding-bottom:0;--icon-padding-start:0;--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--min-width:auto;--min-height:auto;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--opacity:1;--ripple-color:currentColor;--transition:background-color, opacity 100ms linear;display:none;min-width:var(--min-width);min-height:var(--min-height);color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-kerning:none;font-kerning:none}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.show-back-button){display:block}:host(.back-button-disabled){cursor:default;opacity:0.5;pointer-events:none}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:var(--margin-start);margin-right:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;opacity:var(--opacity);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{padding-left:var(--icon-padding-start);padding-right:var(--icon-padding-end);padding-top:var(--icon-padding-top);padding-bottom:var(--icon-padding-bottom);margin-left:var(--icon-margin-start);margin-right:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom);display:inherit;font-size:var(--icon-font-size);font-weight:var(--icon-font-weight);pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--icon-padding-start);padding-inline-start:var(--icon-padding-start);-webkit-padding-end:var(--icon-padding-end);padding-inline-end:var(--icon-padding-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end)}}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-hover:transparent;--background-hover-opacity:1;--background-focused:currentColor;--background-focused-opacity:.1;--border-radius:4px;--color:var(--ion-color-primary, #3880ff);--icon-margin-end:-5px;--icon-margin-start:-4px;--icon-font-size:1.85em;--min-height:32px;font-size:17px}.button-native{-webkit-transform:translateZ(0);transform:translateZ(0);overflow:visible;z-index:99}:host(.ion-activated) .button-native{opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}:host(.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}\";\n\nconst backButtonMdCss = \":host{--background:transparent;--color-focused:currentColor;--color-hover:currentColor;--icon-margin-top:0;--icon-margin-bottom:0;--icon-padding-top:0;--icon-padding-end:0;--icon-padding-bottom:0;--icon-padding-start:0;--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--min-width:auto;--min-height:auto;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--opacity:1;--ripple-color:currentColor;--transition:background-color, opacity 100ms linear;display:none;min-width:var(--min-width);min-height:var(--min-height);color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-kerning:none;font-kerning:none}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.show-back-button){display:block}:host(.back-button-disabled){cursor:default;opacity:0.5;pointer-events:none}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:var(--margin-start);margin-right:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;opacity:var(--opacity);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{padding-left:var(--icon-padding-start);padding-right:var(--icon-padding-end);padding-top:var(--icon-padding-top);padding-bottom:var(--icon-padding-bottom);margin-left:var(--icon-margin-start);margin-right:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom);display:inherit;font-size:var(--icon-font-size);font-weight:var(--icon-font-weight);pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-icon{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--icon-padding-start);padding-inline-start:var(--icon-padding-start);-webkit-padding-end:var(--icon-padding-end);padding-inline-end:var(--icon-padding-end)}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){ion-icon{margin-left:unset;margin-right:unset;-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end)}}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--border-radius:4px;--background-focused:currentColor;--background-focused-opacity:.12;--background-hover:currentColor;--background-hover-opacity:0.04;--color:currentColor;--icon-margin-end:0;--icon-margin-start:0;--icon-font-size:24px;--icon-font-weight:normal;--min-height:32px;--min-width:44px;--padding-start:12px;--padding-end:12px;font-size:14px;font-weight:500;text-transform:uppercase}:host(.back-button-has-icon-only){--border-radius:50%;min-width:48px;height:48px}.button-native{-webkit-box-shadow:none;box-shadow:none}.button-text{padding-left:4px;padding-right:4px;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-text{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}ion-icon{line-height:0.67;text-align:start}@media (any-hover: hover){:host(.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}:host(.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}\";\n\nconst BackButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.inheritedAttributes = {};\n /**\n * If `true`, the user cannot interact with the button.\n */\n this.disabled = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.onClick = async (ev) => {\n const nav = this.el.closest('ion-nav');\n ev.preventDefault();\n if (nav && (await nav.canGoBack())) {\n return nav.pop({ animationBuilder: this.routerAnimation, skipIfBusy: true });\n }\n return openURL(this.defaultHref, ev, 'back', this.routerAnimation);\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n if (this.defaultHref === undefined) {\n this.defaultHref = config.get('backButtonDefaultHref');\n }\n }\n get backButtonIcon() {\n const icon = this.icon;\n if (icon != null) {\n // icon is set on the component or by the config\n return icon;\n }\n if (getIonMode(this) === 'ios') {\n // default ios back button icon\n return config.get('backButtonIcon', chevronBack);\n }\n // default md back button icon\n return config.get('backButtonIcon', arrowBackSharp);\n }\n get backButtonText() {\n const defaultBackButtonText = getIonMode(this) === 'ios' ? 'Back' : null;\n return this.text != null ? this.text : config.get('backButtonText', defaultBackButtonText);\n }\n get hasIconOnly() {\n return this.backButtonIcon && !this.backButtonText;\n }\n get rippleType() {\n // If the button only has an icon we use the unbounded\n // \"circular\" ripple effect\n if (this.hasIconOnly) {\n return 'unbounded';\n }\n return 'bounded';\n }\n render() {\n const { color, defaultHref, disabled, type, hasIconOnly, backButtonIcon, backButtonText, icon, inheritedAttributes, } = this;\n const showBackButton = defaultHref !== undefined;\n const mode = getIonMode(this);\n const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';\n return (h(Host, { onClick: this.onClick, class: createColorClasses(color, {\n [mode]: true,\n button: true,\n 'back-button-disabled': disabled,\n 'back-button-has-icon-only': hasIconOnly,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n 'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),\n 'ion-activatable': true,\n 'ion-focusable': true,\n 'show-back-button': showBackButton,\n }) }, h(\"button\", { type: type, disabled: disabled, class: \"button-native\", part: \"native\", \"aria-label\": ariaLabel }, h(\"span\", { class: \"button-inner\" }, backButtonIcon && (h(\"ion-icon\", { part: \"icon\", icon: backButtonIcon, \"aria-hidden\": \"true\", lazy: false, \"flip-rtl\": icon === undefined })), backButtonText && (h(\"span\", { part: \"text\", \"aria-hidden\": \"true\", class: \"button-text\" }, backButtonText))), mode === 'md' && h(\"ion-ripple-effect\", { type: this.rippleType }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: backButtonIosCss,\n md: backButtonMdCss\n }; }\n}, [33, \"ion-back-button\", {\n \"color\": [513],\n \"defaultHref\": [1025, \"default-href\"],\n \"disabled\": [516],\n \"icon\": [1],\n \"text\": [1],\n \"type\": [1],\n \"routerAnimation\": [16]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-back-button\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-back-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, BackButton);\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n defineCustomElement$3();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonBackButton = BackButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonBackButton, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';\nimport { b as getIonMode, c as config } from './ionic-global.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier.js';\nimport { a as attachComponent, d as detachComponent } from './framework-delegate.js';\nimport { s as shallowEqualStringMap } from './helpers.js';\nimport { t as transition } from './index4.js';\n\nconst routeOutletCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}\";\n\nconst RouterOutlet = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionNavWillLoad = createEvent(this, \"ionNavWillLoad\", 7);\n this.ionNavWillChange = createEvent(this, \"ionNavWillChange\", 3);\n this.ionNavDidChange = createEvent(this, \"ionNavDidChange\", 3);\n this.gestureOrAnimationInProgress = false;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode(this);\n /**\n * If `true`, the router-outlet should animate the transition of components.\n */\n this.animated = true;\n }\n swipeHandlerChanged() {\n if (this.gesture) {\n this.gesture.enable(this.swipeHandler !== undefined);\n }\n }\n async connectedCallback() {\n const onStart = () => {\n this.gestureOrAnimationInProgress = true;\n if (this.swipeHandler) {\n this.swipeHandler.onStart();\n }\n };\n this.gesture = (await import('./swipe-back.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {\n if (this.ani) {\n this.ani.onFinish(() => {\n this.gestureOrAnimationInProgress = false;\n if (this.swipeHandler) {\n this.swipeHandler.onEnd(shouldComplete);\n }\n }, { oneTimeCallback: true });\n // Account for rounding errors in JS\n let newStepValue = shouldComplete ? -0.001 : 0.001;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n if (!shouldComplete) {\n this.ani.easing('cubic-bezier(1, 0, 0.68, 0.28)');\n newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], step)[0];\n }\n else {\n newStepValue += getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], step)[0];\n }\n this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur);\n }\n else {\n this.gestureOrAnimationInProgress = false;\n }\n });\n this.swipeHandlerChanged();\n }\n componentWillLoad() {\n this.ionNavWillLoad.emit();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /** @internal */\n async commit(enteringEl, leavingEl, opts) {\n const unlock = await this.lock();\n let changed = false;\n try {\n changed = await this.transition(enteringEl, leavingEl, opts);\n }\n catch (e) {\n console.error(e);\n }\n unlock();\n return changed;\n }\n /** @internal */\n async setRouteId(id, params, direction, animation) {\n const changed = await this.setRoot(id, params, {\n duration: direction === 'root' ? 0 : undefined,\n direction: direction === 'back' ? 'back' : 'forward',\n animationBuilder: animation,\n });\n return {\n changed,\n element: this.activeEl,\n };\n }\n /** @internal */\n async getRouteId() {\n const active = this.activeEl;\n return active\n ? {\n id: active.tagName,\n element: active,\n params: this.activeParams,\n }\n : undefined;\n }\n async setRoot(component, params, opts) {\n if (this.activeComponent === component && shallowEqualStringMap(params, this.activeParams)) {\n return false;\n }\n // attach entering view to DOM\n const leavingEl = this.activeEl;\n const enteringEl = await attachComponent(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params);\n this.activeComponent = component;\n this.activeEl = enteringEl;\n this.activeParams = params;\n // commit animation\n await this.commit(enteringEl, leavingEl, opts);\n await detachComponent(this.delegate, leavingEl);\n return true;\n }\n async transition(enteringEl, leavingEl, opts = {}) {\n if (leavingEl === enteringEl) {\n return false;\n }\n // emit nav will change event\n this.ionNavWillChange.emit();\n const { el, mode } = this;\n const animated = this.animated && config.getBoolean('animated', true);\n const animationBuilder = opts.animationBuilder || this.animation || config.get('navAnimation');\n await transition(Object.assign(Object.assign({ mode,\n animated,\n enteringEl,\n leavingEl, baseEl: el, progressCallback: opts.progressAnimation\n ? (ani) => {\n /**\n * Because this progress callback is called asynchronously\n * it is possible for the gesture to start and end before\n * the animation is ever set. In that scenario, we should\n * immediately call progressEnd so that the transition promise\n * resolves and the gesture does not get locked up.\n */\n if (ani !== undefined && !this.gestureOrAnimationInProgress) {\n this.gestureOrAnimationInProgress = true;\n ani.onFinish(() => {\n this.gestureOrAnimationInProgress = false;\n if (this.swipeHandler) {\n this.swipeHandler.onEnd(false);\n }\n }, { oneTimeCallback: true });\n /**\n * Playing animation to beginning\n * with a duration of 0 prevents\n * any flickering when the animation\n * is later cleaned up.\n */\n ani.progressEnd(0, 0, 0);\n }\n else {\n this.ani = ani;\n }\n }\n : undefined }, opts), { animationBuilder }));\n // emit nav changed event\n this.ionNavDidChange.emit();\n return true;\n }\n async lock() {\n const p = this.waitPromise;\n let resolve;\n this.waitPromise = new Promise((r) => (resolve = r));\n if (p !== undefined) {\n await p;\n }\n return resolve;\n }\n render() {\n return h(\"slot\", null);\n }\n get el() { return this; }\n static get watchers() { return {\n \"swipeHandler\": [\"swipeHandlerChanged\"]\n }; }\n static get style() { return routeOutletCss; }\n}, [1, \"ion-router-outlet\", {\n \"mode\": [1025],\n \"delegate\": [16],\n \"animated\": [4],\n \"animation\": [16],\n \"swipeHandler\": [16],\n \"commit\": [64],\n \"setRouteId\": [64],\n \"getRouteId\": [64]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-router-outlet\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-router-outlet\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, RouterOutlet);\n }\n break;\n } });\n}\n\nconst IonRouterOutlet = RouterOutlet;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonRouterOutlet, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { b as getIonMode } from './ionic-global.js';\nimport { c as createKeyboardController } from './keyboard-controller.js';\nimport { c as createColorClasses } from './theme.js';\n\nconst tabBarIosCss = \":host{padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-bottom:var(--ion-safe-area-bottom, 0);border-top:var(--border);background:var(--background);color:var(--color);text-align:center;contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color) ::slotted(ion-tab-button){--background-focused:var(--ion-color-shade);--color-selected:var(--ion-color-contrast)}:host(.ion-color) ::slotted(.tab-selected){color:var(--ion-color-contrast)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){color:rgba(var(--ion-color-contrast-rgb), 0.7)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){background:var(--ion-color-base)}:host(.ion-color) ::slotted(ion-tab-button.ion-focused),:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:var(--background-focused)}:host(.tab-bar-translucent) ::slotted(ion-tab-button){background:transparent}:host([slot=top]){padding-top:var(--ion-safe-area-top, 0);padding-bottom:0;border-top:0;border-bottom:var(--border)}:host(.tab-bar-hidden){display:none !important}:host{--background:var(--ion-tab-bar-background, var(--ion-color-step-50, #f7f7f7));--background-focused:var(--ion-tab-bar-background-focused, #e0e0e0);--border:0.55px solid var(--ion-tab-bar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--color:var(--ion-tab-bar-color, var(--ion-color-step-400, #999999));--color-selected:var(--ion-tab-bar-color-selected, var(--ion-color-primary, #3880ff));height:50px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.tab-bar-translucent){--background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(210%) blur(20px);backdrop-filter:saturate(210%) blur(20px)}:host(.ion-color.tab-bar-translucent){background:rgba(var(--ion-color-base-rgb), 0.8)}:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.6)}}\";\n\nconst tabBarMdCss = \":host{padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-bottom:var(--ion-safe-area-bottom, 0);border-top:var(--border);background:var(--background);color:var(--color);text-align:center;contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:10;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color) ::slotted(ion-tab-button){--background-focused:var(--ion-color-shade);--color-selected:var(--ion-color-contrast)}:host(.ion-color) ::slotted(.tab-selected){color:var(--ion-color-contrast)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){color:rgba(var(--ion-color-contrast-rgb), 0.7)}:host(.ion-color),:host(.ion-color) ::slotted(ion-tab-button){background:var(--ion-color-base)}:host(.ion-color) ::slotted(ion-tab-button.ion-focused),:host(.tab-bar-translucent) ::slotted(ion-tab-button.ion-focused){background:var(--background-focused)}:host(.tab-bar-translucent) ::slotted(ion-tab-button){background:transparent}:host([slot=top]){padding-top:var(--ion-safe-area-top, 0);padding-bottom:0;border-top:0;border-bottom:var(--border)}:host(.tab-bar-hidden){display:none !important}:host{--background:var(--ion-tab-bar-background, var(--ion-background-color, #fff));--background-focused:var(--ion-tab-bar-background-focused, #e0e0e0);--border:1px solid var(--ion-tab-bar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.07))));--color:var(--ion-tab-bar-color, var(--ion-color-step-600, #666666));--color-selected:var(--ion-tab-bar-color-selected, var(--ion-color-primary, #3880ff));height:56px}\";\n\nconst TabBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionTabBarChanged = createEvent(this, \"ionTabBarChanged\", 7);\n this.keyboardCtrl = null;\n this.keyboardVisible = false;\n /**\n * If `true`, the tab bar will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n }\n selectedTabChanged() {\n if (this.selectedTab !== undefined) {\n this.ionTabBarChanged.emit({\n tab: this.selectedTab,\n });\n }\n }\n componentWillLoad() {\n this.selectedTabChanged();\n }\n connectedCallback() {\n this.keyboardCtrl = createKeyboardController((keyboardOpen) => {\n this.keyboardVisible = keyboardOpen; // trigger re-render by updating state\n });\n }\n disconnectedCallback() {\n if (this.keyboardCtrl) {\n this.keyboardCtrl.destroy();\n }\n }\n render() {\n const { color, translucent, keyboardVisible } = this;\n const mode = getIonMode(this);\n const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';\n return (h(Host, { role: \"tablist\", \"aria-hidden\": shouldHide ? 'true' : null, class: createColorClasses(color, {\n [mode]: true,\n 'tab-bar-translucent': translucent,\n 'tab-bar-hidden': shouldHide,\n }) }, h(\"slot\", null)));\n }\n get el() { return this; }\n static get watchers() { return {\n \"selectedTab\": [\"selectedTabChanged\"]\n }; }\n static get style() { return {\n ios: tabBarIosCss,\n md: tabBarMdCss\n }; }\n}, [33, \"ion-tab-bar\", {\n \"color\": [513],\n \"selectedTab\": [1, \"selected-tab\"],\n \"translucent\": [4],\n \"keyboardVisible\": [32]\n }]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-tab-bar\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-tab-bar\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, TabBar);\n }\n break;\n } });\n}\n\nconst IonTabBar = TabBar;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonTabBar, defineCustomElement };\n","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';\nimport { c as config, b as getIonMode } from './ionic-global.js';\nimport { d as defineCustomElement$2 } from './ripple-effect.js';\n\nconst tabButtonIosCss = \":host{--ripple-color:var(--color-selected);--background-focused-opacity:1;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;outline:none;background:var(--background);color:var(--color)}.button-native{border-radius:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;border:0;outline:none;background:transparent;text-decoration:none;cursor:pointer;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-drag:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:inherit;flex-flow:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;z-index:1}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){a:hover{color:var(--color-selected)}}:host(.tab-selected){color:var(--color-selected)}:host(.tab-hidden){display:none !important}:host(.tab-disabled){pointer-events:none;opacity:0.4}::slotted(ion-label),::slotted(ion-icon){display:block;-ms-flex-item-align:center;align-self:center;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}::slotted(ion-label){-ms-flex-order:0;order:0}::slotted(ion-icon){-ms-flex-order:-1;order:-1;height:1em}:host(.tab-has-label-only) ::slotted(ion-label){white-space:normal}::slotted(ion-badge){-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;z-index:1}:host(.tab-layout-icon-start){-ms-flex-direction:row;flex-direction:row}:host(.tab-layout-icon-end){-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.tab-layout-icon-bottom){-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.tab-layout-icon-hide) ::slotted(ion-icon){display:none}:host(.tab-layout-label-hide) ::slotted(ion-label){display:none}ion-ripple-effect{color:var(--ripple-color)}:host{--padding-top:0;--padding-end:2px;--padding-bottom:0;--padding-start:2px;max-width:240px;font-size:10px}::slotted(ion-badge){padding-left:6px;padding-right:6px;padding-top:1px;padding-bottom:1px;left:calc(50% + 6px);top:4px;height:auto;font-size:12px;line-height:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-badge){padding-left:unset;padding-right:unset;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-padding-end:6px;padding-inline-end:6px}}[dir=rtl] ::slotted(ion-badge),:host-context([dir=rtl]) ::slotted(ion-badge){left:unset;right:unset;right:calc(50% + 6px)}::slotted(ion-icon){margin-top:2px;margin-bottom:2px;font-size:30px}::slotted(ion-icon::before){vertical-align:top}::slotted(ion-label){margin-top:0;margin-bottom:1px;min-height:11px;font-weight:500}:host(.tab-has-label-only) ::slotted(ion-label){margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;font-size:12px;font-size:14px;line-height:1.1}:host(.tab-layout-icon-end) ::slotted(ion-label),:host(.tab-layout-icon-start) ::slotted(ion-label),:host(.tab-layout-icon-hide) ::slotted(ion-label){margin-top:2px;margin-bottom:2px;font-size:14px;line-height:1.1}:host(.tab-layout-icon-end) ::slotted(ion-icon),:host(.tab-layout-icon-start) ::slotted(ion-icon){min-width:24px;height:26px;margin-top:2px;margin-bottom:1px;font-size:24px}:host(.tab-layout-icon-bottom) ::slotted(ion-badge){left:calc(50% + 12px)}:host-context([dir=rtl]):host(.tab-layout-icon-bottom) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-bottom ::slotted(ion-badge){left:unset;right:unset;right:calc(50% + 12px)}:host(.tab-layout-icon-bottom) ::slotted(ion-icon){margin-top:0;margin-bottom:1px}:host(.tab-layout-icon-bottom) ::slotted(ion-label){margin-top:4px}:host(.tab-layout-icon-start) ::slotted(ion-badge),:host(.tab-layout-icon-end) ::slotted(ion-badge){left:calc(50% + 35px);top:10px}:host-context([dir=rtl]):host(.tab-layout-icon-start) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-start ::slotted(ion-badge),:host-context([dir=rtl]):host(.tab-layout-icon-end) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-end ::slotted(ion-badge){left:unset;right:unset;right:calc(50% + 35px)}:host(.tab-layout-icon-hide) ::slotted(ion-badge),:host(.tab-has-label-only) ::slotted(ion-badge){left:calc(50% + 30px);top:10px}:host-context([dir=rtl]):host(.tab-layout-icon-hide) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-hide ::slotted(ion-badge),:host-context([dir=rtl]):host(.tab-has-label-only) ::slotted(ion-badge),:host-context([dir=rtl]).tab-has-label-only ::slotted(ion-badge){left:unset;right:unset;right:calc(50% + 30px)}:host(.tab-layout-label-hide) ::slotted(ion-badge),:host(.tab-has-icon-only) ::slotted(ion-badge){top:10px}:host(.tab-layout-label-hide) ::slotted(ion-icon){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}\";\n\nconst tabButtonMdCss = \":host{--ripple-color:var(--color-selected);--background-focused-opacity:1;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;height:100%;outline:none;background:var(--background);color:var(--color)}.button-native{border-radius:inherit;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;border:0;outline:none;background:transparent;text-decoration:none;cursor:pointer;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-drag:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:inherit;flex-flow:inherit;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:100%;height:100%;z-index:1}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){a:hover{color:var(--color-selected)}}:host(.tab-selected){color:var(--color-selected)}:host(.tab-hidden){display:none !important}:host(.tab-disabled){pointer-events:none;opacity:0.4}::slotted(ion-label),::slotted(ion-icon){display:block;-ms-flex-item-align:center;align-self:center;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box}::slotted(ion-label){-ms-flex-order:0;order:0}::slotted(ion-icon){-ms-flex-order:-1;order:-1;height:1em}:host(.tab-has-label-only) ::slotted(ion-label){white-space:normal}::slotted(ion-badge){-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;z-index:1}:host(.tab-layout-icon-start){-ms-flex-direction:row;flex-direction:row}:host(.tab-layout-icon-end){-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.tab-layout-icon-bottom){-ms-flex-direction:column-reverse;flex-direction:column-reverse}:host(.tab-layout-icon-hide) ::slotted(ion-icon){display:none}:host(.tab-layout-label-hide) ::slotted(ion-label){display:none}ion-ripple-effect{color:var(--ripple-color)}:host{--padding-top:0;--padding-end:12px;--padding-bottom:0;--padding-start:12px;max-width:168px;font-size:12px;font-weight:normal;letter-spacing:0.03em}::slotted(ion-label){margin-left:0;margin-right:0;margin-top:2px;margin-bottom:2px;text-transform:none}::slotted(ion-icon){margin-left:0;margin-right:0;margin-top:16px;margin-bottom:16px;-webkit-transform-origin:center center;transform-origin:center center;font-size:22px}[dir=rtl] ::slotted(ion-icon),:host-context([dir=rtl]) ::slotted(ion-icon){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}::slotted(ion-badge){border-radius:8px;padding-left:2px;padding-right:2px;padding-top:3px;padding-bottom:2px;left:calc(50% + 6px);top:8px;min-width:12px;font-size:8px;font-weight:normal}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-badge){padding-left:unset;padding-right:unset;-webkit-padding-start:2px;padding-inline-start:2px;-webkit-padding-end:2px;padding-inline-end:2px}}[dir=rtl] ::slotted(ion-badge),:host-context([dir=rtl]) ::slotted(ion-badge){left:unset;right:unset;right:calc(50% + 6px)}::slotted(ion-badge:empty){display:block;min-width:8px;height:8px}:host(.tab-layout-icon-top) ::slotted(ion-icon){margin-top:6px;margin-bottom:2px}:host(.tab-layout-icon-top) ::slotted(ion-label){margin-top:0;margin-bottom:6px}:host(.tab-layout-icon-bottom) ::slotted(ion-badge){left:70%;top:8px}:host-context([dir=rtl]):host(.tab-layout-icon-bottom) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-bottom ::slotted(ion-badge){left:unset;right:unset;right:70%}:host(.tab-layout-icon-bottom) ::slotted(ion-icon){margin-top:0;margin-bottom:6px}:host(.tab-layout-icon-bottom) ::slotted(ion-label){margin-top:6px;margin-bottom:0}:host(.tab-layout-icon-start) ::slotted(ion-badge),:host(.tab-layout-icon-end) ::slotted(ion-badge){left:80%;top:16px}:host-context([dir=rtl]):host(.tab-layout-icon-start) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-start ::slotted(ion-badge),:host-context([dir=rtl]):host(.tab-layout-icon-end) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-end ::slotted(ion-badge){left:unset;right:unset;right:80%}:host(.tab-layout-icon-start) ::slotted(ion-icon){margin-right:6px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.tab-layout-icon-start) ::slotted(ion-icon){margin-right:unset;-webkit-margin-end:6px;margin-inline-end:6px}}:host(.tab-layout-icon-end) ::slotted(ion-icon){margin-left:6px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.tab-layout-icon-end) ::slotted(ion-icon){margin-left:unset;-webkit-margin-start:6px;margin-inline-start:6px}}:host(.tab-layout-icon-hide) ::slotted(ion-badge),:host(.tab-has-label-only) ::slotted(ion-badge){left:70%;top:16px}:host-context([dir=rtl]):host(.tab-layout-icon-hide) ::slotted(ion-badge),:host-context([dir=rtl]).tab-layout-icon-hide ::slotted(ion-badge),:host-context([dir=rtl]):host(.tab-has-label-only) ::slotted(ion-badge),:host-context([dir=rtl]).tab-has-label-only ::slotted(ion-badge){left:unset;right:unset;right:70%}:host(.tab-layout-icon-hide) ::slotted(ion-label),:host(.tab-has-label-only) ::slotted(ion-label){margin-top:0;margin-bottom:0}:host(.tab-layout-label-hide) ::slotted(ion-badge),:host(.tab-has-icon-only) ::slotted(ion-badge){top:16px}:host(.tab-layout-label-hide) ::slotted(ion-icon),:host(.tab-has-icon-only) ::slotted(ion-icon){margin-top:0;margin-bottom:0;font-size:24px}\";\n\nconst TabButton = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionTabButtonClick = createEvent(this, \"ionTabButtonClick\", 7);\n /**\n * If `true`, the user cannot interact with the tab button.\n */\n this.disabled = false;\n /**\n * The selected tab component\n */\n this.selected = false;\n this.onKeyUp = (ev) => {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.selectTab(ev);\n }\n };\n this.onClick = (ev) => {\n this.selectTab(ev);\n };\n }\n onTabBarChanged(ev) {\n const dispatchedFrom = ev.target;\n const parent = this.el.parentElement;\n if (ev.composedPath().includes(parent) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(this.el))) {\n this.selected = this.tab === ev.detail.tab;\n }\n }\n componentWillLoad() {\n if (this.layout === undefined) {\n this.layout = config.get('tabButtonLayout', 'icon-top');\n }\n }\n selectTab(ev) {\n if (this.tab !== undefined) {\n if (!this.disabled) {\n this.ionTabButtonClick.emit({\n tab: this.tab,\n href: this.href,\n selected: this.selected,\n });\n }\n ev.preventDefault();\n }\n }\n get hasLabel() {\n return !!this.el.querySelector('ion-label');\n }\n get hasIcon() {\n return !!this.el.querySelector('ion-icon');\n }\n get tabIndex() {\n if (this.disabled) {\n return -1;\n }\n const hasTabIndex = this.el.hasAttribute('tabindex');\n if (hasTabIndex) {\n return this.el.getAttribute('tabindex');\n }\n return 0;\n }\n render() {\n const { disabled, hasIcon, hasLabel, tabIndex, href, rel, target, layout, selected, tab } = this;\n const mode = getIonMode(this);\n const attrs = {\n download: this.download,\n href,\n rel,\n target,\n };\n return (h(Host, { onClick: this.onClick, onKeyup: this.onKeyUp, role: \"tab\", tabindex: tabIndex, \"aria-selected\": selected ? 'true' : null, id: tab !== undefined ? `tab-button-${tab}` : null, class: {\n [mode]: true,\n 'tab-selected': selected,\n 'tab-disabled': disabled,\n 'tab-has-label': hasLabel,\n 'tab-has-icon': hasIcon,\n 'tab-has-label-only': hasLabel && !hasIcon,\n 'tab-has-icon-only': hasIcon && !hasLabel,\n [`tab-layout-${layout}`]: true,\n 'ion-activatable': true,\n 'ion-selectable': true,\n 'ion-focusable': true,\n } }, h(\"a\", Object.assign({}, attrs, { tabIndex: -1, class: \"button-native\", part: \"native\" }), h(\"span\", { class: \"button-inner\" }, h(\"slot\", null)), mode === 'md' && h(\"ion-ripple-effect\", { type: \"unbounded\" }))));\n }\n get el() { return this; }\n static get style() { return {\n ios: tabButtonIosCss,\n md: tabButtonMdCss\n }; }\n}, [33, \"ion-tab-button\", {\n \"disabled\": [4],\n \"download\": [1],\n \"href\": [1],\n \"rel\": [1],\n \"layout\": [1025],\n \"selected\": [1028],\n \"tab\": [1],\n \"target\": [1]\n }, [[8, \"ionTabBarChanged\", \"onTabBarChanged\"]]]);\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-tab-button\", \"ion-ripple-effect\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-tab-button\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, TabButton);\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n defineCustomElement$2();\n }\n break;\n } });\n}\n\nconst IonTabButton = TabButton;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonTabButton, defineCustomElement };\n","import { getAssetPath, proxyCustomElement, HTMLElement, Build, h, Host } from '@stencil/core/internal/client';\n\nlet CACHED_MAP;\nconst getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n else {\n if (!CACHED_MAP) {\n const win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nconst addIcons = (icons) => {\n const map = getIconMap();\n Object.keys(icons).forEach(name => map.set(name, icons[name]));\n};\nconst getUrl = (i) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nconst getNamedUrl = (iconName) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n return getAssetPath(`svg/${iconName}.svg`);\n};\nconst getName = (iconName, icon, mode, ios, md) => {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n iconName = toLower(ios);\n }\n else if (md && mode === 'md') {\n iconName = toLower(md);\n }\n else {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return iconName;\n};\nconst getSrc = (src) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nconst isSrc = (str) => str.length > 0 && /(\\/|\\.)/.test(str);\nconst isStr = (val) => typeof val === 'string';\nconst toLower = (val) => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nconst inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach(attr => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nconst isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\n\nconst validateContent = (svgContent) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n return '';\n};\nconst isValid = (elm) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (let i = 0; i < elm.attributes.length; i++) {\n const name = elm.attributes[i].name;\n if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\n\nconst ioniconContent = new Map();\nconst requests = new Map();\nconst getSvgContent = (url, sanitize) => {\n // see if we already have a request for this url\n let req = requests.get(url);\n if (!req) {\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n // we don't already have a request\n req = fetch(url).then((rsp) => {\n if (rsp.ok) {\n return rsp.text().then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n ioniconContent.set(url, svgContent || '');\n });\n }\n ioniconContent.set(url, '');\n });\n // cache for the same requests\n requests.set(url, req);\n }\n else {\n // set to empty for ssr scenarios and resolve promise\n ioniconContent.set(url, '');\n return Promise.resolve();\n }\n }\n return req;\n};\n\nconst iconCss = \":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:32px;stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}:host(.flip-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.icon-small){font-size:18px !important}:host(.icon-large){font-size:32px !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}\";\n\nlet parser;\nconst Icon = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.iconName = null;\n this.inheritedAttributes = {};\n this.isVisible = false;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode();\n /**\n * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n this.lazy = false;\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `<script>` elements, or any attributes\n * that start with `on`, such as `onclick`.\n * @default true\n */\n this.sanitize = true;\n this.hasAriaHidden = () => {\n const { el } = this;\n return el.hasAttribute('aria-hidden') && el.getAttribute('aria-hidden') === 'true';\n };\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n // purposely do not return the promise here because loading\n // the svg file should not hold up loading the app\n // only load the svg if it's visible\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n waitUntilVisible(el, rootMargin, cb) {\n if (Build.isBrowser && this.lazy && typeof window !== 'undefined' && window.IntersectionObserver) {\n const io = (this.io = new window.IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin }));\n io.observe(el);\n }\n else {\n // browser doesn't support IntersectionObserver\n // so just fallback to always show it\n cb();\n }\n }\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n if (!parser) {\n /**\n * Create an instance of the DOM parser. This creates a single\n * parser instance for the entire app, which is more efficient.\n */\n parser = new DOMParser();\n }\n const url = getUrl(this);\n if (url) {\n if (ioniconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = ioniconContent.get(url);\n }\n else if (url.startsWith('data:')) {\n const doc = parser.parseFromString(url, 'text/html');\n const svgEl = doc.body.querySelector('svg');\n if (svgEl !== null) {\n this.svgContent = svgEl.outerHTML;\n }\n else {\n this.svgContent = '';\n }\n }\n else {\n // async if it hasn't been loaded\n getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));\n }\n }\n }\n const label = this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);\n /**\n * Come up with a default label\n * in case user does not provide their own.\n */\n if (label) {\n this.ariaLabel = label.replace(/\\-/g, ' ');\n }\n }\n render() {\n const { iconName, ariaLabel, el, inheritedAttributes } = this;\n const mode = this.mode || 'md';\n const flipRtl = this.flipRtl ||\n (iconName &&\n (iconName.indexOf('arrow') > -1 || iconName.indexOf('chevron') > -1) &&\n this.flipRtl !== false);\n /**\n * Only set the aria-label if a) we have generated\n * one for the icon and if aria-hidden is not set to \"true\".\n * If developer wants to set their own aria-label, then\n * inheritedAttributes down below will override whatever\n * default label we have set.\n */\n return (h(Host, Object.assign({ \"aria-label\": ariaLabel !== undefined && !this.hasAriaHidden() ? ariaLabel : null, role: \"img\", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })) : (h(\"div\", { class: \"icon-inner\" }))));\n }\n static get assetsDirs() { return [\"svg\"]; }\n get el() { return this; }\n static get watchers() { return {\n \"name\": [\"loadIcon\"],\n \"src\": [\"loadIcon\"],\n \"icon\": [\"loadIcon\"]\n }; }\n static get style() { return iconCss; }\n}, [1, \"ion-icon\", {\n \"mode\": [1025],\n \"color\": [1],\n \"ios\": [1],\n \"md\": [1],\n \"flipRtl\": [4, \"flip-rtl\"],\n \"name\": [513],\n \"src\": [1],\n \"icon\": [8],\n \"size\": [1],\n \"lazy\": [4],\n \"sanitize\": [4],\n \"svgContent\": [32],\n \"isVisible\": [32],\n \"ariaLabel\": [32]\n }]);\nconst getIonMode = () => (Build.isBrowser && typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';\nconst createColorClasses = (color) => {\n return color\n ? {\n 'ion-color': true,\n [`ion-color-${color}`]: true,\n }\n : null;\n};\nfunction defineCustomElement$1() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-icon\"];\n components.forEach(tagName => { switch (tagName) {\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Icon);\n }\n break;\n } });\n}\n\nconst IonIcon = Icon;\nconst defineCustomElement = defineCustomElement$1;\n\nexport { IonIcon, addIcons as a, defineCustomElement };\n","import React from 'react';\n\nexport interface IonLifeCycleContextInterface {\n onIonViewWillEnter: (callback: () => void) => void;\n ionViewWillEnter: () => void;\n onIonViewDidEnter: (callback: () => void) => void;\n ionViewDidEnter: () => void;\n onIonViewWillLeave: (callback: () => void) => void;\n ionViewWillLeave: () => void;\n onIonViewDidLeave: (callback: () => void) => void;\n ionViewDidLeave: () => void;\n}\n\nexport const IonLifeCycleContext = /*@__PURE__*/ React.createContext<IonLifeCycleContextInterface>({\n onIonViewWillEnter: () => {\n return;\n },\n ionViewWillEnter: () => {\n return;\n },\n onIonViewDidEnter: () => {\n return;\n },\n ionViewDidEnter: () => {\n return;\n },\n onIonViewWillLeave: () => {\n return;\n },\n ionViewWillLeave: () => {\n return;\n },\n onIonViewDidLeave: () => {\n return;\n },\n ionViewDidLeave: () => {\n return;\n },\n});\n\nexport interface LifeCycleCallback {\n (): void;\n id?: number;\n}\n\nexport const DefaultIonLifeCycleContext = class implements IonLifeCycleContextInterface {\n ionViewWillEnterCallbacks: LifeCycleCallback[] = [];\n ionViewDidEnterCallbacks: LifeCycleCallback[] = [];\n ionViewWillLeaveCallbacks: LifeCycleCallback[] = [];\n ionViewDidLeaveCallbacks: LifeCycleCallback[] = [];\n componentCanBeDestroyedCallback?: () => void;\n\n onIonViewWillEnter(callback: LifeCycleCallback) {\n if (callback.id) {\n const index = this.ionViewWillEnterCallbacks.findIndex((x) => x.id === callback.id);\n if (index > -1) {\n this.ionViewWillEnterCallbacks[index] = callback;\n } else {\n this.ionViewWillEnterCallbacks.push(callback);\n }\n } else {\n this.ionViewWillEnterCallbacks.push(callback);\n }\n }\n\n ionViewWillEnter() {\n this.ionViewWillEnterCallbacks.forEach((cb) => cb());\n }\n\n onIonViewDidEnter(callback: LifeCycleCallback) {\n if (callback.id) {\n const index = this.ionViewDidEnterCallbacks.findIndex((x) => x.id === callback.id);\n if (index > -1) {\n this.ionViewDidEnterCallbacks[index] = callback;\n } else {\n this.ionViewDidEnterCallbacks.push(callback);\n }\n } else {\n this.ionViewDidEnterCallbacks.push(callback);\n }\n }\n\n ionViewDidEnter() {\n this.ionViewDidEnterCallbacks.forEach((cb) => cb());\n }\n\n onIonViewWillLeave(callback: LifeCycleCallback) {\n if (callback.id) {\n const index = this.ionViewWillLeaveCallbacks.findIndex((x) => x.id === callback.id);\n if (index > -1) {\n this.ionViewWillLeaveCallbacks[index] = callback;\n } else {\n this.ionViewWillLeaveCallbacks.push(callback);\n }\n } else {\n this.ionViewWillLeaveCallbacks.push(callback);\n }\n }\n\n ionViewWillLeave() {\n this.ionViewWillLeaveCallbacks.forEach((cb) => cb());\n }\n\n onIonViewDidLeave(callback: LifeCycleCallback) {\n if (callback.id) {\n const index = this.ionViewDidLeaveCallbacks.findIndex((x) => x.id === callback.id);\n if (index > -1) {\n this.ionViewDidLeaveCallbacks[index] = callback;\n } else {\n this.ionViewDidLeaveCallbacks.push(callback);\n }\n } else {\n this.ionViewDidLeaveCallbacks.push(callback);\n }\n }\n\n ionViewDidLeave() {\n this.ionViewDidLeaveCallbacks.forEach((cb) => cb());\n this.componentCanBeDestroyed();\n }\n\n onComponentCanBeDestroyed(callback: () => void) {\n this.componentCanBeDestroyedCallback = callback;\n }\n\n componentCanBeDestroyed() {\n if (this.componentCanBeDestroyedCallback) {\n this.componentCanBeDestroyedCallback();\n }\n }\n};\n","import { AnimationBuilder, RouterDirection } from '@ionic/core/components';\nimport React from 'react';\n\nimport { RouteInfo } from '../models';\n\nexport interface NavContextState {\n getIonRoute: () => any;\n getIonRedirect: () => any;\n getPageManager: () => any;\n getStackManager: () => any;\n goBack: (route?: string | RouteInfo, animationBuilder?: AnimationBuilder) => void;\n navigate: (\n path: string,\n direction?: RouterDirection | 'none',\n ionRouteAction?: 'push' | 'replace' | 'pop',\n animationBuilder?: AnimationBuilder,\n options?: any,\n tab?: string\n ) => void;\n hasIonicRouter: () => boolean;\n routeInfo?: RouteInfo;\n setCurrentTab: (tab: string, routeInfo: RouteInfo) => void;\n changeTab: (tab: string, path: string, routeOptions?: any) => void;\n resetTab: (tab: string, originalHref: string, originalRouteOptions?: any) => void;\n}\n\nexport const NavContext = /*@__PURE__*/ React.createContext<NavContextState>({\n getIonRedirect: () => undefined,\n getIonRoute: () => undefined,\n getPageManager: () => undefined,\n getStackManager: () => undefined,\n goBack: (route?: string | RouteInfo) => {\n if (typeof window !== 'undefined') {\n if (typeof route === 'string') {\n window.location.pathname = route;\n } else {\n window.history.back();\n }\n }\n },\n navigate: (path: string) => {\n if (typeof window !== 'undefined') {\n window.location.pathname = path;\n }\n },\n hasIonicRouter: () => false,\n routeInfo: undefined,\n setCurrentTab: () => undefined,\n changeTab: (_tab: string, path: string) => {\n if (typeof window !== 'undefined') {\n window.location.pathname = path;\n }\n },\n resetTab: (_tab: string, path: string) => {\n if (typeof window !== 'undefined') {\n window.location.pathname = path;\n }\n },\n});\n","export const dashToPascalCase = (str: string) =>\n str\n .toLowerCase()\n .split('-')\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('');\nexport const camelToDashCase = (str: string) =>\n str.replace(/([A-Z])/g, (m: string) => `-${m[0].toLowerCase()}`);\n","import { camelToDashCase } from './case';\n\nexport const attachProps = (node: HTMLElement, newProps: any, oldProps: any = {}) => {\n // some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first\n if (node instanceof Element) {\n // add any classes in className to the class list\n const className = getClassName(node.classList, newProps, oldProps);\n if (className !== '') {\n node.className = className;\n }\n\n Object.keys(newProps).forEach((name) => {\n if (\n name === 'children' ||\n name === 'style' ||\n name === 'ref' ||\n name === 'class' ||\n name === 'className' ||\n name === 'forwardedRef'\n ) {\n return;\n }\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2);\n const eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);\n\n if (!isCoveredByReact(eventNameLc)) {\n syncEvent(node, eventNameLc, newProps[name]);\n }\n } else {\n (node as any)[name] = newProps[name];\n const propType = typeof newProps[name];\n if (propType === 'string') {\n node.setAttribute(camelToDashCase(name), newProps[name]);\n }\n }\n });\n }\n};\n\nexport const getClassName = (classList: DOMTokenList, newProps: any, oldProps: any) => {\n const newClassProp: string = newProps.className || newProps.class;\n const oldClassProp: string = oldProps.className || oldProps.class;\n // map the classes to Maps for performance\n const currentClasses = arrayToMap(classList);\n const incomingPropClasses = arrayToMap(newClassProp ? newClassProp.split(' ') : []);\n const oldPropClasses = arrayToMap(oldClassProp ? oldClassProp.split(' ') : []);\n const finalClassNames: string[] = [];\n // loop through each of the current classes on the component\n // to see if it should be a part of the classNames added\n currentClasses.forEach((currentClass) => {\n if (incomingPropClasses.has(currentClass)) {\n // add it as its already included in classnames coming in from newProps\n finalClassNames.push(currentClass);\n incomingPropClasses.delete(currentClass);\n } else if (!oldPropClasses.has(currentClass)) {\n // add it as it has NOT been removed by user\n finalClassNames.push(currentClass);\n }\n });\n incomingPropClasses.forEach((s) => finalClassNames.push(s));\n return finalClassNames.join(' ');\n};\n\n/**\n * Checks if an event is supported in the current execution environment.\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nexport const isCoveredByReact = (eventNameSuffix: string) => {\n if (typeof document === 'undefined') {\n return true;\n } else {\n const eventName = 'on' + eventNameSuffix;\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof (element as any)[eventName] === 'function';\n }\n\n return isSupported;\n }\n};\n\nexport const syncEvent = (\n node: Element & { __events?: { [key: string]: ((e: Event) => any) | undefined } },\n eventName: string,\n newEventHandler?: (e: Event) => any\n) => {\n const eventStore = node.__events || (node.__events = {});\n const oldEventHandler = eventStore[eventName];\n\n // Remove old listener so they don't double up.\n if (oldEventHandler) {\n node.removeEventListener(eventName, oldEventHandler);\n }\n\n // Bind new listener.\n node.addEventListener(\n eventName,\n (eventStore[eventName] = function handler(e: Event) {\n if (newEventHandler) {\n newEventHandler.call(this, e);\n }\n })\n );\n};\n\nconst arrayToMap = (arr: string[] | DOMTokenList) => {\n const map = new Map<string, string>();\n (arr as string[]).forEach((s: string) => map.set(s, s));\n return map;\n};\n","import React from 'react';\n\nimport type { StyleReactProps } from '../interfaces';\n\nexport type StencilReactExternalProps<PropType, ElementType> = PropType &\n Omit<React.HTMLAttributes<ElementType>, 'style'> &\n StyleReactProps;\n\n// This will be replaced with React.ForwardedRef when react-output-target is upgraded to React v17\nexport type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;\n\nexport const setRef = (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => {\n if (typeof ref === 'function') {\n ref(value)\n } else if (ref != null) {\n // Cast as a MutableRef so we can assign current\n (ref as React.MutableRefObject<any>).current = value\n }\n};\n\nexport const mergeRefs = (\n ...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]\n): React.RefCallback<any> => {\n return (value: any) => {\n refs.forEach(ref => {\n setRef(ref, value)\n })\n }\n};\n\nexport const createForwardRef = <PropType, ElementType>(\n ReactComponent: any,\n displayName: string,\n) => {\n const forwardRef = (\n props: StencilReactExternalProps<PropType, ElementType>,\n ref: StencilReactForwardedRef<ElementType>,\n ) => {\n return <ReactComponent {...props} forwardedRef={ref} />;\n };\n forwardRef.displayName = displayName;\n\n return React.forwardRef(forwardRef);\n};\n\nexport const defineCustomElement = (tagName: string, customElement: any) => {\n if (\n customElement !== undefined &&\n typeof customElements !== 'undefined' &&\n !customElements.get(tagName)\n ) {\n customElements.define(tagName, customElement);\n }\n}\n\nexport * from './attachProps';\nexport * from './case';\n","import React, { createElement } from 'react';\n\nimport {\n attachProps,\n createForwardRef,\n dashToPascalCase,\n isCoveredByReact,\n mergeRefs,\n} from './utils';\n\nexport interface HTMLStencilElement extends HTMLElement {\n componentOnReady(): Promise<this>;\n}\n\ninterface StencilReactInternalProps<ElementType> extends React.HTMLAttributes<ElementType> {\n forwardedRef: React.RefObject<ElementType>;\n ref?: React.Ref<any>;\n}\n\nexport const createReactComponent = <\n PropType,\n ElementType extends HTMLStencilElement,\n ContextStateType = {},\n ExpandedPropsTypes = {}\n>(\n tagName: string,\n ReactComponentContext?: React.Context<ContextStateType>,\n manipulatePropsFunction?: (\n originalProps: StencilReactInternalProps<ElementType>,\n propsToPass: any,\n ) => ExpandedPropsTypes,\n defineCustomElement?: () => void,\n) => {\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component<StencilReactInternalProps<ElementType>> {\n componentEl!: ElementType;\n\n setComponentElRef = (element: ElementType) => {\n this.componentEl = element;\n };\n\n constructor(props: StencilReactInternalProps<ElementType>) {\n super(props);\n }\n\n componentDidMount() {\n this.componentDidUpdate(this.props);\n }\n\n componentDidUpdate(prevProps: StencilReactInternalProps<ElementType>) {\n attachProps(this.componentEl, this.props, prevProps);\n }\n\n render() {\n const { children, forwardedRef, style, className, ref, ...cProps } = this.props;\n\n let propsToPass = Object.keys(cProps).reduce((acc, name) => {\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2).toLowerCase();\n if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {\n (acc as any)[name] = (cProps as any)[name];\n }\n } else {\n (acc as any)[name] = (cProps as any)[name];\n }\n return acc;\n }, {});\n\n if (manipulatePropsFunction) {\n propsToPass = manipulatePropsFunction(this.props, propsToPass);\n }\n\n const newProps: Omit<StencilReactInternalProps<ElementType>, 'forwardedRef'> = {\n ...propsToPass,\n ref: mergeRefs(forwardedRef, this.setComponentElRef),\n style,\n };\n\n /**\n * We use createElement here instead of\n * React.createElement to work around a\n * bug in Vite (https://github.com/vitejs/vite/issues/6104).\n * React.createElement causes all elements to be rendered\n * as <tagname> instead of the actual Web Component.\n */\n return createElement(tagName, newProps, children);\n }\n\n static get displayName() {\n return displayName;\n }\n };\n\n // If context was passed to createReactComponent then conditionally add it to the Component Class\n if (ReactComponentContext) {\n ReactComponent.contextType = ReactComponentContext;\n }\n\n return createForwardRef<PropType, ElementType>(ReactComponent, displayName);\n};\n","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated react proxies */\nimport { createReactComponent } from './react-component-lib';\n\nimport type { JSX } from '@ionic/core/components';\n\nimport { defineCustomElement as defineIonAccordion } from '@ionic/core/components/ion-accordion.js';\nimport { defineCustomElement as defineIonAccordionGroup } from '@ionic/core/components/ion-accordion-group.js';\nimport { defineCustomElement as defineIonAvatar } from '@ionic/core/components/ion-avatar.js';\nimport { defineCustomElement as defineIonBackdrop } from '@ionic/core/components/ion-backdrop.js';\nimport { defineCustomElement as defineIonBadge } from '@ionic/core/components/ion-badge.js';\nimport { defineCustomElement as defineIonBreadcrumbs } from '@ionic/core/components/ion-breadcrumbs.js';\nimport { defineCustomElement as defineIonButtons } from '@ionic/core/components/ion-buttons.js';\nimport { defineCustomElement as defineIonCardContent } from '@ionic/core/components/ion-card-content.js';\nimport { defineCustomElement as defineIonCardHeader } from '@ionic/core/components/ion-card-header.js';\nimport { defineCustomElement as defineIonCardSubtitle } from '@ionic/core/components/ion-card-subtitle.js';\nimport { defineCustomElement as defineIonCardTitle } from '@ionic/core/components/ion-card-title.js';\nimport { defineCustomElement as defineIonCheckbox } from '@ionic/core/components/ion-checkbox.js';\nimport { defineCustomElement as defineIonChip } from '@ionic/core/components/ion-chip.js';\nimport { defineCustomElement as defineIonCol } from '@ionic/core/components/ion-col.js';\nimport { defineCustomElement as defineIonContent } from '@ionic/core/components/ion-content.js';\nimport { defineCustomElement as defineIonDatetime } from '@ionic/core/components/ion-datetime.js';\nimport { defineCustomElement as defineIonDatetimeButton } from '@ionic/core/components/ion-datetime-button.js';\nimport { defineCustomElement as defineIonFab } from '@ionic/core/components/ion-fab.js';\nimport { defineCustomElement as defineIonFabList } from '@ionic/core/components/ion-fab-list.js';\nimport { defineCustomElement as defineIonFooter } from '@ionic/core/components/ion-footer.js';\nimport { defineCustomElement as defineIonGrid } from '@ionic/core/components/ion-grid.js';\nimport { defineCustomElement as defineIonHeader } from '@ionic/core/components/ion-header.js';\nimport { defineCustomElement as defineIonImg } from '@ionic/core/components/ion-img.js';\nimport { defineCustomElement as defineIonInfiniteScroll } from '@ionic/core/components/ion-infinite-scroll.js';\nimport { defineCustomElement as defineIonInfiniteScrollContent } from '@ionic/core/components/ion-infinite-scroll-content.js';\nimport { defineCustomElement as defineIonInput } from '@ionic/core/components/ion-input.js';\nimport { defineCustomElement as defineIonItemDivider } from '@ionic/core/components/ion-item-divider.js';\nimport { defineCustomElement as defineIonItemGroup } from '@ionic/core/components/ion-item-group.js';\nimport { defineCustomElement as defineIonItemOptions } from '@ionic/core/components/ion-item-options.js';\nimport { defineCustomElement as defineIonItemSliding } from '@ionic/core/components/ion-item-sliding.js';\nimport { defineCustomElement as defineIonLabel } from '@ionic/core/components/ion-label.js';\nimport { defineCustomElement as defineIonList } from '@ionic/core/components/ion-list.js';\nimport { defineCustomElement as defineIonListHeader } from '@ionic/core/components/ion-list-header.js';\nimport { defineCustomElement as defineIonMenu } from '@ionic/core/components/ion-menu.js';\nimport { defineCustomElement as defineIonMenuButton } from '@ionic/core/components/ion-menu-button.js';\nimport { defineCustomElement as defineIonMenuToggle } from '@ionic/core/components/ion-menu-toggle.js';\nimport { defineCustomElement as defineIonNav } from '@ionic/core/components/ion-nav.js';\nimport { defineCustomElement as defineIonNavLink } from '@ionic/core/components/ion-nav-link.js';\nimport { defineCustomElement as defineIonNote } from '@ionic/core/components/ion-note.js';\nimport { defineCustomElement as defineIonProgressBar } from '@ionic/core/components/ion-progress-bar.js';\nimport { defineCustomElement as defineIonRadio } from '@ionic/core/components/ion-radio.js';\nimport { defineCustomElement as defineIonRadioGroup } from '@ionic/core/components/ion-radio-group.js';\nimport { defineCustomElement as defineIonRange } from '@ionic/core/components/ion-range.js';\nimport { defineCustomElement as defineIonRefresher } from '@ionic/core/components/ion-refresher.js';\nimport { defineCustomElement as defineIonRefresherContent } from '@ionic/core/components/ion-refresher-content.js';\nimport { defineCustomElement as defineIonReorder } from '@ionic/core/components/ion-reorder.js';\nimport { defineCustomElement as defineIonReorderGroup } from '@ionic/core/components/ion-reorder-group.js';\nimport { defineCustomElement as defineIonRippleEffect } from '@ionic/core/components/ion-ripple-effect.js';\nimport { defineCustomElement as defineIonRow } from '@ionic/core/components/ion-row.js';\nimport { defineCustomElement as defineIonSearchbar } from '@ionic/core/components/ion-searchbar.js';\nimport { defineCustomElement as defineIonSegment } from '@ionic/core/components/ion-segment.js';\nimport { defineCustomElement as defineIonSegmentButton } from '@ionic/core/components/ion-segment-button.js';\nimport { defineCustomElement as defineIonSelect } from '@ionic/core/components/ion-select.js';\nimport { defineCustomElement as defineIonSelectOption } from '@ionic/core/components/ion-select-option.js';\nimport { defineCustomElement as defineIonSkeletonText } from '@ionic/core/components/ion-skeleton-text.js';\nimport { defineCustomElement as defineIonSlide } from '@ionic/core/components/ion-slide.js';\nimport { defineCustomElement as defineIonSlides } from '@ionic/core/components/ion-slides.js';\nimport { defineCustomElement as defineIonSpinner } from '@ionic/core/components/ion-spinner.js';\nimport { defineCustomElement as defineIonSplitPane } from '@ionic/core/components/ion-split-pane.js';\nimport { defineCustomElement as defineIonTab } from '@ionic/core/components/ion-tab.js';\nimport { defineCustomElement as defineIonText } from '@ionic/core/components/ion-text.js';\nimport { defineCustomElement as defineIonTextarea } from '@ionic/core/components/ion-textarea.js';\nimport { defineCustomElement as defineIonThumbnail } from '@ionic/core/components/ion-thumbnail.js';\nimport { defineCustomElement as defineIonTitle } from '@ionic/core/components/ion-title.js';\nimport { defineCustomElement as defineIonToggle } from '@ionic/core/components/ion-toggle.js';\nimport { defineCustomElement as defineIonToolbar } from '@ionic/core/components/ion-toolbar.js';\nimport { defineCustomElement as defineIonVirtualScroll } from '@ionic/core/components/ion-virtual-scroll.js';\n\nexport const IonAccordion = /*@__PURE__*/createReactComponent<JSX.IonAccordion, HTMLIonAccordionElement>('ion-accordion', undefined, undefined, defineIonAccordion);\nexport const IonAccordionGroup = /*@__PURE__*/createReactComponent<JSX.IonAccordionGroup, HTMLIonAccordionGroupElement>('ion-accordion-group', undefined, undefined, defineIonAccordionGroup);\nexport const IonAvatar = /*@__PURE__*/createReactComponent<JSX.IonAvatar, HTMLIonAvatarElement>('ion-avatar', undefined, undefined, defineIonAvatar);\nexport const IonBackdrop = /*@__PURE__*/createReactComponent<JSX.IonBackdrop, HTMLIonBackdropElement>('ion-backdrop', undefined, undefined, defineIonBackdrop);\nexport const IonBadge = /*@__PURE__*/createReactComponent<JSX.IonBadge, HTMLIonBadgeElement>('ion-badge', undefined, undefined, defineIonBadge);\nexport const IonBreadcrumbs = /*@__PURE__*/createReactComponent<JSX.IonBreadcrumbs, HTMLIonBreadcrumbsElement>('ion-breadcrumbs', undefined, undefined, defineIonBreadcrumbs);\nexport const IonButtons = /*@__PURE__*/createReactComponent<JSX.IonButtons, HTMLIonButtonsElement>('ion-buttons', undefined, undefined, defineIonButtons);\nexport const IonCardContent = /*@__PURE__*/createReactComponent<JSX.IonCardContent, HTMLIonCardContentElement>('ion-card-content', undefined, undefined, defineIonCardContent);\nexport const IonCardHeader = /*@__PURE__*/createReactComponent<JSX.IonCardHeader, HTMLIonCardHeaderElement>('ion-card-header', undefined, undefined, defineIonCardHeader);\nexport const IonCardSubtitle = /*@__PURE__*/createReactComponent<JSX.IonCardSubtitle, HTMLIonCardSubtitleElement>('ion-card-subtitle', undefined, undefined, defineIonCardSubtitle);\nexport const IonCardTitle = /*@__PURE__*/createReactComponent<JSX.IonCardTitle, HTMLIonCardTitleElement>('ion-card-title', undefined, undefined, defineIonCardTitle);\nexport const IonCheckbox = /*@__PURE__*/createReactComponent<JSX.IonCheckbox, HTMLIonCheckboxElement>('ion-checkbox', undefined, undefined, defineIonCheckbox);\nexport const IonChip = /*@__PURE__*/createReactComponent<JSX.IonChip, HTMLIonChipElement>('ion-chip', undefined, undefined, defineIonChip);\nexport const IonCol = /*@__PURE__*/createReactComponent<JSX.IonCol, HTMLIonColElement>('ion-col', undefined, undefined, defineIonCol);\nexport const IonContent = /*@__PURE__*/createReactComponent<JSX.IonContent, HTMLIonContentElement>('ion-content', undefined, undefined, defineIonContent);\nexport const IonDatetime = /*@__PURE__*/createReactComponent<JSX.IonDatetime, HTMLIonDatetimeElement>('ion-datetime', undefined, undefined, defineIonDatetime);\nexport const IonDatetimeButton = /*@__PURE__*/createReactComponent<JSX.IonDatetimeButton, HTMLIonDatetimeButtonElement>('ion-datetime-button', undefined, undefined, defineIonDatetimeButton);\nexport const IonFab = /*@__PURE__*/createReactComponent<JSX.IonFab, HTMLIonFabElement>('ion-fab', undefined, undefined, defineIonFab);\nexport const IonFabList = /*@__PURE__*/createReactComponent<JSX.IonFabList, HTMLIonFabListElement>('ion-fab-list', undefined, undefined, defineIonFabList);\nexport const IonFooter = /*@__PURE__*/createReactComponent<JSX.IonFooter, HTMLIonFooterElement>('ion-footer', undefined, undefined, defineIonFooter);\nexport const IonGrid = /*@__PURE__*/createReactComponent<JSX.IonGrid, HTMLIonGridElement>('ion-grid', undefined, undefined, defineIonGrid);\nexport const IonHeader = /*@__PURE__*/createReactComponent<JSX.IonHeader, HTMLIonHeaderElement>('ion-header', undefined, undefined, defineIonHeader);\nexport const IonImg = /*@__PURE__*/createReactComponent<JSX.IonImg, HTMLIonImgElement>('ion-img', undefined, undefined, defineIonImg);\nexport const IonInfiniteScroll = /*@__PURE__*/createReactComponent<JSX.IonInfiniteScroll, HTMLIonInfiniteScrollElement>('ion-infinite-scroll', undefined, undefined, defineIonInfiniteScroll);\nexport const IonInfiniteScrollContent = /*@__PURE__*/createReactComponent<JSX.IonInfiniteScrollContent, HTMLIonInfiniteScrollContentElement>('ion-infinite-scroll-content', undefined, undefined, defineIonInfiniteScrollContent);\nexport const IonInput = /*@__PURE__*/createReactComponent<JSX.IonInput, HTMLIonInputElement>('ion-input', undefined, undefined, defineIonInput);\nexport const IonItemDivider = /*@__PURE__*/createReactComponent<JSX.IonItemDivider, HTMLIonItemDividerElement>('ion-item-divider', undefined, undefined, defineIonItemDivider);\nexport const IonItemGroup = /*@__PURE__*/createReactComponent<JSX.IonItemGroup, HTMLIonItemGroupElement>('ion-item-group', undefined, undefined, defineIonItemGroup);\nexport const IonItemOptions = /*@__PURE__*/createReactComponent<JSX.IonItemOptions, HTMLIonItemOptionsElement>('ion-item-options', undefined, undefined, defineIonItemOptions);\nexport const IonItemSliding = /*@__PURE__*/createReactComponent<JSX.IonItemSliding, HTMLIonItemSlidingElement>('ion-item-sliding', undefined, undefined, defineIonItemSliding);\nexport const IonLabel = /*@__PURE__*/createReactComponent<JSX.IonLabel, HTMLIonLabelElement>('ion-label', undefined, undefined, defineIonLabel);\nexport const IonList = /*@__PURE__*/createReactComponent<JSX.IonList, HTMLIonListElement>('ion-list', undefined, undefined, defineIonList);\nexport const IonListHeader = /*@__PURE__*/createReactComponent<JSX.IonListHeader, HTMLIonListHeaderElement>('ion-list-header', undefined, undefined, defineIonListHeader);\nexport const IonMenu = /*@__PURE__*/createReactComponent<JSX.IonMenu, HTMLIonMenuElement>('ion-menu', undefined, undefined, defineIonMenu);\nexport const IonMenuButton = /*@__PURE__*/createReactComponent<JSX.IonMenuButton, HTMLIonMenuButtonElement>('ion-menu-button', undefined, undefined, defineIonMenuButton);\nexport const IonMenuToggle = /*@__PURE__*/createReactComponent<JSX.IonMenuToggle, HTMLIonMenuToggleElement>('ion-menu-toggle', undefined, undefined, defineIonMenuToggle);\nexport const IonNav = /*@__PURE__*/createReactComponent<JSX.IonNav, HTMLIonNavElement>('ion-nav', undefined, undefined, defineIonNav);\nexport const IonNavLink = /*@__PURE__*/createReactComponent<JSX.IonNavLink, HTMLIonNavLinkElement>('ion-nav-link', undefined, undefined, defineIonNavLink);\nexport const IonNote = /*@__PURE__*/createReactComponent<JSX.IonNote, HTMLIonNoteElement>('ion-note', undefined, undefined, defineIonNote);\nexport const IonProgressBar = /*@__PURE__*/createReactComponent<JSX.IonProgressBar, HTMLIonProgressBarElement>('ion-progress-bar', undefined, undefined, defineIonProgressBar);\nexport const IonRadio = /*@__PURE__*/createReactComponent<JSX.IonRadio, HTMLIonRadioElement>('ion-radio', undefined, undefined, defineIonRadio);\nexport const IonRadioGroup = /*@__PURE__*/createReactComponent<JSX.IonRadioGroup, HTMLIonRadioGroupElement>('ion-radio-group', undefined, undefined, defineIonRadioGroup);\nexport const IonRange = /*@__PURE__*/createReactComponent<JSX.IonRange, HTMLIonRangeElement>('ion-range', undefined, undefined, defineIonRange);\nexport const IonRefresher = /*@__PURE__*/createReactComponent<JSX.IonRefresher, HTMLIonRefresherElement>('ion-refresher', undefined, undefined, defineIonRefresher);\nexport const IonRefresherContent = /*@__PURE__*/createReactComponent<JSX.IonRefresherContent, HTMLIonRefresherContentElement>('ion-refresher-content', undefined, undefined, defineIonRefresherContent);\nexport const IonReorder = /*@__PURE__*/createReactComponent<JSX.IonReorder, HTMLIonReorderElement>('ion-reorder', undefined, undefined, defineIonReorder);\nexport const IonReorderGroup = /*@__PURE__*/createReactComponent<JSX.IonReorderGroup, HTMLIonReorderGroupElement>('ion-reorder-group', undefined, undefined, defineIonReorderGroup);\nexport const IonRippleEffect = /*@__PURE__*/createReactComponent<JSX.IonRippleEffect, HTMLIonRippleEffectElement>('ion-ripple-effect', undefined, undefined, defineIonRippleEffect);\nexport const IonRow = /*@__PURE__*/createReactComponent<JSX.IonRow, HTMLIonRowElement>('ion-row', undefined, undefined, defineIonRow);\nexport const IonSearchbar = /*@__PURE__*/createReactComponent<JSX.IonSearchbar, HTMLIonSearchbarElement>('ion-searchbar', undefined, undefined, defineIonSearchbar);\nexport const IonSegment = /*@__PURE__*/createReactComponent<JSX.IonSegment, HTMLIonSegmentElement>('ion-segment', undefined, undefined, defineIonSegment);\nexport const IonSegmentButton = /*@__PURE__*/createReactComponent<JSX.IonSegmentButton, HTMLIonSegmentButtonElement>('ion-segment-button', undefined, undefined, defineIonSegmentButton);\nexport const IonSelect = /*@__PURE__*/createReactComponent<JSX.IonSelect, HTMLIonSelectElement>('ion-select', undefined, undefined, defineIonSelect);\nexport const IonSelectOption = /*@__PURE__*/createReactComponent<JSX.IonSelectOption, HTMLIonSelectOptionElement>('ion-select-option', undefined, undefined, defineIonSelectOption);\nexport const IonSkeletonText = /*@__PURE__*/createReactComponent<JSX.IonSkeletonText, HTMLIonSkeletonTextElement>('ion-skeleton-text', undefined, undefined, defineIonSkeletonText);\nexport const IonSlide = /*@__PURE__*/createReactComponent<JSX.IonSlide, HTMLIonSlideElement>('ion-slide', undefined, undefined, defineIonSlide);\nexport const IonSlides = /*@__PURE__*/createReactComponent<JSX.IonSlides, HTMLIonSlidesElement>('ion-slides', undefined, undefined, defineIonSlides);\nexport const IonSpinner = /*@__PURE__*/createReactComponent<JSX.IonSpinner, HTMLIonSpinnerElement>('ion-spinner', undefined, undefined, defineIonSpinner);\nexport const IonSplitPane = /*@__PURE__*/createReactComponent<JSX.IonSplitPane, HTMLIonSplitPaneElement>('ion-split-pane', undefined, undefined, defineIonSplitPane);\nexport const IonTab = /*@__PURE__*/createReactComponent<JSX.IonTab, HTMLIonTabElement>('ion-tab', undefined, undefined, defineIonTab);\nexport const IonText = /*@__PURE__*/createReactComponent<JSX.IonText, HTMLIonTextElement>('ion-text', undefined, undefined, defineIonText);\nexport const IonTextarea = /*@__PURE__*/createReactComponent<JSX.IonTextarea, HTMLIonTextareaElement>('ion-textarea', undefined, undefined, defineIonTextarea);\nexport const IonThumbnail = /*@__PURE__*/createReactComponent<JSX.IonThumbnail, HTMLIonThumbnailElement>('ion-thumbnail', undefined, undefined, defineIonThumbnail);\nexport const IonTitle = /*@__PURE__*/createReactComponent<JSX.IonTitle, HTMLIonTitleElement>('ion-title', undefined, undefined, defineIonTitle);\nexport const IonToggle = /*@__PURE__*/createReactComponent<JSX.IonToggle, HTMLIonToggleElement>('ion-toggle', undefined, undefined, defineIonToggle);\nexport const IonToolbar = /*@__PURE__*/createReactComponent<JSX.IonToolbar, HTMLIonToolbarElement>('ion-toolbar', undefined, undefined, defineIonToolbar);\nexport const IonVirtualScroll = /*@__PURE__*/createReactComponent<JSX.IonVirtualScroll, HTMLIonVirtualScrollElement>('ion-virtual-scroll', undefined, undefined, defineIonVirtualScroll);\n","import {\n Config as CoreConfig,\n Platforms,\n getPlatforms as getPlatformsCore,\n isPlatform as isPlatformCore,\n} from '@ionic/core/components';\nimport React from 'react';\n\nimport { IonicReactProps } from '../IonicReactProps';\n\nexport type IonicReactExternalProps<PropType, ElementType> = PropType &\n Omit<React.HTMLAttributes<ElementType>, 'style'> &\n IonicReactProps;\n\nexport const createForwardRef = <PropType, ElementType>(\n ReactComponent: any,\n displayName: string\n) => {\n const forwardRef = (\n props: IonicReactExternalProps<PropType, ElementType>,\n ref: React.ForwardedRef<ElementType>\n ) => {\n return <ReactComponent {...props} forwardedRef={ref} />;\n };\n forwardRef.displayName = displayName;\n\n return React.forwardRef(forwardRef);\n};\n\nexport const isPlatform = (platform: Platforms) => {\n return isPlatformCore(window, platform);\n};\n\nexport const getPlatforms = () => {\n return getPlatformsCore(window);\n};\n\nexport const getConfig = (): CoreConfig | null => {\n if (typeof (window as any) !== 'undefined') {\n const Ionic = (window as any).Ionic;\n if (Ionic && Ionic.config) {\n return Ionic.config;\n }\n }\n return null;\n};\n","import { AnimationBuilder } from '@ionic/core/components';\nimport React, { createElement } from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\nimport { RouterOptions } from '../models';\nimport { RouterDirection } from '../models/RouterDirection';\n\nimport {\n attachProps,\n camelToDashCase,\n dashToPascalCase,\n defineCustomElement,\n isCoveredByReact,\n mergeRefs,\n} from './react-component-lib/utils';\nimport { createForwardRef } from './utils';\n\ninterface IonicReactInternalProps<ElementType> extends React.HTMLAttributes<ElementType> {\n forwardedRef?: React.ForwardedRef<ElementType>;\n href?: string;\n routerLink?: string;\n ref?: React.Ref<any>;\n routerDirection?: RouterDirection;\n routerOptions?: RouterOptions;\n routerAnimation?: AnimationBuilder;\n}\n\nexport const createRoutingComponent = <PropType, ElementType>(\n tagName: string,\n customElement?: any\n) => {\n defineCustomElement(tagName, customElement);\n\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component<IonicReactInternalProps<PropType>> {\n context!: React.ContextType<typeof NavContext>;\n ref: React.RefObject<HTMLElement>;\n stableMergedRefs: React.RefCallback<HTMLElement>\n\n constructor(props: IonicReactInternalProps<PropType>) {\n super(props);\n // Create a local ref to to attach props to the wrapped element.\n this.ref = React.createRef();\n // React refs must be stable (not created inline).\n this.stableMergedRefs = mergeRefs(this.ref, this.props.forwardedRef)\n }\n\n componentDidMount() {\n this.componentDidUpdate(this.props);\n }\n\n componentDidUpdate(prevProps: IonicReactInternalProps<PropType>) {\n const node = this.ref.current! as HTMLElement;\n attachProps(node, this.props, prevProps);\n }\n\n private handleClick = (e: React.MouseEvent<PropType>) => {\n const { routerLink, routerDirection, routerOptions, routerAnimation } = this.props;\n if (routerLink !== undefined) {\n e.preventDefault();\n this.context.navigate(\n routerLink,\n routerDirection,\n undefined,\n routerAnimation,\n routerOptions\n );\n }\n };\n\n render() {\n const { children, forwardedRef, style, className, ref, ...cProps } = this.props;\n\n const propsToPass = Object.keys(cProps).reduce((acc, name) => {\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2).toLowerCase();\n if (isCoveredByReact(eventName)) {\n (acc as any)[name] = (cProps as any)[name];\n }\n } else if (['string', 'boolean', 'number'].includes(typeof (cProps as any)[name])) {\n (acc as any)[camelToDashCase(name)] = (cProps as any)[name];\n }\n return acc;\n }, {});\n\n const newProps: IonicReactInternalProps<PropType> = {\n ...propsToPass,\n ref: this.stableMergedRefs,\n style,\n };\n\n if (this.props.routerLink && !this.props.href) {\n newProps.href = this.props.routerLink;\n }\n if (newProps.onClick) {\n const oldClick = newProps.onClick;\n newProps.onClick = (e: React.MouseEvent<PropType>) => {\n oldClick(e);\n if (!e.defaultPrevented) {\n this.handleClick(e);\n }\n };\n } else {\n newProps.onClick = this.handleClick;\n }\n\n return createElement(tagName, newProps, children);\n }\n\n static get displayName() {\n return displayName;\n }\n\n static get contextType() {\n return NavContext;\n }\n };\n return createForwardRef<PropType, ElementType>(ReactComponent, displayName);\n};\n","import type { JSX } from '@ionic/core/components';\nimport { IonBreadcrumb as IonBreadcrumbCmp } from '@ionic/core/components/ion-breadcrumb.js';\nimport { IonButton as IonButtonCmp } from '@ionic/core/components/ion-button.js';\nimport { IonCard as IonCardCmp } from '@ionic/core/components/ion-card.js';\nimport { IonFabButton as IonFabButtonCmp } from '@ionic/core/components/ion-fab-button.js';\nimport { IonItemOption as IonItemOptionCmp } from '@ionic/core/components/ion-item-option.js';\nimport { IonItem as IonItemCmp } from '@ionic/core/components/ion-item.js';\nimport { IonRouterLink as IonRouterLinkCmp } from '@ionic/core/components/ion-router-link.js';\n\nimport { createRoutingComponent } from './createRoutingComponent';\nimport { HrefProps } from './hrefprops';\n\nexport const IonRouterLink = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonRouterLink>,\n HTMLIonRouterLinkElement\n>('ion-router-link', IonRouterLinkCmp);\n\nexport const IonButton = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonButton>,\n HTMLIonButtonElement\n>('ion-button', IonButtonCmp);\n\nexport const IonCard = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonCard>,\n HTMLIonCardElement\n>('ion-card', IonCardCmp);\n\nexport const IonFabButton = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonFabButton>,\n HTMLIonFabButtonElement\n>('ion-fab-button', IonFabButtonCmp);\n\nexport const IonItem = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonItem>,\n HTMLIonItemElement\n>('ion-item', IonItemCmp);\n\nexport const IonItemOption = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonItemOption>,\n HTMLIonItemOptionElement\n>('ion-item-option', IonItemOptionCmp);\n\nexport const IonBreadcrumb = /*@__PURE__*/ createRoutingComponent<\n HrefProps<JSX.IonBreadcrumb>,\n HTMLIonBreadcrumbElement\n>('ion-breadcrumb', IonBreadcrumbCmp);\n","import { OverlayEventDetail } from '@ionic/core/components';\nimport React, { createElement } from 'react';\n\nimport {\n attachProps,\n camelToDashCase,\n dashToPascalCase,\n isCoveredByReact,\n mergeRefs,\n} from './react-component-lib/utils';\nimport { createForwardRef } from './utils';\n\ntype InlineOverlayState = {\n isOpen: boolean;\n};\n\ninterface IonicReactInternalProps<ElementType> extends React.HTMLAttributes<ElementType> {\n forwardedRef?: React.ForwardedRef<ElementType>;\n ref?: React.Ref<any>;\n onDidDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;\n onDidPresent?: (event: CustomEvent<OverlayEventDetail>) => void;\n onWillDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;\n onWillPresent?: (event: CustomEvent<OverlayEventDetail>) => void;\n keepContentsMounted?: boolean;\n}\n\nexport const createInlineOverlayComponent = <PropType, ElementType>(\n tagName: string,\n defineCustomElement?: () => void\n) => {\n if (defineCustomElement) {\n defineCustomElement();\n }\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component<\n IonicReactInternalProps<PropType>,\n InlineOverlayState\n > {\n ref: React.RefObject<HTMLElement>;\n wrapperRef: React.RefObject<HTMLElement>;\n stableMergedRefs: React.RefCallback<HTMLElement>;\n\n constructor(props: IonicReactInternalProps<PropType>) {\n super(props);\n // Create a local ref to to attach props to the wrapped element.\n this.ref = React.createRef();\n // React refs must be stable (not created inline).\n this.stableMergedRefs = mergeRefs(this.ref, this.props.forwardedRef);\n // Component is hidden by default\n this.state = { isOpen: false };\n // Create a local ref to the inner child element.\n this.wrapperRef = React.createRef();\n }\n\n componentDidMount() {\n this.componentDidUpdate(this.props);\n\n /**\n * Mount the inner component when the\n * overlay is about to open.\n *\n * For ion-popover, this is when `ionMount` is emitted.\n * For other overlays, this is when `willPresent` is emitted.\n */\n this.ref.current?.addEventListener('ionMount', () => {\n this.setState({ isOpen: true });\n });\n\n /**\n * Mount the inner component\n * when overlay is about to open.\n * Also manually call the onWillPresent\n * handler if present as setState will\n * cause the event handlers to be\n * destroyed and re-created.\n */\n this.ref.current?.addEventListener('willPresent', (evt: any) => {\n this.setState({ isOpen: true });\n\n this.props.onWillPresent && this.props.onWillPresent(evt);\n });\n\n /**\n * Unmount the inner component.\n * React will call Node.removeChild\n * which expects the child to be\n * a direct descendent of the parent\n * but due to the presence of\n * Web Component slots, this is not\n * always the case. To work around this\n * we move the inner component to the root\n * of the Web Component so React can\n * cleanup properly.\n */\n this.ref.current?.addEventListener('didDismiss', (evt: any) => {\n const wrapper = this.wrapperRef.current;\n const el = this.ref.current;\n\n /**\n * This component might be unmounted already, if the containing\n * element was removed while the popover was still open. (For\n * example, if an item contains an inline popover with a button\n * that removes the item.)\n */\n if (wrapper && el) {\n el.append(wrapper);\n this.setState({ isOpen: false });\n }\n\n this.props.onDidDismiss && this.props.onDidDismiss(evt);\n });\n }\n\n componentDidUpdate(prevProps: IonicReactInternalProps<PropType>) {\n const node = this.ref.current! as HTMLElement;\n attachProps(node, this.props, prevProps);\n }\n\n render() {\n const { children, forwardedRef, style, className, ref, ...cProps } = this.props;\n\n const propsToPass = Object.keys(cProps).reduce((acc, name) => {\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2).toLowerCase();\n if (isCoveredByReact(eventName)) {\n (acc as any)[name] = (cProps as any)[name];\n }\n } else if (['string', 'boolean', 'number'].includes(typeof (cProps as any)[name])) {\n (acc as any)[camelToDashCase(name)] = (cProps as any)[name];\n }\n return acc;\n }, {});\n\n const newProps: IonicReactInternalProps<PropType> = {\n ...propsToPass,\n ref: this.stableMergedRefs,\n style,\n };\n\n return createElement(\n 'template',\n {},\n createElement(\n tagName,\n newProps,\n /**\n * We only want the inner component\n * to be mounted if the overlay is open,\n * so conditionally render the component\n * based on the isOpen state.\n */\n this.state.isOpen || this.props.keepContentsMounted\n ? createElement(\n 'div',\n {\n id: 'ion-react-wrapper',\n ref: this.wrapperRef,\n className: 'ion-delegate-host',\n style: {\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n },\n },\n children\n )\n : null\n )\n );\n }\n\n static get displayName() {\n return displayName;\n }\n };\n return createForwardRef<PropType, ElementType>(ReactComponent, displayName);\n};\n","import { JSX } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-modal.js';\n\nimport { createInlineOverlayComponent } from './createInlineOverlayComponent'\n\nexport const IonModal = /*@__PURE__*/ createInlineOverlayComponent<\n JSX.IonModal,\n HTMLIonModalElement\n>('ion-modal', defineCustomElement);\n","import React from 'react';\n\nimport { ReactComponentOrElement } from '../models';\n\nexport interface IonContextInterface {\n addOverlay: (\n id: string,\n overlay: ReactComponentOrElement,\n containerElement: HTMLDivElement\n ) => void;\n removeOverlay: (id: string) => void;\n}\n\nexport const IonContext = React.createContext<IonContextInterface>({\n addOverlay: () => {\n return;\n },\n removeOverlay: () => {\n return;\n },\n});\n","import React, { useEffect, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { ReactComponentOrElement } from '../models';\n\ninterface IonOverlayManagerProps {\n onAddOverlay: (\n callback: (\n id: string,\n component: ReactComponentOrElement,\n containerElement: HTMLDivElement\n ) => void\n ) => void;\n onRemoveOverlay: (callback: (id: string) => void) => void;\n}\n\n/**\n * Manages overlays that are added via the useOverlay hook.\n * This is a standalone component so changes to its children don't cause other descendant\n * components to re-render when overlays are added. However, we need to communicate with the IonContext\n * that is set up in <IonApp />, so we register callbacks so when overlays are added to IonContext,\n * they ultimately added here.\n */\nexport const IonOverlayManager: React.FC<IonOverlayManagerProps> = ({\n onAddOverlay,\n onRemoveOverlay,\n}) => {\n type OverlaysList = {\n [key: string]: {\n component: any;\n containerElement: HTMLDivElement;\n };\n };\n\n /**\n * Because of the way we're passing around the addOverlay and removeOverlay\n * callbacks, by the time they finally get called, they use a stale reference\n * to the state that only has the initial values. So if two overlays are opened\n * at the same time, both using useIonModal or similar (such as through nesting),\n * the second will erase the first from the overlays list. This causes the content\n * of the first overlay to unmount.\n *\n * We wrap the state in useRef to ensure the two callbacks always use the most\n * up-to-date version.\n *\n * Further reading: https://stackoverflow.com/a/56554056\n */\n const [overlays, setOverlays] = useState<OverlaysList>({});\n const overlaysRef = useRef<OverlaysList>({});\n overlaysRef.current = overlays;\n\n useEffect(() => {\n /* Setup the callbacks that get called from <IonApp /> */\n onAddOverlay(addOverlay);\n onRemoveOverlay(removeOverlay);\n }, []);\n\n const addOverlay = (\n id: string,\n component: ReactComponentOrElement,\n containerElement: HTMLDivElement\n ) => {\n const newOverlays = { ...overlaysRef.current };\n newOverlays[id] = { component, containerElement };\n setOverlays(newOverlays);\n };\n\n const removeOverlay = (id: string) => {\n const newOverlays = { ...overlaysRef.current };\n delete newOverlays[id];\n setOverlays(newOverlays);\n };\n\n const overlayKeys = Object.keys(overlays);\n\n return (\n <>\n {overlayKeys.map((key) => {\n const overlay = overlays[key];\n return ReactDOM.createPortal(overlay.component, overlay.containerElement, `overlay-${key}`);\n })}\n </>\n );\n};\n","import { JSX } from '@ionic/core/components';\nimport { defineCustomElement as defineIonApp } from '@ionic/core/components/ion-app.js';\nimport { defineCustomElement as defineIonBackButton } from '@ionic/core/components/ion-back-button.js';\nimport { defineCustomElement as defineIonRouterOutlet } from '@ionic/core/components/ion-router-outlet.js';\nimport { defineCustomElement as defineIonTabBar } from '@ionic/core/components/ion-tab-bar.js';\nimport { defineCustomElement as defineIonTabButton } from '@ionic/core/components/ion-tab-button.js';\nimport { JSX as IoniconsJSX } from 'ionicons';\nimport { defineCustomElement as defineIonIcon } from 'ionicons/components/ion-icon.js';\n\nimport { /*@__PURE__*/ createReactComponent } from './react-component-lib';\n\nexport const IonTabButtonInner = /*@__PURE__*/ createReactComponent<\n JSX.IonTabButton & { onIonTabButtonClick?: (e: CustomEvent) => void },\n HTMLIonTabButtonElement\n>('ion-tab-button', undefined, undefined, defineIonTabButton);\nexport const IonTabBarInner = /*@__PURE__*/ createReactComponent<\n JSX.IonTabBar,\n HTMLIonTabBarElement\n>('ion-tab-bar', undefined, undefined, defineIonTabBar);\nexport const IonBackButtonInner = /*@__PURE__*/ createReactComponent<\n Omit<JSX.IonBackButton, 'icon'>,\n HTMLIonBackButtonElement\n>('ion-back-button', undefined, undefined, defineIonBackButton);\nexport const IonRouterOutletInner = /*@__PURE__*/ createReactComponent<\n JSX.IonRouterOutlet & {\n setRef?: (val: HTMLIonRouterOutletElement) => void;\n forwardedRef?: React.ForwardedRef<HTMLIonRouterOutletElement>;\n },\n HTMLIonRouterOutletElement\n>('ion-router-outlet', undefined, undefined, defineIonRouterOutlet);\n\nexport const IonAppInner = /*@__PURE__*/ createReactComponent<JSX.IonApp, HTMLIonAppElement>(\n 'ion-app',\n undefined,\n undefined,\n defineIonApp\n);\n\n// ionicons\nexport const IonIconInner = /*@__PURE__*/ createReactComponent<\n IoniconsJSX.IonIcon,\n HTMLIonIconElement\n>('ion-icon', undefined, undefined, defineIonIcon);\n","import { JSX as LocalJSX } from '@ionic/core/components';\nimport React from 'react';\n\nimport { IonContext, IonContextInterface } from '../contexts/IonContext';\nimport { ReactComponentOrElement } from '../models';\n\nimport { IonOverlayManager } from './IonOverlayManager';\nimport { IonicReactProps } from './IonicReactProps';\nimport { IonAppInner } from './inner-proxies';\n\ntype Props = LocalJSX.IonApp &\n IonicReactProps & {\n ref?: React.Ref<HTMLIonAppElement>;\n };\n\nexport const IonApp = /*@__PURE__*/ (() =>\n class extends React.Component<Props> {\n addOverlayCallback?: (id: string, overlay: any, containerElement: HTMLDivElement) => void;\n removeOverlayCallback?: (id: string) => void;\n\n constructor(props: Props) {\n super(props);\n }\n\n /*\n Wire up methods to call into IonOverlayManager\n */\n ionContext: IonContextInterface = {\n addOverlay: (\n id: string,\n overlay: ReactComponentOrElement,\n containerElement: HTMLDivElement\n ) => {\n if (this.addOverlayCallback) {\n this.addOverlayCallback(id, overlay, containerElement);\n }\n },\n removeOverlay: (id: string) => {\n if (this.removeOverlayCallback) {\n this.removeOverlayCallback(id);\n }\n },\n };\n\n render() {\n return (\n <IonContext.Provider value={this.ionContext}>\n <IonAppInner {...this.props}>{this.props.children}</IonAppInner>\n <IonOverlayManager\n onAddOverlay={(callback) => {\n this.addOverlayCallback = callback;\n }}\n onRemoveOverlay={(callback) => {\n this.removeOverlayCallback = callback;\n }}\n />\n </IonContext.Provider>\n );\n }\n\n static get displayName() {\n return 'IonApp';\n }\n })();\n","import React from 'react';\n\nimport { RouteInfo } from '../models/RouteInfo';\n\nexport interface StackContextState {\n registerIonPage: (page: HTMLElement, routeInfo: RouteInfo) => void;\n isInOutlet: () => boolean;\n}\n\nexport const StackContext = React.createContext<StackContextState>({\n registerIonPage: () => undefined,\n isInOutlet: () => false,\n});\n","import React from 'react';\n\nimport { mergeRefs } from '../components/react-component-lib/utils';\nimport { IonLifeCycleContext } from '../contexts/IonLifeCycleContext';\nimport { RouteInfo } from '../models';\n\nimport { StackContext } from './StackContext';\n\ninterface PageManagerProps {\n className?: string;\n forwardedRef?: React.ForwardedRef<HTMLDivElement>;\n routeInfo?: RouteInfo;\n}\n\nexport class PageManager extends React.PureComponent<PageManagerProps> {\n ionLifeCycleContext!: React.ContextType<typeof IonLifeCycleContext>;\n context!: React.ContextType<typeof StackContext>;\n ionPageElementRef: React.RefObject<HTMLDivElement>;\n stableMergedRefs: React.RefCallback<HTMLDivElement>\n\n constructor(props: PageManagerProps) {\n super(props);\n this.ionPageElementRef = React.createRef();\n // React refs must be stable (not created inline).\n this.stableMergedRefs = mergeRefs(this.ionPageElementRef, this.props.forwardedRef)\n }\n\n componentDidMount() {\n if (this.ionPageElementRef.current) {\n if (this.context.isInOutlet()) {\n this.ionPageElementRef.current.classList.add('ion-page-invisible');\n }\n this.context.registerIonPage(this.ionPageElementRef.current, this.props.routeInfo!);\n this.ionPageElementRef.current.addEventListener(\n 'ionViewWillEnter',\n this.ionViewWillEnterHandler.bind(this)\n );\n this.ionPageElementRef.current.addEventListener(\n 'ionViewDidEnter',\n this.ionViewDidEnterHandler.bind(this)\n );\n this.ionPageElementRef.current.addEventListener(\n 'ionViewWillLeave',\n this.ionViewWillLeaveHandler.bind(this)\n );\n this.ionPageElementRef.current.addEventListener(\n 'ionViewDidLeave',\n this.ionViewDidLeaveHandler.bind(this)\n );\n }\n }\n\n componentWillUnmount() {\n if (this.ionPageElementRef.current) {\n this.ionPageElementRef.current.removeEventListener(\n 'ionViewWillEnter',\n this.ionViewWillEnterHandler.bind(this)\n );\n this.ionPageElementRef.current.removeEventListener(\n 'ionViewDidEnter',\n this.ionViewDidEnterHandler.bind(this)\n );\n this.ionPageElementRef.current.removeEventListener(\n 'ionViewWillLeave',\n this.ionViewWillLeaveHandler.bind(this)\n );\n this.ionPageElementRef.current.removeEventListener(\n 'ionViewDidLeave',\n this.ionViewDidLeaveHandler.bind(this)\n );\n }\n }\n\n ionViewWillEnterHandler() {\n this.ionLifeCycleContext.ionViewWillEnter();\n }\n\n ionViewDidEnterHandler() {\n this.ionLifeCycleContext.ionViewDidEnter();\n }\n\n ionViewWillLeaveHandler() {\n this.ionLifeCycleContext.ionViewWillLeave();\n }\n\n ionViewDidLeaveHandler() {\n this.ionLifeCycleContext.ionViewDidLeave();\n }\n\n render() {\n const { className, children, routeInfo, forwardedRef, ...props } = this.props;\n\n return (\n <IonLifeCycleContext.Consumer>\n {(context) => {\n this.ionLifeCycleContext = context;\n return (\n <div\n className={\n className ? `${className} ion-page` : `ion-page`\n }\n ref={this.stableMergedRefs}\n {...props}\n >\n {children}\n </div>\n );\n }}\n </IonLifeCycleContext.Consumer>\n );\n }\n\n static get contextType() {\n return StackContext;\n }\n}\nexport default PageManager;\n","import React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\nimport PageManager from '../routing/PageManager';\n\nimport { IonicReactProps } from './IonicReactProps';\nimport { createForwardRef } from './utils';\n\ninterface IonPageProps extends IonicReactProps {}\n\ninterface IonPageInternalProps extends IonPageProps {\n forwardedRef?: React.ForwardedRef<HTMLDivElement>;\n}\n\nclass IonPageInternal extends React.Component<IonPageInternalProps> {\n context!: React.ContextType<typeof NavContext>;\n\n constructor(props: IonPageInternalProps) {\n super(props);\n }\n\n render() {\n const { className, children, forwardedRef, ...props } = this.props;\n\n return this.context.hasIonicRouter() ? (\n <PageManager\n className={className ? `${className}` : ''}\n routeInfo={this.context.routeInfo}\n forwardedRef={forwardedRef}\n {...props}\n >\n {children}\n </PageManager>\n ) : (\n <div\n className={className ? `ion-page ${className}` : 'ion-page'}\n ref={forwardedRef}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n static get displayName() {\n return 'IonPage';\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n\nexport const IonPage = createForwardRef(IonPageInternal, 'IonPage');\n","import type { FrameworkDelegate, JSX } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-nav.js';\nimport React, { useState } from 'react';\n\nimport { ReactDelegate } from '../../framework-delegate';\nimport { createReactComponent } from '../react-component-lib';\nimport { createForwardRef } from '../utils';\n\nconst IonNavInner = createReactComponent<\n JSX.IonNav & { delegate: FrameworkDelegate },\n HTMLIonNavElement\n>('ion-nav', undefined, undefined, defineCustomElement);\n\ntype IonNavProps = JSX.IonNav & {\n forwardedRef?: React.ForwardedRef<HTMLIonNavElement>;\n};\n\nconst IonNavInternal: React.FC<IonNavProps> = ({ children, forwardedRef, ...restOfProps }) => {\n const [views, setViews] = useState<React.ReactElement[]>([]);\n\n /**\n * Allows us to create React components that are rendered within\n * the context of the IonNav component.\n */\n const addView = (view: React.ReactElement) => setViews([...views, view]);\n const removeView = (view: React.ReactElement) => setViews(views.filter((v) => v !== view));\n\n const delegate = ReactDelegate(addView, removeView);\n\n return (\n <IonNavInner delegate={delegate} ref={forwardedRef} {...restOfProps}>\n {views}\n </IonNavInner>\n );\n};\n\nexport const IonNav = createForwardRef<IonNavProps, HTMLIonNavElement>(IonNavInternal, 'IonNav');\n","import React from 'react';\n\nexport interface IonTabsContextState {\n activeTab: string | undefined;\n selectTab: (tab: string) => boolean;\n}\n\nexport const IonTabsContext = React.createContext<IonTabsContextState>({\n activeTab: undefined,\n selectTab: () => false,\n});\n","import { FrameworkDelegate } from '@ionic/core/components';\nimport { createPortal } from 'react-dom';\n\ntype ReactComponent = (props?: any) => JSX.Element;\n\nexport const ReactDelegate = (\n addView: (view: React.ReactElement) => void,\n removeView: (view: React.ReactElement) => void\n): FrameworkDelegate => {\n const refMap = new WeakMap<ReactComponent, React.ReactElement>();\n\n const attachViewToDom = async (\n parentElement: HTMLElement,\n component: ReactComponent,\n propsOrDataObj?: any,\n cssClasses?: string[]\n ): Promise<any> => {\n const div = document.createElement('div');\n cssClasses && div.classList.add(...cssClasses);\n parentElement.appendChild(div);\n\n const componentWithProps = component(propsOrDataObj);\n const hostComponent = createPortal(componentWithProps, div);\n\n refMap.set(component, hostComponent);\n\n addView(hostComponent);\n\n return Promise.resolve(div);\n };\n\n const removeViewFromDom = (_container: any, component: ReactComponent): Promise<void> => {\n const hostComponent = refMap.get(component);\n hostComponent && removeView(hostComponent);\n\n return Promise.resolve();\n };\n\n return {\n attachViewToDom,\n removeViewFromDom,\n };\n};\n","export const HTMLElementSSR = (\n typeof HTMLElement !== 'undefined'\n ? HTMLElement\n : class {}) as typeof HTMLElement;\n","import { componentOnReady } from '@ionic/core/components';\nimport React from 'react';\n\nimport { IonRouterOutletInner } from '../components/inner-proxies';\nimport { IonLifeCycleContext } from '../contexts/IonLifeCycleContext';\nimport { RouteInfo } from '../models';\n\nimport { StackContext } from './StackContext';\n\ninterface OutletPageManagerProps {\n className?: string;\n forwardedRef?: React.ForwardedRef<HTMLIonRouterOutletElement>;\n routeInfo?: RouteInfo;\n StackManager: any;\n}\n\nexport class OutletPageManager extends React.Component<OutletPageManagerProps> {\n ionLifeCycleContext!: React.ContextType<typeof IonLifeCycleContext>;\n context!: React.ContextType<typeof StackContext>;\n ionRouterOutlet: HTMLIonRouterOutletElement | undefined;\n outletIsReady: boolean;\n\n constructor(props: OutletPageManagerProps) {\n super(props);\n\n this.outletIsReady = false;\n }\n\n componentDidMount() {\n if (this.ionRouterOutlet) {\n /**\n * This avoids multiple raf calls\n * when React unmounts + remounts components.\n */\n if (!this.outletIsReady) {\n componentOnReady(this.ionRouterOutlet, () => {\n this.outletIsReady = true;\n this.context.registerIonPage(this.ionRouterOutlet!, this.props.routeInfo!);\n });\n }\n\n this.ionRouterOutlet.addEventListener(\n 'ionViewWillEnter',\n this.ionViewWillEnterHandler.bind(this)\n );\n this.ionRouterOutlet.addEventListener(\n 'ionViewDidEnter',\n this.ionViewDidEnterHandler.bind(this)\n );\n this.ionRouterOutlet.addEventListener(\n 'ionViewWillLeave',\n this.ionViewWillLeaveHandler.bind(this)\n );\n this.ionRouterOutlet.addEventListener(\n 'ionViewDidLeave',\n this.ionViewDidLeaveHandler.bind(this)\n );\n }\n }\n\n componentWillUnmount() {\n if (this.ionRouterOutlet) {\n this.ionRouterOutlet.removeEventListener(\n 'ionViewWillEnter',\n this.ionViewWillEnterHandler.bind(this)\n );\n this.ionRouterOutlet.removeEventListener(\n 'ionViewDidEnter',\n this.ionViewDidEnterHandler.bind(this)\n );\n this.ionRouterOutlet.removeEventListener(\n 'ionViewWillLeave',\n this.ionViewWillLeaveHandler.bind(this)\n );\n this.ionRouterOutlet.removeEventListener(\n 'ionViewDidLeave',\n this.ionViewDidLeaveHandler.bind(this)\n );\n }\n }\n\n ionViewWillEnterHandler() {\n this.ionLifeCycleContext.ionViewWillEnter();\n }\n\n ionViewDidEnterHandler() {\n this.ionLifeCycleContext.ionViewDidEnter();\n }\n\n ionViewWillLeaveHandler() {\n this.ionLifeCycleContext.ionViewWillLeave();\n }\n\n ionViewDidLeaveHandler() {\n this.ionLifeCycleContext.ionViewDidLeave();\n }\n\n render() {\n const { StackManager, children, routeInfo, ...props } = this.props;\n return (\n <IonLifeCycleContext.Consumer>\n {(context) => {\n this.ionLifeCycleContext = context;\n return (\n <StackManager routeInfo={routeInfo}>\n <IonRouterOutletInner\n setRef={(val: HTMLIonRouterOutletElement) => (this.ionRouterOutlet = val)}\n {...props}\n >\n {children}\n </IonRouterOutletInner>\n </StackManager>\n );\n }}\n </IonLifeCycleContext.Consumer>\n );\n }\n\n static get contextType() {\n return StackContext;\n }\n}\nexport default OutletPageManager;\n","import { JSX as LocalJSX } from '@ionic/core/components';\nimport React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\nimport OutletPageManager from '../routing/OutletPageManager';\n\nimport { IonicReactProps } from './IonicReactProps';\nimport { IonRouterOutletInner } from './inner-proxies';\nimport { createForwardRef } from './utils';\n\ntype Props = LocalJSX.IonRouterOutlet & {\n basePath?: string;\n ref?: React.Ref<any>;\n ionPage?: boolean;\n};\n\ninterface InternalProps extends Props {\n forwardedRef?: React.ForwardedRef<HTMLIonRouterOutletElement>;\n}\n\ninterface InternalState {}\n\nclass IonRouterOutletContainer extends React.Component<InternalProps, InternalState> {\n context!: React.ContextType<typeof NavContext>;\n\n constructor(props: InternalProps) {\n super(props);\n }\n\n render() {\n const StackManager = this.context.getStackManager();\n const { children, forwardedRef, ...props } = this.props;\n\n return this.context.hasIonicRouter() ? (\n props.ionPage ? (\n <OutletPageManager\n StackManager={StackManager}\n routeInfo={this.context.routeInfo}\n {...props}\n >\n {children}\n </OutletPageManager>\n ) : (\n <StackManager routeInfo={this.context.routeInfo}>\n <IonRouterOutletInner {...props} forwardedRef={forwardedRef}>\n {children}\n </IonRouterOutletInner>\n </StackManager>\n )\n ) : (\n <IonRouterOutletInner ref={forwardedRef} {...this.props}>\n {this.props.children}\n </IonRouterOutletInner>\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n\nexport const IonRouterOutlet = createForwardRef<\n Props & IonicReactProps,\n HTMLIonRouterOutletElement\n>(IonRouterOutletContainer, 'IonRouterOutlet');\n","import { JSX as LocalJSX } from '@ionic/core/components';\nimport React from 'react';\n\nimport { RouterOptions } from '../../models';\nimport { IonicReactProps } from '../IonicReactProps';\nimport { IonTabButtonInner } from '../inner-proxies';\n\ntype Props = LocalJSX.IonTabButton &\n IonicReactProps & {\n routerOptions?: RouterOptions;\n ref?: React.Ref<HTMLIonTabButtonElement>;\n onClick?: (e: any) => void;\n };\n\nexport const IonTabButton = /*@__PURE__*/ (() =>\n class extends React.Component<Props> {\n constructor(props: Props) {\n super(props);\n this.handleIonTabButtonClick = this.handleIonTabButtonClick.bind(this);\n }\n\n handleIonTabButtonClick() {\n if (this.props.onClick) {\n this.props.onClick(\n new CustomEvent('ionTabButtonClick', {\n detail: {\n tab: this.props.tab,\n href: this.props.href,\n routeOptions: this.props.routerOptions,\n },\n })\n );\n }\n }\n\n render() {\n /**\n * onClick is excluded from the props, since it has a custom\n * implementation within IonTabBar.tsx. Calling onClick within this\n * component would result in duplicate handler calls.\n */\n const { onClick, ...rest } = this.props;\n return (\n <IonTabButtonInner\n onIonTabButtonClick={this.handleIonTabButtonClick}\n {...rest}\n ></IonTabButtonInner>\n );\n }\n\n static get displayName() {\n return 'IonTabButton';\n }\n })();\n","import { JSX as LocalJSX } from '@ionic/core/components';\nimport React, { useContext } from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport { RouteInfo } from '../../models';\nimport { IonicReactProps } from '../IonicReactProps';\nimport { IonTabBarInner } from '../inner-proxies';\nimport { createForwardRef } from '../utils';\n\nimport { IonTabButton } from './IonTabButton';\n\ntype IonTabBarProps = LocalJSX.IonTabBar &\n IonicReactProps & {\n onIonTabsDidChange?: (event: CustomEvent<{ tab: string }>) => void;\n onIonTabsWillChange?: (event: CustomEvent<{ tab: string }>) => void;\n slot?: 'bottom' | 'top';\n style?: { [key: string]: string };\n };\n\ninterface InternalProps extends IonTabBarProps {\n forwardedRef?: React.ForwardedRef<HTMLIonIconElement>;\n onSetCurrentTab: (tab: string, routeInfo: RouteInfo) => void;\n routeInfo: RouteInfo;\n}\n\ninterface TabUrls {\n originalHref: string;\n currentHref: string;\n originalRouteOptions?: unknown;\n currentRouteOptions?: unknown;\n}\n\ninterface IonTabBarState {\n activeTab?: string;\n tabs: { [key: string]: TabUrls };\n}\n\nclass IonTabBarUnwrapped extends React.PureComponent<InternalProps, IonTabBarState> {\n context!: React.ContextType<typeof NavContext>;\n\n constructor(props: InternalProps) {\n super(props);\n const tabs: { [key: string]: TabUrls } = {};\n React.Children.forEach((props as any).children, (child: any) => {\n if (\n child != null &&\n typeof child === 'object' &&\n child.props &&\n (child.type === IonTabButton || child.type.isTabButton)\n ) {\n tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href,\n originalRouteOptions:\n child.props.href === props.routeInfo?.pathname\n ? props.routeInfo?.routeOptions\n : undefined,\n currentRouteOptions:\n child.props.href === props.routeInfo?.pathname\n ? props.routeInfo?.routeOptions\n : undefined,\n };\n }\n });\n\n this.state = {\n tabs,\n };\n\n this.onTabButtonClick = this.onTabButtonClick.bind(this);\n this.renderTabButton = this.renderTabButton.bind(this);\n this.setActiveTabOnContext = this.setActiveTabOnContext.bind(this);\n this.selectTab = this.selectTab.bind(this);\n }\n\n componentDidMount() {\n const tabs = this.state.tabs;\n const tabKeys = Object.keys(tabs);\n const activeTab = tabKeys.find((key) => {\n const href = tabs[key].originalHref;\n return this.props.routeInfo!.pathname.startsWith(href);\n });\n\n if (activeTab) {\n this.setState({\n activeTab,\n });\n }\n }\n\n componentDidUpdate() {\n if (this.state.activeTab) {\n this.setActiveTabOnContext(this.state.activeTab);\n }\n }\n\n setActiveTabOnContext = (_tab: string) => {};\n\n selectTab(tab: string) {\n const tabUrl = this.state.tabs[tab];\n if (tabUrl) {\n this.onTabButtonClick(\n new CustomEvent('ionTabButtonClick', {\n detail: {\n href: tabUrl.currentHref,\n tab,\n selected: tab === this.state.activeTab,\n routeOptions: undefined,\n },\n })\n );\n return true;\n }\n return false;\n }\n\n static getDerivedStateFromProps(props: InternalProps, state: IonTabBarState) {\n const tabs = { ...state.tabs };\n const tabKeys = Object.keys(state.tabs);\n const activeTab = tabKeys.find((key) => {\n const href = state.tabs[key].originalHref;\n return props.routeInfo!.pathname.startsWith(href);\n });\n\n // Check to see if the tab button href has changed, and if so, update it in the tabs state\n React.Children.forEach((props as any).children, (child: any) => {\n if (\n child != null &&\n typeof child === 'object' &&\n child.props &&\n (child.type === IonTabButton || child.type.isTabButton)\n ) {\n const tab = tabs[child.props.tab];\n if (!tab || tab.originalHref !== child.props.href) {\n tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href,\n originalRouteOptions: child.props.routeOptions,\n currentRouteOptions: child.props.routeOptions,\n };\n }\n }\n });\n\n const { activeTab: prevActiveTab } = state;\n if (activeTab && prevActiveTab) {\n const prevHref = state.tabs[prevActiveTab].currentHref;\n const prevRouteOptions = state.tabs[prevActiveTab].currentRouteOptions;\n if (\n activeTab !== prevActiveTab ||\n prevHref !== props.routeInfo?.pathname ||\n prevRouteOptions !== props.routeInfo?.routeOptions\n ) {\n tabs[activeTab] = {\n originalHref: tabs[activeTab].originalHref,\n currentHref: props.routeInfo!.pathname + (props.routeInfo!.search || ''),\n originalRouteOptions: tabs[activeTab].originalRouteOptions,\n currentRouteOptions: props.routeInfo?.routeOptions,\n };\n if (props.routeInfo.routeAction === 'pop' && activeTab !== prevActiveTab) {\n // If navigating back and the tabs change, set the prev tab back to its original href\n tabs[prevActiveTab] = {\n originalHref: tabs[prevActiveTab].originalHref,\n currentHref: tabs[prevActiveTab].originalHref,\n originalRouteOptions: tabs[prevActiveTab].originalRouteOptions,\n currentRouteOptions: tabs[prevActiveTab].currentRouteOptions,\n };\n }\n }\n }\n\n activeTab && props.onSetCurrentTab(activeTab, props.routeInfo);\n\n return {\n activeTab,\n tabs,\n };\n }\n\n private onTabButtonClick(\n e: CustomEvent<{ href: string; selected: boolean; tab: string; routeOptions: unknown }>,\n onClickFn?: (e: any) => void\n ) {\n const tappedTab = this.state.tabs[e.detail.tab];\n const originalHref = tappedTab.originalHref;\n const currentHref = e.detail.href;\n const { activeTab: prevActiveTab } = this.state;\n\n if (onClickFn) {\n /**\n * If the user provides an onClick function, we call it\n * with the original event.\n */\n onClickFn(e);\n }\n\n // this.props.onSetCurrentTab(e.detail.tab, this.props.routeInfo);\n // Clicking the current tab will bring you back to the original href\n if (prevActiveTab === e.detail.tab) {\n if (originalHref !== currentHref) {\n this.context.resetTab(e.detail.tab, originalHref, tappedTab.originalRouteOptions);\n }\n } else {\n if (this.props.onIonTabsWillChange) {\n this.props.onIonTabsWillChange(\n new CustomEvent('ionTabWillChange', { detail: { tab: e.detail.tab } })\n );\n }\n if (this.props.onIonTabsDidChange) {\n this.props.onIonTabsDidChange(\n new CustomEvent('ionTabDidChange', { detail: { tab: e.detail.tab } })\n );\n }\n this.setActiveTabOnContext(e.detail.tab);\n this.context.changeTab(e.detail.tab, currentHref, e.detail.routeOptions);\n }\n }\n\n private renderTabButton(activeTab: string | null | undefined) {\n return (\n child:\n | React.ReactElement<\n LocalJSX.IonTabButton & { onClick: (e: any) => void; routeOptions?: unknown }\n >\n | null\n | undefined\n ) => {\n if (\n child != null &&\n child.props &&\n (child.type === IonTabButton || (child as any).type.isTabButton)\n ) {\n const href =\n child.props.tab === activeTab\n ? this.props.routeInfo?.pathname\n : this.state.tabs[child.props.tab!].currentHref;\n const routeOptions =\n child.props.tab === activeTab\n ? this.props.routeInfo?.routeOptions\n : this.state.tabs[child.props.tab!].currentRouteOptions;\n\n return React.cloneElement(child, {\n href,\n routeOptions,\n onClick: (ev: CustomEvent) => this.onTabButtonClick(ev, child.props.onClick),\n });\n }\n return null;\n };\n }\n\n render() {\n const { activeTab } = this.state;\n return (\n <IonTabBarInner {...this.props} selectedTab={activeTab}>\n {React.Children.map(this.props.children as any, this.renderTabButton(activeTab))}\n </IonTabBarInner>\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n\nconst IonTabBarContainer: React.FC<InternalProps> = React.memo<InternalProps>(\n ({ forwardedRef, ...props }) => {\n const context = useContext(NavContext);\n return (\n <IonTabBarUnwrapped\n ref={forwardedRef}\n {...(props as any)}\n routeInfo={props.routeInfo || context.routeInfo || { pathname: window.location.pathname }}\n onSetCurrentTab={context.setCurrentTab}\n >\n {props.children}\n </IonTabBarUnwrapped>\n );\n }\n);\n\nexport const IonTabBar = createForwardRef<IonTabBarProps, HTMLIonTabBarElement>(\n IonTabBarContainer,\n 'IonTabBar'\n);\n","import { JSX as LocalJSX } from '@ionic/core/components';\nimport React, { Fragment } from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport PageManager from '../../routing/PageManager';\nimport { HTMLElementSSR } from '../../utils/HTMLElementSSR';\nimport { IonRouterOutlet } from '../IonRouterOutlet';\n\nimport { IonTabBar } from './IonTabBar';\nimport { IonTabsContext, IonTabsContextState } from './IonTabsContext';\n\nclass IonTabsElement extends HTMLElementSSR {\n constructor() {\n super();\n }\n}\n\nif (typeof (window as any) !== 'undefined' && window.customElements) {\n const element = window.customElements.get('ion-tabs');\n if (!element) {\n window.customElements.define('ion-tabs', IonTabsElement);\n }\n}\n\ndeclare global {\n namespace JSX {\n interface IntrinsicElements {\n 'ion-tabs': any;\n }\n }\n}\n\ntype ChildFunction = (ionTabContext: IonTabsContextState) => React.ReactNode;\n\ninterface Props extends LocalJSX.IonTabs {\n className?: string;\n children: ChildFunction | React.ReactNode;\n}\n\nconst hostStyles: React.CSSProperties = {\n display: 'flex',\n position: 'absolute',\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n contain: 'layout size style',\n};\n\nconst tabsInner: React.CSSProperties = {\n position: 'relative',\n flex: 1,\n contain: 'layout size style',\n};\n\nexport const IonTabs = /*@__PURE__*/ (() =>\n class extends React.Component<Props> {\n context!: React.ContextType<typeof NavContext>;\n routerOutletRef: React.Ref<HTMLIonRouterOutletElement> = React.createRef();\n selectTabHandler?: (tag: string) => boolean;\n tabBarRef = React.createRef<any>();\n\n ionTabContextState: IonTabsContextState = {\n activeTab: undefined,\n selectTab: () => false,\n };\n\n constructor(props: Props) {\n super(props);\n }\n\n componentDidMount() {\n if (this.tabBarRef.current) {\n // Grab initial value\n this.ionTabContextState.activeTab = this.tabBarRef.current.state.activeTab;\n // Override method\n this.tabBarRef.current.setActiveTabOnContext = (tab: string) => {\n this.ionTabContextState.activeTab = tab;\n };\n this.ionTabContextState.selectTab = this.tabBarRef.current.selectTab;\n }\n }\n\n render() {\n let outlet: React.ReactElement<{}> | undefined;\n let tabBar: React.ReactElement | undefined;\n const { className, onIonTabsDidChange, onIonTabsWillChange, ...props } = this.props;\n\n const children =\n typeof this.props.children === 'function'\n ? (this.props.children as ChildFunction)(this.ionTabContextState)\n : this.props.children;\n\n React.Children.forEach(children, (child: any) => {\n if (child == null || typeof child !== 'object' || !child.hasOwnProperty('type')) {\n return;\n }\n if (child.type === IonRouterOutlet || child.type.isRouterOutlet) {\n outlet = React.cloneElement(child);\n } else if (child.type === Fragment && child.props.children[0].type === IonRouterOutlet) {\n outlet = child.props.children[0];\n }\n\n let childProps: any = {\n ref: this.tabBarRef\n }\n\n /**\n * Only pass these props\n * down from IonTabs to IonTabBar\n * if they are defined, otherwise\n * if you have a handler set on\n * IonTabBar it will be overridden.\n */\n if (onIonTabsDidChange !== undefined) {\n childProps = {\n ...childProps,\n onIonTabsDidChange\n }\n }\n\n if (onIonTabsWillChange !== undefined) {\n childProps = {\n ...childProps,\n onIonTabsWillChange\n }\n }\n\n if (child.type === IonTabBar || child.type.isTabBar) {\n tabBar = React.cloneElement(child, childProps);\n } else if (\n child.type === Fragment &&\n (child.props.children[1].type === IonTabBar || child.props.children[1].type.isTabBar)\n ) {\n tabBar = React.cloneElement(child.props.children[1], childProps);\n }\n });\n\n if (!outlet) {\n throw new Error('IonTabs must contain an IonRouterOutlet');\n }\n if (!tabBar) {\n throw new Error('IonTabs needs a IonTabBar');\n }\n\n return (\n <IonTabsContext.Provider value={this.ionTabContextState}>\n {this.context.hasIonicRouter() ? (\n <PageManager\n className={className ? `${className}` : ''}\n routeInfo={this.context.routeInfo}\n {...props}\n >\n <ion-tabs className=\"ion-tabs\" style={hostStyles}>\n {tabBar.props.slot === 'top' ? tabBar : null}\n <div style={tabsInner} className=\"tabs-inner\">\n {outlet}\n </div>\n {tabBar.props.slot === 'bottom' ? tabBar : null}\n </ion-tabs>\n </PageManager>\n ) : (\n <div className={className ? `${className}` : 'ion-tabs'} {...props} style={hostStyles}>\n {tabBar.props.slot === 'top' ? tabBar : null}\n <div style={tabsInner} className=\"tabs-inner\">\n {outlet}\n </div>\n {tabBar.props.slot === 'bottom' ? tabBar : null}\n </div>\n )}\n </IonTabsContext.Provider>\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n })();\n","import React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\n\nimport { IonicReactProps } from './IonicReactProps';\nimport { IonIconInner } from './inner-proxies';\nimport { createForwardRef, isPlatform } from './utils';\n\ninterface IonIconProps {\n color?: string;\n flipRtl?: boolean;\n icon?: string;\n ios?: string;\n lazy?: boolean;\n md?: string;\n mode?: 'ios' | 'md';\n name?: string;\n size?: string;\n src?: string;\n}\n\ntype InternalProps = IonIconProps & {\n forwardedRef?: React.ForwardedRef<HTMLIonIconElement>;\n};\n\nclass IonIconContainer extends React.PureComponent<InternalProps> {\n constructor(props: InternalProps) {\n super(props);\n if (this.props.name) {\n console.warn('In Ionic React, you import icons from \"ionicons/icons\" and set the icon you imported to the \"icon\" property. Setting the \"name\" property has no effect.');\n }\n }\n\n render() {\n const { icon, ios, md, ...rest } = this.props;\n\n let iconToUse: typeof icon;\n\n if (ios || md) {\n if (isPlatform('ios')) {\n iconToUse = ios ?? md ?? icon;\n } else {\n iconToUse = md ?? ios ?? icon;\n }\n } else {\n iconToUse = icon;\n }\n\n return (\n <IonIconInner ref={this.props.forwardedRef} icon={iconToUse} {...rest}>\n {this.props.children}\n </IonIconInner>\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n\nexport const IonIcon = createForwardRef<IonIconProps & IonicReactProps, HTMLIonIconElement>(\n IonIconContainer,\n 'IonIcon'\n);\n","import React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\n\nexport interface IonRouteProps {\n path?: string;\n exact?: boolean;\n show?: boolean;\n render: (props?: any) => JSX.Element;\n disableIonPageManagement?: boolean;\n}\n\ninterface IonRouteState {}\n\nexport class IonRoute extends React.PureComponent<IonRouteProps, IonRouteState> {\n context!: React.ContextType<typeof NavContext>;\n\n render() {\n const IonRouteInner = this.context.getIonRoute();\n\n if (!this.context.hasIonicRouter() || !IonRoute) {\n console.error(\n 'You either do not have an Ionic Router package, or your router does not support using <IonRoute>'\n );\n return null;\n }\n\n return <IonRouteInner {...this.props} />;\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n","import { AnimationBuilder } from '@ionic/core/components';\nimport React, { useContext, useMemo } from 'react';\n\nimport { RouteAction, RouterDirection, RouterOptions } from '../models';\nimport { RouteInfo } from '../models/RouteInfo';\n\nexport interface IonRouterContextState {\n routeInfo: RouteInfo;\n push: (\n pathname: string,\n routerDirection?: RouterDirection,\n routeAction?: RouteAction,\n routerOptions?: RouterOptions,\n animationBuilder?: AnimationBuilder\n ) => void;\n back: (animationBuilder?: AnimationBuilder) => void;\n canGoBack: () => boolean;\n nativeBack: () => void;\n}\n\nexport const IonRouterContext = React.createContext<IonRouterContextState>({\n routeInfo: undefined as any,\n push: () => {\n throw new Error('An Ionic Router is required for IonRouterContext');\n },\n back: () => {\n throw new Error('An Ionic Router is required for IonRouterContext');\n },\n canGoBack: () => {\n throw new Error('An Ionic Router is required for IonRouterContext');\n },\n nativeBack: () => {\n throw new Error('An Ionic Router is required for IonRouterContext');\n },\n});\n\n/**\n * A hook for more direct control over routing in an Ionic React application. Allows you to pass additional meta-data to the router before the call to the native router.\n */\nexport function useIonRouter(): UseIonRouterResult {\n const context = useContext(IonRouterContext);\n\n return useMemo(\n () => ({\n back: context.back,\n push: context.push,\n goBack: context.back,\n canGoBack: context.canGoBack,\n routeInfo: context.routeInfo,\n }),\n [context.back, context.push, context.canGoBack, context.routeInfo]\n );\n}\n\nexport type UseIonRouterResult = {\n /**\n * @deprecated - Use goBack instead\n * @param animationBuilder - Optional - A custom transition animation to use\n */\n back(animationBuilder?: AnimationBuilder): void;\n /**\n * Navigates to a new pathname\n * @param pathname - The path to navigate to\n * @param routerDirection - Optional - The RouterDirection to use for transition purposes, defaults to 'forward'\n * @param routeAction - Optional - The RouteAction to use for history purposes, defaults to 'push'\n * @param routerOptions - Optional - Any additional parameters to pass to the router\n * @param animationBuilder - Optional - A custom transition animation to use\n */\n push(\n pathname: string,\n routerDirection?: RouterDirection,\n routeAction?: RouteAction,\n routerOptions?: RouterOptions,\n animationBuilder?: AnimationBuilder\n ): void;\n /**\n * Navigates backwards in history, using the IonRouter to determine history\n * @param animationBuilder - Optional - A custom transition animation to use\n */\n goBack(animationBuilder?: AnimationBuilder): void;\n /**\n * Determines if there are any additional routes in the the Router's history. However, routing is not prevented if the browser's history has more entries. Returns true if more entries exist, false if not.\n */\n canGoBack(): boolean;\n routeInfo: RouteInfo;\n};\n","import React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\n\nexport interface IonRedirectProps {\n path?: string;\n exact?: boolean;\n to: string;\n routerOptions?: unknown;\n}\n\ninterface IonRedirectState {}\n\nexport class IonRedirect extends React.PureComponent<IonRedirectProps, IonRedirectState> {\n context!: React.ContextType<typeof NavContext>;\n\n render() {\n const IonRedirectInner = this.context.getIonRedirect();\n\n if (!this.context.hasIonicRouter() || !IonRedirect) {\n console.error(\n 'You either do not have an Ionic Router package, or your router does not support using <IonRedirect>'\n );\n return null;\n }\n\n return <IonRedirectInner {...this.props} />;\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n","import {\n Animation,\n AnimationCallbackOptions,\n AnimationDirection,\n AnimationFill,\n AnimationKeyFrames,\n AnimationLifecycle,\n createAnimation,\n} from '@ionic/core/components';\nimport React, { PropsWithChildren } from 'react';\n\ninterface PartialPropertyValue {\n property: string;\n value: any;\n}\ninterface PropertyValue {\n property: string;\n fromValue: any;\n toValue: any;\n}\n\nexport interface CreateAnimationProps {\n delay?: number;\n direction?: AnimationDirection;\n duration?: number;\n easing?: string;\n fill?: AnimationFill;\n iterations?: number;\n id?: string;\n\n afterAddRead?: () => void;\n afterAddWrite?: () => void;\n afterClearStyles?: string[];\n afterStyles?: { [property: string]: any };\n afterAddClass?: string | string[];\n afterRemoveClass?: string | string[];\n\n beforeAddRead?: () => void;\n beforeAddWrite?: () => void;\n beforeClearStyles?: string[];\n beforeStyles?: { [property: string]: any };\n beforeAddClass?: string | string[];\n beforeRemoveClass?: string | string[];\n\n onFinish?: { callback: AnimationLifecycle; opts?: AnimationCallbackOptions };\n\n keyframes?: AnimationKeyFrames;\n from?: PartialPropertyValue[] | PartialPropertyValue;\n to?: PartialPropertyValue[] | PartialPropertyValue;\n fromTo?: PropertyValue[] | PropertyValue;\n\n play?: boolean;\n pause?: boolean;\n stop?: boolean;\n destroy?: boolean;\n\n progressStart?: { forceLinearEasing: boolean; step?: number };\n progressStep?: { step: number };\n progressEnd?: { playTo: 0 | 1 | undefined; step: number; dur?: number };\n}\n\nexport class CreateAnimation extends React.PureComponent<PropsWithChildren<CreateAnimationProps>> {\n nodes: Map<number, HTMLElement> = new Map();\n animation: Animation;\n\n constructor(props: any) {\n super(props);\n\n this.animation = createAnimation(props.id);\n }\n\n setupAnimation(props: any) {\n const animation = this.animation;\n\n if (this.nodes.size > 0) {\n animation.addElement(Array.from(this.nodes.values()));\n }\n\n checkConfig(animation, props);\n checkPlayback(animation, props);\n }\n\n componentDidMount() {\n const props = this.props;\n this.setupAnimation(props);\n }\n\n componentDidUpdate(prevProps: any) {\n const animation = this.animation;\n\n const props = this.props;\n\n checkConfig(animation, props, prevProps);\n checkProgress(animation, props, prevProps);\n checkPlayback(animation, props, prevProps);\n }\n\n render() {\n const { children } = this.props;\n return (\n <>\n {React.Children.map(children, (child, id) =>\n React.cloneElement(child as any, { ref: (el: any) => this.nodes.set(id, el) })\n )}\n </>\n );\n }\n}\n\nconst checkConfig = (animation: Animation, currentProps: any = {}, prevProps: any = {}) => {\n const reservedProps = [\n 'children',\n 'progressStart',\n 'progressStep',\n 'progressEnd',\n 'pause',\n 'stop',\n 'destroy',\n 'play',\n 'from',\n 'to',\n 'fromTo',\n 'onFinish',\n ];\n for (const key in currentProps) {\n if (\n currentProps.hasOwnProperty(key) &&\n !reservedProps.includes(key) &&\n currentProps[key] !== prevProps[key]\n ) {\n (animation as any)[key]((currentProps as any)[key]);\n }\n }\n\n const fromValues = currentProps.from;\n if (fromValues && fromValues !== prevProps.from) {\n const values = Array.isArray(fromValues) ? fromValues : [fromValues];\n values.forEach((val) => animation.from(val.property, val.value));\n }\n\n const toValues = currentProps.to;\n if (toValues && toValues !== prevProps.to) {\n const values = Array.isArray(toValues) ? toValues : [toValues];\n values.forEach((val) => animation.to(val.property, val.value));\n }\n\n const fromToValues = currentProps.fromTo;\n if (fromToValues && fromToValues !== prevProps.fromTo) {\n const values = Array.isArray(fromToValues) ? fromToValues : [fromToValues];\n values.forEach((val) => animation.fromTo(val.property, val.fromValue, val.toValue));\n }\n\n const onFinishValues = currentProps.onFinish;\n if (onFinishValues && onFinishValues !== prevProps.onFinish) {\n const values = Array.isArray(onFinishValues) ? onFinishValues : [onFinishValues];\n values.forEach((val) => animation.onFinish(val.callback, val.opts));\n }\n};\n\nconst checkProgress = (animation: Animation, currentProps: any = {}, prevProps: any = {}) => {\n const { progressStart, progressStep, progressEnd } = currentProps;\n\n if (\n progressStart &&\n (prevProps.progressStart?.forceLinearEasing !== progressStart?.forceLinearEasing ||\n prevProps.progressStart?.step !== progressStart?.step)\n ) {\n animation.progressStart(progressStart.forceLinearEasing, progressStart.step);\n }\n\n if (progressStep && prevProps.progressStep?.step !== progressStep?.step) {\n animation.progressStep(progressStep.step);\n }\n\n if (\n progressEnd &&\n (prevProps.progressEnd?.playTo !== progressEnd?.playTo ||\n prevProps.progressEnd?.step !== progressEnd?.step ||\n prevProps?.dur !== progressEnd?.dur)\n ) {\n animation.progressEnd(progressEnd.playTo, progressEnd.step, progressEnd.dur);\n }\n};\n\nconst checkPlayback = (animation: Animation, currentProps: any = {}, prevProps: any = {}) => {\n if (!prevProps.play && currentProps.play) {\n animation.play();\n }\n\n if (!prevProps.pause && currentProps.pause) {\n animation.pause();\n }\n\n if (!prevProps.stop && currentProps.stop) {\n animation.stop();\n }\n\n if (!prevProps.destroy && currentProps.destroy) {\n animation.destroy();\n }\n};\n","const ids: { [key: string]: number } = { main: 0 };\n\nexport const generateId = (type = 'main') => {\n const id = (ids[type] ?? 0) + 1;\n ids[type] = id;\n return id.toString();\n};\n","import React from 'react';\n\nimport { RouteInfo } from '../models/RouteInfo';\n\nimport { ViewItem } from './ViewItem';\n\nexport interface RouteManagerContextState {\n addViewItem: (viewItem: ViewItem) => void;\n canGoBack: () => boolean;\n clearOutlet: (outletId: string) => void;\n createViewItem: (\n outletId: string,\n reactElement: React.ReactElement,\n routeInfo: RouteInfo,\n page?: HTMLElement\n ) => ViewItem;\n findViewItemByPathname(pathname: string, outletId?: string): ViewItem | undefined;\n findLeavingViewItemByRouteInfo: (routeInfo: RouteInfo, outletId?: string) => ViewItem | undefined;\n findViewItemByRouteInfo: (routeInfo: RouteInfo, outletId?: string, updateMatch?: boolean) => ViewItem | undefined;\n getChildrenToRender: (\n outletId: string,\n ionRouterOutlet: React.ReactElement,\n routeInfo: RouteInfo,\n reRender: () => void\n ) => React.ReactNode[];\n goBack: () => void;\n unMountViewItem: (viewItem: ViewItem) => void;\n}\n\nexport const RouteManagerContext = /*@__PURE__*/ React.createContext<RouteManagerContextState>({\n addViewItem: () => undefined,\n canGoBack: () => undefined as any,\n clearOutlet: () => undefined,\n createViewItem: () => undefined as any,\n findViewItemByPathname: () => undefined,\n findLeavingViewItemByRouteInfo: () => undefined,\n findViewItemByRouteInfo: () => undefined,\n getChildrenToRender: () => undefined as any,\n goBack: () => undefined,\n unMountViewItem: () => undefined,\n});\n","import React from 'react';\n\nimport { DefaultIonLifeCycleContext, IonLifeCycleContext } from '../contexts/IonLifeCycleContext';\n\ninterface ViewTransitionManagerProps {\n removeView: () => void;\n mount: boolean;\n}\n\ninterface ViewTransitionManagerState {\n show: boolean;\n}\n\nexport class ViewLifeCycleManager extends React.Component<\n ViewTransitionManagerProps,\n ViewTransitionManagerState\n> {\n ionLifeCycleContext = new DefaultIonLifeCycleContext();\n private _isMounted = false;\n\n constructor(props: ViewTransitionManagerProps) {\n super(props);\n\n this.ionLifeCycleContext.onComponentCanBeDestroyed(() => {\n if (!this.props.mount) {\n if (this._isMounted) {\n this.setState(\n {\n show: false,\n },\n () => this.props.removeView()\n );\n }\n }\n });\n\n this.state = {\n show: true,\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n render() {\n const { show } = this.state;\n return (\n <IonLifeCycleContext.Provider value={this.ionLifeCycleContext}>\n {show && this.props.children}\n </IonLifeCycleContext.Provider>\n );\n }\n}\n","import { RouteInfo } from '../models/RouteInfo';\n\n// const RESTRICT_SIZE = 100;\n\nexport class LocationHistory {\n private locationHistory: RouteInfo[] = [];\n private tabHistory: {\n [key: string]: RouteInfo[];\n } = {};\n\n add(routeInfo: RouteInfo) {\n if (routeInfo.routeAction === 'push' || routeInfo.routeAction == null) {\n this._add(routeInfo);\n } else if (routeInfo.routeAction === 'pop') {\n this._pop(routeInfo);\n } else if (routeInfo.routeAction === 'replace') {\n this._replace(routeInfo);\n }\n\n if (routeInfo.routeDirection === 'root') {\n this._clear();\n this._add(routeInfo);\n }\n }\n\n clearTabStack(tab: string) {\n const routeInfos = this._getRouteInfosByKey(tab);\n if (routeInfos) {\n routeInfos.forEach((ri) => {\n this.locationHistory = this.locationHistory.filter((x) => x.id !== ri.id);\n });\n this.tabHistory[tab] = [];\n }\n }\n\n update(routeInfo: RouteInfo) {\n const locationIndex = this.locationHistory.findIndex((x) => x.id === routeInfo.id);\n if (locationIndex > -1) {\n this.locationHistory.splice(locationIndex, 1, routeInfo);\n }\n const tabArray = this.tabHistory[routeInfo.tab || ''];\n if (tabArray) {\n const tabIndex = tabArray.findIndex((x) => x.id === routeInfo.id);\n if (tabIndex > -1) {\n tabArray.splice(tabIndex, 1, routeInfo);\n } else {\n tabArray.push(routeInfo);\n }\n } else if (routeInfo.tab) {\n this.tabHistory[routeInfo.tab] = [routeInfo];\n }\n }\n\n private _add(routeInfo: RouteInfo) {\n const routeInfos = this._getRouteInfosByKey(routeInfo.tab);\n if (routeInfos) {\n // If the latest routeInfo is the same (going back and forth between tabs), replace it\n if (this._areRoutesEqual(routeInfos[routeInfos.length - 1], routeInfo)) {\n routeInfos.pop();\n }\n routeInfos.push(routeInfo);\n }\n this.locationHistory.push(routeInfo);\n }\n\n private _areRoutesEqual(route1?: RouteInfo, route2?: RouteInfo) {\n if(!route1 || !route2) {\n return false;\n }\n return route1.pathname === route2.pathname && route1.search === route2.search;\n }\n\n private _pop(routeInfo: RouteInfo) {\n const routeInfos = this._getRouteInfosByKey(routeInfo.tab);\n\n if (routeInfos) {\n // Pop the previous route\n routeInfos.pop();\n // Replace the current route with an updated version\n routeInfos.pop();\n routeInfos.push(routeInfo);\n }\n\n // Pop the previous route\n this.locationHistory.pop();\n // Replace the current route with an updated version\n this.locationHistory.pop();\n this.locationHistory.push(routeInfo);\n }\n\n private _replace(routeInfo: RouteInfo) {\n const routeInfos = this._getRouteInfosByKey(routeInfo.tab);\n routeInfos && routeInfos.pop();\n this.locationHistory.pop();\n this._add(routeInfo);\n }\n\n private _clear() {\n const keys = Object.keys(this.tabHistory);\n keys.forEach((k) => (this.tabHistory[k] = []));\n this.locationHistory = [];\n }\n\n private _getRouteInfosByKey(key?: string) {\n let routeInfos: RouteInfo[] | undefined;\n if (key) {\n routeInfos = this.tabHistory[key];\n if (!routeInfos) {\n routeInfos = this.tabHistory[key] = [];\n }\n }\n return routeInfos;\n }\n\n getFirstRouteInfoForTab(tab: string) {\n const routeInfos = this._getRouteInfosByKey(tab);\n if (routeInfos) {\n return routeInfos[0];\n }\n return undefined;\n }\n\n getCurrentRouteInfoForTab(tab?: string) {\n const routeInfos = this._getRouteInfosByKey(tab);\n if (routeInfos) {\n return routeInfos[routeInfos.length - 1];\n }\n return undefined;\n }\n\n findLastLocation(routeInfo: RouteInfo) {\n const routeInfos = this._getRouteInfosByKey(routeInfo.tab);\n if (routeInfos) {\n for (let i = routeInfos.length - 2; i >= 0; i--) {\n const ri = routeInfos[i];\n if (ri) {\n if (ri.pathname === routeInfo.pushedByRoute) {\n return ri;\n }\n }\n }\n }\n for (let i = this.locationHistory.length - 2; i >= 0; i--) {\n const ri = this.locationHistory[i];\n if (ri) {\n if (ri.pathname === routeInfo.pushedByRoute) {\n return ri;\n }\n }\n }\n return undefined;\n }\n\n previous() {\n return (\n this.locationHistory[this.locationHistory.length - 2] ||\n this.locationHistory[this.locationHistory.length - 1]\n );\n }\n\n current() {\n return this.locationHistory[this.locationHistory.length - 1];\n }\n\n canGoBack() {\n return this.locationHistory.length > 1;\n }\n}\n","import { AnimationBuilder } from '@ionic/core/components';\nimport React from 'react';\n\nimport { IonRouterContext, IonRouterContextState } from '../components/IonRouterContext';\nimport { NavContext, NavContextState } from '../contexts/NavContext';\nimport { RouteAction } from '../models/RouteAction';\nimport { RouteInfo } from '../models/RouteInfo';\nimport { RouterDirection } from '../models/RouterDirection';\nimport { RouterOptions } from '../models/RouterOptions';\n\nimport { LocationHistory } from './LocationHistory';\nimport PageManager from './PageManager';\n\ninterface NavManagerProps {\n routeInfo: RouteInfo;\n onNativeBack: () => void;\n onNavigateBack: (route?: string | RouteInfo, animationBuilder?: AnimationBuilder) => void;\n onNavigate: (\n path: string,\n action: RouteAction,\n direction?: RouterDirection,\n animationBuilder?: AnimationBuilder,\n options?: any,\n tab?: string\n ) => void;\n onSetCurrentTab: (tab: string, routeInfo: RouteInfo) => void;\n onChangeTab: (tab: string, path: string, routeOptions?: any) => void;\n onResetTab: (tab: string, path: string, routeOptions?: any) => void;\n ionRedirect: any;\n ionRoute: any;\n stackManager: any;\n locationHistory: LocationHistory;\n}\n\nexport class NavManager extends React.PureComponent<NavManagerProps, NavContextState> {\n _isMounted = false;\n\n ionRouterContextValue: IonRouterContextState = {\n push: (\n pathname: string,\n routerDirection?: RouterDirection,\n routeAction?: RouteAction,\n routerOptions?: RouterOptions,\n animationBuilder?: AnimationBuilder\n ) => {\n this.navigate(pathname, routerDirection, routeAction, animationBuilder, routerOptions);\n },\n back: (animationBuilder?: AnimationBuilder) => {\n this.goBack(undefined, animationBuilder);\n },\n canGoBack: () => this.props.locationHistory.canGoBack(),\n nativeBack: () => this.props.onNativeBack(),\n routeInfo: this.props.routeInfo,\n };\n\n constructor(props: NavManagerProps) {\n super(props);\n this.state = {\n goBack: this.goBack.bind(this),\n hasIonicRouter: () => true,\n navigate: this.navigate.bind(this),\n getIonRedirect: this.getIonRedirect.bind(this),\n getIonRoute: this.getIonRoute.bind(this),\n getStackManager: this.getStackManager.bind(this),\n getPageManager: this.getPageManager.bind(this),\n routeInfo: this.props.routeInfo,\n setCurrentTab: this.props.onSetCurrentTab,\n changeTab: this.props.onChangeTab,\n resetTab: this.props.onResetTab,\n };\n\n if (typeof document !== 'undefined') {\n this.handleHardwareBackButton = this.handleHardwareBackButton.bind(this);\n document.addEventListener('ionBackButton', this.handleHardwareBackButton);\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount() {\n if (typeof document !== 'undefined') {\n document.removeEventListener('ionBackButton', this.handleHardwareBackButton);\n this._isMounted = false;\n }\n }\n\n handleHardwareBackButton(e: any) {\n e.detail.register(0, (processNextHandler: () => void) => {\n if (this._isMounted) {\n this.nativeGoBack();\n processNextHandler();\n }\n });\n }\n\n goBack(route?: string | RouteInfo, animationBuilder?: AnimationBuilder) {\n this.props.onNavigateBack(route, animationBuilder);\n }\n\n nativeGoBack() {\n this.props.onNativeBack();\n }\n\n navigate(\n path: string,\n direction: RouterDirection = 'forward',\n action: RouteAction = 'push',\n animationBuilder?: AnimationBuilder,\n options?: any,\n tab?: string\n ) {\n this.props.onNavigate(path, action, direction, animationBuilder, options, tab);\n }\n\n getPageManager() {\n return PageManager;\n }\n\n getIonRedirect() {\n return this.props.ionRedirect;\n }\n\n getIonRoute() {\n return this.props.ionRoute;\n }\n\n getStackManager() {\n return this.props.stackManager;\n }\n\n render() {\n return (\n <NavContext.Provider value={{ ...this.state, routeInfo: this.props.routeInfo }}>\n <IonRouterContext.Provider\n value={{ ...this.ionRouterContextValue, routeInfo: this.props.routeInfo }}\n >\n {this.props.children}\n </IonRouterContext.Provider>\n </NavContext.Provider>\n );\n }\n}\n","import { RouteInfo } from '../models/RouteInfo';\n\nimport { ViewItem } from './ViewItem';\n\nexport abstract class ViewStacks {\n private viewStacks: { [key: string]: ViewItem[] } = {};\n\n constructor() {\n this.add = this.add.bind(this);\n this.clear = this.clear.bind(this);\n this.getViewItemsForOutlet = this.getViewItemsForOutlet.bind(this);\n this.remove = this.remove.bind(this);\n }\n\n add(viewItem: ViewItem) {\n const { outletId } = viewItem;\n if (!this.viewStacks[outletId]) {\n this.viewStacks[outletId] = [viewItem];\n } else {\n this.viewStacks[outletId].push(viewItem);\n }\n }\n\n clear(outletId: string) {\n // Give some time for the leaving views to transition before removing\n return setTimeout(() => {\n delete this.viewStacks[outletId];\n }, 500);\n }\n\n getViewItemsForOutlet(outletId: string) {\n return this.viewStacks[outletId] || [];\n }\n\n remove(viewItem: ViewItem) {\n const { outletId } = viewItem;\n const viewStack = this.viewStacks[outletId];\n if (viewStack) {\n const viewItemToRemove = viewStack.find((x) => x.id === viewItem.id);\n if (viewItemToRemove) {\n viewItemToRemove.mount = false;\n this.viewStacks[outletId] = viewStack.filter((x) => x.id !== viewItemToRemove.id);\n }\n }\n }\n\n protected getStackIds() {\n return Object.keys(this.viewStacks);\n }\n\n protected getAllViewItems() {\n const keys = this.getStackIds();\n const viewItems: ViewItem[] = [];\n keys.forEach((k) => {\n viewItems.push(...this.viewStacks[k]);\n });\n return viewItems;\n }\n\n abstract createViewItem(\n outletId: string,\n reactElement: React.ReactElement,\n routeInfo: RouteInfo,\n page?: HTMLElement\n ): ViewItem;\n abstract findViewItemByPathname(pathname: string, outletId?: string): ViewItem | undefined;\n abstract findViewItemByRouteInfo(routeInfo: RouteInfo, outletId?: string, updateMatch?: boolean): ViewItem | undefined;\n abstract findLeavingViewItemByRouteInfo(\n routeInfo: RouteInfo,\n outletId?: string\n ): ViewItem | undefined;\n abstract getChildrenToRender(\n outletId: string,\n ionRouterOutlet: React.ReactElement,\n routeInfo: RouteInfo,\n reRender: () => void,\n setInTransition: () => void\n ): React.ReactNode[];\n}\n","import { IonRouteProps } from '@ionic/react';\nimport React from 'react';\nimport { Route } from 'react-router';\n\nexport class IonRouteInner extends React.PureComponent<IonRouteProps> {\n render() {\n return (\n <Route\n path={this.props.path}\n exact={this.props.exact}\n render={this.props.render}\n /**\n * `computedMatch` is a private API in react-router v5 that\n * has been removed in v6.\n *\n * This needs to be removed when we support v6.\n *\n * TODO: FW-647\n */\n computedMatch={(this.props as any).computedMatch}\n />\n );\n }\n}\n","import {\n IonRoute,\n RouteInfo,\n ViewItem,\n ViewLifeCycleManager,\n ViewStacks,\n generateId,\n} from '@ionic/react';\nimport React from 'react';\nimport { matchPath } from 'react-router';\n\nexport class ReactRouterViewStack extends ViewStacks {\n constructor() {\n super();\n this.createViewItem = this.createViewItem.bind(this);\n this.findViewItemByRouteInfo = this.findViewItemByRouteInfo.bind(this);\n this.findLeavingViewItemByRouteInfo = this.findLeavingViewItemByRouteInfo.bind(this);\n this.getChildrenToRender = this.getChildrenToRender.bind(this);\n this.findViewItemByPathname = this.findViewItemByPathname.bind(this);\n }\n\n createViewItem(\n outletId: string,\n reactElement: React.ReactElement,\n routeInfo: RouteInfo,\n page?: HTMLElement\n ) {\n const viewItem: ViewItem = {\n id: generateId('viewItem'),\n outletId,\n ionPageElement: page,\n reactElement,\n mount: true,\n ionRoute: false,\n };\n\n const matchProps = {\n exact: reactElement.props.exact,\n path: reactElement.props.path || reactElement.props.from,\n component: reactElement.props.component,\n };\n\n const match = matchPath(routeInfo.pathname, matchProps);\n\n if (reactElement.type === IonRoute) {\n viewItem.ionRoute = true;\n viewItem.disableIonPageManagement = reactElement.props.disableIonPageManagement;\n }\n\n viewItem.routeData = {\n match,\n childProps: reactElement.props,\n };\n\n return viewItem;\n }\n\n getChildrenToRender(outletId: string, ionRouterOutlet: React.ReactElement, routeInfo: RouteInfo) {\n const viewItems = this.getViewItemsForOutlet(outletId);\n\n // Sync latest routes with viewItems\n React.Children.forEach(ionRouterOutlet.props.children, (child: React.ReactElement) => {\n const viewItem = viewItems.find((v) => {\n return matchComponent(child, v.routeData.childProps.path || v.routeData.childProps.from);\n });\n if (viewItem) {\n viewItem.reactElement = child;\n }\n });\n\n const children = viewItems.map((viewItem) => {\n let clonedChild;\n if (viewItem.ionRoute && !viewItem.disableIonPageManagement) {\n clonedChild = (\n <ViewLifeCycleManager\n key={`view-${viewItem.id}`}\n mount={viewItem.mount}\n removeView={() => this.remove(viewItem)}\n >\n {React.cloneElement(viewItem.reactElement, {\n computedMatch: viewItem.routeData.match,\n })}\n </ViewLifeCycleManager>\n );\n } else {\n const match = matchComponent(viewItem.reactElement, routeInfo.pathname);\n clonedChild = (\n <ViewLifeCycleManager\n key={`view-${viewItem.id}`}\n mount={viewItem.mount}\n removeView={() => this.remove(viewItem)}\n >\n {React.cloneElement(viewItem.reactElement, {\n computedMatch: viewItem.routeData.match,\n })}\n </ViewLifeCycleManager>\n );\n\n if (!match && viewItem.routeData.match) {\n viewItem.routeData.match = undefined;\n viewItem.mount = false;\n }\n }\n\n return clonedChild;\n });\n return children;\n }\n\n findViewItemByRouteInfo(routeInfo: RouteInfo, outletId?: string, updateMatch?: boolean) {\n const { viewItem, match } = this.findViewItemByPath(routeInfo.pathname, outletId);\n const shouldUpdateMatch = updateMatch === undefined || updateMatch === true;\n if (shouldUpdateMatch && viewItem && match) {\n viewItem.routeData.match = match;\n }\n return viewItem;\n }\n\n findLeavingViewItemByRouteInfo(routeInfo: RouteInfo, outletId?: string, mustBeIonRoute = true) {\n const { viewItem } = this.findViewItemByPath(\n routeInfo.lastPathname!,\n outletId,\n false,\n mustBeIonRoute\n );\n return viewItem;\n }\n\n findViewItemByPathname(pathname: string, outletId?: string) {\n const { viewItem } = this.findViewItemByPath(pathname, outletId);\n return viewItem;\n }\n\n private findViewItemByPath(\n pathname: string,\n outletId?: string,\n forceExact?: boolean,\n mustBeIonRoute?: boolean\n ) {\n let viewItem: ViewItem | undefined;\n let match: ReturnType<typeof matchPath> | undefined;\n let viewStack: ViewItem[];\n\n if (outletId) {\n viewStack = this.getViewItemsForOutlet(outletId);\n viewStack.some(matchView);\n if (!viewItem) {\n viewStack.some(matchDefaultRoute);\n }\n } else {\n const viewItems = this.getAllViewItems();\n viewItems.some(matchView);\n if (!viewItem) {\n viewItems.some(matchDefaultRoute);\n }\n }\n\n return { viewItem, match };\n\n function matchView(v: ViewItem) {\n if (mustBeIonRoute && !v.ionRoute) {\n return false;\n }\n const matchProps = {\n exact: forceExact ? true : v.routeData.childProps.exact,\n path: v.routeData.childProps.path || v.routeData.childProps.from,\n component: v.routeData.childProps.component,\n };\n const myMatch = matchPath(pathname, matchProps);\n if (myMatch) {\n viewItem = v;\n match = myMatch;\n return true;\n }\n return false;\n }\n\n function matchDefaultRoute(v: ViewItem) {\n // try to find a route that doesn't have a path or from prop, that will be our default route\n if (!v.routeData.childProps.path && !v.routeData.childProps.from) {\n match = {\n path: pathname,\n url: pathname,\n isExact: true,\n params: {},\n };\n viewItem = v;\n return true;\n }\n return false;\n }\n }\n}\n\nfunction matchComponent(node: React.ReactElement, pathname: string, forceExact?: boolean) {\n const matchProps = {\n exact: forceExact ? true : node.props.exact,\n path: node.props.path || node.props.from,\n component: node.props.component,\n };\n const match = matchPath(pathname, matchProps);\n\n return match;\n}\n","export function clonePageElement(leavingViewHtml: string | HTMLElement) {\n let html: string;\n if (typeof leavingViewHtml === 'string') {\n html = leavingViewHtml;\n } else {\n html = leavingViewHtml.outerHTML;\n }\n if (document) {\n const newEl = document.createElement('div');\n newEl.innerHTML = html;\n newEl.style.zIndex = '';\n // Remove an existing back button so the new element doesn't get two of them\n const ionBackButton = newEl.getElementsByTagName('ion-back-button');\n if (ionBackButton[0]) {\n ionBackButton[0].remove();\n }\n return newEl.firstChild as HTMLElement;\n }\n return undefined;\n}\n","import {\n RouteInfo,\n RouteManagerContext,\n StackContext,\n StackContextState,\n ViewItem,\n generateId,\n getConfig,\n} from '@ionic/react';\nimport React from 'react';\nimport { matchPath } from 'react-router-dom';\n\nimport { clonePageElement } from './clonePageElement';\n\ninterface StackManagerProps {\n routeInfo: RouteInfo;\n}\n\ninterface StackManagerState {}\n\nconst isViewVisible = (el: HTMLElement) =>\n !el.classList.contains('ion-page-invisible') && !el.classList.contains('ion-page-hidden');\n\nexport class StackManager extends React.PureComponent<StackManagerProps, StackManagerState> {\n id: string;\n context!: React.ContextType<typeof RouteManagerContext>;\n ionRouterOutlet?: React.ReactElement;\n routerOutletElement: HTMLIonRouterOutletElement | undefined;\n prevProps?: StackManagerProps;\n skipTransition: boolean;\n\n stackContextValue: StackContextState = {\n registerIonPage: this.registerIonPage.bind(this),\n isInOutlet: () => true,\n };\n\n private clearOutletTimeout: any;\n private pendingPageTransition = false;\n\n constructor(props: StackManagerProps) {\n super(props);\n this.registerIonPage = this.registerIonPage.bind(this);\n this.transitionPage = this.transitionPage.bind(this);\n this.handlePageTransition = this.handlePageTransition.bind(this);\n this.id = generateId('routerOutlet');\n this.prevProps = undefined;\n this.skipTransition = false;\n }\n\n componentDidMount() {\n if (this.clearOutletTimeout) {\n /**\n * The clearOutlet integration with React Router is a bit hacky.\n * It uses a timeout to clear the outlet after a transition.\n * In React v18, components are mounted and unmounted in development mode\n * to check for side effects.\n *\n * This clearTimeout prevents the outlet from being cleared when the component is re-mounted,\n * which should only happen in development mode and as a result of a hot reload.\n */\n clearTimeout(this.clearOutletTimeout);\n }\n if (this.routerOutletElement) {\n this.setupRouterOutlet(this.routerOutletElement);\n this.handlePageTransition(this.props.routeInfo);\n }\n }\n\n componentDidUpdate(prevProps: StackManagerProps) {\n const { pathname } = this.props.routeInfo;\n const { pathname: prevPathname } = prevProps.routeInfo;\n\n if (pathname !== prevPathname) {\n this.prevProps = prevProps;\n this.handlePageTransition(this.props.routeInfo);\n } else if (this.pendingPageTransition) {\n this.handlePageTransition(this.props.routeInfo);\n this.pendingPageTransition = false;\n }\n }\n\n componentWillUnmount() {\n this.clearOutletTimeout = this.context.clearOutlet(this.id);\n }\n\n async handlePageTransition(routeInfo: RouteInfo) {\n if (!this.routerOutletElement || !this.routerOutletElement.commit) {\n /**\n * The route outlet has not mounted yet. We need to wait for it to render\n * before we can transition the page.\n *\n * Set a flag to indicate that we should transition the page after\n * the component has updated.\n */\n this.pendingPageTransition = true;\n } else {\n let enteringViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id);\n let leavingViewItem = this.context.findLeavingViewItemByRouteInfo(routeInfo, this.id);\n\n if (!leavingViewItem && routeInfo.prevRouteLastPathname) {\n leavingViewItem = this.context.findViewItemByPathname(\n routeInfo.prevRouteLastPathname,\n this.id\n );\n }\n\n // Check if leavingViewItem should be unmounted\n if (leavingViewItem) {\n if (routeInfo.routeAction === 'replace') {\n leavingViewItem.mount = false;\n } else if (!(routeInfo.routeAction === 'push' && routeInfo.routeDirection === 'forward')) {\n if (routeInfo.routeDirection !== 'none' && enteringViewItem !== leavingViewItem) {\n leavingViewItem.mount = false;\n }\n } else if (routeInfo.routeOptions?.unmount) {\n leavingViewItem.mount = false;\n }\n }\n\n const enteringRoute = matchRoute(\n this.ionRouterOutlet?.props.children,\n routeInfo\n ) as React.ReactElement;\n\n if (enteringViewItem) {\n enteringViewItem.reactElement = enteringRoute;\n } else if (enteringRoute) {\n enteringViewItem = this.context.createViewItem(this.id, enteringRoute, routeInfo);\n this.context.addViewItem(enteringViewItem);\n }\n\n if (enteringViewItem && enteringViewItem.ionPageElement) {\n /**\n * If the entering view item is the same as the leaving view item,\n * then we don't need to transition.\n */\n if (enteringViewItem === leavingViewItem) {\n /**\n * If the entering view item is the same as the leaving view item,\n * we are either transitioning using parameterized routes to the same view\n * or a parent router outlet is re-rendering as a result of React props changing.\n *\n * If the route data does not match the current path, the parent router outlet\n * is attempting to transition and we cancel the operation.\n */\n if (enteringViewItem.routeData.match.url !== routeInfo.pathname) {\n return;\n }\n }\n\n /**\n * If there isn't a leaving view item, but the route info indicates\n * that the user has routed from a previous path, then we need\n * to find the leaving view item to transition between.\n */\n if (!leavingViewItem && this.props.routeInfo.prevRouteLastPathname) {\n leavingViewItem = this.context.findViewItemByPathname(\n this.props.routeInfo.prevRouteLastPathname,\n this.id\n );\n }\n\n /**\n * If the entering view is already visible and the leaving view is not, the transition does not need to occur.\n */\n if (\n isViewVisible(enteringViewItem.ionPageElement) &&\n leavingViewItem !== undefined &&\n !isViewVisible(leavingViewItem.ionPageElement!)\n ) {\n return;\n }\n\n /**\n * The view should only be transitioned in the following cases:\n * 1. Performing a replace or pop action, such as a swipe to go back gesture\n * to animation the leaving view off the screen.\n *\n * 2. Navigating between top-level router outlets, such as /page-1 to /page-2;\n * or navigating within a nested outlet, such as /tabs/tab-1 to /tabs/tab-2.\n *\n * 3. The entering view is an ion-router-outlet containing a page\n * matching the current route and that hasn't already transitioned in.\n *\n * This should only happen when navigating directly to a nested router outlet\n * route or on an initial page load (i.e. refreshing). In cases when loading\n * /tabs/tab-1, we need to transition the /tabs page element into the view.\n */\n this.transitionPage(routeInfo, enteringViewItem, leavingViewItem);\n } else if (leavingViewItem && !enteringRoute && !enteringViewItem) {\n // If we have a leavingView but no entering view/route, we are probably leaving to\n // another outlet, so hide this leavingView. We do it in a timeout to give time for a\n // transition to finish.\n // setTimeout(() => {\n if (leavingViewItem.ionPageElement) {\n leavingViewItem.ionPageElement.classList.add('ion-page-hidden');\n leavingViewItem.ionPageElement.setAttribute('aria-hidden', 'true');\n }\n // }, 250);\n }\n\n this.forceUpdate();\n }\n }\n\n registerIonPage(page: HTMLElement, routeInfo: RouteInfo) {\n const foundView = this.context.findViewItemByRouteInfo(routeInfo, this.id);\n if (foundView) {\n const oldPageElement = foundView.ionPageElement;\n foundView.ionPageElement = page;\n foundView.ionRoute = true;\n\n /**\n * React 18 will unmount and remount IonPage\n * elements in development mode when using createRoot.\n * This can cause duplicate page transitions to occur.\n */\n if (oldPageElement === page) {\n return;\n }\n }\n this.handlePageTransition(routeInfo);\n }\n\n async setupRouterOutlet(routerOutlet: HTMLIonRouterOutletElement) {\n const canStart = () => {\n const config = getConfig();\n const swipeEnabled = config && config.get('swipeBackEnabled', routerOutlet.mode === 'ios');\n if (!swipeEnabled) {\n return false;\n }\n\n const { routeInfo } = this.props;\n\n const propsToUse =\n this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute\n ? this.prevProps.routeInfo\n : ({ pathname: routeInfo.pushedByRoute || '' } as any);\n const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);\n\n return (\n !!enteringViewItem &&\n /**\n * The root url '/' is treated as\n * the first view item (but is never mounted),\n * so we do not want to swipe back to the\n * root url.\n */\n enteringViewItem.mount &&\n /**\n * When on the first page (whatever view\n * you land on after the root url) it\n * is possible for findViewItemByRouteInfo to\n * return the exact same view you are currently on.\n * Make sure that we are not swiping back to the same\n * instances of a view.\n */\n enteringViewItem.routeData.match.path !== routeInfo.pathname\n );\n };\n\n const onStart = async () => {\n const { routeInfo } = this.props;\n\n const propsToUse =\n this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute\n ? this.prevProps.routeInfo\n : ({ pathname: routeInfo.pushedByRoute || '' } as any);\n const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);\n const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id, false);\n\n /**\n * When the gesture starts, kick off\n * a transition that is controlled\n * via a swipe gesture.\n */\n if (enteringViewItem && leavingViewItem) {\n await this.transitionPage(routeInfo, enteringViewItem, leavingViewItem, 'back', true);\n }\n\n return Promise.resolve();\n };\n const onEnd = (shouldContinue: boolean) => {\n if (shouldContinue) {\n this.skipTransition = true;\n\n this.context.goBack();\n } else {\n /**\n * In the event that the swipe\n * gesture was aborted, we should\n * re-hide the page that was going to enter.\n */\n const { routeInfo } = this.props;\n\n const propsToUse =\n this.prevProps && this.prevProps.routeInfo.pathname === routeInfo.pushedByRoute\n ? this.prevProps.routeInfo\n : ({ pathname: routeInfo.pushedByRoute || '' } as any);\n const enteringViewItem = this.context.findViewItemByRouteInfo(propsToUse, this.id, false);\n const leavingViewItem = this.context.findViewItemByRouteInfo(routeInfo, this.id, false);\n\n /**\n * Ionic React has a design defect where it\n * a) Unmounts the leaving view item when using parameterized routes\n * b) Considers the current view to be the entering view when using\n * parameterized routes\n *\n * As a result, we should not hide the view item here\n * as it will cause the current view to be hidden.\n */\n if (\n enteringViewItem !== leavingViewItem &&\n enteringViewItem?.ionPageElement !== undefined\n ) {\n const { ionPageElement } = enteringViewItem;\n ionPageElement.setAttribute('aria-hidden', 'true');\n ionPageElement.classList.add('ion-page-hidden');\n }\n }\n };\n\n routerOutlet.swipeHandler = {\n canStart,\n onStart,\n onEnd,\n };\n }\n\n async transitionPage(\n routeInfo: RouteInfo,\n enteringViewItem: ViewItem,\n leavingViewItem?: ViewItem,\n direction?: 'forward' | 'back',\n progressAnimation = false\n ) {\n const runCommit = async (enteringEl: HTMLElement, leavingEl?: HTMLElement) => {\n const skipTransition = this.skipTransition;\n\n /**\n * If the transition was handled\n * via the swipe to go back gesture,\n * then we do not want to perform\n * another transition.\n *\n * We skip adding ion-page or ion-page-invisible\n * because the entering view already exists in the DOM.\n * If we added the classes, there would be a flicker where\n * the view would be briefly hidden.\n */\n if (skipTransition) {\n /**\n * We need to reset skipTransition before\n * we call routerOutlet.commit otherwise\n * the transition triggered by the swipe\n * to go back gesture would reset it. In\n * that case you would see a duplicate\n * transition triggered by handlePageTransition\n * in componentDidUpdate.\n */\n this.skipTransition = false;\n } else {\n enteringEl.classList.add('ion-page');\n enteringEl.classList.add('ion-page-invisible');\n }\n\n await routerOutlet.commit(enteringEl, leavingEl, {\n deepWait: true,\n duration: skipTransition || directionToUse === undefined ? 0 : undefined,\n direction: directionToUse,\n showGoBack: !!routeInfo.pushedByRoute,\n progressAnimation,\n animationBuilder: routeInfo.routeAnimation,\n });\n };\n\n const routerOutlet = this.routerOutletElement!;\n\n const routeInfoFallbackDirection =\n routeInfo.routeDirection === 'none' || routeInfo.routeDirection === 'root'\n ? undefined\n : routeInfo.routeDirection;\n const directionToUse = direction ?? routeInfoFallbackDirection;\n\n if (enteringViewItem && enteringViewItem.ionPageElement && this.routerOutletElement) {\n if (\n leavingViewItem &&\n leavingViewItem.ionPageElement &&\n enteringViewItem === leavingViewItem\n ) {\n // If a page is transitioning to another version of itself\n // we clone it so we can have an animation to show\n\n const match = matchComponent(leavingViewItem.reactElement, routeInfo.pathname, true);\n if (match) {\n const newLeavingElement = clonePageElement(leavingViewItem.ionPageElement.outerHTML);\n if (newLeavingElement) {\n this.routerOutletElement.appendChild(newLeavingElement);\n await runCommit(enteringViewItem.ionPageElement, newLeavingElement);\n this.routerOutletElement.removeChild(newLeavingElement);\n }\n } else {\n await runCommit(enteringViewItem.ionPageElement, undefined);\n }\n } else {\n await runCommit(enteringViewItem.ionPageElement, leavingViewItem?.ionPageElement);\n if (leavingViewItem && leavingViewItem.ionPageElement && !progressAnimation) {\n leavingViewItem.ionPageElement.classList.add('ion-page-hidden');\n leavingViewItem.ionPageElement.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n render() {\n const { children } = this.props;\n const ionRouterOutlet = React.Children.only(children) as React.ReactElement;\n this.ionRouterOutlet = ionRouterOutlet;\n\n const components = this.context.getChildrenToRender(\n this.id,\n this.ionRouterOutlet,\n this.props.routeInfo,\n () => {\n this.forceUpdate();\n }\n );\n\n return (\n <StackContext.Provider value={this.stackContextValue}>\n {React.cloneElement(\n ionRouterOutlet as any,\n {\n ref: (node: HTMLIonRouterOutletElement) => {\n if (ionRouterOutlet.props.setRef) {\n ionRouterOutlet.props.setRef(node);\n }\n if (ionRouterOutlet.props.forwardedRef) {\n ionRouterOutlet.props.forwardedRef.current = node;\n }\n this.routerOutletElement = node;\n const { ref } = ionRouterOutlet as any;\n if (typeof ref === 'function') {\n ref(node);\n }\n },\n },\n components\n )}\n </StackContext.Provider>\n );\n }\n\n static get contextType() {\n return RouteManagerContext;\n }\n}\n\nexport default StackManager;\n\nfunction matchRoute(node: React.ReactNode, routeInfo: RouteInfo) {\n let matchedNode: React.ReactNode;\n React.Children.forEach(node as React.ReactElement, (child: React.ReactElement) => {\n const matchProps = {\n exact: child.props.exact,\n path: child.props.path || child.props.from,\n component: child.props.component,\n };\n const match = matchPath(routeInfo.pathname, matchProps);\n if (match) {\n matchedNode = child;\n }\n });\n\n if (matchedNode) {\n return matchedNode;\n }\n // If we haven't found a node\n // try to find one that doesn't have a path or from prop, that will be our not found route\n React.Children.forEach(node as React.ReactElement, (child: React.ReactElement) => {\n if (!(child.props.path || child.props.from)) {\n matchedNode = child;\n }\n });\n\n return matchedNode;\n}\n\nfunction matchComponent(node: React.ReactElement, pathname: string, forceExact?: boolean) {\n const matchProps = {\n exact: forceExact ? true : node.props.exact,\n path: node.props.path || node.props.from,\n component: node.props.component,\n };\n const match = matchPath(pathname, matchProps);\n\n return match;\n}\n","import {\n AnimationBuilder,\n LocationHistory,\n NavManager,\n RouteAction,\n RouteInfo,\n RouteManagerContext,\n RouteManagerContextState,\n RouterDirection,\n ViewItem,\n generateId,\n getConfig,\n} from '@ionic/react';\nimport { Action as HistoryAction, Location as HistoryLocation } from 'history';\nimport React from 'react';\nimport { RouteComponentProps, withRouter } from 'react-router-dom';\n\nimport { IonRouteInner } from './IonRouteInner';\nimport { ReactRouterViewStack } from './ReactRouterViewStack';\nimport StackManager from './StackManager';\n\nexport interface LocationState {\n direction?: RouterDirection;\n routerOptions?: { as?: string; unmount?: boolean };\n}\n\ninterface IonRouteProps extends RouteComponentProps<{}, {}, LocationState> {\n registerHistoryListener: (\n cb: (location: HistoryLocation<any>, action: HistoryAction) => void\n ) => void;\n}\n\ninterface IonRouteState {\n routeInfo: RouteInfo;\n}\n\nclass IonRouterInner extends React.PureComponent<IonRouteProps, IonRouteState> {\n currentTab?: string;\n exitViewFromOtherOutletHandlers: ((pathname: string) => ViewItem | undefined)[] = [];\n incomingRouteParams?: Partial<RouteInfo>;\n locationHistory = new LocationHistory();\n viewStack = new ReactRouterViewStack();\n routeMangerContextState: RouteManagerContextState = {\n canGoBack: () => this.locationHistory.canGoBack(),\n clearOutlet: this.viewStack.clear,\n findViewItemByPathname: this.viewStack.findViewItemByPathname,\n getChildrenToRender: this.viewStack.getChildrenToRender,\n goBack: () => this.handleNavigateBack(),\n createViewItem: this.viewStack.createViewItem,\n findViewItemByRouteInfo: this.viewStack.findViewItemByRouteInfo,\n findLeavingViewItemByRouteInfo: this.viewStack.findLeavingViewItemByRouteInfo,\n addViewItem: this.viewStack.add,\n unMountViewItem: this.viewStack.remove,\n };\n\n constructor(props: IonRouteProps) {\n super(props);\n\n const routeInfo = {\n id: generateId('routeInfo'),\n pathname: this.props.location.pathname,\n search: this.props.location.search,\n };\n\n this.locationHistory.add(routeInfo);\n this.handleChangeTab = this.handleChangeTab.bind(this);\n this.handleResetTab = this.handleResetTab.bind(this);\n this.handleNativeBack = this.handleNativeBack.bind(this);\n this.handleNavigate = this.handleNavigate.bind(this);\n this.handleNavigateBack = this.handleNavigateBack.bind(this);\n this.props.registerHistoryListener(this.handleHistoryChange.bind(this));\n this.handleSetCurrentTab = this.handleSetCurrentTab.bind(this);\n\n this.state = {\n routeInfo,\n };\n }\n\n handleChangeTab(tab: string, path?: string, routeOptions?: any) {\n if (!path) { return; }\n\n const routeInfo = this.locationHistory.getCurrentRouteInfoForTab(tab);\n const [pathname, search] = path.split('?');\n if (routeInfo) {\n this.incomingRouteParams = { ...routeInfo, routeAction: 'push', routeDirection: 'none' };\n if (routeInfo.pathname === pathname) {\n this.incomingRouteParams.routeOptions = routeOptions;\n this.props.history.push(routeInfo.pathname + (routeInfo.search || ''));\n } else {\n this.incomingRouteParams.pathname = pathname;\n this.incomingRouteParams.search = search ? '?' + search : undefined;\n this.incomingRouteParams.routeOptions = routeOptions;\n this.props.history.push(pathname + (search ? '?' + search : ''));\n }\n } else {\n this.handleNavigate(pathname, 'push', 'none', undefined, routeOptions, tab);\n }\n }\n\n handleHistoryChange(location: HistoryLocation<LocationState>, action: HistoryAction) {\n let leavingLocationInfo: RouteInfo;\n if (this.incomingRouteParams) {\n if (this.incomingRouteParams.routeAction === 'replace') {\n leavingLocationInfo = this.locationHistory.previous();\n } else {\n leavingLocationInfo = this.locationHistory.current();\n }\n } else {\n leavingLocationInfo = this.locationHistory.current();\n }\n\n const leavingUrl = leavingLocationInfo.pathname + leavingLocationInfo.search;\n if (leavingUrl !== location.pathname) {\n if (!this.incomingRouteParams) {\n if (action === 'REPLACE') {\n this.incomingRouteParams = {\n routeAction: 'replace',\n routeDirection: 'none',\n tab: this.currentTab,\n };\n }\n if (action === 'POP') {\n const currentRoute = this.locationHistory.current();\n if (currentRoute && currentRoute.pushedByRoute) {\n const prevInfo = this.locationHistory.findLastLocation(currentRoute);\n this.incomingRouteParams = { ...prevInfo, routeAction: 'pop', routeDirection: 'back' };\n } else {\n this.incomingRouteParams = {\n routeAction: 'pop',\n routeDirection: 'none',\n tab: this.currentTab,\n };\n }\n }\n if (!this.incomingRouteParams) {\n this.incomingRouteParams = {\n routeAction: 'push',\n routeDirection: location.state?.direction || 'forward',\n routeOptions: location.state?.routerOptions,\n tab: this.currentTab,\n };\n }\n }\n\n let routeInfo: RouteInfo;\n\n if (this.incomingRouteParams?.id) {\n routeInfo = {\n ...(this.incomingRouteParams as RouteInfo),\n lastPathname: leavingLocationInfo.pathname,\n };\n this.locationHistory.add(routeInfo);\n } else {\n const isPushed =\n this.incomingRouteParams.routeAction === 'push' &&\n this.incomingRouteParams.routeDirection === 'forward';\n routeInfo = {\n id: generateId('routeInfo'),\n ...this.incomingRouteParams,\n lastPathname: leavingLocationInfo.pathname,\n pathname: location.pathname,\n search: location.search,\n params: this.props.match.params,\n prevRouteLastPathname: leavingLocationInfo.lastPathname,\n };\n if (isPushed) {\n routeInfo.tab = leavingLocationInfo.tab;\n routeInfo.pushedByRoute = leavingLocationInfo.pathname;\n } else if (routeInfo.routeAction === 'pop') {\n const r = this.locationHistory.findLastLocation(routeInfo);\n routeInfo.pushedByRoute = r?.pushedByRoute;\n } else if (routeInfo.routeAction === 'push' && routeInfo.tab !== leavingLocationInfo.tab) {\n // If we are switching tabs grab the last route info for the tab and use its pushedByRoute\n const lastRoute = this.locationHistory.getCurrentRouteInfoForTab(routeInfo.tab);\n routeInfo.pushedByRoute = lastRoute?.pushedByRoute;\n } else if (routeInfo.routeAction === 'replace') {\n // Make sure to set the lastPathname, etc.. to the current route so the page transitions out\n const currentRouteInfo = this.locationHistory.current();\n\n /**\n * If going from /home to /child, then replacing from\n * /child to /home, we don't want the route info to\n * say that /home was pushed by /home which is not correct.\n */\n const currentPushedBy = currentRouteInfo?.pushedByRoute;\n const pushedByRoute = (currentPushedBy !== undefined && currentPushedBy !== routeInfo.pathname) ? currentPushedBy : routeInfo.pushedByRoute;\n\n routeInfo.lastPathname = currentRouteInfo?.pathname || routeInfo.lastPathname;\n routeInfo.prevRouteLastPathname = currentRouteInfo?.lastPathname;\n routeInfo.pushedByRoute = pushedByRoute;\n routeInfo.routeDirection = currentRouteInfo?.routeDirection || routeInfo.routeDirection;\n routeInfo.routeAnimation = currentRouteInfo?.routeAnimation || routeInfo.routeAnimation;\n }\n\n this.locationHistory.add(routeInfo);\n }\n\n this.setState({\n routeInfo,\n });\n }\n\n this.incomingRouteParams = undefined;\n }\n\n /**\n * history@4.x uses goBack(), history@5.x uses back()\n * TODO: If support for React Router <=5 is dropped\n * this logic is no longer needed. We can just\n * assume back() is available.\n */\n handleNativeBack() {\n const history = this.props.history as any;\n const goBack = history.goBack || history.back;\n goBack();\n }\n\n handleNavigate(\n path: string,\n routeAction: RouteAction,\n routeDirection?: RouterDirection,\n routeAnimation?: AnimationBuilder,\n routeOptions?: any,\n tab?: string\n ) {\n this.incomingRouteParams = Object.assign(this.incomingRouteParams || {}, {\n routeAction,\n routeDirection,\n routeOptions,\n routeAnimation,\n tab,\n });\n\n if (routeAction === 'push') {\n this.props.history.push(path);\n } else {\n this.props.history.replace(path);\n }\n }\n\n handleNavigateBack(defaultHref: string | RouteInfo = '/', routeAnimation?: AnimationBuilder) {\n const config = getConfig();\n defaultHref = defaultHref ? defaultHref : config && config.get('backButtonDefaultHref' as any);\n const routeInfo = this.locationHistory.current();\n if (routeInfo && routeInfo.pushedByRoute) {\n const prevInfo = this.locationHistory.findLastLocation(routeInfo);\n if (prevInfo) {\n this.incomingRouteParams = {\n ...prevInfo,\n routeAction: 'pop',\n routeDirection: 'back',\n routeAnimation: routeAnimation || routeInfo.routeAnimation,\n };\n if (\n routeInfo.lastPathname === routeInfo.pushedByRoute ||\n (\n /**\n * We need to exclude tab switches/tab\n * context changes here because tabbed\n * navigation is not linear, but router.back()\n * will go back in a linear fashion.\n */\n prevInfo.pathname === routeInfo.pushedByRoute &&\n routeInfo.tab === '' && prevInfo.tab === ''\n )\n ) {\n /**\n * history@4.x uses goBack(), history@5.x uses back()\n * TODO: If support for React Router <=5 is dropped\n * this logic is no longer needed. We can just\n * assume back() is available.\n */\n const history = this.props.history as any;\n const goBack = history.goBack || history.back;\n goBack();\n } else {\n this.handleNavigate(prevInfo.pathname + (prevInfo.search || ''), 'pop', 'back');\n }\n } else {\n this.handleNavigate(defaultHref as string, 'pop', 'back');\n }\n } else {\n this.handleNavigate(defaultHref as string, 'pop', 'back');\n }\n }\n\n handleResetTab(tab: string, originalHref: string, originalRouteOptions: any) {\n const routeInfo = this.locationHistory.getFirstRouteInfoForTab(tab);\n if (routeInfo) {\n const newRouteInfo = { ...routeInfo };\n newRouteInfo.pathname = originalHref;\n newRouteInfo.routeOptions = originalRouteOptions;\n this.incomingRouteParams = { ...newRouteInfo, routeAction: 'pop', routeDirection: 'back' };\n this.props.history.push(newRouteInfo.pathname + (newRouteInfo.search || ''));\n }\n }\n\n handleSetCurrentTab(tab: string) {\n this.currentTab = tab;\n const ri = { ...this.locationHistory.current() };\n if (ri.tab !== tab) {\n ri.tab = tab;\n this.locationHistory.update(ri);\n }\n }\n\n render() {\n return (\n <RouteManagerContext.Provider value={this.routeMangerContextState}>\n <NavManager\n ionRoute={IonRouteInner}\n ionRedirect={{}}\n stackManager={StackManager}\n routeInfo={this.state.routeInfo!}\n onNativeBack={this.handleNativeBack}\n onNavigateBack={this.handleNavigateBack}\n onNavigate={this.handleNavigate}\n onSetCurrentTab={this.handleSetCurrentTab}\n onChangeTab={this.handleChangeTab}\n onResetTab={this.handleResetTab}\n locationHistory={this.locationHistory}\n >\n {this.props.children}\n </NavManager>\n </RouteManagerContext.Provider>\n );\n }\n}\n\nexport const IonRouter = withRouter(IonRouterInner);\nIonRouter.displayName = 'IonRouter';\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a <Router>`\n );\n return (\n <Component\n {...remainingProps}\n {...context}\n ref={wrappedComponentRef}\n />\n );\n }}\n </RouterContext.Consumer>\n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import {\n Action as HistoryAction,\n History,\n Location as HistoryLocation,\n createBrowserHistory as createHistory,\n} from 'history';\nimport React from 'react';\nimport { BrowserRouterProps, Router } from 'react-router-dom';\n\nimport { IonRouter } from './IonRouter';\n\ninterface IonReactRouterProps extends BrowserRouterProps {\n history?: History;\n}\n\nexport class IonReactRouter extends React.Component<IonReactRouterProps> {\n historyListenHandler?: (location: HistoryLocation, action: HistoryAction) => void;\n history: History;\n\n constructor(props: IonReactRouterProps) {\n super(props);\n const { history, ...rest } = props;\n this.history = history || createHistory(rest);\n this.history.listen(this.handleHistoryChange.bind(this));\n this.registerHistoryListener = this.registerHistoryListener.bind(this);\n }\n\n /**\n * history@4.x passes separate location and action\n * params. history@5.x passes location and action\n * together as a single object.\n * TODO: If support for React Router <=5 is dropped\n * this logic is no longer needed. We can just assume\n * a single object with both location and action.\n */\n handleHistoryChange(location: HistoryLocation, action: HistoryAction) {\n const locationValue = (location as any).location || location;\n const actionValue = (location as any).action || action;\n if (this.historyListenHandler) {\n this.historyListenHandler(locationValue, actionValue);\n }\n }\n\n registerHistoryListener(cb: (location: HistoryLocation, action: HistoryAction) => void) {\n this.historyListenHandler = cb;\n }\n\n render() {\n const { children, ...props } = this.props;\n return (\n <Router history={this.history} {...props}>\n <IonRouter registerHistoryListener={this.registerHistoryListener}>{children}</IonRouter>\n </Router>\n );\n }\n}\n","import { Action as HistoryAction, Location as HistoryLocation, MemoryHistory } from 'history';\nimport React from 'react';\nimport { MemoryRouterProps, Router } from 'react-router';\n\nimport { IonRouter } from './IonRouter';\n\ninterface IonReactMemoryRouterProps extends MemoryRouterProps {\n history: MemoryHistory;\n}\n\nexport class IonReactMemoryRouter extends React.Component<IonReactMemoryRouterProps> {\n history: MemoryHistory;\n historyListenHandler?: (location: HistoryLocation, action: HistoryAction) => void;\n\n constructor(props: IonReactMemoryRouterProps) {\n super(props);\n this.history = props.history;\n this.history.listen(this.handleHistoryChange.bind(this));\n this.registerHistoryListener = this.registerHistoryListener.bind(this);\n }\n\n /**\n * history@4.x passes separate location and action\n * params. history@5.x passes location and action\n * together as a single object.\n * TODO: If support for React Router <=5 is dropped\n * this logic is no longer needed. We can just assume\n * a single object with both location and action.\n */\n handleHistoryChange(location: HistoryLocation, action: HistoryAction) {\n const locationValue = (location as any).location || location;\n const actionValue = (location as any).action || action;\n if (this.historyListenHandler) {\n this.historyListenHandler(locationValue, actionValue);\n }\n }\n\n registerHistoryListener(cb: (location: HistoryLocation, action: HistoryAction) => void) {\n this.historyListenHandler = cb;\n }\n\n render() {\n const { children, ...props } = this.props;\n return (\n <Router {...props}>\n <IonRouter registerHistoryListener={this.registerHistoryListener}>{children}</IonRouter>\n </Router>\n );\n }\n}\n","import {\n Action as HistoryAction,\n History,\n Location as HistoryLocation,\n createHashHistory as createHistory,\n} from 'history';\nimport React from 'react';\nimport { BrowserRouterProps, Router } from 'react-router-dom';\n\nimport { IonRouter } from './IonRouter';\n\ninterface IonReactHashRouterProps extends BrowserRouterProps {\n history?: History;\n}\n\nexport class IonReactHashRouter extends React.Component<IonReactHashRouterProps> {\n history: History;\n historyListenHandler?: (location: HistoryLocation, action: HistoryAction) => void;\n\n constructor(props: IonReactHashRouterProps) {\n super(props);\n const { history, ...rest } = props;\n this.history = history || createHistory(rest);\n this.history.listen(this.handleHistoryChange.bind(this));\n this.registerHistoryListener = this.registerHistoryListener.bind(this);\n }\n\n /**\n * history@4.x passes separate location and action\n * params. history@5.x passes location and action\n * together as a single object.\n * TODO: If support for React Router <=5 is dropped\n * this logic is no longer needed. We can just assume\n * a single object with both location and action.\n */\n handleHistoryChange(location: HistoryLocation, action: HistoryAction) {\n const locationValue = (location as any).location || location;\n const actionValue = (location as any).action || action;\n if (this.historyListenHandler) {\n this.historyListenHandler(locationValue, actionValue);\n }\n }\n\n registerHistoryListener(cb: (location: HistoryLocation, action: HistoryAction) => void) {\n this.historyListenHandler = cb;\n }\n\n render() {\n const { children, ...props } = this.props;\n return (\n <Router history={this.history} {...props}>\n <IonRouter registerHistoryListener={this.registerHistoryListener}>{children}</IonRouter>\n </Router>\n );\n }\n}\n","import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react';\nimport './styles/styles.css';\n\nconst Home: React.FC = () => {\n return (\n <IonPage>\n <IonHeader>\n <IonToolbar>\n <IonTitle class=\"ion-text-center screen-titles\">TPC ❤️</IonTitle>\n </IonToolbar>\n </IonHeader>\n <IonContent fullscreen>\n <IonHeader collapse=\"condense\">\n <IonToolbar>\n <IonTitle size=\"large\">Home</IonTitle>\n </IonToolbar>\n </IonHeader>\n </IonContent>\n </IonPage>\n );\n};\n\nexport default Home;\n","// Created by Cynthia \n// Edited by Angel Romero \n\nimport React, { useRef } from 'react';\nimport { IonButton, IonButtons, IonCard, IonCol, IonContent, IonGrid, IonHeader, IonModal, IonPage, IonRow, IonTitle, IonToolbar } from '@ionic/react';\nimport './styles/styles.css';\n\n\n// Create all the modal elements for each card element on the flag screen\nconst Flag: React.FC = () => {\n const amenazas = useRef<HTMLIonModalElement>(null);\n const intimidacion = useRef<HTMLIonModalElement>(null);\n const abusoEmo = useRef<HTMLIonModalElement>(null);\n const aislamiento = useRef<HTMLIonModalElement>(null);\n const desvalorizar = useRef<HTMLIonModalElement>(null);\n const manipulacion = useRef<HTMLIonModalElement>(null);\n const abusoEco = useRef<HTMLIonModalElement>(null);\n const privMasc = useRef<HTMLIonModalElement>(null);\n\n return (\n <IonPage>\n \n {/* With the condense property, the app header will stay on screen after srcolling down the page */}\n <IonHeader>\n <IonToolbar class=\"app-toolbar\">\n <IonTitle class=\"ion-text-center screen-titles\">TPC ❤️</IonTitle>\n </IonToolbar>\n </IonHeader>\n\n <IonContent fullscreen>\n <IonTitle class=\"ion-text-center screen-h2\" color=\"light\">Pendiente a...</IonTitle>\n\n {/* Here goes the body containing the cards */}\n <IonGrid>\n <IonRow>\n {/* Amenazas card */}\n <IonCol>\n <IonButton id=\"open-amenazas\" color=\"light\" expand=\"block\">\n Amenazas\n </IonButton>\n <IonModal ref={amenazas} trigger=\"open-amenazas\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Amenazas</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => amenazas.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Asustarla con amenazas de hacerle mal.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Amenazarla con dejarla, con el suicidio o con denunciarla falsamente a la autoridad.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Obligarla a retirar los cargos presentados contra él.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Obligarla a cometer actos ilegales.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n {/* Intimidacion card */}\n <IonCol>\n <IonButton id=\"open-intimidacion\" color=\"light\" expand=\"block\" >\n Intimidación\n </IonButton>\n <IonModal ref={intimidacion} trigger=\"open-intimidacion\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Intimidación</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => intimidacion.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Provocándole miedo a través de sus miradas, acciones y gestos.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Destrozar objetos.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Intimidarla rompiéndole sus cosas, maltratando a los animales domésticos, mostrándole armas.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n </IonRow>\n <IonRow>\n {/* Abuso emocional card */}\n <IonCol>\n <IonButton id=\"open-abuso-emocional\" color=\"light\" expand=\"block\">\n Abuso Emocional\n </IonButton>\n <IonModal ref={abusoEmo} trigger=\"open-abuso-emocional\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Abuso Emocional</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => abusoEmo.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Hacerla sentir inferior.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Hacerla sentir mal.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Insultarle con nombres ofensivos.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Hacerla pensar que está loca.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Confundirla a propósito.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Humillarla.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Hacerla sentir culpable.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n {/* Aislamiento card */}\n <IonCol>\n <IonButton id=\"open-aislamiento\" color=\"light\" expand=\"block\">\n Aislamiento\n </IonButton>\n <IonModal ref={aislamiento} trigger=\"open-aislamiento\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Aislamiento</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => aislamiento.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Controlar lo que hace, a quién puede ver, con quién puede hablar, lo que puede leer y dónde va.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Limitarle su vida social utilizando los celos para justificar sus actos</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n </IonRow>\n <IonRow>\n {/* Desvalorizar card */}\n <IonCol>\n <IonButton id=\"open-des-neg-cul\" color=\"light\" expand=\"block\">\n Desvalorizar, Negar, Culpar\n </IonButton>\n <IonModal ref={desvalorizar} trigger=\"open-des-neg-cul\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Desvalorizar, Negar, Culpar</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => desvalorizar.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>No tomar seriamente preocupación que ella tiene sobre el abuso.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Negar que uso hacerla sentir responsable de la conducta abusiva.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Decirle que ella lo provocó.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n {/* Manipulacion card */}\n <IonCol>\n <IonButton id=\"open-manipulacion\" color=\"light\" expand=\"block\">\n Manipulación de los Niño(a)s\n </IonButton>\n <IonModal ref={manipulacion} trigger=\"open-manipulacion\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Manipulación de los Niño(a)s</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => manipulacion.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Hacerla sentir culpable por el comportamiento de los niño(a) como intermediarios y mantener así el control.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Usar las visitas con los niño(a)s para molestarla o amenazarla.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Amenazarla con quitarle los niño(a)s.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n </IonRow>\n <IonRow>\n {/* Abuso economico card */}\n <IonCol>\n <IonButton id=\"open-abuso-economico\" color=\"light\" expand=\"block\">\n Abuso Económico\n </IonButton>\n <IonModal ref={abusoEco} trigger=\"open-abuso-economico\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Abuso Económico</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => abusoEco.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>No dejarla trabajar o impedirle que mantenga su empleo.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Obligarala a que le pida dinero.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Darle una mensualidad.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Quitarle el dinero.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>No informarle acerca de los ingresos familiares o no permitirle disponer de los ingresos.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n {/* Privilegio masculino card */}\n <IonCol>\n <IonButton id=\"open-priv-masculino\" color=\"light\" expand=\"block\">\n Privilegio Masculino\n </IonButton>\n <IonModal ref={privMasc} trigger=\"open-priv-masculino\">\n <IonHeader>\n <IonToolbar>\n <IonTitle>Privilegio Masculino</IonTitle>\n <IonButtons slot=\"end\">\n <IonButton color=\"light\" onClick={() => privMasc.current?.dismiss()}>Cerrar</IonButton>\n </IonButtons>\n </IonToolbar>\n </IonHeader>\n <IonContent className=\"ion-padding\">\n <IonCard color=\"light\">\n <p>Tratarla como una sirvienta.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>No dejarla tomar decisiones importantes.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Actuar como el rey de la casa.</p>\n </IonCard>\n <IonCard color=\"light\">\n <p>Definir las partes del hombre y de la mujer.</p>\n </IonCard>\n </IonContent>\n </IonModal>\n </IonCol>\n </IonRow>\n </IonGrid>\n </IonContent>\n </IonPage>\n );\n};\n\nexport default Flag;","import { IonCard, IonContent, IonHeader, IonPage, IonText, IonTitle, IonToolbar } from '@ionic/react';\nimport './styles/styles.css';\n\nconst Info: React.FC = () => {\n return (\n <IonPage>\n <IonHeader>\n <IonToolbar>\n <IonTitle class=\"ion-text-center screen-titles\">TPC ❤️</IonTitle>\n </IonToolbar>\n </IonHeader>\n <IonContent fullscreen>\n <IonHeader collapse=\"condense\">\n <IonToolbar>\n <IonTitle size=\"large\">Info</IonTitle>\n </IonToolbar>\n </IonHeader>\n <IonCard class=\"info-card\" color=\"light\" >\n <IonText color=\"primary\">\n <h2>Contáctanos</h2>\n </IonText>\n <p>Teléfonos: <a href=\"tel:(787)876-3440\">(787) 876-3440</a> / <a href=\"tel:(787)256-7568\">(787) 256-7568</a></p>\n <p>Email: <a href=\"mailto:info@tallersaludpr.org\">info@tallersaludpr.org</a></p>\n\n <p>Dirección Postal: {'\\n'} \n <a href=\"https://www.google.com/maps/place/Taller+Salud/@18.4225966,-65.8355276,17z/data=!3m1!4b1!4m5!3m4!1s0x8c049df05bbcb80b:0x6da5ebb7907a354c!8m2!3d18.4225966!4d-65.8333389\"> \n PO BOX 524 Loíza, PR 00772</a>\n </p>\n <IonText color=\"primary\">\n <h2>Visión</h2>\n </IonText>\n <p>Una sociedad inclusiva con comunidades organizadas y libres de opresión que ejercen su derecho a la salud integral y a una vida digna, e impulsan su desarrollo colectivo y sostenible</p>\n <IonText color=\"primary\">\n <h2>Misión</h2>\n </IonText>\n <p>Elevar el liderato de las mujeres para así co-crear bienestar, salud integral y oportunidades de desarrllo individual y colectivo.</p>\n <IonText color=\"primary\">\n <h2>Valores</h2>\n </IonText>\n <p>En Taller Salud vivimos estos valores en el diseño de nuestro trabajo y en nuestro quehacer cotidiano, bajo la convicción firme de que son esenciales para el desarrllo social de Puerto Rico y para rearfirmar una nueva noción de lo que es bienestar</p>\n <IonText class=\"ion-text-right\">\n <p>Más información en: <a href=\"https://www.tallersalud.com\">Taller Salud</a></p>\n </IonText>\n </IonCard>\n </IonContent>\n </IonPage>\n );\n};\n\nexport default Info;\n","import { IonicConfig, initialize } from '@ionic/core/components';\n\nexport {\n // UTILS\n createAnimation,\n createGesture,\n iosTransitionAnimation,\n mdTransitionAnimation,\n IonicSwiper,\n IonicSlides,\n getTimeGivenProgression,\n\n // TYPES\n Animation,\n AnimationBuilder,\n AnimationCallbackOptions,\n AnimationDirection,\n AnimationFill,\n AnimationKeyFrames,\n AnimationLifecycle,\n Gesture,\n GestureConfig,\n GestureDetail,\n NavComponentWithProps,\n\n SpinnerTypes,\n\n AccordionGroupCustomEvent,\n AccordionGroupChangeEventDetail,\n\n BreadcrumbCustomEvent,\n BreadcrumbCollapsedClickEventDetail,\n\n ActionSheetOptions,\n ActionSheetButton,\n\n AlertOptions,\n AlertInput,\n AlertTextareaAttributes,\n AlertInputAttributes,\n AlertButton,\n\n BackButtonEvent,\n\n CheckboxCustomEvent,\n CheckboxChangeEventDetail,\n\n DatetimeCustomEvent,\n DatetimeChangeEventDetail,\n\n InfiniteScrollCustomEvent,\n\n InputCustomEvent,\n InputChangeEventDetail,\n\n ItemReorderEventDetail,\n ItemReorderCustomEvent,\n\n ItemSlidingCustomEvent,\n\n IonicSafeString,\n\n LoadingOptions,\n\n MenuCustomEvent,\n\n ModalOptions,\n\n NavCustomEvent,\n\n PickerOptions,\n PickerButton,\n PickerColumn,\n PickerColumnOption,\n\n PopoverOptions,\n\n RadioGroupCustomEvent,\n RadioGroupChangeEventDetail,\n\n RangeCustomEvent,\n RangeChangeEventDetail,\n RangeKnobMoveStartEventDetail,\n RangeKnobMoveEndEventDetail,\n\n RefresherCustomEvent,\n RefresherEventDetail,\n\n RouterEventDetail,\n RouterCustomEvent,\n\n ScrollBaseCustomEvent,\n ScrollBaseDetail,\n ScrollDetail,\n ScrollCustomEvent,\n\n SearchbarCustomEvent,\n SearchbarChangeEventDetail,\n\n SegmentChangeEventDetail,\n SegmentCustomEvent,\n\n SelectChangeEventDetail,\n SelectCustomEvent,\n\n TabsCustomEvent,\n\n TextareaChangeEventDetail,\n TextareaCustomEvent,\n\n ToastOptions,\n ToastButton,\n\n ToggleChangeEventDetail,\n ToggleCustomEvent,\n} from '@ionic/core/components';\n\nexport * from './proxies';\nexport * from './routing-proxies';\n\n// createControllerComponent\nexport { IonAlert } from './IonAlert';\nexport { IonLoading } from './IonLoading';\nexport * from './IonToast';\nexport { IonPicker } from './IonPicker';\n\n// createOverlayComponent\nexport * from './IonActionSheet';\nexport { IonModal } from './IonModal';\nexport { IonPopover } from './IonPopover';\n\n// Custom Components\nexport { IonApp } from './IonApp';\nexport { IonPage } from './IonPage';\nexport { IonNav } from './navigation/IonNav';\nexport { IonTabsContext, IonTabsContextState } from './navigation/IonTabsContext';\nexport { IonTabs } from './navigation/IonTabs';\nexport { IonTabBar } from './navigation/IonTabBar';\nexport { IonTabButton } from './navigation/IonTabButton';\nexport { IonBackButton } from './navigation/IonBackButton';\nexport { IonRouterOutlet } from './IonRouterOutlet';\nexport { IonIcon } from './IonIcon';\nexport * from './IonRoute';\nexport * from './IonRedirect';\nexport * from './IonRouterContext';\n\n// Utils\nexport { isPlatform, getPlatforms, getConfig } from './utils';\nexport * from './hrefprops';\n\n// Ionic Animations\nexport { CreateAnimation } from './CreateAnimation';\n\n// Hooks\nexport { useIonActionSheet, UseIonActionSheetResult } from '../hooks/useIonActionSheet';\nexport { useIonAlert, UseIonAlertResult } from '../hooks/useIonAlert';\nexport { useIonToast, UseIonToastResult } from '../hooks/useIonToast';\nexport { useIonModal, UseIonModalResult } from '../hooks/useIonModal';\nexport { useIonPopover, UseIonPopoverResult } from '../hooks/useIonPopover';\nexport { useIonPicker, UseIonPickerResult } from '../hooks/useIonPicker';\nexport { useIonLoading, UseIonLoadingResult } from '../hooks/useIonLoading';\n\nexport const setupIonicReact = (config: IonicConfig = {}) => {\n /**\n * By default Ionic Framework hides elements that\n * are not hydrated, but in the CE build there is no\n * hydration.\n * TODO FW-2797: Remove when all integrations have been\n * migrated to CE build.\n */\n if (typeof (document as any) !== 'undefined') {\n document.documentElement.classList.add('ion-ce');\n }\n\n initialize({\n ...config\n });\n}\n","import { Redirect, Route } from 'react-router-dom';\nimport {\n IonApp,\n IonIcon,\n IonLabel,\n IonRouterOutlet,\n IonTabBar,\n IonTabButton,\n IonTabs,\n setupIonicReact\n} from '@ionic/react';\nimport { IonReactRouter } from '@ionic/react-router';\nimport { flag, home, peopleCircle } from 'ionicons/icons';\n\n/* Core CSS required for Ionic components to work properly */\nimport '@ionic/react/css/core.css';\n\n/* Basic CSS for apps built with Ionic */\nimport '@ionic/react/css/normalize.css';\nimport '@ionic/react/css/structure.css';\nimport '@ionic/react/css/typography.css';\n\n/* Optional CSS utils that can be commented out */\nimport '@ionic/react/css/padding.css';\nimport '@ionic/react/css/float-elements.css';\nimport '@ionic/react/css/text-alignment.css';\nimport '@ionic/react/css/text-transformation.css';\nimport '@ionic/react/css/flex-utils.css';\nimport '@ionic/react/css/display.css';\n\n/* Theme variables */\nimport './theme/variables.css';\nimport Home from './pages/Home';\nimport Flag from './pages/Flag';\nimport Info from './pages/Info';\n\nsetupIonicReact();\n\nconst App: React.FC = () => (\n <IonApp>\n <IonReactRouter>\n <IonTabs>\n <IonRouterOutlet>\n <Route exact path=\"/home\">\n <Home />\n </Route>\n <Route exact path=\"/flag\">\n <Flag />\n </Route>\n <Route path=\"/info\">\n <Info />\n </Route>\n <Route exact path=\"/\">\n <Redirect to=\"/home\" />\n </Route>\n </IonRouterOutlet>\n \n <IonTabBar color=\"light\" slot=\"bottom\">\n <IonTabButton tab=\"home\" href=\"/home\">\n <IonIcon color=\"primary\" icon={home} />\n <IonLabel color=\"primary\">Home</IonLabel>\n </IonTabButton>\n <IonTabButton tab=\"flag\" href=\"/flag\">\n <IonIcon color=\"primary\" icon={flag} />\n <IonLabel color=\"primary\">Flag</IonLabel>\n </IonTabButton>\n <IonTabButton tab=\"info\" href=\"/info\">\n <IonIcon color=\"primary\" icon={peopleCircle} />\n <IonLabel color=\"primary\">Info</IonLabel>\n </IonTabButton>\n </IonTabBar>\n </IonTabs>\n </IonReactRouter>\n </IonApp>\n);\n\nexport default App;\n","/* Ionicons v6.0.4, ES Modules */\n\nexport const accessibility = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Accessibility</title><path d='M256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z'/><path d='M432 112.8l-.45.12-.42.13c-1 .28-2 .58-3 .89-18.61 5.46-108.93 30.92-172.56 30.92-59.13 0-141.28-22-167.56-29.47a73.79 73.79 0 00-8-2.58c-19-5-32 14.3-32 31.94 0 17.47 15.7 25.79 31.55 31.76v.28l95.22 29.74c9.73 3.73 12.33 7.54 13.6 10.84 4.13 10.59.83 31.56-.34 38.88l-5.8 45-32.19 176.19q-.15.72-.27 1.47l-.23 1.27c-2.32 16.15 9.54 31.82 32 31.82 19.6 0 28.25-13.53 32-31.94s28-157.57 42-157.57 42.84 157.57 42.84 157.57c3.75 18.41 12.4 31.94 32 31.94 22.52 0 34.38-15.74 32-31.94a57.17 57.17 0 00-.76-4.06L329 301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09 1.09 0 00.08-.15c1.08-2 6-6.48 17.48-10.79l89.28-31.21a16.9 16.9 0 001.62-.52c16-6 32-14.3 32-31.93S451 107.81 432 112.8z'/></svg>\"\nexport const accessibilityOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Accessibility</title><circle stroke-linejoin='round' cx='256' cy='56' r='40' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' d='M204.23 274.44c2.9-18.06 4.2-35.52-.5-47.59-4-10.38-12.7-16.19-23.2-20.15L88 176.76c-12-4-23.21-10.7-24-23.94-1-17 14-28 29-24 0 0 88 31.14 163 31.14s162-31 162-31c18-5 30 9 30 23.79 0 14.21-11 19.21-24 23.94l-88 31.91c-8 3-21 9-26 18.18-6 10.75-5 29.53-2.1 47.59l5.9 29.63 37.41 163.9c2.8 13.15-6.3 25.44-19.4 27.74S308 489 304.12 476.28l-37.56-115.93q-2.71-8.34-4.8-16.87L256 320l-5.3 21.65q-2.52 10.35-5.8 20.48L208 476.18c-4 12.85-14.5 21.75-27.6 19.46s-22.4-15.59-19.46-27.74l37.39-163.83z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const accessibilitySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Accessibility</title><path d='M448 112c-66.82 17.92-119.55 32-192 32s-125.18-14.08-192-32l-16 51c48 20.53 96.71 35.16 147.2 53.2L144 496l56.4 16L246 336h20l45.6 176 56.4-16-51.2-279.8C367.26 199.93 416 183.53 464 164zM256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z'/></svg>\"\nexport const add = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 112v288M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const addCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32z'/></svg>\"\nexport const addCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 176v160M336 256H176' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const addCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224h-80v80h-32v-80h-80v-32h80v-80h32v80h80z'/></svg>\"\nexport const addOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 112v288M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const addSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Add</title><path stroke-linecap='square' stroke-linejoin='round' d='M256 112v288M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const airplane = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Airplane</title><path d='M186.62 464H160a16 16 0 01-14.57-22.6l64.46-142.25L113.1 297l-35.3 42.77C71.07 348.23 65.7 352 52 352H34.08a17.66 17.66 0 01-14.7-7.06c-2.38-3.21-4.72-8.65-2.44-16.41l19.82-71c.15-.53.33-1.06.53-1.58a.38.38 0 000-.15 14.82 14.82 0 01-.53-1.59l-19.84-71.45c-2.15-7.61.2-12.93 2.56-16.06a16.83 16.83 0 0113.6-6.7H52c10.23 0 20.16 4.59 26 12l34.57 42.05 97.32-1.44-64.44-142A16 16 0 01160 48h26.91a25 25 0 0119.35 9.8l125.05 152 57.77-1.52c4.23-.23 15.95-.31 18.66-.31C463 208 496 225.94 496 256c0 9.46-3.78 27-29.07 38.16-14.93 6.6-34.85 9.94-59.21 9.94-2.68 0-14.37-.08-18.66-.31l-57.76-1.54-125.36 152a25 25 0 01-19.32 9.75z'/></svg>\"\nexport const airplaneOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Airplane</title><path d='M407.72 224c-3.4 0-14.79.1-18 .3l-64.9 1.7a1.83 1.83 0 01-1.69-.9L193.55 67.56a9 9 0 00-6.66-3.56H160l73 161a2.35 2.35 0 01-2.26 3.35l-121.69 1.8a8.06 8.06 0 01-6.6-3.1l-37-45c-3-3.9-8.62-6-13.51-6H33.08c-1.29 0-1.1 1.21-.75 2.43l19.84 71.42a16.3 16.3 0 010 11.9L32.31 333c-.59 1.95-.52 3 1.77 3H52c8.14 0 9.25-1.06 13.41-6.3l37.7-45.7a8.19 8.19 0 016.6-3.1l120.68 2.7a2.7 2.7 0 012.43 3.74L160 448h26.64a9 9 0 006.65-3.55L323.14 287c.39-.6 2-.9 2.69-.9l63.9 1.7c3.3.2 14.59.3 18 .3C452 288.1 480 275.93 480 256s-27.88-32-72.28-32z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const airplaneSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Airplane</title><path d='M407.72 208c-2.72 0-14.44.08-18.67.31l-57.77 1.52L198.06 48h-62.81l74.59 164.61-97.31 1.44L68.25 160H16.14l20.61 94.18c.15.54.33 1.07.53 1.59a.26.26 0 010 .15 15.42 15.42 0 00-.53 1.58L15.86 352h51.78l45.45-55 96.77 2.17L135.24 464h63l133-161.75 57.77 1.54c4.29.23 16 .31 18.66.31 24.35 0 44.27-3.34 59.21-9.94C492.22 283 496 265.46 496 256c0-30.06-33-48-88.28-48zm-71.29 87.9z'/></svg>\"\nexport const alarm = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alarm</title><path d='M153.59 110.46A21.41 21.41 0 00152.48 79 62.67 62.67 0 00112 64l-3.27.09h-.48C74.4 66.15 48 95.55 48.07 131c0 19 8 29.06 14.32 37.11a20.61 20.61 0 0014.7 7.8c.26 0 .7.05 2 .05a19.06 19.06 0 0013.75-5.89zM403.79 64.11l-3.27-.1H400a62.67 62.67 0 00-40.52 15 21.41 21.41 0 00-1.11 31.44l60.77 59.65a19.06 19.06 0 0013.79 5.9c1.28 0 1.72 0 2-.05a20.61 20.61 0 0014.69-7.8c6.36-8.05 14.28-18.08 14.32-37.11.06-35.49-26.34-64.89-60.15-66.93z'/><path d='M256.07 96c-97 0-176 78.95-176 176a175.23 175.23 0 0040.81 112.56l-36.12 36.13a16 16 0 1022.63 22.62l36.12-36.12a175.63 175.63 0 00225.12 0l36.13 36.12a16 16 0 1022.63-22.62l-36.13-36.13A175.17 175.17 0 00432.07 272c0-97-78.95-176-176-176zm16 176a16 16 0 01-16 16h-80a16 16 0 010-32h64v-96a16 16 0 0132 0z'/></svg>\"\nexport const alarmOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alarm</title><path d='M416.07 272a160 160 0 10-160 160 160 160 0 00160-160zM142.12 91.21A46.67 46.67 0 00112 80l-2.79.08C83.66 81.62 64 104 64.07 131c0 13.21 4.66 19.37 10.88 27.23a4.55 4.55 0 003.24 1.77h.88a3.23 3.23 0 002.54-1.31L142.38 99a5.38 5.38 0 001.55-4 5.26 5.26 0 00-1.81-3.79zM369.88 91.21A46.67 46.67 0 01400 80l2.79.08C428.34 81.62 448 104 447.93 131c0 13.21-4.66 19.37-10.88 27.23a4.55 4.55 0 01-3.24 1.76h-.88a3.23 3.23 0 01-2.54-1.31L369.62 99a5.38 5.38 0 01-1.55-4 5.26 5.26 0 011.81-3.79z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256.07 160v112h-80M416.07 432l-40-40M96.07 432l40-40' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const alarmSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alarm</title><path d='M403.79 64.11l-3.27-.1H400c-14.73 0-28.55 5.91-40.52 15S344 96 344 96l88 86s11.25-5.71 17.61-13.85 14.28-18.08 14.32-37.11c.07-35.49-26.33-64.89-60.14-66.93zM108.21 64.11l3.27-.1h.52c14.73 0 28.55 5.91 40.52 15S168 96 168 96l-88 86s-11.25-5.71-17.61-13.85S48.11 150.07 48.07 131C48 95.55 74.4 66.15 108.21 64.11z'/><path d='M391.3 384.6a.06.06 0 010-.08C425 344 441 288.24 427 229.23c-13.64-57.52-72.67-115.69-130.34-128.66C182 74.79 80.07 161.71 80.07 272a175.15 175.15 0 0040.78 112.52.06.06 0 010 .08L73 432a.06.06 0 000 .08l23 22.51a.06.06 0 00.08 0l47.43-47.37a.06.06 0 01.08 0 175.64 175.64 0 00225.05 0h.07L416 454.59a.06.06 0 00.08 0L440 432zM272.07 288h-112-.07v-31.9l.05-.05h80V144h32z'/></svg>\"\nexport const albums = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Albums</title><path d='M368 96H144a16 16 0 010-32h224a16 16 0 010 32zM400 144H112a16 16 0 010-32h288a16 16 0 010 32zM419.13 448H92.87A44.92 44.92 0 0148 403.13V204.87A44.92 44.92 0 0192.87 160h326.26A44.92 44.92 0 01464 204.87v198.26A44.92 44.92 0 01419.13 448z'/></svg>\"\nexport const albumsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Albums</title><rect x='64' y='176' width='384' height='256' rx='28.87' ry='28.87' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M144 80h224M112 128h288' class='ionicon-stroke-width'/></svg>\"\nexport const albumsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Albums</title><path d='M128 64h256v32H128zM96 112h320v32H96zM464 448H48V160h416z'/></svg>\"\nexport const alert = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert</title><path d='M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='416' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const alertCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 319.91a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.94v-.05a21.74 21.74 0 1143.44 0z'/></svg>\"\nexport const alertCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M250.26 166.05L256 288l5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 6z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 367.91a20 20 0 1120-20 20 20 0 01-20 20z'/></svg>\"\nexport const alertCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert Circle</title><path d='M240 304h32l6-160h-44l6 160z' class='ionicon-fill-none'/><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm20 319.91h-40v-40h40zM272 304h-32l-6-160h44z'/></svg>\"\nexport const alertOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert</title><path d='M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='416' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const alertSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Alert</title><path stroke-linecap='square' stroke-miterlimit='10' d='M240 80l8 240h16l8-240h-32zM240 400h32v32h-32z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const americanFootball = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>American Football</title><path d='M122.06 122.06c-44.37 44.37-66.71 100.61-78 145.28l200.6 200.56c44.67-11.25 100.91-33.59 145.28-78s66.71-100.61 78-145.28L267.34 44.1c-44.67 11.25-100.91 33.59-145.28 77.96zm256.73 256.72zM300.65 189L323 166.71A15.78 15.78 0 01345.29 189L323 211.35l11.16 11.17a15.78 15.78 0 01-22.32 22.32l-11.16-11.16L278.32 256l11.16 11.16a15.78 15.78 0 11-22.32 22.32L256 278.32l-22.32 22.33 11.16 11.16a15.78 15.78 0 11-22.32 22.32L211.35 323 189 345.29A15.78 15.78 0 01166.71 323L189 300.65l-11.16-11.17a15.78 15.78 0 0122.32-22.32l11.16 11.16L233.68 256l-11.16-11.16a15.78 15.78 0 1122.32-22.32L256 233.68l22.32-22.33-11.16-11.16a15.78 15.78 0 0122.32-22.32zM476.57 199.63c7.31-54.53 4-120.26-20-144.21s-89.68-27.3-144.21-20c-2.51.34-5.16.72-7.91 1.15l171 171c.4-2.78.78-5.43 1.12-7.94zM35.43 312.37c-7.31 54.53-4 120.26 20 144.21C72.17 473.33 109.34 480 148.84 480a387 387 0 0050.79-3.43c2.51-.34 5.16-.72 7.91-1.15l-171-171c-.39 2.79-.77 5.44-1.11 7.95z'/></svg>\"\nexport const americanFootballOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>American Football</title><ellipse cx='256' cy='256' rx='267.57' ry='173.44' transform='rotate(-45 256 256.002)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M334.04 177.96L177.96 334.04M278.3 278.3l-44.6-44.6M322.89 233.7l-44.59-44.59M456.68 211.4L300.6 55.32M211.4 456.68L55.32 300.6M233.7 322.89l-44.59-44.59' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const americanFootballSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>American Football</title><path d='M120.9 120.51c-44.75 44.56-67.29 101.05-78.64 145.9l202.31 201.44c45.05-11.3 101.78-33.74 146.53-78.3s67.29-101.05 78.64-145.91L267.43 42.21C222.38 53.51 165.65 76 120.9 120.51zm259 257.83zm-45-224.2l22.52 22.42-33.78 33.63 22.52 22.42L323.55 255 301 232.61 278.52 255 301 277.45l-22.51 22.42L256 277.45l-22.52 22.42L256 322.29l-22.52 22.42L211 322.29l-33.78 33.63-22.55-22.42 33.78-33.63-22.52-22.42L188.45 255 211 277.45 233.48 255 211 232.61l22.51-22.42L256 232.61l22.52-22.42L256 187.77l22.52-22.42L301 187.77zM478.48 198.41C485.85 143.65 464 48.05 464 48.05s-96.14-21.88-151.14-14.54c-2.54.33-5.21.72-8 1.14l172.47 171.71c.43-2.76.81-5.42 1.15-7.95zM33.52 311.65C26.15 366.41 48.05 464 48.05 464s60 16 99.86 16a391.92 391.92 0 0051.23-3.45c2.54-.33 5.21-.72 8-1.15L34.67 303.7c-.43 2.76-.81 5.42-1.15 7.95z'/></svg>\"\nexport const analytics = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Analytics</title><path d='M456 128a40 40 0 00-37.23 54.6l-84.17 84.17a39.86 39.86 0 00-29.2 0l-60.17-60.17a40 40 0 10-74.46 0L70.6 306.77a40 40 0 1022.63 22.63L193.4 229.23a39.86 39.86 0 0029.2 0l60.17 60.17a40 40 0 1074.46 0l84.17-84.17A40 40 0 10456 128z'/></svg>\"\nexport const analyticsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Analytics</title><path stroke-linecap='round' stroke-linejoin='round' d='M344 280l88-88M232 216l64 64M80 320l104-104' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='456' cy='168' r='24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='320' cy='304' r='24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='208' cy='192' r='24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='56' cy='344' r='24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const analyticsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Analytics</title><path d='M450 128a46 46 0 00-44.11 59l-71.37 71.36a45.88 45.88 0 00-29 0l-52.91-52.91a46 46 0 10-89.12 0L75 293.88A46.08 46.08 0 10106.11 325l87.37-87.36a45.85 45.85 0 0029 0l52.92 52.92a46 46 0 1089.12 0L437 218.12A46 46 0 10450 128z'/></svg>\"\nexport const aperture = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Aperture</title><path d='M250.54 129.17l-67.8-67.8A209.65 209.65 0 0086.32 136h161.4a4 4 0 002.82-6.83zM167.72 168H67.63a207.34 207.34 0 00-16.15 125.9l119.06-119.07a4 4 0 00-2.82-6.83zM344 167.72V67.56a207.82 207.82 0 00-125.89-16.08l119.06 119.06a4 4 0 006.83-2.82zM460.52 218.1L341.46 337.17a4 4 0 002.82 6.83h100.09a207.34 207.34 0 0016.15-125.9zM382.83 250.54l67.83-67.82A209.08 209.08 0 00376 86.2v161.52a4 4 0 006.83 2.82zM221.68 341.77a8 8 0 005.54 2.23h59.66a8 8 0 005.7-2.39l49.18-50a8 8 0 002.3-5.62l-.06-60.81a8 8 0 00-2.38-5.69l-50-49.25a8 8 0 00-5.63-2.3l-60.84.06a8 8 0 00-5.69 2.38l-49.25 50a8 8 0 00-2.3 5.63l.06 60.78a8 8 0 002.45 5.76zM261.46 382.83l67.8 67.8A209.65 209.65 0 00425.68 376h-161.4a4 4 0 00-2.82 6.83zM168 344.28v100.16a207.82 207.82 0 00125.89 16.08L174.83 341.46a4 4 0 00-6.83 2.82zM129.17 261.46l-67.83 67.83A209.1 209.1 0 00136 425.8V264.28a4 4 0 00-6.83-2.82z'/></svg>\"\nexport const apertureOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Aperture</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M360 94.59V296M443.13 212.87L296 360M417.41 360H216M299.13 443.13l-144-144M152 416V216M68.87 299.13l144-144M94.59 152H288M212.87 68.87L360 216' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const apertureSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Aperture</title><path d='M216 48l129.49 128.18V48H216zM181.47 58.38L80 134h176l-74.53-75.62zM336 344h128V216L336 344zM454 182L378 80v176l76-74zM48 166v128l128-128H48zM330 454l102-76H256l74 76zM58 330l76 102V256l-76 74zM345.49 222.12l-55.55-55.46h-67.88l-55.55 55.46v67.76l55.62 55.52c.44 0 .88-.06 1.33-.06h66.48l55.55-55.46zM165.98 336.09L166 464h128L165.98 336.09z'/></svg>\"\nexport const apps = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Apps</title><path d='M104 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 464a56 56 0 1156-56 56.06 56.06 0 01-56 56z'/></svg>\"\nexport const appsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Apps</title><rect x='64' y='64' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='216' y='64' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='368' y='64' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='64' y='216' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='216' y='216' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='368' y='216' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='64' y='368' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='216' y='368' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='368' y='368' width='80' height='80' rx='40' ry='40' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const appsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Apps</title><rect x='48' y='48' width='112' height='112' rx='8' ry='8'/><rect x='200' y='48' width='112' height='112' rx='8' ry='8'/><rect x='352' y='48' width='112' height='112' rx='8' ry='8'/><rect x='48' y='200' width='112' height='112' rx='8' ry='8'/><rect x='200' y='200' width='112' height='112' rx='8' ry='8'/><rect x='352' y='200' width='112' height='112' rx='8' ry='8'/><rect x='48' y='352' width='112' height='112' rx='8' ry='8'/><rect x='200' y='352' width='112' height='112' rx='8' ry='8'/><rect x='352' y='352' width='112' height='112' rx='8' ry='8'/></svg>\"\nexport const archive = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Archive</title><path d='M64 164v244a56 56 0 0056 56h272a56 56 0 0056-56V164a4 4 0 00-4-4H68a4 4 0 00-4 4zm267 151.63l-63.69 63.68a16 16 0 01-22.62 0L181 315.63c-6.09-6.09-6.65-16-.85-22.38a16 16 0 0123.16-.56L240 329.37V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v105.37l36.69-36.68a16 16 0 0123.16.56c5.8 6.37 5.24 16.29-.85 22.38z'/><rect x='32' y='48' width='448' height='80' rx='32' ry='32'/></svg>\"\nexport const archiveOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Archive</title><path d='M80 152v256a40.12 40.12 0 0040 40h272a40.12 40.12 0 0040-40V152' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='64' width='416' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M320 304l-64 64-64-64M256 345.89V224' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const archiveSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Archive</title><rect x='32' y='48' width='448' height='80' rx='12' ry='12'/><path d='M64 160v280a24 24 0 0024 24h336a24 24 0 0024-24V160zm192 230.63L169.32 304 192 281.32l48 48.05V208h32v121.37l48.07-48.07 22.61 22.64z'/></svg>\"\nexport const arrowBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>\"\nexport const arrowBackCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm212.65-91.36a16 16 0 01.09 22.63L208.42 240H342a16 16 0 010 32H208.42l52.32 52.73A16 16 0 11238 347.27l-79.39-80a16 16 0 010-22.54l79.39-80a16 16 0 0122.65-.09z'/></svg>\"\nexport const arrowBackCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M249.38 336L170 256l79.38-80M181.03 256H342' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowBackCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm224-80.09L208.42 240H358v32H208.42L272 336.09l-22.7 22.54L147.46 256 249.3 153.37z'/></svg>\"\nexport const arrowBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>\"\nexport const arrowBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>\"\nexport const arrowDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>\"\nexport const arrowDownCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down Circle</title><path d='M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-91.36-212.65a16 16 0 0122.63-.09L240 303.58V170a16 16 0 0132 0v133.58l52.73-52.32A16 16 0 11347.27 274l-80 79.39a16 16 0 01-22.54 0l-80-79.39a16 16 0 01-.09-22.65z'/></svg>\"\nexport const arrowDownCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 262.62L256 342l80-79.38M256 330.97V170' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowDownCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down Circle</title><path d='M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-80.09-224L240 303.58V154h32v149.58L336.09 240l22.54 22.71L256 364.54 153.37 262.7z'/></svg>\"\nexport const arrowDownOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>\"\nexport const arrowDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>\"\nexport const arrowForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M268 112l144 144-144 144M392 256H100' class='ionicon-fill-none'/></svg>\"\nexport const arrowForwardCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-212.65 91.36a16 16 0 01-.09-22.63L303.58 272H170a16 16 0 010-32h133.58l-52.32-52.73A16 16 0 11274 164.73l79.39 80a16 16 0 010 22.54l-79.39 80a16 16 0 01-22.65.09z'/></svg>\"\nexport const arrowForwardCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M262.62 336L342 256l-79.38-80M330.97 256H170' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowForwardCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-224 80.09L303.58 272H154v-32h149.58L240 175.91l22.71-22.54L364.54 256 262.7 358.63z'/></svg>\"\nexport const arrowForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M268 112l144 144-144 144M392 256H100' class='ionicon-fill-none'/></svg>\"\nexport const arrowForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Forward</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M268 112l144 144-144 144M392 256H100' class='ionicon-fill-none'/></svg>\"\nexport const arrowRedo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo</title><path d='M58.79 439.13A16 16 0 0148 424c0-73.1 14.68-131.56 43.65-173.77 35-51 90.21-78.46 164.35-81.87V88a16 16 0 0127.05-11.57l176 168a16 16 0 010 23.14l-176 168A16 16 0 01256 424v-79.77c-45 1.36-79 8.65-106.07 22.64-29.25 15.12-50.46 37.71-73.32 67a16 16 0 01-17.82 5.28z'/></svg>\"\nexport const arrowRedoCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm96 66.67c5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14-6v-37.29c-57.07 0-84.51 13.47-108.58 38.68-5.49 5.65-15.07 1.32-14.42-6.43z'/></svg>\"\nexport const arrowRedoCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo Circle</title><path d='M266.91 327.74v-37.32c-57.07 0-84.51 13.47-108.58 38.68-5.4 5.65-15 1.32-14.29-6.43 5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14.09-5.97z'/><path d='M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowRedoCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm98 88c0-68.13 22.67-137.14 119.17-137.14V152L366 248l-100.83 96v-54.86c-66.69 0-91.32 19.29-119.17 54.86z'/></svg>\"\nexport const arrowRedoOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo</title><path d='M448 256L272 88v96C103.57 184 64 304.77 64 424c48.61-62.24 91.6-96 208-96v96z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowRedoSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Redo</title><path d='M48 399.26C48 335.19 62.44 284 90.91 247c34.38-44.67 88.68-68.77 161.56-71.75V72L464 252 252.47 432V329.35c-44.25 1.19-77.66 7.58-104.27 19.84-28.75 13.25-49.6 33.05-72.08 58.7L48 440z'/></svg>\"\nexport const arrowUndo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo</title><path d='M448 440a16 16 0 01-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 01-27 11.57l-176-168a16 16 0 010-23.14l176-168A16 16 0 01256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 01-16 16z'/></svg>\"\nexport const arrowUndoCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm97.67 281.1c-24.07-25.21-51.51-38.68-108.58-38.68v37.32a8.32 8.32 0 01-14.05 6L146.58 254a8.2 8.2 0 010-11.94L231 162.29a8.32 8.32 0 0114.05 6v37.32c88.73 0 117.42 55.64 122.87 117.09.73 7.72-8.85 12.05-14.25 6.4z'/></svg>\"\nexport const arrowUndoCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo Circle</title><path d='M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z'/><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowUndoCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-9.17 241.14V344L146 248l100.83-96v54.86c96.5 0 119.17 69 119.17 137.14-27.85-35.57-52.48-54.86-119.17-54.86z'/></svg>\"\nexport const arrowUndoOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo</title><path d='M240 424v-96c116.4 0 159.39 33.76 208 96 0-119.23-39.57-240-208-240V88L64 256z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowUndoSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Undo</title><path d='M464 440l-28.12-32.11c-22.48-25.65-43.33-45.45-72.08-58.7-26.61-12.26-60-18.65-104.27-19.84V432L48 252 259.53 72v103.21c72.88 3 127.18 27.08 161.56 71.75C449.56 284 464 335.19 464 399.26z'/></svg>\"\nexport const arrowUp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 244l144-144 144 144M256 120v292' class='ionicon-fill-none'/></svg>\"\nexport const arrowUpCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm91.36 212.65a16 16 0 01-22.63.09L272 208.42V342a16 16 0 01-32 0V208.42l-52.73 52.32A16 16 0 11164.73 238l80-79.39a16 16 0 0122.54 0l80 79.39a16 16 0 01.09 22.65z'/></svg>\"\nexport const arrowUpCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 249.38L256 170l80 79.38M256 181.03V342' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const arrowUpCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm80.09 224L272 208.42V358h-32V208.42L175.91 272l-22.54-22.7L256 147.46 358.63 249.3z'/></svg>\"\nexport const arrowUpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 244l144-144 144 144M256 120v292' class='ionicon-fill-none'/></svg>\"\nexport const arrowUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Up</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M112 244l144-144 144 144M256 120v292' class='ionicon-fill-none'/></svg>\"\nexport const at = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At</title><path d='M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const atCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At Circle</title><path d='M255.46 48.74c-114.84 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.15-208-208-208zM380.28 252c-2.85 32.63-16.79 49.7-28 58.26S327.61 322.58 316 320.5a41.61 41.61 0 01-26.82-17.19 62.06 62.06 0 01-44 17.57 51.66 51.66 0 01-38.55-16.83c-11.38-12.42-17-30.36-15.32-49.23 3-35 30.91-57.39 56.87-61.48 27.2-4.29 52.23 6.54 62.9 19.46l3.85 4.66-6.34 50.38c-1.19 14.34 3.28 23.48 12.29 25.1 2.39.42 8.1-.13 14.37-4.93 6.72-5.15 15.14-16 17.1-38.47 2.35-26.54-4.35-49.19-19.25-65.49-15.49-16.9-39.09-25.84-68.23-25.84-54 0-101.81 44.43-106.58 99-2.28 26.2 5.67 50.68 22.4 68.93 16.36 17.86 39.31 27.74 64.66 27.74 19 0 30.61-2.05 49.48-8.78a14 14 0 019.4 26.38c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77C138 321 127.42 288.94 130.4 254.82c2.91-33.33 18.45-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.93 12.08 88.87 34.93 20.09 21.91 29.51 52.75 26.54 86.86z'/><path d='M252.57 221c-14.83 2.33-31.56 15.84-33.34 36.26-1 11.06 2 21.22 8.07 27.87a23.65 23.65 0 0017.91 7.75c20.31 0 34.73-14.94 36.75-38.06a14 14 0 01.34-2.07l3.2-25.45a49.61 49.61 0 00-32.93-6.3z'/></svg>\"\nexport const atCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At Circle</title><path d='M448.08 256.08c0-106-86-192-192-192s-192 86-192 192 86 192 192 192 192-85.97 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M300.81 358.29c-20.83 7.42-34.05 9.59-54.19 9.59-61.17 0-106.39-50.07-101-111.84S205 144.21 266.14 144.21c68.92 0 106.79 45.55 101.47 106.55-4 45.54-32.8 58.66-47.89 56-14.2-2.55-25.92-15.52-23.75-40.35l5.62-44.66c-7.58-9.17-28.11-18-49.93-14.54C231.77 210.3 209 228 206.56 256s14.49 50.84 39.93 50.84 47.86-18.39 50.69-50.84' stroke-linecap='round' stroke-miterlimit='10' stroke-width='28' class='ionicon-fill-none'/></svg>\"\nexport const atCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At Circle</title><path d='M256.41 48.74c-114.85 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.16-208-208-208zM381.22 252c-2.85 32.63-16.78 49.7-28 58.26s-24.69 12.34-36.33 10.26a41.63 41.63 0 01-27-17.52 60.84 60.84 0 01-43.72 17.9 51.65 51.65 0 01-38.55-16.83c-11.39-12.42-17-30.36-15.33-49.23 3.05-35 30.92-57.39 56.87-61.48 27.21-4.29 52.24 6.54 62.91 19.46l3.84 4.66-6.34 50.38c-1.19 14.34 3.29 23.48 12.29 25.1 2.39.42 8.11-.13 14.38-4.93 6.72-5.15 15.14-16 17.1-38.47 2.32-26.55-4.35-49.19-19.28-65.49-15.5-16.9-39.1-25.84-68.24-25.84-54 0-101.81 44.43-106.57 99-2.29 26.2 5.66 50.68 22.39 68.93C198 344 221 353.88 246.29 353.88c19 0 30.61-2.05 49.49-8.78l13.22-4.69 9.39 26.37-13.19 4.7c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77-22.09-24.11-32.62-56.17-29.65-90.29 2.91-33.33 18.46-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.94 12.08 88.88 34.93 20.05 21.91 29.48 52.75 26.5 86.86z'/><path d='M253.51 221c-14.83 2.33-31.55 15.84-33.34 36.26-1 11.06 2 21.22 8.08 27.87a23.63 23.63 0 0017.91 7.75c19.7 0 33.8-14.79 36.8-38.59l1.75-13.89h.09l1.65-13.11a49.63 49.63 0 00-32.94-6.3z'/></svg>\"\nexport const atOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At</title><path d='M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const atSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>At</title><path d='M407.6 115.78c-32.07-35-79.47-53.51-137.09-53.51-51 0-100.69 19.8-139.82 55.76s-63.13 83.84-67.63 134.83c-4.55 51.67 11.41 100.29 44.94 136.9 33.37 36.44 80.07 56.51 131.49 56.51 32.52 0 53.61-2.36 85.48-15.75l14.75-6.2-12.4-29.5-14.75 6.18c-27.15 11.4-43.78 13.25-73.08 13.25-42.34 0-80.65-16.38-107.89-46.12-27.4-29.92-40.42-69.86-36.66-112.48 7.84-89 86.6-161.4 175.57-161.4 48.4 0 87.65 14.91 113.49 43.13 24.61 26.87 35.6 63.92 31.79 107.15-3.29 37.35-17.76 55.74-29.32 64.6-11 8.44-22 10.18-28 9.11-17.68-3.13-26.87-20.46-24.59-46.29l9.93-109.12L311.9 160l-2 22.29a79.69 79.69 0 00-57.32-24c-23.8 0-46.54 10.07-64 28.37-16.77 17.53-27.23 41.05-29.45 66.22-2.45 27.87 5.75 54.34 22.51 72.64a76.14 76.14 0 0056.88 24.77A93 93 0 00310 318a60 60 0 0042.88 31.81c16.89 3 36.73-2.69 53.08-15.21 30.19-23.13 39.36-60.19 41.74-87.2 4.52-51.7-9.7-98.4-40.1-131.62zm-126.34 186a62.19 62.19 0 01-42.81 16.53 43.94 43.94 0 01-33.28-14.38c-10.71-11.7-15.9-29.27-14.23-48.22 3.23-36.68 30.29-65.4 61.61-65.4a48.16 48.16 0 0135.88 15.82c10.87 11.87 16.2 28.87 14.63 46.73-1.78 20.28-9.33 37.14-21.8 48.88z'/></svg>\"\nexport const attach = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Attach</title><path d='M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const attachOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Attach</title><path d='M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const attachSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Attach</title><path d='M216.08 192v143.55a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 00191 0V159.44' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const backspace = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Backspace</title><path d='M403.13 96H156.87a44.9 44.9 0 00-33.68 15.27 15.88 15.88 0 00-1.91 2.7L32 247.75a16 16 0 000 16.5l89.15 133.57a16.24 16.24 0 002 2.88 44.89 44.89 0 0033.7 15.3h246.28A44.92 44.92 0 00448 371.13V140.87A44.92 44.92 0 00403.13 96zM348 311a16 16 0 11-22.63 22.62L271.67 280 218 333.65A16 16 0 01195.35 311L249 257.33l-53.69-53.69A16 16 0 01218 181l53.69 53.7 53.67-53.7A16 16 0 01348 203.64l-53.7 53.69z'/></svg>\"\nexport const backspaceOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Backspace</title><path d='M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const backspaceSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Backspace</title><path d='M144 96L32 256l112 160h304V96zm215.3 226.34L336.67 345l-65-65-65 65L184 322.34l65-65-65-65 22.63-22.63 65 65 65-65 22.63 22.63-65 65z'/></svg>\"\nexport const bag = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag</title><path d='M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176z'/></svg>\"\nexport const bagAdd = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Add</title><path d='M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336h-48v48a16 16 0 01-32 0v-48h-48a16 16 0 010-32h48v-48a16 16 0 0132 0v48h48a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z'/></svg>\"\nexport const bagAddOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Add</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 256v128M320 320H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bagAddSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Add</title><path d='M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187h-64v64h-32v-64h-64v-32h64v-64h32v64h64z'/></svg>\"\nexport const bagCheck = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Check</title><path d='M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM332.49 274l-89.6 112a16 16 0 01-12.23 6h-.26a16 16 0 01-12.16-5.6l-38.4-44.88a16 16 0 1124.32-20.8L230 350.91 307.51 254a16 16 0 0125 20zM336 160H176v-16a80 80 0 01160 0z'/></svg>\"\nexport const bagCheckOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Check</title><path stroke-linecap='round' stroke-linejoin='round' d='M320 264l-89.6 112-38.4-44.88' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bagCheckSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Check</title><path d='M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm50.81 252.12l-61.37-71.72 24.31-20.81L230 350.91l87.51-109.4 25 20z'/></svg>\"\nexport const bagHandle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Handle</title><path d='M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176zm192 96a112 112 0 01-224 0v-16a16 16 0 0132 0v16a80 80 0 00160 0v-16a16 16 0 0132 0z'/></svg>\"\nexport const bagHandleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Handle</title><path d='M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 224v16a96 96 0 0096 96h0a96 96 0 0096-96v-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bagHandleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Handle</title><path d='M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm188 91a112 112 0 01-224 0v-32h32v32a80 80 0 00160 0v-32h32z'/></svg>\"\nexport const bagOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag</title><path stroke-linecap='round' stroke-linejoin='round' d='M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bagRemove = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Remove</title><path d='M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336H192a16 16 0 010-32h128a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z'/></svg>\"\nexport const bagRemoveOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Remove</title><path stroke-linecap='round' stroke-linejoin='round' d='M320 320H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bagRemoveSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag Remove</title><path d='M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187H176v-32h160z'/></svg>\"\nexport const bagSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bag</title><path d='M372 160v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-40 0H180v-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148z'/></svg>\"\nexport const balloon = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Balloon</title><path d='M391 307.27c32.75-46.35 46.59-101.63 39-155.68A175.82 175.82 0 00231.38 2c-96 13.49-163.14 102.58-149.65 198.58 7.57 53.89 36.12 103.16 80.37 138.74 24.58 19.68 52.31 33.5 78.62 39.68a8 8 0 016 9.22l-4.87 26.38a16.29 16.29 0 001.48 10.57 16 16 0 0014.2 8.61 15.21 15.21 0 002.23-.16l17.81-2.5a2 2 0 012.09 1.14c16.72 36.31 45.46 63.85 82.15 78.36a16 16 0 0021-9.65c2.83-8.18-1.64-17.07-9.68-20.28a118.57 118.57 0 01-59.3-51.88 2 2 0 011.45-3l7.4-1a16.54 16.54 0 0010.08-5.23 16 16 0 002.39-17.8l-12.06-24.23a8 8 0 013.26-10.55c23.59-13.17 46.45-34 64.65-59.73zm-154.9 16.78a16 16 0 01-5.88-1.12c-41.26-16.32-76.3-52.7-91.45-94.94a16 16 0 1130.12-10.8c14.5 40.44 47.27 65.77 73.1 76a16 16 0 01-5.89 30.88z'/></svg>\"\nexport const balloonOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Balloon</title><path d='M414.11 153.82C429.66 264.4 345.85 357.09 282.54 366s-169.48-57.5-185-167.68a159.82 159.82 0 11316.53-44.49z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M236.06 308.05c-32.83-13-67.08-43.1-82.27-85.46M367.7 495.78c-32.83-13-63.31-40.06-78.5-82.41' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M266.71 368.21l-9.17 49.61 63.31-8.9-22.49-45.16-31.65 4.45z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const balloonSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Balloon</title><path d='M391 307.27c32.75-46.35 46.59-101.63 39-155.68C416.47 55.59 327.38-11.54 231.38 2S68.24 104.53 81.73 200.53c7.57 53.89 36.12 103.16 80.37 138.74 26.91 21.64 57.59 36.1 86.05 41.33l-8.36 45.23a8 8 0 009 9.38L279 431c15.9 35.87 41.65 60.48 78.41 75l14.88 5.88 11.77-29.75-14.88-5.89c-26.35-10.42-44.48-26.16-57-49.92l21.84-3.07a8 8 0 006.05-11.49l-20.49-41.16c25.98-12.87 51.49-35.18 71.42-63.33zm-160.82 15.66c-41.26-16.32-76.3-52.7-91.45-94.94l-5.4-15.06 30.12-10.8 5.4 15.06c14.5 40.44 47.27 65.77 73.1 76l14.88 5.88-11.77 29.76z'/></svg>\"\nexport const ban = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ban</title><circle stroke-miterlimit='10' stroke-width='48' cx='256' cy='256' r='200' class='ionicon-fill-none'/><path stroke-miterlimit='10' stroke-width='48' d='M114.58 114.58l282.84 282.84'/></svg>\"\nexport const banOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ban</title><circle cx='256' cy='256' r='208' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-miterlimit='10' d='M108.92 108.92l294.16 294.16' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const banSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ban</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM432 256a175.09 175.09 0 01-35.8 106.26L149.74 115.8A175.09 175.09 0 01256 80c97.05 0 176 79 176 176zm-352 0a175.09 175.09 0 0135.8-106.26L362.26 396.2A175.09 175.09 0 01256 432c-97 0-176-78.95-176-176z'/></svg>\"\nexport const bandage = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bandage</title><path d='M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zM137.21 295.6a47.81 47.81 0 01-9.43-13.38L69 341a72.2 72.2 0 000 102 72.37 72.37 0 00102 0l58.77-58.76a47.81 47.81 0 01-13.38-9.43zM392 48a71.55 71.55 0 00-51 21l-55.92 55.91a48.05 48.05 0 0113.36 9.45l79.19 79.19a48.05 48.05 0 019.45 13.36L443 171a72 72 0 00-51-123z' class='ionicon-fill-none'/><path d='M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zm-56.49 110.31a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zm0-96a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zM465.61 46.39a104.38 104.38 0 00-147.25 0l-69.76 69.89a4 4 0 004.2 6.58 35.74 35.74 0 0111.69-2.54 47.7 47.7 0 0133.94 14.06l79.19 79.19a47.7 47.7 0 0114.06 33.94 35.68 35.68 0 01-2.54 11.69 4 4 0 006.58 4.2l69.89-69.76a104.38 104.38 0 000-147.25z'/><path d='M254.34 386.83a47.91 47.91 0 01-33.94-14l-79.19-79.23a47.81 47.81 0 01-9.43-13.38c-4.59-9.7-1.39-25 2.48-36.9a4 4 0 00-6.64-4l-77.23 77.04a104.12 104.12 0 00147.25 147.25l72.75-72.88a4 4 0 00-4.21-6.58c-4.18 1.58-8.4 2.68-11.84 2.68z'/></svg>\"\nexport const bandageOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bandage</title><rect x='-24.43' y='167.88' width='560.87' height='176.25' rx='88.12' ry='88.12' transform='rotate(-45 256 256.002)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='169.41' y='156.59' width='176' height='196' rx='32' ry='32' transform='rotate(45 257.409 254.582)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='208' r='16'/><circle cx='304' cy='256' r='16'/><circle cx='208' cy='256' r='16'/><circle cx='256' cy='304' r='16'/></svg>\"\nexport const bandageSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bandage</title><path d='M27.71 337.1a40 40 0 000 56.54l90.65 90.65a40 40 0 0056.54 0l75.1-75.1L102.81 262zM496 147.1a39.87 39.87 0 00-11.75-28.38l-91-91a40.14 40.14 0 00-56.75 0L264 100.28 411.72 248l72.53-72.53A39.85 39.85 0 00496 147.1zM273.06 386.19l116-116L241.77 123l-116 116zm19.63-141.5a16 16 0 110 22.62 16 16 0 010-22.62zm-48-48a16 16 0 110 22.62 16 16 0 010-22.62zm0 96a16 16 0 110 22.62 16 16 0 010-22.62zm-25.38-48a16 16 0 11-22.62 0 16 16 0 0122.62 0z'/></svg>\"\nexport const barChart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bar Chart</title><path d='M480 496H48a32 32 0 01-32-32V32a16 16 0 0132 0v432h432a16 16 0 010 32z'/><path d='M156 432h-40a36 36 0 01-36-36V244a36 36 0 0136-36h40a36 36 0 0136 36v152a36 36 0 01-36 36zM300 432h-40a36 36 0 01-36-36V196a36 36 0 0136-36h40a36 36 0 0136 36v200a36 36 0 01-36 36zM443.64 432h-40a36 36 0 01-36-36V132a36 36 0 0136-36h40a36 36 0 0136 36v264a36 36 0 01-36 36z'/></svg>\"\nexport const barChartOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bar Chart</title><path d='M32 32v432a16 16 0 0016 16h432' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='224' width='80' height='192' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='240' y='176' width='80' height='240' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='383.64' y='112' width='80' height='304' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const barChartSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bar Chart</title><path d='M496 496H16V16h32v448h448v32z'/><path d='M192 432H80V208h112zM336 432H224V160h112zM479.64 432h-112V96h112z'/></svg>\"\nexport const barbell = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barbell</title><path d='M467 176a29.94 29.94 0 00-25.32 12.5 2 2 0 01-3.64-1.14v-36.65c0-20.75-16.34-38.21-37.08-38.7A38 38 0 00362 150v82a2 2 0 01-2 2H152a2 2 0 01-2-2v-81.29c0-20.75-16.34-38.21-37.08-38.7A38 38 0 0074 150v37.38a2 2 0 01-3.64 1.14A29.94 29.94 0 0045 176c-16.3.51-29 14.31-29 30.62v98.72c0 16.31 12.74 30.11 29 30.62a29.94 29.94 0 0025.32-12.5 2 2 0 013.68 1.16v36.67C74 382 90.34 399.5 111.08 400A38 38 0 00150 362v-82a2 2 0 012-2h208a2 2 0 012 2v81.29c0 20.75 16.34 38.21 37.08 38.7A38 38 0 00438 362v-37.38a2 2 0 013.64-1.14A29.94 29.94 0 00467 336c16.3-.51 29-14.31 29-30.62v-98.74c0-16.31-12.74-30.11-29-30.64z'/></svg>\"\nexport const barbellOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barbell</title><path stroke-linecap='round' stroke-linejoin='round' d='M48 256h416' class='ionicon-fill-none ionicon-stroke-width'/><rect x='384' y='128' width='32' height='256' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='128' width='32' height='256' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='32' y='192' width='16' height='128' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='464' y='192' width='16' height='128' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const barbellSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barbell</title><path d='M496 176h-58v-64h-76v122H150V112H74v64H16v160h58v64h76V278h212v122h76v-64h58V176z'/></svg>\"\nexport const barcode = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barcode</title><path d='M419.13 96H419l-35.05.33L128 96h-.16l-36.74.33C66.93 96.38 48 116.07 48 141.2v230.27c0 25.15 19 44.86 43.2 44.86h.15l36.71-.33 255.92.33h.17l35.07-.33A44.91 44.91 0 00464 371.13V140.87A44.92 44.92 0 00419.13 96zM144 320a16 16 0 01-32 0V192a16 16 0 0132 0zm64 32a16 16 0 01-32 0V160a16 16 0 0132 0zm64-16a16 16 0 01-32 0V176a16 16 0 0132 0zm64 16a16 16 0 01-32 0V160a16 16 0 0132 0zm64-32a16 16 0 01-32 0V192a16 16 0 0132 0z'/></svg>\"\nexport const barcodeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barcode</title><path d='M384 400.33l35.13-.33A29 29 0 00448 371.13V140.87A29 29 0 00419.13 112l-35.13.33M128 112l-36.8.33c-15.88 0-27.2 13-27.2 28.87v230.27c0 15.87 11.32 28.86 27.2 28.86L128 400M384 192v128M320 160v192M256 176v160M192 160v192M128 192v128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const barcodeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Barcode</title><path stroke-linecap='square' stroke-linejoin='round' d='M400 400.33l48-.33V112l-48 .33M112 112l-48 .33v288l48-.33M384 192v128M320 160v192M256 176v160M192 160v192M128 192v128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const baseball = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Baseball</title><path d='M444 295.67l-.47-26.07a205.42 205.42 0 01-39.27-4.73l-5 17.35a14 14 0 11-26.88-7.81l5-17.38a206.47 206.47 0 01-36.05-17.35l-10.44 14.77a14 14 0 01-22.87-16.16l10.41-14.73a204.8 204.8 0 01-30-30L273.71 204a14 14 0 01-16.16-22.87l14.74-10.42a205.3 205.3 0 01-17.38-36.06l-17.32 5a14 14 0 11-7.81-26.89l17.3-5a205.88 205.88 0 01-4.43-32.59q-.17-3-.24-6l-18.22-.33a14 14 0 01-13.74-14A208 208 0 0055 202.42a16 16 0 0115 15.66l.44 24.43c1.58.05 3.16.11 4.73.2a205.88 205.88 0 0132.59 4.43l5-17.3a14 14 0 0126.89 7.81l-5 17.32a205.21 205.21 0 0136 17.38L181 257.61a14 14 0 0122.87 16.16l-10.39 14.73a205.65 205.65 0 0115.79 14.23 203.79 203.79 0 0114.23 15.79l14.73-10.41A14 14 0 01254.39 331l-14.76 10.43A206.86 206.86 0 01257 377.47l17.38-5.05a14 14 0 017.81 26.89l-17.35 5a205.89 205.89 0 014.7 38.28l18.27.33a16 16 0 0115.71 16.28 11.69 11.69 0 01-.08 1.19 208 208 0 00153.39-151.03A14 14 0 01444 295.67z'/><path d='M301.49 56.2A14 14 0 01287.5 70h-.25l-16.81-.3c.05 1.31.1 2.62.17 3.93a178.83 178.83 0 003.44 26.31l16.29-4.74a14 14 0 017.81 26.8l-16.27 4.73a178.06 178.06 0 0013.33 27.69l13.84-9.78a14 14 0 1116.16 22.87l-13.86 9.79q5.25 6.33 11.12 12.19c3.9 3.91 8 7.6 12.2 11.1l9.78-13.84A14 14 0 11367.32 203l-9.76 13.8a178.83 178.83 0 0027.68 13.33l4.76-16.28a14 14 0 0126.89 7.81l-4.73 16.26a177.72 177.72 0 0030.95 3.65l-.16-9a14 14 0 0113.75-14.24h.25a14.67 14.67 0 012.59.25 208 208 0 00-158-163.51c-.06.4-.04.76-.05 1.13zM208.44 457.55a16 16 0 0116.28-15.71l16.76.29a178.49 178.49 0 00-3.62-29.95l-16.26 4.72a14 14 0 11-7.81-26.9l16.21-4.7a177.92 177.92 0 00-13.33-27.68l-13.8 9.76a14 14 0 11-16.16-22.87l13.84-9.78c-3.5-4.22-7.19-8.3-11.1-12.2s-8-7.62-12.19-11.12l-9.79 13.86a14 14 0 11-22.87-16.16l9.78-13.84a177.16 177.16 0 00-27.69-13.33L122 298.21a14 14 0 11-26.9-7.81l4.73-16.29a177.32 177.32 0 00-26.31-3.44c-.89-.05-1.79-.08-2.68-.12l.16 10.59a16 16 0 01-15.71 16.28H55a16 16 0 01-3.94-.51 208 208 0 00157.65 163.87 15.72 15.72 0 01-.27-3.23z'/></svg>\"\nexport const baseballOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Baseball</title><path stroke-linecap='round' stroke-linejoin='round' d='M294.25 108.6l-60.57 17.59M317.13 156.11l-51.5 36.4M355.89 194.87l-36.4 51.5M403.4 217.75l-17.59 60.57' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M432.94 255.05a192 192 0 01-176.31-180.7M108.54 294.31l17.59-60.57M156.05 317.19l36.4-51.5M194.81 355.95l51.5-36.4M217.69 403.46l60.57-17.59M255 433.61A192 192 0 0074.29 256.69' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const baseballSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Baseball</title><path d='M302.16 56.2a13.88 13.88 0 01-3.42 8.91l-.11 5.13-27.71-.57c0 1.3.09 2.61.16 3.91a177.33 177.33 0 003.45 26.31l24.72-7.18 7.81 26.88-24.71 7.18a177.21 177.21 0 0013.34 27.69l21.27-15 16.16 22.86-21.29 15.05q5.25 6.33 11.11 12.19c3.91 3.91 8 7.6 12.2 11.1l15.71-22.22 22.86 16.16L358 216.75a178.78 178.78 0 0027.68 13.32l7.49-25.8 26.89 7.81-7.5 25.83a177.8 177.8 0 0031 3.67l-.41-24.67 17.41-.29A208 208 0 00301.82 52.93a13.65 13.65 0 01.34 3.27zM214 441.64l27.91.49a177.46 177.46 0 00-3.62-29.95l-24.14 7-7.81-26.88 24.11-7a177.92 177.92 0 00-13.33-27.68L196.79 372l-16.16-22.86L201 334.73c-3.49-4.22-7.19-8.3-11.09-12.2s-8-7.62-12.19-11.12l-13.91 19.68L141 314.93l13.9-19.66a177.26 177.26 0 00-27.7-13.33l-6.37 21.94-26.89-7.81 6.38-22a177.32 177.32 0 00-26.32-3.4c-1.59-.09-3.18-.16-4.78-.2l.4 22.34-17.71.32a207.88 207.88 0 00161.81 166.48z'/><path d='M444.65 302.67l-.55-33.06a206 206 0 01-39.33-4.74L397 291.8l-26.94-7.8 7.83-27a206.91 206.91 0 01-36.06-17.35l-16.36 23.15-22.86-16.16 16.33-23.11a204.21 204.21 0 01-30-30l-22.19 15.67-16.16-22.87 22.17-15.67a206 206 0 01-17.38-36.06l-25.75 7.48-7.81-26.89 25.73-7.47q-2-9.21-3.18-18.64h-.47l-.78-14-.33-6-17.94-.32a13.38 13.38 0 01-1.79-.16l-6.35-.13.06-2.47a14 14 0 01-5.66-11.49 13.27 13.27 0 01.13-1.67A208 208 0 0052.16 217.43l16.1-.28.45 25.18 6.83.38 14 .77v.48q9.42 1.17 18.64 3.18l6.68-23L141.7 232l-6.7 23a205.3 205.3 0 0136.06 17.38l14.53-20.56L208.47 268 194 288.5a203.5 203.5 0 0130 30l21.3-15 16.16 22.86-21.36 15.05a206.86 206.86 0 0117.34 36.06l25.27-7.33 7.81 26.86-25.24 7.33a205.9 205.9 0 014.72 38.3l29.42.53-.29 16.48a207.94 207.94 0 00160-157.21z'/></svg>\"\nexport const basket = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basket</title><path d='M424.11 192H360L268.8 70.4a16 16 0 00-25.6 0L152 192H87.89a32.57 32.57 0 00-32.62 32.44 30.3 30.3 0 001.31 9l46.27 163.14a50.72 50.72 0 0048.84 36.91h208.62a51.21 51.21 0 0049-36.86l46.33-163.36a15.62 15.62 0 00.46-2.36l.53-4.93a13.3 13.3 0 00.09-1.55A32.57 32.57 0 00424.11 192zM256 106.67L320 192H192zm0 245a37.7 37.7 0 1137.88-37.7A37.87 37.87 0 01256 351.63z'/></svg>\"\nexport const basketOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basket</title><path d='M68.4 192A20.38 20.38 0 0048 212.2a17.87 17.87 0 00.8 5.5L100.5 400a40.46 40.46 0 0039.1 29.5h232.8a40.88 40.88 0 0039.3-29.5l51.7-182.3.6-5.5a20.38 20.38 0 00-20.4-20.2H68.4zm193.32 160.07A42.07 42.07 0 11304 310a42.27 42.27 0 01-42.28 42.07z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' d='M160 192l96-128 96 128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const basketSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basket</title><path d='M339.2 217.6L256 106.67 172.8 217.6l-25.6-19.2 96-128a16 16 0 0125.6 0l96 128z'/><path d='M441.59 192H70.41a12 12 0 00-11.68 14.77L112.59 434h286.82l53.86-227.23A12 12 0 00441.59 192zM256 351.66A37.71 37.71 0 11293.89 314 37.88 37.88 0 01256 351.66z'/></svg>\"\nexport const basketball = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basketball</title><path d='M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zM313.14 176.23L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zM335.77 198.86a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zM448.33 271.67a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zM120.67 414A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z'/></svg>\"\nexport const basketballOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basketball</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M432.94 255.05a192 192 0 01-176.31-180.7M255 433.61A192 192 0 0074.29 256.69M120.24 120.24l271.52 271.52M120.24 391.76l271.52-271.52' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const basketballSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Basketball</title><path d='M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zM313.14 176.23L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zM335.77 198.86a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zM448.33 271.67a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zM120.67 414A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z'/></svg>\"\nexport const batteryCharging = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Charging</title><path d='M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z'/><path d='M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z'/><path d='M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14H265.53a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z'/><path d='M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z'/></svg>\"\nexport const batteryChargingOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Charging</title><path d='M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z'/><path d='M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z'/><path d='M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14H265.53a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z'/><path d='M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z'/></svg>\"\nexport const batteryChargingSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Charging</title><path d='M306.68 237.62h-66.5l15.33-54.7 6.43-22.92 3.94-14 4.29-15.33a3.56 3.56 0 00.06-.44v-.19a1.85 1.85 0 000-.23 2 2 0 000-.24v-.14c0-.1-.07-.19-.11-.29v-.05a2.33 2.33 0 00-2-1.35h-.1a2.25 2.25 0 00-1.8 1l-12.5 17.15-18.82 25.55-8.36 11.48-35.41 48.6L160 274.26h66.44l-30 107a3.93 3.93 0 00-.06.48v.1a1.94 1.94 0 000 .34.29.29 0 000 .09 3 3 0 00.07.32v.06a1.83 1.83 0 00.14.32 2.38 2.38 0 001.52 1.16H198.68a2.1 2.1 0 001.31-.5l.06-.05a2.6 2.6 0 00.42-.45L223.3 352l13-17.82z'/><path d='M289.78 134.55l-.14.74-.21.73-6.72 24H417V352H248.05l-23.33 32H449V128H290.13a22.62 22.62 0 01-.35 6.55zM49 160h169.49l23.31-32H17v256h159.49a22.73 22.73 0 01.34-6.67l.15-.75.2-.73 6.69-23.85H49z'/><path d='M264.76 329.08h130.55V182.92H276.28l-9.73 34.7H346l-23.16 31.78-58.08 79.68zM160 294.26h-39.31l23.15-31.78 57.95-79.56H70.69v146.16h119.6l9.77-34.82H160zM465 202.67h32v106.67h-32z'/></svg>\"\nexport const batteryDead = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Dead</title><rect x='31' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M479 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryDeadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Dead</title><rect x='31' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M479 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryDeadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Dead</title><path stroke-linecap='square' stroke-miterlimit='10' d='M32 144h400v224H32zM480 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryFull = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Full</title><rect x='32' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='85.69' y='198.93' width='292.63' height='114.14' rx='4' ry='4' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M480 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryFullOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Full</title><rect x='32' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='85.69' y='198.93' width='292.63' height='114.14' rx='4' ry='4' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M480 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryFullSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Full</title><path d='M17 384h432V128H17zm32-224h368v192H49z'/><path d='M70.69 182.94h324.63v146.13H70.69zM465 202.67h32v106.67h-32z'/></svg>\"\nexport const batteryHalf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Half</title><rect x='32' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='85.69' y='198.93' width='154.31' height='114.13' rx='4' ry='4' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M480 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryHalfOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Half</title><rect x='32' y='144' width='400' height='224' rx='45.7' ry='45.7' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='85.69' y='198.93' width='154.31' height='114.13' rx='4' ry='4' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M480 218.67v74.66' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const batteryHalfSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Battery Half</title><path d='M17 384h432V128H17zm32-224h368v192H49z'/><path d='M70.69 182.92H256v146.16H70.69zM465 202.67h32v106.67h-32z'/></svg>\"\nexport const beaker = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beaker</title><path d='M444 32H128c-19.38 0-45.9 4.34-64.11 24.77C52.17 69.92 48 85.66 48 96a16 16 0 0013.8 15.85C91.7 116 96 117.79 96 136v264a80.07 80.07 0 0080 80h192a80.11 80.11 0 0080-80V96c0-12.55 7.46-27.25 10-31.36l.1-.14c.22-.35.5-.72.78-1.1 2-2.79 5.09-7 5.09-12.95C464 39.79 454.89 32 444 32zM84.11 83.08c5.24-8.87 17.17-19 44.29-19h294.43C419.3 72.87 416 84.27 416 96v64H128v-24c0-37.32-21.35-48.14-43.89-52.92z'/></svg>\"\nexport const beakerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beaker</title><path d='M445.2 48.05L398 48H128c-54.3 0-64 35.7-64 48 30.3 4.2 48 8 48 40v264a64 64 0 0064 64h192a64 64 0 0064-64V96c0-19 11.5-38.35 12.6-40 1.2-1.9 3.4-4.4 3.4-5.5s-.3-2.45-2.8-2.45zM112 176h320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const beakerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beaker</title><path d='M453.55 54.7L464 32H128.4c-27.74 0-49 6.57-63.31 19.51C54.39 61.27 48 74.89 48 88v24h16c31 0 32 16.79 32 35v313a20 20 0 0020 20h312a20 20 0 0020-20V96c0-17.16 2.28-34.14 5.55-41.3zM416 96v64H128v-22c0-36.15-21-51-41.77-53.46C89 70 105.7 64.05 128.4 64.05h289.92A221.83 221.83 0 00416 96z'/></svg>\"\nexport const bed = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bed</title><path d='M432 230.7a79.44 79.44 0 00-32-6.7H112a79.51 79.51 0 00-32 6.69A80.09 80.09 0 0032 304v112a16 16 0 0032 0v-8a8.1 8.1 0 018-8h368a8.1 8.1 0 018 8v8a16 16 0 0032 0V304a80.09 80.09 0 00-48-73.3zM376 80H136a56 56 0 00-56 56v72a4 4 0 005.11 3.84A95.5 95.5 0 01112 208h4.23a4 4 0 004-3.55A32 32 0 01152 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h24.46a4 4 0 004-3.55A32 32 0 01304 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h4.2a95.51 95.51 0 0126.89 3.85A4 4 0 00432 208v-72a56 56 0 00-56-56z'/></svg>\"\nexport const bedOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bed</title><path d='M384 240H96V136a40.12 40.12 0 0140-40h240a40.12 40.12 0 0140 40v104zM48 416V304a64.19 64.19 0 0164-64h288a64.19 64.19 0 0164 64v112' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M48 416v-8a24.07 24.07 0 0124-24h368a24.07 24.07 0 0124 24v8M112 240v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16M256 240v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bedSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bed</title><path d='M432 224V96a16 16 0 00-16-16H96a16 16 0 00-16 16v128a48 48 0 00-48 48v160h36v-32h376v32h36V272a48 48 0 00-48-48zm-192 0H120v-32a16 16 0 0116-16h88a16 16 0 0116 16zm32-32a16 16 0 0116-16h88a16 16 0 0116 16v32H272z'/></svg>\"\nexport const beer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beer</title><path d='M392 208h-24v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.68a56 56 0 00-67.51 77.54A63.91 63.91 0 0080 231.39V440a56.06 56.06 0 0056 56h176a56.06 56.06 0 0056-56v-8h24a72.08 72.08 0 0072-72v-80a72.08 72.08 0 00-72-72zM176 416a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm16-224c-8.33 0-20.55-5.18-26.69-11.31A16 16 0 00282 176H160a16 16 0 00-15 10.53c-6.83 18.68-23.6 21.47-33 21.47a32 32 0 010-64c.09 0 9.12.34 16.4 5.8a16 16 0 1019.2-25.6A63.69 63.69 0 00112 112a63.55 63.55 0 00-14 1.57A24 24 0 01120 80a23.78 23.78 0 0119.38 9.84 51.35 51.35 0 014.71 7.9A16 16 0 00176 96c0-6.77-3.61-15.17-10.76-25-.46-.63-1-1.25-1.45-1.86C178.39 55.44 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142a16 16 0 0012.73 18.71 16.29 16.29 0 003 .28 16 16 0 0015.7-13 111.78 111.78 0 001.96-19.42 32 32 0 01-6 63.43zm112 168a40 40 0 01-40 40h-24V240h24a40 40 0 0140 40z'/></svg>\"\nexport const beerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beer</title><path d='M352 200v240a40.12 40.12 0 01-40 40H136a40.12 40.12 0 01-40-40V224' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 224h40a56.16 56.16 0 0156 56v80a56.16 56.16 0 01-56 56h-40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M224 256v160M288 256v160M160 256v160M320 112a48 48 0 010 96c-13.25 0-29.31-7.31-38-16H160c-8 22-27 32-48 32a48 48 0 010-96 47.91 47.91 0 0126 9' class='ionicon-fill-none ionicon-stroke-width'/><path d='M91.86 132.43a40 40 0 1160.46-52S160 91 160 96M145.83 64.71C163.22 44.89 187.57 32 216 32c52.38 0 94 42.84 94 95.21a95 95 0 01-1.67 17.79' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const beerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Beer</title><path d='M448 208h-80v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.67a56 56 0 00-67.51 77.51c-1 .86-1.91 1.74-2.83 2.66A63.56 63.56 0 0048 176.26a62.65 62.65 0 0020.77 46.54A65 65 0 0080 231v249a16 16 0 0016 16h256a16 16 0 0016-16v-48h80a16 16 0 0016-16V224a16 16 0 00-16-16zM176 432h-32V240h32zm64 0h-32V240h32zm64 0h-32V240h32zm16-240c-8.33 0-20.55-5.18-26.69-11.31l-4.68-4.69H148.79L145 186.53c-5.81 16-18.83 20.41-28.73 21.29a34.08 34.08 0 01-25.91-8.67 31 31 0 01-10.32-23 31.8 31.8 0 019.33-22.71c.16-.17.33-.32.5-.49A31.78 31.78 0 01112 144c.09 0 9.12.34 16.4 5.8l12.8 9.6 19.2-25.6-12.8-9.6A63.69 63.69 0 00112 112a64.79 64.79 0 00-14 1.55 24 24 0 0141.4-23.68l.23.35.4.46a35.78 35.78 0 015 8.94l5.62 15 30-11.24-5.62-15a68.2 68.2 0 00-10-17.74c-.38-.52-.79-1-1.19-1.51C178.38 55.45 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142l-3 15.72 31.43 6 3-15.72a111.78 111.78 0 001.96-19.43 32 32 0 01-6 63.43zm112 208h-64V240h64z'/></svg>\"\nexport const bicycle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bicycle</title><path d='M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM320 128a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z'/><path d='M367.55 192h-43.76a4 4 0 01-3.51-2.08l-31.74-58.17a31 31 0 00-49.38-7.75l-69.86 70.4a32.56 32.56 0 00-9.3 22.4c0 17.4 12.6 23.6 18.5 27.1 28.5 16.42 48.57 28.43 59.58 35.1a4 4 0 011.92 3.41v69.12c0 8.61 6.62 16 15.23 16.43A16 16 0 00272 352v-86a16 16 0 00-6.66-13l-37-26.61a4 4 0 01-.58-6l42-44.79a4 4 0 016.42.79L298 215.77a16 16 0 0014 8.23h56a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z'/></svg>\"\nexport const bicycleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bicycle</title><path d='M388 288a76 76 0 1076 76 76.24 76.24 0 00-76-76zM124 288a76 76 0 1076 76 76.24 76.24 0 00-76-76z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 360v-86l-64-42 80-88 40 72h56' class='ionicon-fill-none ionicon-stroke-width'/><path d='M320 136a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 72a32 32 0 10-.2 64z'/></svg>\"\nexport const bicycleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bicycle</title><path d='M320 192l-29.5-60.1C284.32 118 284.32 118 264 118c-13.26 0-14.76 0-23 7.3l-71.7 69.1c-8.3 8.45-9.3 9.45-9.3 26.6 0 12.67 3.78 14.61 18.51 22.9L240 278v90h32V254s-29-17-48.3-30l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H384v-32z'/><path d='M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM320 128a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z'/></svg>\"\nexport const bluetooth = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bluetooth</title><path d='M388 160.77a20 20 0 00-5.85-14.91l-112-112A20 20 0 00236 48v164.52l-79-67.71a20 20 0 00-26 30.38L225.27 256 131 336.81a20 20 0 1026 30.38l79-67.71V464a20 20 0 0034.14 14.14l112-112a20 20 0 00-1.14-29.33L286.73 256 381 175.19a20 20 0 007-14.42zm-49.42 192.36L276 415.72V299.49zM276 212.52V96.28l62.59 62.59z'/></svg>\"\nexport const bluetoothOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bluetooth</title><path stroke-linecap='round' stroke-linejoin='round' d='M144 352l224-192L256 48v416l112-112-224-192' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bluetoothSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bluetooth</title><path d='M397.41 161.13L236-.28v212.8l-94.17-80.72-26 30.37L225.27 256 115.8 349.83l26 30.37 94.2-80.72v212.8l161.41-161.41L286.73 256zM276 96.28l62.59 62.59L276 212.52zm62.58 256.85L276 415.72V299.48z'/></svg>\"\nexport const boat = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Boat</title><path d='M416 473.14a6.83 6.83 0 00-3.57-6c-27.07-14.55-51.76-36.82-62.62-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.11 7.11 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06 185.14 185.14 0 00167.81 0 8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.73 6.73 0 008-6.71zM476.71 246.91c-3.49-8.39-10.9-14.89-20.9-18.35L432 219.08V136a64 64 0 00-64-64h-32v-8a40 40 0 00-40-40h-80a40 40 0 00-40 40v8h-32a64 64 0 00-64 64v83.15l-23.58 9.39c-9.94 3.3-17.63 10-21.15 18.44-2.45 5.89-5.25 15-1.3 26.46l.1.3 46.66 119.44A23.33 23.33 0 00102.58 408c.5 0 1 0 1.53-.05 31.32-2 56-17.27 72.6-31.61C200.42 396.81 228.31 408 256 408s55.43-11.2 79.14-31.7c16.59 14.36 41.3 29.67 72.61 31.65a23.36 23.36 0 0023.37-14.74l46.65-119c3.28-8.09 2.9-17.76-1.06-27.3zM269 154.21l-1.14-.4a39.53 39.53 0 00-23.73 0l-.58.18-126.07 50.23a4 4 0 01-5.48-3.72V136a32 32 0 0132-32h224a32 32 0 0132 32v64.44a4 4 0 01-5.48 3.72z'/></svg>\"\nexport const boatOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Boat</title><path d='M461.93 261.05c-2-4.76-6.71-7.83-11.67-9.49l-187.18-74.48a23.78 23.78 0 00-14.17 0l-187 74.52c-5 1.56-9.83 4.77-11.81 9.53s-2.94 9.37-1 15.08l46.53 119.15a7.46 7.46 0 007.47 4.64c26.69-1.68 50.31-15.23 68.38-32.5a7.66 7.66 0 0110.49 0C201.29 386 227 400 256 400s54.56-14 73.88-32.54a7.67 7.67 0 0110.5 0c18.07 17.28 41.69 30.86 68.38 32.54a7.45 7.45 0 007.46-4.61l46.7-119.16c1.98-4.78.99-10.41-.99-15.18z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M416 473.14a6.84 6.84 0 00-3.56-6c-27.08-14.55-51.77-36.82-62.63-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.15 7.15 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06A185.14 185.14 0 00340 456a8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.72 6.72 0 007.95-6.71z'/><path d='M320 96V72a24.07 24.07 0 00-24-24h-80a24.07 24.07 0 00-24 24v24M416 233v-89a48.14 48.14 0 00-48-48H144a48.14 48.14 0 00-48 48v92M256 183.6v212.85' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const boatSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Boat</title><path d='M477.77 246.42c-2.13-6-7.23-9.55-12.56-11.95L432 221.38V92a20 20 0 00-20-20h-76V40a16 16 0 00-16-16H192a16 16 0 00-16 16v32h-76a20 20 0 00-20 20v129.46l-33.08 13.06c-5.33 2.4-10.58 6-12.72 12s-3.16 11.81-1 19L84.25 415.7h1.06c34.12 0 64-17.41 85.31-43.82 21.32 26.41 51.18 42.12 85.3 42.12s64-15.76 85.31-42.17c21.32 26.41 51.18 43.87 85.3 43.87h1.06l51.25-150.17c2.16-6 1.07-13.1-1.07-19.11zM256 152l-144 56.83V108a4 4 0 014-4h280a4 4 0 014 4v100.76z'/><path d='M345.22 407c-52.25 36.26-126.35 36.25-178.6 0 0 0-45.64 63-94.64 63l13.33 1c29.86 0 58.65-11.73 85.31-25.59a185.33 185.33 0 00170.6 0c26.66 13.87 55.45 25.6 85.31 25.6l13.33-1C392.21 470 345.22 407 345.22 407z'/></svg>\"\nexport const body = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Body</title><circle cx='256' cy='56' r='56'/><path d='M437 128H75a27 27 0 000 54h101.88c6.91 0 15 3.09 19.58 15 5.35 13.83 2.73 40.54-.57 61.23l-4.32 24.45a.42.42 0 01-.12.35l-34.6 196.81A27.43 27.43 0 00179 511.58a27.06 27.06 0 0031.42-22.29l23.91-136.8S242 320 256 320c14.23 0 21.74 32.49 21.74 32.49l23.91 136.92a27.24 27.24 0 1053.62-9.6L320.66 283a.45.45 0 00-.11-.35l-4.33-24.45c-3.3-20.69-5.92-47.4-.57-61.23 4.56-11.88 12.91-15 19.28-15H437a27 27 0 000-54z'/></svg>\"\nexport const bodyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Body</title><circle stroke-miterlimit='10' cx='256' cy='56' r='40' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-miterlimit='10' d='M199.3 295.62h0l-30.4 172.2a24 24 0 0019.5 27.8 23.76 23.76 0 0027.6-19.5l21-119.9v.2s5.2-32.5 17.5-32.5h3.1c12.5 0 17.5 32.5 17.5 32.5v-.1l21 119.9a23.92 23.92 0 1047.1-8.4l-30.4-172.2-4.9-29.7c-2.9-18.1-4.2-47.6.5-59.7 4-10.4 14.13-14.2 23.2-14.2H424a24 24 0 000-48H88a24 24 0 000 48h92.5c9.23 0 19.2 3.8 23.2 14.2 4.7 12.1 3.4 41.6.5 59.7z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bodySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Body</title><circle cx='256' cy='56' r='56'/><path d='M464 128H48v52h144l-32 325.13 51 6.87 21.65-192h47.02L301 512l51-6.98L320 180h144v-52z'/></svg>\"\nexport const bonfire = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bonfire</title><path d='M273.38 368.37c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.07l-18.2 88.36a35.59 35.59 0 00-.93 7.87c0 19.93 16.68 33.77 37.33 33.77s37.34-13.84 37.34-33.77a36.16 36.16 0 00-1.29-9.45zM411.05 407.89a42.66 42.66 0 00-5.95-4.36L335.57 355c-6.77-4.24-14-4.13-19.25 1a13.52 13.52 0 00-2 17.19l52.5 69a38 38 0 004 4.69c9.1 10.16 29.28 10.72 40.37 0 10.94-10.96 10.81-30.39-.14-38.99zM463.3 335.93h-70.42c-4.55 0-8.88 3.35-8.88 8.15s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.44 480 356.71c0-13.63-7.6-20.78-16.7-20.78zM128.22 344.08c0-4.95-4.55-8.15-9.45-8.15H48.35c-8.87 0-16.35 9.58-16.35 20.31S44.62 376 54.3 373.79l67.43-20.55c4.39-1.31 6.49-4.24 6.49-9.16zM176.55 355.05L107 403.41a32.29 32.29 0 00-6 4.34 26.33 26.33 0 000 38.56 29.41 29.41 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.57 2.92-12.48-2-17a15 15 0 00-19.35-.95zM293.46 242.39c10-5.42 19.45-10.54 28.31-16.16 42.46-26.92 62.23-59 62.23-101 0-64.66-56.07-104.4-108.82-109-6.49-.57-15-.42-19.91 3.88s-5.88 12.56-6.15 19.1c-1.38 33.61-28.38 59-57 85.86-28 26.3-56.93 53.49-62.71 91-8.41 54.68 21.74 86.71 40.46 100.93a31.88 31.88 0 0019.3 6.51 32.32 32.32 0 007.41-.87 31.75 31.75 0 0021.27-16.95c14.91-30.39 45.77-47.12 75.61-63.3z'/><path d='M139.82 156.57c12.22-15.76 27-29.68 41.37-43.15 19.92-18.72 37.81-35.58 46.5-53.86-12.24-7.37-27.36-11.36-46.51-11.36-17.79 0-20.39 5.18-20.39 19.06 0 12.56-6.53 20.54-14.34 30.65C137.8 109.1 128 121.77 128 140.84c0 10.23 1.29 18.77 4.2 26.37q3.5-5.32 7.62-10.64zM330.34 239.74c-9.33 5.92-19 11.16-29.25 16.71-28.91 15.68-56.21 30.48-68.88 56.28a62.6 62.6 0 01-1.88 3.61 8 8 0 003.89 11.3c12.31 5.1 25.13 8.27 38.91 8.27a111.42 111.42 0 0078.24-31.37A107.45 107.45 0 00384 226.85a86.56 86.56 0 00-1.33-15 8 8 0 00-13.8-4c-10.18 11.47-22.93 22-38.53 31.89z'/></svg>\"\nexport const bonfireOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bonfire</title><path d='M273.38 368.33c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.11l-18.2 88.38a35.75 35.75 0 00-.93 7.88c0 19.93 16.68 33.78 37.33 33.78s37.34-13.85 37.34-33.78a36.16 36.16 0 00-1.29-9.45zM411.05 407.86a41.78 41.78 0 00-5.95-4.35l-69.53-48.59c-6.77-4.25-14-4.13-19.25 1a13.53 13.53 0 00-2 17.2l52.5 69a36.57 36.57 0 004 4.69c9.1 10.17 29.28 10.73 40.37 0 10.94-10.91 10.81-30.35-.14-38.95zM463.3 335.88h-70.42c-4.55 0-8.88 3.35-8.88 8.16s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.4 480 356.66c0-13.66-7.6-20.78-16.7-20.78zM128.22 344c0-5-4.55-8.16-9.45-8.16H48.35c-8.87 0-16.35 9.58-16.35 20.32S44.62 376 54.3 373.75l67.43-20.55c4.39-1.31 6.49-4.2 6.49-9.2zM176.55 355L107 403.38a32.34 32.34 0 00-6 4.35 26.33 26.33 0 000 38.56 29.39 29.39 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.58 2.92-12.49-2-17.06a15 15 0 00-19.35-.94z'/><path d='M368 125.09c0-55.7-49.22-89.16-94.2-93.06a8 8 0 00-8.69 7.71c-3.12 76-109.38 110.69-119.87 178.68-7 45.4 16.65 72.37 34.31 85.78a15.94 15.94 0 0023.93-5.62c22.5-45.86 74.33-63.49 109.72-85.94 42.88-27.2 54.8-56.44 54.8-87.55z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M240 95.7c-12.82-23-30.51-31-59.16-31.63a3.86 3.86 0 00-4.06 3.51c-.95 34.22-32.78 44.85-32.78 73.15 0 19.37 5.39 29 17.16 39.28M352.45 178.76c8.6 14.31 15.55 30.08 15.55 48 0 52.52-42.47 93.1-94.86 93.1a94.42 94.42 0 01-65.14-26' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bonfireSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bonfire</title><path d='M199.89 336l-15.25-5.62a100.35 100.35 0 01-32-23.08c-13.93-14.9-29.29-40.71-23.38-79.11 5.2-33.73 44.2-74.21 69.34-97.87 27.24-25.62 66-65.85 64.15-99.15L262 16h15.18C328.53 16 384 53.62 384 114.41c0 45.57-22 77.61-68.91 106.9-8 5-16.44 9.66-25.42 14.53-30.63 16.62-75.29 49.83-85.73 85.32zM181.19 113.59C201 95 218.91 78.15 227.62 59.79q-2.76-1.68-5.7-3.09c-11.87-5.69-26.1-8.34-44.76-8.34h-16.94l.56 16.49c.47 14.06-6.06 22.51-14.33 33.21C137.8 109.26 128 121.94 128 141c0 10.23 1.29 18.76 4.2 26.36q3.5-5.31 7.61-10.63c12.19-15.73 27.05-29.68 41.38-43.14z'/><path d='M330.34 239.85c-9.31 5.9-19 11.14-29.25 16.71-32.65 17.69-63.48 34.44-73.23 67.44l-.6 2a110.5 110.5 0 0045.87 10c29.66 0 57.45-11.13 78.24-31.36A107.38 107.38 0 00384 227a92.39 92.39 0 00-5.59-31c-11.35 16.18-27.14 30.58-48.07 43.85zM268.72 360h-25.44a4 4 0 00-3.92 3.22l-25.36 128a4 4 0 003.92 4.78h76.26a4 4 0 003.92-4.78l-25.41-128a4 4 0 00-3.97-3.22zM325.68 354.32l-11.36 11.36a4 4 0 00-.5 5.05l59.47 89.21a4 4 0 006.16.61l41.1-41.1a4 4 0 00-.61-6.16l-89.21-59.47a4 4 0 00-5.05.5zM388 336a4 4 0 00-4 4v8.61a4 4 0 003.34 3.95l88 14.66a4 4 0 004.66-3.94V340a4 4 0 00-4-4zM186.32 354.32l11.36 11.36a4 4 0 01.5 5.05l-59.47 89.21a4 4 0 01-6.16.61l-41.1-41.1a4 4 0 01.61-6.16l89.21-59.47a4 4 0 015.05.5zM124 336H36a4 4 0 00-4 4v23.28a4 4 0 004.66 3.94l88-14.66a4 4 0 003.34-3.95V340a4 4 0 00-4-4z'/></svg>\"\nexport const book = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Book</title><path d='M202.24 74C166.11 56.75 115.61 48.3 48 48a31.36 31.36 0 00-17.92 5.33A32 32 0 0016 79.9V366c0 19.34 13.76 33.93 32 33.93 71.07 0 142.36 6.64 185.06 47a4.11 4.11 0 006.94-3V106.82a15.89 15.89 0 00-5.46-12A143 143 0 00202.24 74zM481.92 53.3A31.33 31.33 0 00464 48c-67.61.3-118.11 8.71-154.24 26a143.31 143.31 0 00-32.31 20.78 15.93 15.93 0 00-5.45 12v337.13a3.93 3.93 0 006.68 2.81c25.67-25.5 70.72-46.82 185.36-46.81a32 32 0 0032-32v-288a32 32 0 00-14.12-26.61z'/></svg>\"\nexport const bookOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Book</title><path d='M256 160c16-63.16 76.43-95.41 208-96a15.94 15.94 0 0116 16v288a16 16 0 01-16 16c-128 0-177.45 25.81-208 64-30.37-38-80-64-208-64-9.88 0-16-8.05-16-17.93V80a15.94 15.94 0 0116-16c131.57.59 192 32.84 208 96zM256 160v288' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bookSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Book</title><path d='M464 48c-67.61.29-117.87 9.6-154.24 25.69-27.14 12-37.76 21.08-37.76 51.84V448c41.57-37.5 78.46-48 224-48V48zM48 48c67.61.29 117.87 9.6 154.24 25.69 27.14 12 37.76 21.08 37.76 51.84V448c-41.57-37.5-78.46-48-224-48V48z'/></svg>\"\nexport const bookmark = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmark</title><path d='M400 480a16 16 0 01-10.63-4L256 357.41 122.63 476A16 16 0 0196 464V96a64.07 64.07 0 0164-64h192a64.07 64.07 0 0164 64v368a16 16 0 01-16 16z'/></svg>\"\nexport const bookmarkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmark</title><path d='M352 48H160a48 48 0 00-48 48v368l144-128 144 128V96a48 48 0 00-48-48z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bookmarkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmark</title><path d='M416 480L256 357.41 96 480V32h320z'/></svg>\"\nexport const bookmarks = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmarks</title><path d='M400 0H176a64.11 64.11 0 00-62 48h228a74 74 0 0174 74v304.89l22 17.6a16 16 0 0019.34.5 16.41 16.41 0 006.66-13.42V64a64 64 0 00-64-64z'/><path d='M320 80H112a64 64 0 00-64 64v351.62A16.36 16.36 0 0054.6 509a16 16 0 0019.71-.71L216 388.92l141.69 119.32a16 16 0 0019.6.79 16.4 16.4 0 006.71-13.44V144a64 64 0 00-64-64z'/></svg>\"\nexport const bookmarksOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmarks</title><path d='M128 80V64a48.14 48.14 0 0148-48h224a48.14 48.14 0 0148 48v368l-80-64' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M320 96H112a48.14 48.14 0 00-48 48v352l152-128 152 128V144a48.14 48.14 0 00-48-48z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bookmarksSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bookmarks</title><path d='M112 0v48h304v368l48 32V0H112z'/><path d='M48 80v432l168-124 168 124V80H48z'/></svg>\"\nexport const bowlingBall = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bowling Ball</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM288 224a24 24 0 1124-24 24 24 0 01-24 24zm8-72a24 24 0 1124-24 24 24 0 01-24 24zm64 40a24 24 0 1124-24 24 24 0 01-24 24z'/></svg>\"\nexport const bowlingBallOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bowling Ball</title><circle cx='256' cy='256' r='208' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='288' cy='200' r='24'/><circle cx='296' cy='128' r='24'/><circle cx='360' cy='168' r='24'/></svg>\"\nexport const bowlingBallSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bowling Ball</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM286 230a28 28 0 1128-28 28 28 0 01-28 28zm8-76a28 28 0 1128-28 28 28 0 01-28 28zm68 44a28 28 0 1128-28 28 28 0 01-28 28z'/></svg>\"\nexport const briefcase = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Briefcase</title><path d='M336 80H176a16 16 0 00-16 16v16h192V96a16 16 0 00-16-16z' class='ionicon-fill-none'/><path d='M496 176a64.07 64.07 0 00-64-64h-48V96a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v48h480zm-144-64H160V96a16 16 0 0116-16h160a16 16 0 0116 16zM336 264a24 24 0 01-24 24H200a24 24 0 01-24-24v-4a4 4 0 00-4-4H16v144a64 64 0 0064 64h352a64 64 0 0064-64V256H340a4 4 0 00-4 4z'/></svg>\"\nexport const briefcaseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Briefcase</title><rect x='32' y='128' width='448' height='320' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M144 128V96a32 32 0 0132-32h160a32 32 0 0132 32v32M480 240H32M320 240v24a8 8 0 01-8 8H200a8 8 0 01-8-8v-24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const briefcaseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Briefcase</title><path d='M336 288H176v-32H16v196a12 12 0 0012 12h456a12 12 0 0012-12V256H336zM496 124a12 12 0 00-12-12H384V56a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v100h480zm-152-12H168V88h176z'/></svg>\"\nexport const browsers = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Browsers</title><path d='M416 48H96a64 64 0 00-64 64v288a64 64 0 0064 64h320a64 64 0 0064-64V112a64 64 0 00-64-64zm24 96H72a8 8 0 01-8-8v-24a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v24a8 8 0 01-8 8z'/></svg>\"\nexport const browsersOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Browsers</title><rect x='48' y='64' width='416' height='384' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M397.82 64H114.18C77.69 64 48 94.15 48 131.2V176h16c0-16 16-32 32-32h320c16 0 32 16 32 32h16v-44.8c0-37.05-29.69-67.2-66.18-67.2z'/></svg>\"\nexport const browsersSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Browsers</title><path d='M32 64v384a16 16 0 0016 16h416a16 16 0 0016-16V64a16 16 0 00-16-16H48a16 16 0 00-16 16zm408 364H72a4 4 0 01-4-4V152a4 4 0 014-4h368a4 4 0 014 4v272a4 4 0 01-4 4z'/></svg>\"\nexport const brush = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Brush</title><path d='M233.15 360.11a15.7 15.7 0 01-4.92-.77 16 16 0 01-10.92-13c-2.15-15-19.95-32.46-36.62-35.85a16 16 0 01-8.69-26.33l211.09-235.1c.19-.22.39-.43.59-.63a56.57 56.57 0 0179.89 0 56.51 56.51 0 01.11 79.78l-219 227a16 16 0 01-11.53 4.9zM119.89 480.11c-32.14 0-65.45-16.89-84.85-43a16 16 0 0112.85-25.54c5.34 0 20-4.87 20-20.57 0-39.07 31.4-70.86 70-70.86s70 31.79 70 70.86c0 49.12-39.48 89.11-88 89.11z'/></svg>\"\nexport const brushOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Brush</title><path d='M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26zM138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.88 36.57-36 36.57C64.56 449.74 92.82 464 120 464c39.78 0 72-32.73 72-73.14 0-30.36-24.12-54.86-54-54.86z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const brushSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Brush</title><path d='M480 96l-64-64-244 260 64 64zM142 320c-36.52 0-66 30.63-66 68.57 0 25.43-31 45.72-44 45.72C52.24 462.17 86.78 480 120 480c48.62 0 88-40.91 88-91.43 0-37.94-29.48-68.57-66-68.57z'/></svg>\"\nexport const bug = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bug</title><path d='M463.55 272.13H400v-48.2q0-4.32-.27-8.47c29.57-27.88 32.25-64.63 32.27-103 0-8.61-6.64-16-15.25-16.41A16 16 0 00400 112c0 28-1.86 48.15-9.9 63.84-19.22-41.15-65.78-63.91-134.1-63.91-39.8 0-74.19 9.13-99.43 26.39-14.9 10.19-26.2 22.91-33.7 37.72C114 160.65 112 141 112 112.46c0-8.61-6.6-16-15.2-16.44A16 16 0 0080 112c0 37.63 2.61 73.73 32.44 101.63q-.43 5.06-.44 10.3v48.2H48.45c-8.61 0-16 6.62-16.43 15.23a16 16 0 0016 16.77h64V320a143.32 143.32 0 0010.39 53.69C96.74 396.64 80.18 422 80 463.34c0 8.74 6.62 16.3 15.36 16.65A16 16 0 00112 464c0-27.66 9.1-44.71 26.17-61.32A144.37 144.37 0 00220 459.42a16 16 0 0020-15.49V192.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 192v251.93a16 16 0 0020 15.49 144.4 144.4 0 0081.82-56.74c17 16.54 26.09 33.52 26.17 60.95a16.27 16.27 0 0015.1 16.37A16 16 0 00432 464c0-41.68-16.6-67.23-42.39-90.31A143.32 143.32 0 00400 320v-15.87h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z'/><path d='M321.39 104l.32.09c13.57 3.8 25.07-10.55 18.2-22.85A95.86 95.86 0 00256.21 32h-.42a95.87 95.87 0 00-84.19 50.13c-6.84 12.58 5.14 27 18.84 22.86 19.71-6 41.79-9.06 65.56-9.06 24.09 0 46.09 2.72 65.39 8.07z'/></svg>\"\nexport const bugOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bug</title><path d='M370 378c28.89 23.52 46 46.07 46 86M142 378c-28.89 23.52-46 46.06-46 86M384 208c28.89-23.52 32-56.07 32-96M128 206c-28.89-23.52-32-54.06-32-94M464 288.13h-80M128 288.13H48M256 192v256' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 448h0c-70.4 0-128-57.6-128-128v-96.07c0-65.07 57.6-96 128-96h0c70.4 0 128 25.6 128 96V320c0 70.4-57.6 128-128 128z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M179.43 143.52a49.08 49.08 0 01-3.43-15.73A80 80 0 01255.79 48h.42A80 80 0 01336 127.79a41.91 41.91 0 01-3.12 14.3' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bugSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bug</title><path d='M480 304.13v-32h-80V215.2c29.42-27.95 32-64.76 32-103.2V96h-32v16c0 28-1.86 48.15-9.9 63.84C368 128 324.32 112 256 112c-39.8 0-75.19 7.06-100.43 24.32-14.9 10.19-25.2 24.91-32.7 39.72C114 160.57 112 140.82 112 112V96H80v16c0 37.44 2.59 73.36 32 101.2v58.93H32v32l80-.13c0 19 3.7 53.09 10.39 69.69C96.6 396.76 80 422.31 80 464v16h32v-16c0-27.66 9.1-44.71 26.17-61.32C160 448 177 464 240 464V176h32v288c65 0 80-16 101.83-61.32C390.9 419.29 400 436.35 400 464v16h32v-16c0-41.68-16.6-67.23-42.39-90.31C396.3 357.09 400 323 400 304z'/><path d='M256 32c-48.06 0-96 0-96 84 26.12-14 59.35-20 96-20 24.09 0 46.09 2.65 65.39 8 10.75 3 24.66 8.71 30.61 12 0-84-47.94-84-96-84z'/></svg>\"\nexport const build = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Build</title><path d='M469.54 120.52a16 16 0 00-25.54-4L382.56 178a16.12 16.12 0 01-22.63 0l-26.56-26.6a16 16 0 010-22.63l61.18-61.19a16 16 0 00-4.78-25.92C343.56 21 285.88 31.78 249.51 67.88c-30.9 30.68-40.11 78.62-25.25 131.53a15.89 15.89 0 01-4.49 16L53.29 367.46a64.17 64.17 0 1090.6 90.64l153.68-166.85a15.9 15.9 0 0115.77-4.57 179.3 179.3 0 0046.22 6.37c33.4 0 62.71-10.81 83.85-31.64 39.15-38.57 45.12-103.99 26.13-140.89zM99.48 447.15a32 32 0 1128.34-28.35 32 32 0 01-28.34 28.35z'/></svg>\"\nexport const buildOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Build</title><path d='M393.87 190a32.1 32.1 0 01-45.25 0l-26.57-26.57a32.09 32.09 0 010-45.26L382.19 58a1 1 0 00-.3-1.64c-38.82-16.64-89.15-8.16-121.11 23.57-30.58 30.35-32.32 76-21.12 115.84a31.93 31.93 0 01-9.06 32.08L64 380a48.17 48.17 0 1068 68l153.86-167a31.93 31.93 0 0131.6-9.13c39.54 10.59 84.54 8.6 114.72-21.19 32.49-32 39.5-88.56 23.75-120.93a1 1 0 00-1.6-.26z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='96' cy='416' r='16'/></svg>\"\nexport const buildSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Build</title><path d='M230 209.2L32 405.58 106.65 480l197.59-198.17c46.47 17.46 105.52 12.54 143-24.78 40.44-40.32 40.35-108 16.81-156.79l-87.33 87.06-52.32-52.13 87.33-87.06C363 24.46 294.67 24.34 254.23 64.66c-38.03 37.91-42.78 97.6-24.23 144.54z'/></svg>\"\nexport const bulb = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bulb</title><path d='M288 464h-64a16 16 0 000 32h64a16 16 0 000-32zM304 416h-96a16 16 0 000 32h96a16 16 0 000-32zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v24a16 16 0 0016 16h24a8 8 0 008-8V274.82a8 8 0 00-5.13-7.47A130.73 130.73 0 01208.71 253a16 16 0 1118.58-26c7.4 5.24 21.65 13 28.71 13s21.31-7.78 28.73-13a16 16 0 0118.56 26 130.73 130.73 0 01-26.16 14.32 8 8 0 00-5.13 7.47V392a8 8 0 008 8h24a16 16 0 0016-16v-24c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z'/></svg>\"\nexport const bulbOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bulb</title><path d='M304 384v-24c0-29 31.54-56.43 52-76 28.84-27.57 44-64.61 44-108 0-80-63.73-144-144-144a143.6 143.6 0 00-144 144c0 41.84 15.81 81.39 44 108 20.35 19.21 52 46.7 52 76v24M224 480h64M208 432h96M256 384V256' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M294 240s-21.51 16-38 16-38-16-38-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const bulbSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bulb</title><path d='M208 464h96v32h-96zM192 416h128v32H192zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v40h48V269.11L195.72 244 214 217.72 256 240l41.29-22.39 19.1 25.68-44.39 26V400h48v-40c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z'/></svg>\"\nexport const bus = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bus</title><path d='M400 32H112a48 48 0 00-48 48v320a47.91 47.91 0 0016 35.74V454a26 26 0 0026 26h28a26 26 0 0026-26v-6h192v6a26 26 0 0026 26h28a26 26 0 0026-26v-18.26A47.91 47.91 0 00448 400V80a48 48 0 00-48-48zM147.47 399.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM236 288H112a16 16 0 01-16-16V144a16 16 0 0116-16h124a4 4 0 014 4v152a4 4 0 01-4 4zm20-192H112.46c-8.6 0-16-6.6-16.44-15.19A16 16 0 01112 64h287.54c8.6 0 16 6.6 16.44 15.19A16 16 0 01400 96H256zm20 32h124a16 16 0 0116 16v128a16 16 0 01-16 16H276a4 4 0 01-4-4V132a4 4 0 014-4zm60.18 243.47a32 32 0 1128.35 28.35 32 32 0 01-28.35-28.35z'/></svg>\"\nexport const busOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bus</title><rect x='80' y='112' width='352' height='192' rx='32' ry='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='80' y='304' width='352' height='128' rx='32' ry='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M400 112H112a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32h288a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zM144 432v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22zM416 432v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='368' cy='368' r='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='144' cy='368' r='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 112v192M80 80v288M432 80v288' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const busSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Bus</title><path d='M400 64H112a16 16 0 000 32h288a16 16 0 000-32z' class='ionicon-fill-none'/><path d='M424 32H88a24 24 0 00-24 24v360a32 32 0 0016 27.71V480h72v-32h208v32h72v-36.29A32 32 0 00448 416V56a24 24 0 00-24-24zM175.82 371.47a32 32 0 11-35.3-35.29 32.09 32.09 0 0135.3 35.29zM240 288H96V128h144zm16-192H96.46L96 64h320l-.46 32H256zm16 32h144v160H272zm64.18 236.53a32 32 0 1135.3 35.29 32.09 32.09 0 01-35.3-35.29z'/></svg>\"\nexport const business = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Business</title><path d='M432 176H320V64a48 48 0 00-48-48H80a48 48 0 00-48 48v416a16 16 0 0016 16h104a8 8 0 008-8v-71.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01192 416v72a8 8 0 008 8h264a16 16 0 0016-16V224a48 48 0 00-48-48zM98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 240a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 320a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM444 464H320V208h112a16 16 0 0116 16v236a4 4 0 01-4 4z'/><path d='M400 400a16 16 0 1016 16 16 16 0 00-16-16zM400 320a16 16 0 1016 16 16 16 0 00-16-16zM400 240a16 16 0 1016 16 16 16 0 00-16-16zM336 400a16 16 0 1016 16 16 16 0 00-16-16zM336 320a16 16 0 1016 16 16 16 0 00-16-16zM336 240a16 16 0 1016 16 16 16 0 00-16-16z'/></svg>\"\nexport const businessOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Business</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 416v64M80 32h192a32 32 0 0132 32v412a4 4 0 01-4 4H48h0V64a32 32 0 0132-32zM320 192h112a32 32 0 0132 32v256h0-160 0V208a16 16 0 0116-16z' class='ionicon-fill-none ionicon-stroke-width'/><path d='M98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 191.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 191.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z'/><ellipse cx='256' cy='176' rx='15.95' ry='16.03' transform='rotate(-45 255.99 175.996)'/><path d='M258.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM400 400a16 16 0 1016 16 16 16 0 00-16-16zM400 320a16 16 0 1016 16 16 16 0 00-16-16zM400 240a16 16 0 1016 16 16 16 0 00-16-16zM336 400a16 16 0 1016 16 16 16 0 00-16-16zM336 320a16 16 0 1016 16 16 16 0 00-16-16zM336 240a16 16 0 1016 16 16 16 0 00-16-16z'/></svg>\"\nexport const businessSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Business</title><path d='M320 176V16H32v480h128v-96h32v96h288V176zM112 432H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80V80h32zm128-32h32v32h-32zm-48 272h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32V80h32zm80 320h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32v32zm176 272H320v-32h32v-32h-32v-48h32v-32h-32v-48h32v-32h-32v-32h128z'/><path d='M384 400h32v32h-32zM384 320h32v32h-32zM384 240h32v32h-32z'/></svg>\"\nexport const cafe = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cafe</title><path d='M432 64H96a16 16 0 00-16 16v192a96.11 96.11 0 0096 96h112a96.11 96.11 0 0096-96v-80h18a62.07 62.07 0 0062-62V96a32 32 0 00-32-32zm0 66a30 30 0 01-30 30h-18V96h48zM400 400H64a16 16 0 000 32h336a16 16 0 000-32z'/></svg>\"\nexport const cafeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cafe</title><path d='M368 80h64a16 16 0 0116 16v34a46 46 0 01-46 46h-34M96 80h272v192a80 80 0 01-80 80H176a80 80 0 01-80-80V80h0zM64 416h336' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cafeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cafe</title><path d='M448 64H80v254.34a19.83 19.83 0 005.86 14.14l29.65 29.66a19.87 19.87 0 0014.15 5.86h204.68a19.87 19.87 0 0014.15-5.86l29.65-29.66a19.83 19.83 0 005.86-14.14V192h32a16 16 0 0011.31-4.69l32-32A16 16 0 00464 144V80a16 16 0 00-16-16zm-16 73.37L409.37 160H384V96h48zM48 400h368v32H48z'/></svg>\"\nexport const calculator = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calculator</title><path d='M416 80a48.05 48.05 0 00-48-48H144a48.05 48.05 0 00-48 48v352a48.05 48.05 0 0048 48h224a48.05 48.05 0 0048-48zM168 432a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm88 160a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm112 136a24 24 0 01-48 0v-80a24 24 0 0148 0zm-24-136a24 24 0 1124-24 24 24 0 01-24 24zm19.31-100.69A16 16 0 01352 176H160a16 16 0 01-16-16V96a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-4.69 11.31z'/></svg>\"\nexport const calculatorOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calculator</title><rect x='112' y='48' width='288' height='416' rx='32' ry='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M160.01 112H352v64H160.01z' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='248' r='24'/><circle cx='256' cy='248' r='24'/><circle cx='344' cy='248' r='24'/><circle cx='168' cy='328' r='24'/><circle cx='256' cy='328' r='24'/><circle cx='168' cy='408' r='24'/><circle cx='256' cy='408' r='24'/><rect x='320' y='304' width='48' height='128' rx='24' ry='24'/></svg>\"\nexport const calculatorSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calculator</title><path d='M416 48a16 16 0 00-16-16H112a16 16 0 00-16 16v416a16 16 0 0016 16h288a16 16 0 0016-16zM192 432h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48V304h48zm0-160h-48v-48h48zm0-96H144V80h224z'/></svg>\"\nexport const calendar = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar</title><path d='M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3H35a3 3 0 00-3 3zm344-208a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24z'/></svg>\"\nexport const calendarClear = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Clear</title><path d='M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V180a4 4 0 00-4-4H36a4 4 0 00-4 4z'/></svg>\"\nexport const calendarClearOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Clear</title><rect stroke-linejoin='round' x='48' y='80' width='416' height='384' rx='48' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' stroke-linecap='round' d='M128 48v32M384 48v32M464 160H48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const calendarClearSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Clear</title><path d='M32 456a24 24 0 0024 24h400a24 24 0 0024-24V192H32zM480 87.77A23.8 23.8 0 00456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448z'/></svg>\"\nexport const calendarNumber = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Number</title><path d='M416 64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4v-12a64 64 0 00-64-64zM476 176H36a4 4 0 00-4 4v236a64 64 0 0064 64h320a64 64 0 0064-64V180a4 4 0 00-4-4zM239.58 401.1c-12.17 9.61-28.75 14.9-46.7 14.9-27.87 0-48.48-18.16-57.66-33.7a16 16 0 0127.56-16.3c1.08 1.84 11.15 18 30.1 18 16.66 0 36.12-7.29 36.12-27.82 0-6.25-1.22-14.95-7-20.88-8.54-8.74-22.75-12.67-30.11-12.67a16 16 0 010-32c4.85 0 17.41-2.6 25.28-10.65a22 22 0 006.57-16.08c0-23.23-28.63-23.9-31.89-23.9-17.34 0-23.8 10.61-24.07 11.06a16 16 0 11-27.55-16.26c7.64-13 25.22-26.8 51.62-26.8 16.44 0 31.76 4.77 43.13 13.42 13.39 10.2 20.76 25.28 20.76 42.48A54 54 0 01240 302.35c-1.15 1.18-2.36 2.28-3.59 3.35a66.18 66.18 0 018.42 7.23c10.56 10.8 16.14 25.75 16.14 43.25.03 18.06-7.58 34.01-21.39 44.92zM368 396a16 16 0 01-32 0V256.29l-22.51 16.59a16 16 0 11-19-25.76l43.42-32a16 16 0 019.49-3.12h4.6a16 16 0 0116 16z'/></svg>\"\nexport const calendarNumberOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Number</title><rect x='48' y='80' width='416' height='384' rx='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M128 48v32M384 48v32M464 160H48M304 260l43.42-32H352v168M191.87 306.63c9.11 0 25.79-4.28 36.72-15.47a37.9 37.9 0 0011.13-27.26c0-26.12-22.59-39.9-47.89-39.9-21.4 0-33.52 11.61-37.85 18.93M149 374.16c4.88 8.27 19.71 25.84 43.88 25.84 28.59 0 52.12-15.94 52.12-43.82 0-12.62-3.66-24-11.58-32.07-12.36-12.64-31.25-17.48-41.55-17.48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const calendarNumberSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar Number</title><path d='M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm310.17-244H368v200h-32V256.29l-35.39 26.08-19-25.76zM222 335.3c-8.54-8.74-22.75-12.67-30.11-12.67h-16v-32h16c4.85 0 17.41-2.6 25.28-10.65a22 22 0 006.57-16.08c0-23.23-28.63-23.9-31.89-23.9-17.34 0-23.8 10.61-24.07 11.06l-8.13 13.78-27.56-16.27 8.14-13.77c7.64-13 25.22-26.8 51.62-26.8 16.44 0 31.76 4.77 43.13 13.42 13.39 10.2 20.76 25.28 20.76 42.48A54 54 0 01240 302.35c-1.15 1.18-2.36 2.28-3.59 3.35a66.18 66.18 0 018.42 7.23c10.56 10.8 16.14 25.75 16.14 43.25 0 18.06-7.61 34-21.42 44.92-12.17 9.61-28.75 14.9-46.7 14.9-27.87 0-48.48-18.16-57.66-33.7l-8.13-13.78 27.56-16.27 8.16 13.75c1.08 1.84 11.15 18 30.1 18 16.66 0 36.12-7.29 36.12-27.82 0-6.25-1.22-14.95-7-20.88zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z'/></svg>\"\nexport const calendarOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar</title><rect stroke-linejoin='round' x='48' y='80' width='416' height='384' rx='48' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='296' cy='232' r='24'/><circle cx='376' cy='232' r='24'/><circle cx='296' cy='312' r='24'/><circle cx='376' cy='312' r='24'/><circle cx='136' cy='312' r='24'/><circle cx='216' cy='312' r='24'/><circle cx='136' cy='392' r='24'/><circle cx='216' cy='392' r='24'/><circle cx='296' cy='392' r='24'/><path stroke-linejoin='round' stroke-linecap='round' d='M128 48v32M384 48v32' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' d='M464 160H48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const calendarSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Calendar</title><path d='M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm320-244a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z'/></svg>\"\nexport const call = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Call</title><path d='M391 480c-19.52 0-46.94-7.06-88-30-49.93-28-88.55-53.85-138.21-103.38C116.91 298.77 93.61 267.79 61 208.45c-36.84-67-30.56-102.12-23.54-117.13C45.82 73.38 58.16 62.65 74.11 52a176.3 176.3 0 0128.64-15.2c1-.43 1.93-.84 2.76-1.21 4.95-2.23 12.45-5.6 21.95-2 6.34 2.38 12 7.25 20.86 16 18.17 17.92 43 57.83 52.16 77.43 6.15 13.21 10.22 21.93 10.23 31.71 0 11.45-5.76 20.28-12.75 29.81-1.31 1.79-2.61 3.5-3.87 5.16-7.61 10-9.28 12.89-8.18 18.05 2.23 10.37 18.86 41.24 46.19 68.51s57.31 42.85 67.72 45.07c5.38 1.15 8.33-.59 18.65-8.47 1.48-1.13 3-2.3 4.59-3.47 10.66-7.93 19.08-13.54 30.26-13.54h.06c9.73 0 18.06 4.22 31.86 11.18 18 9.08 59.11 33.59 77.14 51.78 8.77 8.84 13.66 14.48 16.05 20.81 3.6 9.53.21 17-2 22-.37.83-.78 1.74-1.21 2.75a176.49 176.49 0 01-15.29 28.58c-10.63 15.9-21.4 28.21-39.38 36.58A67.42 67.42 0 01391 480z'/></svg>\"\nexport const callOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Call</title><path d='M451 374c-15.88-16-54.34-39.35-73-48.76-24.3-12.24-26.3-13.24-45.4.95-12.74 9.47-21.21 17.93-36.12 14.75s-47.31-21.11-75.68-49.39-47.34-61.62-50.53-76.48 5.41-23.23 14.79-36c13.22-18 12.22-21 .92-45.3-8.81-18.9-32.84-57-48.9-72.8C119.9 44 119.9 47 108.83 51.6A160.15 160.15 0 0083 65.37C67 76 58.12 84.83 51.91 98.1s-9 44.38 23.07 102.64 54.57 88.05 101.14 134.49S258.5 406.64 310.85 436c64.76 36.27 89.6 29.2 102.91 23s22.18-15 32.83-31a159.09 159.09 0 0013.8-25.8C465 391.17 468 391.17 451 374z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const callSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Call</title><path d='M478.94 370.14c-5.22-5.56-23.65-22-57.53-43.75-34.13-21.94-59.3-35.62-66.52-38.81a3.83 3.83 0 00-3.92.49c-11.63 9.07-31.21 25.73-32.26 26.63-6.78 5.81-6.78 5.81-12.33 4-9.76-3.2-40.08-19.3-66.5-45.78s-43.35-57.55-46.55-67.3c-1.83-5.56-1.83-5.56 4-12.34.9-1.05 17.57-20.63 26.64-32.25a3.83 3.83 0 00.49-3.92c-3.19-7.23-16.87-32.39-38.81-66.52-21.78-33.87-38.2-52.3-43.76-57.52a3.9 3.9 0 00-3.89-.87 322.35 322.35 0 00-56 25.45A338 338 0 0033.35 92a3.83 3.83 0 00-1.26 3.74c2.09 9.74 12.08 50.4 43.08 106.72 31.63 57.48 53.55 86.93 100 133.22S252 405.21 309.54 436.84c56.32 31 97 41 106.72 43.07a3.86 3.86 0 003.75-1.26A337.73 337.73 0 00454.35 430a322.7 322.7 0 0025.45-56 3.9 3.9 0 00-.86-3.86z'/></svg>\"\nexport const camera = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera</title><circle cx='256' cy='272' r='64'/><path d='M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM256 368a96 96 0 1196-96 96.11 96.11 0 01-96 96z'/></svg>\"\nexport const cameraOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera</title><path d='M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='272' r='80' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M124 158v-22h-24v22' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cameraReverse = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera Reverse</title><path d='M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM316.84 346.3a96.06 96.06 0 01-155.66-59.18 16 16 0 01-16.49-26.43l20-20a16 16 0 0122.62 0l20 20A16 16 0 01196 288a17.31 17.31 0 01-2-.14 64.07 64.07 0 00102.66 33.63 16 16 0 1120.21 24.81zm50.47-63l-20 20a16 16 0 01-22.62 0l-20-20a16 16 0 0113.09-27.2A64 64 0 00215 222.64 16 16 0 11194.61 198a96 96 0 01156 59 16 16 0 0116.72 26.35z'/></svg>\"\nexport const cameraReverseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera Reverse</title><path d='M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M124 158v-22h-24v22M335.76 285.22v-13.31a80 80 0 00-131-61.6M176 258.78v13.31a80 80 0 00130.73 61.8' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M196 272l-20-20-20 20M356 272l-20 20-20-20' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cameraReverseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera Reverse</title><path d='M456 144h-83c-3 0-6.72-1.94-9.62-5l-27.31-42.79C326 80 320 80 302 80h-92c-18 0-23 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM256 368c-47.82 0-87.76-34.23-95-80h-43.63L176 229.37 234.63 288H194a64.07 64.07 0 00102.63 33.49L320 343l-3.68 3.72A96.64 96.64 0 01256 368zm80-53.84L277.11 256H318a64.26 64.26 0 00-103-33.36L192 200l3.14-2.45A96.19 96.19 0 01255.76 176c47.85 0 87 34.19 94.24 80h44.92z'/></svg>\"\nexport const cameraSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Camera</title><circle cx='256' cy='272' r='64'/><path d='M456 144h-83c-3 0-6.72-1.94-9.62-5L336.1 96.2C325 80 320 80 302 80h-92c-18 0-24 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM260.51 367.9a96 96 0 1191.39-91.39 96.11 96.11 0 01-91.39 91.39z'/></svg>\"\nexport const car = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car</title><path d='M447.68 220.78a16 16 0 00-1-3.08l-37.78-88.16C400.19 109.17 379 96 354.89 96H157.11c-24.09 0-45.3 13.17-54 33.54L65.29 217.7A15.72 15.72 0 0064 224v176a16 16 0 0016 16h32a16 16 0 0016-16v-16h256v16a16 16 0 0016 16h32a16 16 0 0016-16V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l28.23-65.85C136.11 133.69 146 128 157.11 128h197.78c11.1 0 21 5.69 24.62 14.15L407.74 208z'/></svg>\"\nexport const carOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car</title><path d='M80 224l37.78-88.15C123.93 121.5 139.6 112 157.11 112h197.78c17.51 0 33.18 9.5 39.33 23.85L432 224M80 224h352v144H80zM112 368v32H80v-32M432 368v32h-32v-32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='144' cy='288' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='368' cy='288' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const carSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car</title><path d='M447.68 220.78a16.44 16.44 0 00-1-3.1l-48-112A16 16 0 00384 96H128a16 16 0 00-14.71 9.7l-48 112a16.44 16.44 0 00-1 3.1A16.15 16.15 0 0064 224v184a8 8 0 008 8h32a8 8 0 008-8v-24h288v24a8 8 0 008 8h32a8 8 0 008-8V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l34.29-80h234.9l34.29 80z'/></svg>\"\nexport const carSport = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car Sport</title><path d='M494.26 276.22c-3.6-40.41-9.53-48.28-11.77-51.24-5.15-6.84-13.39-11.31-22.11-16a3.6 3.6 0 01-.91-5.68 15.93 15.93 0 004.53-12.53A16.27 16.27 0 00447.65 176h-15.6a17 17 0 00-2 .13 8.5 8.5 0 00-1.41-.47c-9.24-19.53-21.89-46.27-48.11-59.32C341.64 97 270 96 256 96s-85.64 1-124.48 20.31c-26.22 13.05-38.87 39.79-48.11 59.32l-.08.16a6.52 6.52 0 00-1.35.34 17 17 0 00-2-.13H64.35A16.27 16.27 0 0048 190.77a15.93 15.93 0 004.59 12.47 3.6 3.6 0 01-.91 5.68c-8.72 4.72-17 9.19-22.11 16-2.24 3-8.16 10.83-11.77 51.24-2 22.74-2.3 46.28-.73 61.44 3.29 31.5 9.46 50.54 9.72 51.33a16 16 0 0013.2 10.87v.2a16 16 0 0016 16h56a16 16 0 0016-16c8.61 0 14.6-1.54 20.95-3.18a158.83 158.83 0 0128-4.91C207.45 389 237.79 388 256 388c17.84 0 49.52 1 80.08 3.91a159.16 159.16 0 0128.11 4.93c6.08 1.56 11.85 3 19.84 3.15a16 16 0 0016 16h56a16 16 0 0016-16v-.12A16 16 0 00485.27 389c.26-.79 6.43-19.83 9.72-51.33 1.57-15.17 1.29-38.67-.73-61.45zm-381.93-86.91c8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35l1 2.17a8 8 0 01-7.44 11.42C360 202 290 199.12 256 199.12s-104 2.95-137.28 3.85a8 8 0 01-7.44-11.42c.35-.74.72-1.49 1.05-2.24zm11.93 79.63A427.17 427.17 0 0172.42 272c-10.6 0-21.53-3-23.56-12.44-1.39-6.35-1.24-9.92-.49-13.51C49 243 50 240.78 55 240c13-2 20.27.51 41.55 6.78 14.11 4.15 24.29 9.68 30.09 14.06 2.91 2.16 1.36 7.8-2.38 8.1zm221.38 82c-13.16 1.5-39.48.95-89.34.95s-76.17.55-89.33-.95c-13.58-1.51-30.89-14.35-19.07-25.79 7.87-7.54 26.23-13.18 50.68-16.35s34.8-4.8 57.62-4.8 32.12 1 57.62 4.81 44.77 9.52 50.68 16.35c10.78 12.24-5.29 24.19-18.86 25.84zm117.5-91.39c-2 9.48-13 12.44-23.56 12.44a455.91 455.91 0 01-52.84-3.06c-3.06-.29-4.48-5.66-1.38-8.1 5.71-4.49 16-9.91 30.09-14.06 21.28-6.27 33.55-8.78 44.09-6.69 2.57.51 3.93 3.27 4.09 5a40.64 40.64 0 01-.49 14.48z'/></svg>\"\nexport const carSportOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car Sport</title><path d='M469.71 234.6c-7.33-9.73-34.56-16.43-46.08-33.94s-20.95-55.43-50.27-70S288 112 256 112s-88 4-117.36 18.63-38.75 52.52-50.27 70-38.75 24.24-46.08 33.97S29.8 305.84 32.94 336s9 48 9 48h86c14.08 0 18.66-5.29 47.46-8 31.6-3 62.6-4 80.6-4s50 1 81.58 4c28.8 2.73 33.53 8 47.46 8h85s5.86-17.84 9-48-2.04-91.67-9.33-101.4zM400 384h56v16h-56zM56 384h56v16H56z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M364.47 309.16c-5.91-6.83-25.17-12.53-50.67-16.35S279 288 256.2 288s-33.17 1.64-57.61 4.81-42.79 8.81-50.66 16.35C136.12 320.6 153.42 333.44 167 335c13.16 1.5 39.47.95 89.31.95s76.15.55 89.31-.95c13.56-1.65 29.62-13.6 18.85-25.84zM431.57 243.05a3.23 3.23 0 00-3.1-3c-11.81-.42-23.8.42-45.07 6.69a93.88 93.88 0 00-30.08 15.06c-2.28 1.78-1.47 6.59 1.39 7.1a455.32 455.32 0 0052.82 3.1c10.59 0 21.52-3 23.55-12.44a52.41 52.41 0 00.49-16.51zM80.43 243.05a3.23 3.23 0 013.1-3c11.81-.42 23.8.42 45.07 6.69a93.88 93.88 0 0130.08 15.06c2.28 1.78 1.47 6.59-1.39 7.1a455.32 455.32 0 01-52.82 3.1c-10.59 0-21.52-3-23.55-12.44a52.41 52.41 0 01-.49-16.51z'/><path stroke-linecap='round' stroke-linejoin='round' d='M432 192h16M64 192h16M78 211s46.35-12 178-12 178 12 178 12' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const carSportSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Car Sport</title><path d='M488 224c-3-5-32.61-17.79-32.61-17.79 5.15-2.66 8.67-3.21 8.67-14.21 0-12-.06-16-8.06-16h-27.14c-.11-.24-.23-.49-.34-.74-17.52-38.26-19.87-47.93-46-60.95C347.47 96.88 281.76 96 256 96s-91.47.88-126.49 18.31c-26.16 13-25.51 19.69-46 60.95 0 .11-.21.4-.4.74H55.94c-7.94 0-8 4-8 16 0 11 3.52 11.55 8.67 14.21C56.61 206.21 28 220 24 224s-8 32-8 80 4 96 4 96h11.94c0 14 2.06 16 8.06 16h80c6 0 8-2 8-16h256c0 14 2 16 8 16h82c4 0 6-3 6-16h12s4-49 4-96-5-75-8-80zm-362.74 44.94A516.94 516.94 0 0170.42 272c-20.42 0-21.12 1.31-22.56-11.44a72.16 72.16 0 01.51-17.51L49 240h3c12 0 23.27.51 44.55 6.78a98 98 0 0130.09 15.06C131 265 132 268 132 268zm247.16 72L368 352H144s.39-.61-5-11.18c-4-7.82 1-12.82 8.91-15.66C163.23 319.64 208 304 256 304s93.66 13.48 108.5 21.16C370 328 376.83 330 372.42 341zm-257-136.53a96.23 96.23 0 01-9.7.07c2.61-4.64 4.06-9.81 6.61-15.21 8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35 2.57 5.45 4 10.66 6.68 15.33-2 .11-4.3 0-9.79-.19zm347.72 56.11C461 273 463 272 441.58 272a516.94 516.94 0 01-54.84-3.06c-2.85-.51-3.66-5.32-1.38-7.1a93.84 93.84 0 0130.09-15.06c21.28-6.27 33.26-7.11 45.09-6.69a3.22 3.22 0 013.09 3 70.18 70.18 0 01-.49 17.47z'/></svg>\"\nexport const card = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Card</title><path d='M32 376a56 56 0 0056 56h336a56 56 0 0056-56V222H32zm66-76a30 30 0 0130-30h48a30 30 0 0130 30v20a30 30 0 01-30 30h-48a30 30 0 01-30-30zM424 80H88a56 56 0 00-56 56v26h448v-26a56 56 0 00-56-56z'/></svg>\"\nexport const cardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Card</title><rect x='48' y='96' width='416' height='320' rx='56' ry='56' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' stroke-width='60' d='M48 192h416M128 300h48v20h-48z' class='ionicon-fill-none'/></svg>\"\nexport const cardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Card</title><path d='M32 416a16 16 0 0016 16h416a16 16 0 0016-16V222H32zm66-138a8 8 0 018-8h92a8 8 0 018 8v64a8 8 0 01-8 8h-92a8 8 0 01-8-8zM464 80H48a16 16 0 00-16 16v66h448V96a16 16 0 00-16-16z'/></svg>\"\nexport const caretBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back</title><path d='M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z'/></svg>\"\nexport const caretBackCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252-74.14v148.28a16 16 0 01-26.23 12.29l-89.09-74.13a16 16 0 010-24.6l89.09-74.13A16 16 0 01300 181.86z'/></svg>\"\nexport const caretBackCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back Circle</title><path d='M273.77 169.57l-89.09 74.13a16 16 0 000 24.6l89.09 74.13A16 16 0 00300 330.14V181.86a16 16 0 00-26.23-12.29z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const caretBackCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252 108.27L169.91 256 300 147.73z'/></svg>\"\nexport const caretBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back</title><path d='M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z'/></svg>\"\nexport const caretBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back</title><path d='M368 64L144 256l224 192V64z'/></svg>\"\nexport const caretDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down</title><path d='M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z'/></svg>\"\nexport const caretDownCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-121.57-17.77l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z'/></svg>\"\nexport const caretDownCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down Circle</title><path d='M342.43 238.23l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const caretDownCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-99.73-44L256 342.09 147.73 212z'/></svg>\"\nexport const caretDownOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down</title><path d='M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z'/></svg>\"\nexport const caretDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down</title><path d='M64 144l192 224 192-224H64z'/></svg>\"\nexport const caretForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward</title><path d='M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z'/></svg>\"\nexport const caretForwardCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-252 74.14V181.86a16 16 0 0126.23-12.29l89.09 74.13a16 16 0 010 24.6l-89.09 74.13A16 16 0 01212 330.14z'/></svg>\"\nexport const caretForwardCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward Circle</title><path d='M238.23 342.43l89.09-74.13a16 16 0 000-24.6l-89.09-74.13A16 16 0 00212 181.86v148.28a16 16 0 0026.23 12.29z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const caretForwardCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zM212 147.73L342.09 256 212 364.27z'/></svg>\"\nexport const caretForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward</title><path d='M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z'/></svg>\"\nexport const caretForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Forward</title><path d='M144 448l224-192L144 64v384z'/></svg>\"\nexport const caretUp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up</title><path d='M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z'/></svg>\"\nexport const caretUpCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm74.14 252H181.86a16 16 0 01-12.29-26.23l74.13-89.09a16 16 0 0124.6 0l74.13 89.09A16 16 0 01330.14 300z'/></svg>\"\nexport const caretUpCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up Circle</title><path d='M342.43 273.77l-74.13-89.09a16 16 0 00-24.6 0l-74.13 89.09A16 16 0 00181.86 300h148.28a16 16 0 0012.29-26.23z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const caretUpCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zM147.73 300L256 169.91 364.27 300z'/></svg>\"\nexport const caretUpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up</title><path d='M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z'/></svg>\"\nexport const caretUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up</title><path d='M448 368L256 144 64 368h384z'/></svg>\"\nexport const cart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cart</title><circle cx='176' cy='416' r='32'/><circle cx='400' cy='416' r='32'/><path d='M456.8 120.78a23.92 23.92 0 00-18.56-8.78H133.89l-6.13-34.78A16 16 0 00112 64H48a16 16 0 000 32h50.58l45.66 258.78A16 16 0 00160 368h256a16 16 0 000-32H173.42l-5.64-32h241.66A24.07 24.07 0 00433 284.71l28.8-144a24 24 0 00-5-19.93z'/></svg>\"\nexport const cartOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cart</title><circle cx='176' cy='416' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='400' cy='416' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 80h64l48 272h256' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 288h249.44a8 8 0 007.85-6.43l28.8-144a8 8 0 00-7.85-9.57H128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cartSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cart</title><circle cx='176' cy='416' r='32'/><circle cx='400' cy='416' r='32'/><path d='M167.78 304h261.34l38.4-192H133.89l-8.47-48H32v32h66.58l48 272H432v-32H173.42l-5.64-32z'/></svg>\"\nexport const cash = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cash</title><path d='M448 400H64a16 16 0 010-32h384a16 16 0 010 32zM416 448H96a16 16 0 010-32h320a16 16 0 010 32zM32 272H16v48a32 32 0 0032 32h48v-16a64.07 64.07 0 00-64-64z'/><path d='M480 240h16v-64h-16a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96zm-224 64a96 96 0 1196-96 96.11 96.11 0 01-96 96z'/><circle cx='256' cy='208' r='64'/><path d='M416 336v16h48a32 32 0 0032-32v-48h-16a64.07 64.07 0 00-64 64zM480 144h16V96a32 32 0 00-32-32h-48v16a64.07 64.07 0 0064 64zM96 80V64H48a32 32 0 00-32 32v48h16a64.07 64.07 0 0064-64z'/></svg>\"\nexport const cashOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cash</title><rect x='32' y='80' width='448' height='256' rx='16' ry='16' transform='rotate(180 256 208)' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M64 384h384M96 432h320' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='208' r='80' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M480 160a80 80 0 01-80-80M32 160a80 80 0 0080-80M480 256a80 80 0 00-80 80M32 256a80 80 0 0180 80' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cashSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cash</title><path d='M48 368h416v32H48zM80 416h352v32H80zM480 176a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96h16v-64zM256 304a96 96 0 1196-96 96.11 96.11 0 01-96 96z'/><path d='M96 80V64H16v80h16a64.07 64.07 0 0064-64zM32 272H16v80h80v-16a64.07 64.07 0 00-64-64zM480 144h16V64h-80v16a64.07 64.07 0 0064 64zM416 336v16h80v-80h-16a64.07 64.07 0 00-64 64z'/><circle cx='256' cy='208' r='64'/></svg>\"\nexport const cellular = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cellular</title><path d='M472 432h-48a24 24 0 01-24-24V104a24 24 0 0124-24h48a24 24 0 0124 24v304a24 24 0 01-24 24zM344 432h-48a24 24 0 01-24-24V184a24 24 0 0124-24h48a24 24 0 0124 24v224a24 24 0 01-24 24zM216 432h-48a24 24 0 01-24-24V248a24 24 0 0124-24h48a24 24 0 0124 24v160a24 24 0 01-24 24zM88 432H40a24 24 0 01-24-24v-96a24 24 0 0124-24h48a24 24 0 0124 24v96a24 24 0 01-24 24z'/></svg>\"\nexport const cellularOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cellular</title><rect x='416' y='96' width='64' height='320' rx='8' ry='8' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='288' y='176' width='64' height='240' rx='8' ry='8' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='160' y='240' width='64' height='176' rx='8' ry='8' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='32' y='304' width='64' height='112' rx='8' ry='8' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cellularSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cellular</title><path d='M496 432h-96V80h96zM368 432h-96V160h96zM240 432h-96V224h96zM112 432H16V288h96z'/></svg>\"\nexport const chatbox = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox</title><path d='M144 464a16 16 0 01-16-16v-64h-24a72.08 72.08 0 01-72-72V120a72.08 72.08 0 0172-72h304a72.08 72.08 0 0172 72v192a72.08 72.08 0 01-72 72H245.74l-91.49 76.29A16.05 16.05 0 01144 464z'/></svg>\"\nexport const chatboxEllipses = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox Ellipses</title><path d='M408 48H104a72.08 72.08 0 00-72 72v192a72.08 72.08 0 0072 72h24v64a16 16 0 0026.25 12.29L245.74 384H408a72.08 72.08 0 0072-72V120a72.08 72.08 0 00-72-72zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const chatboxEllipsesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox Ellipses</title><path d='M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='160' cy='216' r='32'/><circle cx='256' cy='216' r='32'/><circle cx='352' cy='216' r='32'/></svg>\"\nexport const chatboxEllipsesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox Ellipses</title><path d='M456 48H56a24 24 0 00-24 24v288a24 24 0 0024 24h72v80l117.74-80H456a24 24 0 0024-24V72a24 24 0 00-24-24zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zM456 80z'/></svg>\"\nexport const chatboxOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox</title><path d='M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chatboxSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbox</title><path d='M128 464v-80H56a24 24 0 01-24-24V72a24 24 0 0124-24h400a24 24 0 0124 24v288a24 24 0 01-24 24H245.74zM456 80z'/></svg>\"\nexport const chatbubble = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble</title><path d='M76.83 480a25.69 25.69 0 01-25.57-25.74 29.13 29.13 0 011.2-7.63L70.88 380c.77-2.46-.1-4.94-1.23-6.9l-.22-.4c-.08-.13-.46-.66-.73-1.05s-.58-.81-.86-1.22l-.19-.27A215.66 215.66 0 0132 251.37c-.18-57.59 22.35-112 63.46-153.28C138 55.47 194.9 32 255.82 32A227.4 227.4 0 01398 81.84c39.45 31.75 66.87 76 77.21 124.68a213.5 213.5 0 014.78 45c0 58.93-22.64 114.28-63.76 155.87-41.48 42-97.18 65.06-156.83 65.06-21 0-47.87-5.36-60.77-9-15.52-4.34-30.23-10-31.85-10.6a15.12 15.12 0 00-5.37-1 14.75 14.75 0 00-5.8 1.15l-.85.33-67.48 24.38A29.44 29.44 0 0176.83 480zm-2-31.8zM87.48 380z'/></svg>\"\nexport const chatbubbleEllipses = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble Ellipses</title><path d='M398 81.84A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l.19.27c.28.41.57.82.86 1.22s.65.92.73 1.05l.22.4c1.13 2 2 4.44 1.23 6.9l-18.42 66.66a29.13 29.13 0 00-1.2 7.63A25.69 25.69 0 0076.83 480a29.44 29.44 0 0010.45-2.29l67.49-24.36.85-.33a14.75 14.75 0 015.8-1.15 15.12 15.12 0 015.37 1c1.62.63 16.33 6.26 31.85 10.6 12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-45c-10.34-48.62-37.76-92.9-77.22-124.65zM87.48 380zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const chatbubbleEllipsesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble Ellipses</title><path d='M87.48 380c1.2-4.38-1.43-10.47-3.94-14.86a42.63 42.63 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.64 139.09 140.72 48 255.82 48 356.2 48 440 117.54 459.57 209.85a199 199 0 014.43 41.64c0 112.41-89.49 204.93-204.59 204.93-18.31 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.14 31.14 0 00-11.13-2.07 30.7 30.7 0 00-12.08 2.43L81.5 462.78a15.92 15.92 0 01-4.66 1.22 9.61 9.61 0 01-9.58-9.74 15.85 15.85 0 01.6-3.29z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='160' cy='256' r='32'/><circle cx='256' cy='256' r='32'/><circle cx='352' cy='256' r='32'/></svg>\"\nexport const chatbubbleEllipsesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble Ellipses</title><path d='M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const chatbubbleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble</title><path d='M87.49 380c1.19-4.38-1.44-10.47-3.95-14.86a44.86 44.86 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.65 139.09 140.73 48 255.83 48 356.21 48 440 117.54 459.58 209.85a199 199 0 014.42 41.64c0 112.41-89.49 204.93-204.59 204.93-18.3 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.09 31.09 0 00-11.12-2.07 30.71 30.71 0 00-12.09 2.43l-67.83 24.48a16 16 0 01-4.67 1.22 9.6 9.6 0 01-9.57-9.74 15.85 15.85 0 01.6-3.29z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chatbubbleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubble</title><path d='M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97z'/></svg>\"\nexport const chatbubbles = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubbles</title><path d='M60.44 389.17c0 .07 0 .2-.08.38.03-.12.05-.25.08-.38zM439.9 405.6a26.77 26.77 0 01-9.59-2l-56.78-20.13-.42-.17a9.88 9.88 0 00-3.91-.76 10.32 10.32 0 00-3.62.66c-1.38.52-13.81 5.19-26.85 8.77-7.07 1.94-31.68 8.27-51.43 8.27-50.48 0-97.68-19.4-132.89-54.63A183.38 183.38 0 01100.3 215.1a175.9 175.9 0 014.06-37.58c8.79-40.62 32.07-77.57 65.55-104A194.76 194.76 0 01290.3 32c52.21 0 100.86 20 137 56.18 34.16 34.27 52.88 79.33 52.73 126.87a177.86 177.86 0 01-30.3 99.15l-.19.28-.74 1c-.17.23-.34.45-.5.68l-.15.27a21.63 21.63 0 00-1.08 2.09l15.74 55.94a26.42 26.42 0 011.12 7.11 24 24 0 01-24.03 24.03z'/><path d='M299.87 425.39a15.74 15.74 0 00-10.29-8.1c-5.78-1.53-12.52-1.27-17.67-1.65a201.78 201.78 0 01-128.82-58.75A199.21 199.21 0 0186.4 244.16C85 234.42 85 232 85 232a16 16 0 00-28-10.58s-7.88 8.58-11.6 17.19a162.09 162.09 0 0011 150.06C59 393 59 395 58.42 399.5c-2.73 14.11-7.51 39-10 51.91a24 24 0 008 22.92l.46.39A24.34 24.34 0 0072 480a23.42 23.42 0 009-1.79l53.51-20.65a8.05 8.05 0 015.72 0c21.07 7.84 43 12 63.78 12a176 176 0 0074.91-16.66c5.46-2.56 14-5.34 19-11.12a15 15 0 001.95-16.39z'/></svg>\"\nexport const chatbubblesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubbles</title><path d='M431 320.6c-1-3.6 1.2-8.6 3.3-12.2a33.68 33.68 0 012.1-3.1A162 162 0 00464 215c.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9a160.7 160.7 0 00-3.7 34.2c0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7s22.5-7.2 25.4-8.3a26.44 26.44 0 019.3-1.7 26 26 0 0110.1 2l56.7 20.1a13.52 13.52 0 003.9 1 8 8 0 008-8 12.85 12.85 0 00-.5-2.7z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M66.46 232a146.23 146.23 0 006.39 152.67c2.31 3.49 3.61 6.19 3.21 8s-11.93 61.87-11.93 61.87a8 8 0 002.71 7.68A8.17 8.17 0 0072 464a7.26 7.26 0 002.91-.6l56.21-22a15.7 15.7 0 0112 .2c18.94 7.38 39.88 12 60.83 12A159.21 159.21 0 00284 432.11' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chatbubblesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chatbubbles</title><path d='M448 312.43c.77-1.11 1.51-2.26 2.27-3.34A174.55 174.55 0 00480 211.85C480.32 112.55 396.54 32 292.94 32c-90.36 0-165.74 61.49-183.4 143.12a172.81 172.81 0 00-4 36.83c0 99.4 80.56 182.11 184.16 182.11 16.47 0 38.66-4.95 50.83-8.29s24.23-7.75 27.35-8.94 8-2.41 11.89-1.29l77.42 22.38a4 4 0 005-4.86l-17.72-67.49c-1.23-5-1.39-5.94 3.53-13.14z'/><path d='M312.54 415.38a165.32 165.32 0 01-23.26 2.05c-42.43 0-82.5-11.2-115-32.2a184.09 184.09 0 01-53.09-49.32c-26.08-34.57-40.3-78.51-40.3-124.49 0-3.13.11-6.14.22-9.16a4.34 4.34 0 00-7.54-3.12 158.76 158.76 0 00-14.86 195.24c2.47 3.77 3.87 6.68 3.44 8.62l-14.09 72.26a4 4 0 005.22 4.53l68-24.24a16.85 16.85 0 0112.92.22c20.35 8 42.86 12.92 65.37 12.92a169.45 169.45 0 00116.63-46 4.29 4.29 0 00-3.66-7.31z'/></svg>\"\nexport const checkbox = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkbox</title><path d='M400 48H112a64.07 64.07 0 00-64 64v288a64.07 64.07 0 0064 64h288a64.07 64.07 0 0064-64V112a64.07 64.07 0 00-64-64zm-35.75 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z'/></svg>\"\nexport const checkboxOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkbox</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 176L217.6 336 160 272' class='ionicon-fill-none ionicon-stroke-width'/><rect x='64' y='64' width='384' height='384' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkboxSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkbox</title><path d='M48 48v416h416V48zm170 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z'/></svg>\"\nexport const checkmark = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark</title><path stroke-linecap='round' stroke-linejoin='round' d='M416 128L192 384l-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm108.25 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z'/></svg>\"\nexport const checkmarkCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M352 176L217.6 336 160 272' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-38 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z'/></svg>\"\nexport const checkmarkDone = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done</title><path stroke-linecap='round' stroke-linejoin='round' d='M464 128L240 384l-96-96M144 384l-96-96M368 128L232 284' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkDoneCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done Circle</title><path d='M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-16.79 192.47l51.55-59a16 16 0 0124.1 21.06l-51.55 59a16 16 0 11-24.1-21.06zm-38.86 90.85a16 16 0 01-22.62 0l-47.95-48a16 16 0 1122.64-22.62l48 48a16 16 0 01-.07 22.62zm176.8-128.79l-111.88 128a16 16 0 01-11.51 5.47h-.54a16 16 0 01-11.32-4.69l-47.94-48a16 16 0 1122.64-22.62l29.8 29.83a8 8 0 0011.68-.39l95-108.66a16 16 0 0124.1 21.06z'/></svg>\"\nexport const checkmarkDoneCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M368 192L256.13 320l-47.95-48M191.95 320L144 272M305.71 192l-51.55 59' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkDoneCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48.19 121.42l24.1 21.06-73.61 84.1-24.1-23.06zM191.93 342.63L121.37 272 144 249.37 214.57 320zm65 .79L185.55 272l22.64-22.62 47.16 47.21 111.13-127.17 24.1 21.06z'/></svg>\"\nexport const checkmarkDoneOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done</title><path stroke-linecap='round' stroke-linejoin='round' d='M464 128L240 384l-96-96M144 384l-96-96M368 128L232 284' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkDoneSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark Done</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='44' d='M465 127L241 384l-92-92M140 385l-93-93M363 127L236 273' class='ionicon-fill-none'/></svg>\"\nexport const checkmarkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark</title><path stroke-linecap='round' stroke-linejoin='round' d='M416 128L192 384l-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const checkmarkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='44' d='M416 128L192 384l-96-96' class='ionicon-fill-none'/></svg>\"\nexport const chevronBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronBackCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm35.31 292.69a16 16 0 11-22.62 22.62l-96-96a16 16 0 010-22.62l96-96a16 16 0 0122.62 22.62L206.63 256z'/></svg>\"\nexport const chevronBackCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back Circle</title><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M296 352l-96-96 96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chevronBackCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm62.63 304L296 374.63 177.37 256 296 137.37 318.63 160l-96 96z'/></svg>\"\nexport const chevronBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>\"\nexport const chevronDownCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-100.69-28.69l-96 96a16 16 0 01-22.62 0l-96-96a16 16 0 0122.62-22.62L256 289.37l84.69-84.68a16 16 0 0122.62 22.62z'/></svg>\"\nexport const chevronDownCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down Circle</title><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M352 216l-96 96-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chevronDownCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down Circle</title><path d='M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-96-270.63l96 96 96-96L374.63 216 256 334.63 137.37 216z'/></svg>\"\nexport const chevronDownOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>\"\nexport const chevronDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>\"\nexport const chevronForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronForwardCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward Circle</title><path d='M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm257.37 0l-84.68-84.69a16 16 0 0122.62-22.62l96 96a16 16 0 010 22.62l-96 96a16 16 0 01-22.62-22.62z'/></svg>\"\nexport const chevronForwardCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward Circle</title><path d='M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M216 352l96-96-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chevronForwardCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-40 326.63L193.37 352l96-96-96-96L216 137.37 334.63 256z'/></svg>\"\nexport const chevronForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronUp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 328l144-144 144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronUpCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm107.31 259.31a16 16 0 01-22.62 0L256 222.63l-84.69 84.68a16 16 0 01-22.62-22.62l96-96a16 16 0 0122.62 0l96 96a16 16 0 010 22.62z'/></svg>\"\nexport const chevronUpCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 296l-96-96-96 96' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const chevronUpCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 270.63l-96-96-96 96L137.37 296 256 177.37 374.63 296z'/></svg>\"\nexport const chevronUpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 328l144-144 144 144' class='ionicon-fill-none'/></svg>\"\nexport const chevronUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Up</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M112 328l144-144 144 144' class='ionicon-fill-none'/></svg>\"\nexport const clipboard = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Clipboard</title><path d='M368 48h-11.41a8 8 0 01-7.44-5.08A42.18 42.18 0 00309.87 16H202.13a42.18 42.18 0 00-39.28 26.92 8 8 0 01-7.44 5.08H144a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V112a64 64 0 00-64-64zm-48.13 64H192.13a16 16 0 010-32h127.74a16 16 0 010 32z'/></svg>\"\nexport const clipboardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Clipboard</title><path d='M336 64h32a48 48 0 0148 48v320a48 48 0 01-48 48H144a48 48 0 01-48-48V112a48 48 0 0148-48h32' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='176' y='32' width='160' height='64' rx='26.13' ry='26.13' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const clipboardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Clipboard</title><path d='M420 48h-68V28a12 12 0 00-12-12H172a12 12 0 00-12 12v20H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V60a12 12 0 00-12-12zm-84.13 64H176.13V80h159.74z'/></svg>\"\nexport const close = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z'/></svg>\"\nexport const closeCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 11-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 01-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0122.62-22.62L256 233.37l52.69-52.68a16 16 0 0122.62 22.62L278.63 256z'/></svg>\"\nexport const closeCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M320 320L192 192M192 320l128-128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const closeCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm86.63 272L320 342.63l-64-64-64 64L169.37 320l64-64-64-64L192 169.37l64 64 64-64L342.63 192l-64 64z'/></svg>\"\nexport const closeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path stroke-linecap='round' stroke-linejoin='round' d='M368 368L144 144M368 144L144 368' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const closeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M400 145.49L366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49z'/></svg>\"\nexport const cloud = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud</title><path d='M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 18.11-16.53 42.22-28.25 69.18-33.87a16 16 0 0011.37-9.15 156.24 156.24 0 0142.05-56C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c24.73 23.81 41.5 55.28 49.18 92a16 16 0 0012.12 12.39C470 237.42 512 270.43 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z'/></svg>\"\nexport const cloudCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H193.05c-31.53 0-57.56-25.58-57-57.11.53-31.74 23.68-49.95 51.35-54.3a7.92 7.92 0 006.16-5C202.07 189.22 223.63 168 256 168c33.17 0 61.85 22.49 70.14 60.21a17.75 17.75 0 0013.18 13.43C357.79 246.05 376 259.21 376 284c0 30.28-22.5 44-50 44z'/></svg>\"\nexport const cloudCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Circle</title><path d='M333.88 240.59a8 8 0 01-6.66-6.66C320.68 192.78 290.82 168 256 168c-32.37 0-53.93 21.22-62.48 43.58a7.92 7.92 0 01-6.16 5c-27.67 4.35-50.82 22.56-51.35 54.3-.52 31.53 25.51 57.11 57 57.11H326c27.5 0 50-13.72 50-44 0-27.22-22-40.41-42.12-43.4z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H196c-33 0-60-23-60-56 0-34.21 26-53 56-56 7.28-23.9 29.5-48 64-48 36.5 0 67.55 27.23 72 72 21.49 1.12 48 14.09 48 44 0 30.28-22.5 44-50 44z'/></svg>\"\nexport const cloudDone = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Done</title><path d='M424.44 227.25a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.24 156.24 0 00-42 56 16 16 0 01-11.37 9.15c-27 5.62-51.07 17.34-69.18 33.87C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-57.57-42-90.58-87.56-100.75zm-95.2-8.94l-107.8 128a16 16 0 01-12 5.69h-.27a16 16 0 01-11.88-5.28l-45.9-50.87c-5.77-6.39-5.82-16.33.3-22.4a16 16 0 0123.16.63l33.9 37.58 96-114a16 16 0 1124.48 20.62z'/></svg>\"\nexport const cloudDoneOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Done</title><path d='M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M317 208L209.2 336 163 284.8' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudDoneSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Done</title><path d='M414.25 225.36c-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.42 156.42 0 00-45.22 63.61c-30.26 4.81-57.45 17.18-77.38 35.37C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64zm-204.63 135l-69.22-76.7 23.76-21.44 44.62 49.46 106.29-126.2 24.47 20.61z'/></svg>\"\nexport const cloudDownload = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Download</title><path d='M472.7 189.5c-13.26-8.43-29.83-14.56-48.08-17.93A16 16 0 01412 159.28c-7.86-34.51-24.6-64.13-49.15-86.58C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a150.13 150.13 0 00-41.95 52.83A16.05 16.05 0 01108 125.8c-27.13 4.9-50.53 14.68-68.41 28.7C13.7 174.83 0 203.56 0 237.6 0 305 55.93 352 136 352h104V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v128h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 425.42l-36.7-36.64a16 16 0 00-22.6 22.65l64 63.89a16 16 0 0022.6 0l64-63.89a16 16 0 00-22.6-22.65L272 425.42V352h-32z'/></svg>\"\nexport const cloudDownloadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Download</title><path d='M320 336h76c55 0 100-21.21 100-75.6s-53-73.47-96-75.6C391.11 99.74 329 48 256 48c-69 0-113.44 45.79-128 91.2-60 5.7-112 35.88-112 98.4S70 336 136 336h56M192 400.1l64 63.9 64-63.9M256 224v224.03' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudDownloadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Download</title><path d='M472.7 189.5c-15.76-10-36.21-16.79-58.59-19.54-6.65-39.1-24.22-72.52-51.27-97.26C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a149.7 149.7 0 00-45.29 60.42c-30.67 4.32-57 14.61-76.71 30C13.7 174.83 0 203.56 0 237.6 0 305 55.92 352 136 352h104V208h32v144h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 419.42L191.98 371l-22.61 23L256 480l86.63-86-22.61-23L272 419.42V352h-32v67.42z'/></svg>\"\nexport const cloudOffline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Offline</title><path d='M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM38.72 196.78C13.39 219.88 0 251.42 0 288c0 36 14.38 68.88 40.49 92.59C65.64 403.43 99.56 416 136 416h192.8a8 8 0 005.66-13.66L100.88 168.76a8 8 0 00-8-2C72 173.15 53.4 183.38 38.72 196.78zM476.59 391.23C499.76 372.78 512 345.39 512 312c0-57.57-42-90.58-87.56-100.75a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 64c-31.12 0-60.12 9-84.62 26.1a8 8 0 00-1.14 12.26L461.68 393.8a8 8 0 0010.2.93q2.43-1.68 4.71-3.5z'/></svg>\"\nexport const cloudOfflineOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Offline</title><path d='M93.72 183.25C49.49 198.05 16 233.1 16 288c0 66 54 112 120 112h184.37M467.82 377.74C485.24 363.3 496 341.61 496 312c0-59.82-53-85.76-96-88-8.89-89.54-71-144-144-144-26.16 0-48.79 6.93-67.6 18.14' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M448 448L64 64' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudOfflineSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Offline</title><path d='M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zM38.72 212.78C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h228.12L110.51 178.39c-28.01 5.39-53.09 17.33-71.79 34.39zM476.59 407.23C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-30.47 0-58.9 8.62-83.07 25l302.82 302.86c.25-.21.57-.41.84-.63z'/></svg>\"\nexport const cloudOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud</title><path d='M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud</title><path d='M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 19.93-18.19 47.12-30.56 77.38-35.37a156.42 156.42 0 0145.22-63.61C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c27.06 26.06 44.59 61.28 51.11 102.46C463.56 232.66 512 266.15 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z'/></svg>\"\nexport const cloudUpload = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Upload</title><path d='M473.66 210c-14-10.38-31.2-18-49.36-22.11a16.11 16.11 0 01-12.19-12.22c-7.8-34.75-24.59-64.55-49.27-87.13C334.15 62.25 296.21 47.79 256 47.79c-35.35 0-68 11.08-94.37 32.05a150.07 150.07 0 00-42.06 53 16 16 0 01-11.31 8.87c-26.75 5.4-50.9 16.87-69.34 33.12C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-36.69 36.69a16 16 0 01-23.16-.56c-5.8-6.37-5.24-16.3.85-22.39l63.69-63.68a16 16 0 0122.62 0L331 244.14c6.28 6.29 6.64 16.6.39 22.91a16 16 0 01-22.68.06L272 230.42v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 448.21a16 16 0 1032 0v-64.42h-32z'/></svg>\"\nexport const cloudUploadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Upload</title><path d='M320 367.79h76c55 0 100-29.21 100-83.6s-53-81.47-96-83.6c-8.89-85.06-71-136.8-144-136.8-69 0-113.44 45.79-128 91.2-60 5.7-112 43.88-112 106.4s54 106.4 120 106.4h56' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M320 255.79l-64-64-64 64M256 448.21V207.79' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudUploadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloud Upload</title><path d='M473.66 210c-16.56-12.3-37.7-20.75-59.52-24-6.62-39.18-24.21-72.67-51.3-97.45-28.69-26.3-66.63-40.76-106.84-40.76-35.35 0-68 11.08-94.37 32.05a149.61 149.61 0 00-45.32 60.49c-29.94 4.6-57.12 16.68-77.39 34.55C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-48 48-22.63-22.63L256 169.17l86.63 86.62L320 278.42l-48-48v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 383.79h32v80.41h-32z'/></svg>\"\nexport const cloudy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy</title><path d='M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-57.57 42-90.58 87.56-100.75a16 16 0 0012.12-12.39c7.68-36.68 24.45-68.15 49.18-92A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.24 156.24 0 0142.05 56 16 16 0 0011.37 9.16c27 5.61 51.07 17.33 69.18 33.85C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z'/></svg>\"\nexport const cloudyNight = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy Night</title><path d='M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 12.1-9.26 27.2-16.17 43.33-20.05a16 16 0 0011.81-12.21c7.15-32.54 22.25-60.49 44.33-81.75A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.22 142.22 0 0137.65 49.54 16.06 16.06 0 0011.12 9c24 5.22 45.42 15.78 61.62 30.56C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zM510.53 209.79a16.34 16.34 0 00-1.35-15.8 16 16 0 00-19.57-5.58c-10.7 4.65-24.48 7.17-39.92 7.28-55.3.4-101.38-45-101.38-100.31 0-15.75 2.48-29.84 7.18-40.76a16.3 16.3 0 00-1.85-16.33 16 16 0 00-19.1-5c-38.63 16.82-66.18 51.51-75.27 92.54a4 4 0 003.19 4.79 162.54 162.54 0 0176.31 35.59 172.58 172.58 0 0139.64 47.84 16.35 16.35 0 009.54 7.64c23.89 7.17 45.1 18.9 62.25 34.54q4.44 4.07 8.48 8.42a4 4 0 005.16.57 129.12 129.12 0 0046.69-55.43z'/></svg>\"\nexport const cloudyNightOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy Night</title><path d='M388.31 272c47.75 0 89.77-27.77 107.69-68.92-14.21 6.18-30.9 8.61-47.38 8.61A116.31 116.31 0 01332.31 95.38c0-16.48 2.43-33.17 8.61-47.38C299.77 65.92 272 107.94 272 155.69a116.31 116.31 0 003.44 28.18' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudyNightSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy Night</title><path d='M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 14.55-11.13 33.41-18.87 53.2-22 6.06-36.92 21.92-68.53 46.29-92A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.41 142.41 0 0140.83 57.05c27.18 4.48 51.59 15.68 69.56 32.08C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zM381.55 219.93c26.5 6.93 50 19.32 68.65 36.34q3.89 3.56 7.47 7.34c25.41-18.4 45.47-44.92 54.33-71.38-16.24 7.07-35.31 9.85-54.15 9.85-73.42 0-115.93-42.51-115.93-115.93 0-18.84 2.78-37.91 9.85-54.15-40.41 13.53-81 53.19-92.52 98.13a162.61 162.61 0 0179.52 36.12 173 173 0 0142.78 53.68z'/></svg>\"\nexport const cloudyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy</title><path d='M100.18 241.19a15.93 15.93 0 0013.37-13.25C126.6 145.59 186.34 96 256 96c64.69 0 107.79 42.36 124.92 87a16.11 16.11 0 0012.53 10.18C449.36 202.06 496 239.21 496 304c0 66-54 112-120 112H116c-55 0-100-27.44-100-88 0-54.43 43.89-80.81 84.18-86.81z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cloudySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cloudy</title><path d='M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-61.85 48.44-95.34 97.75-102.64 6.52-41.18 24-76.4 51.11-102.46A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.42 156.42 0 0145.22 63.61c30.26 4.81 57.45 17.18 77.38 35.36C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z'/></svg>\"\nexport const code = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code</title><path d='M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zM352 389a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389z'/></svg>\"\nexport const codeDownload = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Download</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='42' d='M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03' class='ionicon-fill-none'/></svg>\"\nexport const codeDownloadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Download</title><path stroke-linecap='round' stroke-linejoin='round' d='M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const codeDownloadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Download</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='42' d='M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03' class='ionicon-fill-none'/></svg>\"\nexport const codeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code</title><path stroke-linecap='round' stroke-linejoin='round' d='M160 368L32 256l128-112M352 368l128-112-128-112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const codeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code</title><path d='M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zM350.02 397.63l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63z'/></svg>\"\nexport const codeSlash = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Slash</title><path d='M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zM352 389a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389zM208 437a21 21 0 01-20.12-27l96-320a21 21 0 1140.23 12l-96 320A21 21 0 01208 437z'/></svg>\"\nexport const codeSlashOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Slash</title><path stroke-linecap='round' stroke-linejoin='round' d='M160 368L32 256l128-112M352 368l128-112-128-112M304 96l-96 320' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const codeSlashSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Slash</title><path d='M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zM350.02 397.63l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63zM222.15 442L182 430.08 289.85 70 330 81.92 222.15 442z'/></svg>\"\nexport const codeWorking = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Working</title><circle cx='256' cy='256' r='26' stroke-miterlimit='10' stroke-width='10'/><circle cx='346' cy='256' r='26' stroke-miterlimit='10' stroke-width='10'/><circle cx='166' cy='256' r='26' stroke-miterlimit='10' stroke-width='10'/><path stroke-linecap='round' stroke-linejoin='round' stroke-width='42' d='M160 368L32 256l128-112M352 368l128-112-128-112' class='ionicon-fill-none'/></svg>\"\nexport const codeWorkingOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Working</title><circle cx='256' cy='256' r='26'/><circle cx='346' cy='256' r='26'/><circle cx='166' cy='256' r='26'/><path stroke-linecap='round' stroke-linejoin='round' d='M160 368L32 256l128-112M352 368l128-112-128-112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const codeWorkingSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Code Working</title><circle cx='256' cy='256' r='26' stroke-linecap='square' stroke-miterlimit='10' stroke-width='10'/><circle cx='346' cy='256' r='26' stroke-linecap='square' stroke-miterlimit='10' stroke-width='10'/><circle cx='166' cy='256' r='26' stroke-linecap='square' stroke-miterlimit='10' stroke-width='10'/><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='42' d='M160 368L32 256l128-112M352 368l128-112-128-112' class='ionicon-fill-none'/></svg>\"\nexport const cog = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cog</title><path d='M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.51 5.51 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.64a10.42 10.42 0 00.39-13.76l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-5-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.09-5.89a10.3 10.3 0 00-13.45 2.83L325 96.28a4.6 4.6 0 01-5.6 1.72c-.61-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.46 5.46 0 01-5.36 3.65h-9.75a5.5 5.5 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.47 2a10.46 10.46 0 00-8.56 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.29.89-7.26 2.79-9.52 3.63-2 .72-4.18-.07-5.94-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.4 10.4 0 00-13.61 2L93 126.63a10.31 10.31 0 00.37 13.75L110.45 160a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.38 10.38 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.24 1.27c-.52 2.79-1 5.43-1.46 8.24a5.48 5.48 0 01-4.46 4.64l-25.69 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.49 5.49 0 015.82 2.81c1.5 2.8 3.11 5.63 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.63a10.41 10.41 0 00-.5 13.77l7.41 8.91a10.23 10.23 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.47 5.47 0 011.73 6.21l-9.27 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.4-1.73 3.6-2.5 5.23-1.84 3.48 1.44 5.81 2.25 9.94 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.43 10.43 0 0011.75-7.17l8.5-24.77a5.45 5.45 0 015.36-3.65h9.75a5.49 5.49 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.54-2.33 8.91-3.25l.6-.23c3.1-1.07 4.6.23 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.55 5.55 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.37 10.37 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.24-1.27c.52-2.79 1-5.43 1.46-8.24a5.48 5.48 0 014.46-4.64l25.69-4.14a10.43 10.43 0 009.18-10.28v-11.71zm-282.45 94a15.8 15.8 0 01-25.47 2.66 135.06 135.06 0 01.42-181.65 15.81 15.81 0 0125.5 2.77l45.65 80.35a15.85 15.85 0 010 15.74zM256 391.11a134.75 134.75 0 01-28.31-3 15.81 15.81 0 01-10.23-23.36l46-80a15.79 15.79 0 0113.7-7.93h92.14a15.8 15.8 0 0115.1 20.53c-17.49 54.32-68.4 93.76-128.4 93.76zm7.51-163.9L218 147.07a15.81 15.81 0 0110.31-23.3 134 134 0 0127.69-2.88c60 0 110.91 39.44 128.37 93.79a15.8 15.8 0 01-15.1 20.53h-92a15.78 15.78 0 01-13.76-8z'/></svg>\"\nexport const cogOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cog</title><path d='M456.7 242.27l-26.08-4.2a8 8 0 01-6.6-6.82c-.5-3.2-1-6.41-1.7-9.51a8.08 8.08 0 013.9-8.62l23.09-12.82a8.05 8.05 0 003.9-9.92l-4-11a7.94 7.94 0 00-9.4-5l-25.89 5a8 8 0 01-8.59-4.11q-2.25-4.2-4.8-8.41a8.16 8.16 0 01.7-9.52l17.29-19.94a8 8 0 00.3-10.62l-7.49-9a7.88 7.88 0 00-10.5-1.51l-22.69 13.63a8 8 0 01-9.39-.9c-2.4-2.11-4.9-4.21-7.4-6.22a8 8 0 01-2.5-9.11l9.4-24.75A8 8 0 00365 78.77l-10.2-5.91a8 8 0 00-10.39 2.21l-16.64 20.84a7.15 7.15 0 01-8.5 2.5s-5.6-2.3-9.8-3.71A8 8 0 01304 87l.4-26.45a8.07 8.07 0 00-6.6-8.42l-11.59-2a8.07 8.07 0 00-9.1 5.61l-8.6 25.05a8 8 0 01-7.79 5.41h-9.8a8.07 8.07 0 01-7.79-5.41l-8.6-25.05a8.07 8.07 0 00-9.1-5.61l-11.59 2a8.07 8.07 0 00-6.6 8.42l.4 26.45a8 8 0 01-5.49 7.71c-2.3.9-7.3 2.81-9.7 3.71-2.8 1-6.1.2-8.8-2.91l-16.51-20.34A8 8 0 00156.75 73l-10.2 5.91a7.94 7.94 0 00-3.3 10.09l9.4 24.75a8.06 8.06 0 01-2.5 9.11c-2.5 2-5 4.11-7.4 6.22a8 8 0 01-9.39.9L111 116.14a8 8 0 00-10.5 1.51l-7.49 9a8 8 0 00.3 10.62l17.29 19.94a8 8 0 01.7 9.52q-2.55 4-4.8 8.41a8.11 8.11 0 01-8.59 4.11l-25.89-5a8 8 0 00-9.4 5l-4 11a8.05 8.05 0 003.9 9.92L85.58 213a7.94 7.94 0 013.9 8.62c-.6 3.2-1.2 6.31-1.7 9.51a8.08 8.08 0 01-6.6 6.82l-26.08 4.2a8.09 8.09 0 00-7.1 7.92v11.72a7.86 7.86 0 007.1 7.92l26.08 4.2a8 8 0 016.6 6.82c.5 3.2 1 6.41 1.7 9.51a8.08 8.08 0 01-3.9 8.62L62.49 311.7a8.05 8.05 0 00-3.9 9.92l4 11a7.94 7.94 0 009.4 5l25.89-5a8 8 0 018.59 4.11q2.25 4.2 4.8 8.41a8.16 8.16 0 01-.7 9.52l-17.29 19.96a8 8 0 00-.3 10.62l7.49 9a7.88 7.88 0 0010.5 1.51l22.69-13.63a8 8 0 019.39.9c2.4 2.11 4.9 4.21 7.4 6.22a8 8 0 012.5 9.11l-9.4 24.75a8 8 0 003.3 10.12l10.2 5.91a8 8 0 0010.39-2.21l16.79-20.64c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.61a8 8 0 015.49 7.71l-.4 26.45a8.07 8.07 0 006.6 8.42l11.59 2a8.07 8.07 0 009.1-5.61l8.6-25a8 8 0 017.79-5.41h9.8a8.07 8.07 0 017.79 5.41l8.6 25a8.07 8.07 0 009.1 5.61l11.59-2a8.07 8.07 0 006.6-8.42l-.4-26.45a8 8 0 015.49-7.71c4.2-1.41 7-2.51 9.6-3.51s5.8-1 8.3 2.1l17 20.94A8 8 0 00355 439l10.2-5.91a7.93 7.93 0 003.3-10.12l-9.4-24.75a8.08 8.08 0 012.5-9.12c2.5-2 5-4.1 7.4-6.21a8 8 0 019.39-.9L401 395.66a8 8 0 0010.5-1.51l7.49-9a8 8 0 00-.3-10.62l-17.29-19.94a8 8 0 01-.7-9.52q2.55-4.05 4.8-8.41a8.11 8.11 0 018.59-4.11l25.89 5a8 8 0 009.4-5l4-11a8.05 8.05 0 00-3.9-9.92l-23.09-12.82a7.94 7.94 0 01-3.9-8.62c.6-3.2 1.2-6.31 1.7-9.51a8.08 8.08 0 016.6-6.82l26.08-4.2a8.09 8.09 0 007.1-7.92V250a8.25 8.25 0 00-7.27-7.73zM256 112a143.82 143.82 0 01139.38 108.12A16 16 0 01379.85 240H274.61a16 16 0 01-13.91-8.09l-52.1-91.71a16 16 0 019.85-23.39A146.94 146.94 0 01256 112zM112 256a144 144 0 0143.65-103.41 16 16 0 0125.17 3.47L233.06 248a16 16 0 010 15.87l-52.67 91.7a16 16 0 01-25.18 3.36A143.94 143.94 0 01112 256zm144 144a146.9 146.9 0 01-38.19-4.95 16 16 0 01-9.76-23.44l52.58-91.55a16 16 0 0113.88-8H379.9a16 16 0 0115.52 19.88A143.84 143.84 0 01256 400z'/></svg>\"\nexport const cogSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cog</title><path d='M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.5 5.5 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.63a10.44 10.44 0 00.39-13.77l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-4.95-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.08-5.85a10.31 10.31 0 00-13.46 2.83L325 96.28a4.58 4.58 0 01-5.6 1.72c-.62-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.42 5.42 0 01-5.36 3.65h-9.75a5.53 5.53 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.46 2a10.46 10.46 0 00-8.57 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.28.89-7.26 2.78-9.51 3.63-2 .72-4.19-.07-6-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.39 10.39 0 00-13.61 2l-7.4 8.9a10.32 10.32 0 00.37 13.76l17.09 19.6a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.37 10.37 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.23 1.24c-.53 2.8-1 5.45-1.47 8.27a5.48 5.48 0 01-4.46 4.64l-25.7 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.5 5.5 0 015.82 2.81c1.5 2.8 3.12 5.64 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.64a10.41 10.41 0 00-.5 13.76l7.41 8.91a10.24 10.24 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.45 5.45 0 011.72 6.21l-9.26 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.39-1.73 3.6-2.5 5.24-1.84 3.47 1.44 5.8 2.25 9.93 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.44 10.44 0 0011.75-7.17l8.5-24.77a5.48 5.48 0 015.36-3.65h9.75a5.52 5.52 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.53-2.33 8.91-3.24l.6-.24c3.06-1.06 4.53.14 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.56 5.56 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.36 10.36 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.23-1.25c.53-2.8 1-5.44 1.47-8.26a5.48 5.48 0 014.46-4.64l25.7-4.14a10.43 10.43 0 009.17-10.28v-11.71zM171.59 361.27a135.12 135.12 0 01.5-210.94l60 105.61zM256 391.11a133.75 133.75 0 01-48.49-9.05L268 276.79h121.22C379.21 341.45 323.29 391.11 256 391.11zm12.06-155.9l-59.95-105.5a133.87 133.87 0 0147.89-8.82c67.29 0 123.21 49.66 133.22 114.32z'/></svg>\"\nexport const colorFill = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Fill</title><path d='M416 480c-35.29 0-64-29.11-64-64.88 0-33.29 28.67-65.4 44.08-82.64 1.87-2.1 3.49-3.91 4.68-5.31a19.94 19.94 0 0130.55 0c1.13 1.31 2.63 3 4.36 4.93 15.5 17.3 44.33 49.51 44.33 83.05 0 35.74-28.71 64.85-64 64.85zM398.23 276.64L166.89 47.22a52.1 52.1 0 00-73.6 0l-4.51 4.51a53.2 53.2 0 00-15.89 37.33A51.66 51.66 0 0088.14 126l41.51 41.5L45 252a44.52 44.52 0 00-13 32 42.81 42.81 0 0013.5 30.84l131.24 126a44 44 0 0061.08-.18l124.11-120.28a15.6 15.6 0 018.23-4.29 69.21 69.21 0 0111.93-.86h.3a22.53 22.53 0 0015.84-38.59zM152.29 144.85l-41.53-41.52a20 20 0 010-28.34l5.16-5.15a20.07 20.07 0 0128.39 0L186 111.21z'/></svg>\"\nexport const colorFillOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Fill</title><path d='M419.1 337.45a3.94 3.94 0 00-6.1 0c-10.5 12.4-45 46.55-45 77.66 0 27 21.5 48.89 48 48.89h0c26.5 0 48-22 48-48.89 0-31.11-34.3-65.26-44.9-77.66zM387 287.9L155.61 58.36a36 36 0 00-51 0l-5.15 5.15a36 36 0 000 51l52.89 52.89 57-57L56.33 263.2a28 28 0 00.3 40l131.2 126a28.05 28.05 0 0038.9-.1c37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3a6.53 6.53 0 004.57-11.2z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const colorFillSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Fill</title><path d='M416 320s-64 48-64 99.84c0 33.28 28.67 60.16 64 60.16s64-27 64-60.16C480 368 416 320 416 320zM144 32l-76 76 70 70L32 280l176 184 152.8-148.3L416 304zm24 116l-39.6-41 15.88-15.89L184 132z'/></svg>\"\nexport const colorFilter = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Filter</title><path d='M253.72 202.53a4 4 0 004.56 0 151.88 151.88 0 01128.44-20.41 4 4 0 005.15-4C388.8 105.86 329 48 256 48s-132.8 57.86-135.87 130.15a4 4 0 005.15 4 151.88 151.88 0 01128.44 20.41zM405.31 212.56a152.53 152.53 0 01-83.08 108.23 4 4 0 00-2.28 3.69c0 1.17.05 2.34.05 3.52a151.58 151.58 0 01-47.15 109.94 4 4 0 00.64 6.31A135.24 135.24 0 00344 464c72.07 0 134.1-60.28 136-132.34a136.07 136.07 0 00-68.76-121.87 4 4 0 00-5.93 2.77z'/><path d='M390.57 203.67a4 4 0 00-2.69-4.4 135.84 135.84 0 00-114.4 12.49 4 4 0 00-.64 6.29 151.92 151.92 0 0144.47 81.4 4 4 0 005.94 2.72 136.29 136.29 0 0067.32-98.5zM192 328c0-1.18 0-2.35.05-3.52a4 4 0 00-2.28-3.69 152.53 152.53 0 01-83.08-108.23 4 4 0 00-5.88-2.77 136.07 136.07 0 00-68.76 121.87C34 403.72 96 464 168.05 464a135.24 135.24 0 0070.46-19.75 4 4 0 00.64-6.31A151.58 151.58 0 01192 328z'/><path d='M168 192a135.34 135.34 0 00-43.88 7.27 4 4 0 00-2.69 4.4 136.29 136.29 0 0067.32 98.5 4 4 0 005.94-2.72 151.92 151.92 0 0144.47-81.4 4 4 0 00-.64-6.29A135.18 135.18 0 00168 192zM256 336a151.44 151.44 0 01-42.72-6.12 4 4 0 00-5.15 4 135.69 135.69 0 0045.18 95.4 4 4 0 005.38 0 135.69 135.69 0 0045.18-95.4 4 4 0 00-5.15-4A151.44 151.44 0 01256 336zM302.57 308.33a135.94 135.94 0 00-43.87-81.58 4.06 4.06 0 00-5.4 0 135.94 135.94 0 00-43.87 81.58 4 4 0 002.69 4.4 136.06 136.06 0 0087.76 0 4 4 0 002.69-4.4z'/></svg>\"\nexport const colorFilterOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Filter</title><circle cx='256' cy='184' r='120' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='344' cy='328' r='120' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='328' r='120' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const colorFilterSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Filter</title><path d='M256 185a167.85 167.85 0 01134.9-18.28C382.36 99.83 325.12 48 256 48S129.64 99.83 121.1 166.67A167.85 167.85 0 01256 185zM336 331.73a167.51 167.51 0 01-52.37 118.08A135 135 0 00344 464c75 0 136-61 136-136a136 136 0 00-59.06-112.08A168.53 168.53 0 01336 331.73zM283.58 206.19a167.87 167.87 0 0149.36 89.89 136.14 136.14 0 0058.06-95.7 135.87 135.87 0 00-107.43 5.81zM176.05 331.73a168.53 168.53 0 01-85-115.81A136 136 0 0032 328c0 75 61 136 136 136a135 135 0 0060.42-14.19 167.51 167.51 0 01-52.37-118.08zM179.06 296.08a167.87 167.87 0 0149.36-89.89A135.87 135.87 0 00121 200.38a136.14 136.14 0 0058.06 95.7zM302.9 345.33a168.22 168.22 0 01-93.8 0A135.9 135.9 0 00256 431.6a135.9 135.9 0 0046.9-86.27zM209 311.62a136 136 0 0094 0 135.93 135.93 0 00-47-87.22 135.93 135.93 0 00-47 87.22z'/></svg>\"\nexport const colorPalette = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Palette</title><path d='M441 336.2l-.06-.05c-9.93-9.18-22.78-11.34-32.16-12.92l-.69-.12c-9.05-1.49-10.48-2.5-14.58-6.17-2.44-2.17-5.35-5.65-5.35-9.94s2.91-7.77 5.34-9.94l30.28-26.87c25.92-22.91 40.2-53.66 40.2-86.59s-14.25-63.68-40.2-86.6c-35.89-31.59-85-49-138.37-49C223.72 48 162 71.37 116 112.11c-43.87 38.77-68 90.71-68 146.24s24.16 107.47 68 146.23c21.75 19.24 47.49 34.18 76.52 44.42a266.17 266.17 0 0086.87 15h1.81c61 0 119.09-20.57 159.39-56.4 9.7-8.56 15.15-20.83 15.34-34.56.21-14.17-5.37-27.95-14.93-36.84zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const colorPaletteOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Palette</title><path d='M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='144' cy='208' r='32'/><circle cx='152' cy='311' r='32'/><circle cx='224' cy='144' r='32'/><circle cx='256' cy='367' r='48'/><circle cx='328' cy='144' r='32'/></svg>\"\nexport const colorPaletteSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Palette</title><path d='M416 352c-12.6-.84-21-4-28-12-14-16-14-36 5.49-52.48l32.82-29.14c50.27-44.41 50.27-117.21 0-161.63C389.26 64.14 339.54 48 287.86 48c-60.34 0-123.39 22-172 65.11-90.46 80-90.46 210.92 0 290.87 45 39.76 105.63 59.59 165.64 60h1.84c60 0 119.07-19.5 161.2-56.77C464 390 464 385 444.62 355.56 440 348 431 353 416 352zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const colorWand = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Wand</title><path d='M96 208H48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16zM124.1 140.1c-4.2 0-8.3-1.7-11.3-4.7l-33.9-33.9c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l33.9 33.9c6.3 6.2 6.3 16.4 0 22.6-3 3-7 4.7-11.3 4.7zM192 112c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16s16 7.2 16 16v48c0 8.8-7.2 16-16 16zM259.9 140.1c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zM90.2 309.8c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zM234.2 167c-18.4-18.7-48.5-19-67.2-.7s-19 48.5-.7 67.2l.7.7 39.5 39.5c3.1 3.1 8.2 3.1 11.3 0l55.9-55.9c3.1-3.1 3.1-8.2 0-11.3L234.2 167zM457 389.8L307.6 240.4c-3.1-3.1-8.2-3.1-11.3 0l-55.9 55.9c-3.1 3.1-3.1 8.2 0 11.3L389.8 457c18.4 18.7 48.5 19 67.2.7 18.7-18.4 19-48.5.7-67.2-.2-.2-.4-.5-.7-.7z'/></svg>\"\nexport const colorWandOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Wand</title><rect stroke-miterlimit='10' x='280.48' y='122.9' width='63.03' height='378.2' rx='31.52' transform='rotate(-45 312.002 311.994)' class='ionicon-fill-none ionicon-stroke-width'/><path d='M178.38 178.38a31.64 31.64 0 000 44.75L223.25 268 268 223.25l-44.87-44.87a31.64 31.64 0 00-44.75 0z'/><path stroke-miterlimit='10' stroke-linecap='round' d='M48 192h48M90.18 90.18l33.94 33.94M192 48v48M293.82 90.18l-33.94 33.94M124.12 259.88l-33.94 33.94' class='ionicon-stroke-width'/></svg>\"\nexport const colorWandSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Color Wand</title><path d='M133.441 200.647l67.197-67.196 78.142 78.142-67.196 67.196zM301.41 234.21l-67.19 67.2L412 480l68-68-178.59-177.79zM32 176h80v32H32zM67.624 90.25l22.627-22.628 56.569 56.569-22.627 22.627zM176 32h32v80h-32zM237.32 124.195l56.569-56.569 22.627 22.627-56.569 56.569zM67.62 293.887l56.569-56.569 22.627 22.627-56.569 56.569z'/></svg>\"\nexport const compass = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Compass</title><circle cx='256' cy='256' r='24'/><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm105.07 113.33l-46.88 117.2a64 64 0 01-35.66 35.66l-117.2 46.88a8 8 0 01-10.4-10.4l46.88-117.2a64 64 0 0135.66-35.66l117.2-46.88a8 8 0 0110.4 10.4z'/></svg>\"\nexport const compassOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Compass</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M350.67 150.93l-117.2 46.88a64 64 0 00-35.66 35.66l-46.88 117.2a8 8 0 0010.4 10.4l117.2-46.88a64 64 0 0035.66-35.66l46.88-117.2a8 8 0 00-10.4-10.4zM256 280a24 24 0 1124-24 24 24 0 01-24 24z'/></svg>\"\nexport const compassSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Compass</title><circle cx='256' cy='256' r='24'/><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 256l-160 64 64-160 160-64z'/></svg>\"\nexport const construct = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Construct</title><path d='M503.58 126.2a16.85 16.85 0 00-27.07-4.55l-51.15 51.15a11.15 11.15 0 01-15.66 0l-22.48-22.48a11.17 11.17 0 010-15.67l50.88-50.89a16.85 16.85 0 00-5.27-27.4c-39.71-17-89.08-7.45-120 23.29-26.81 26.61-34.83 68-22 113.7a11 11 0 01-3.16 11.1L114.77 365.1a56.76 56.76 0 1080.14 80.18L357 272.08a11 11 0 0110.9-3.17c45 12 86 4 112.43-22 15.2-15 25.81-36.17 29.89-59.71 3.83-22.2 1.41-44.44-6.64-61z'/><path d='M437.33 378.41c-13.94-11.59-43.72-38.4-74.07-66.22l-66.07 70.61c28.24 30 53.8 57.85 65 70.88l.07.08A30 30 0 00383.72 464h1.1a30.11 30.11 0 0021-8.62l.07-.07 33.43-33.37a29.46 29.46 0 00-2-43.53zM118.54 214.55a20.48 20.48 0 00-3-10.76 2.76 2.76 0 012.62-4.22h.06c.84.09 5.33.74 11.7 4.61 4.73 2.87 18.23 12.08 41.73 35.54a34.23 34.23 0 007.22 22.12l66.23-61.55a33.73 33.73 0 00-21.6-9.2 2.65 2.65 0 01-.21-.26l-.65-.69-24.54-33.84a28.45 28.45 0 01-4-26.11 35.23 35.23 0 0111.78-16.35c5.69-4.41 18.53-9.72 29.44-10.62a52.92 52.92 0 0115.19.94 65.57 65.57 0 017.06 2.13 15.46 15.46 0 002.15.63 16 16 0 0016.38-25.06c-.26-.35-1.32-1.79-2.89-3.73a91.85 91.85 0 00-9.6-10.36c-8.15-7.36-29.27-19.77-57-19.77a123.13 123.13 0 00-46.3 9c-38.37 15.45-63.47 36.58-75.01 47.79l-.09.09A222.14 222.14 0 0063.7 129.5a27 27 0 00-4.7 11.77 7.33 7.33 0 01-7.71 6.17H50.2a20.65 20.65 0 00-14.59 5.9L6.16 182.05l-.32.32a20.89 20.89 0 00-.24 28.72c.19.2.37.39.57.58L53.67 258a21 21 0 0014.65 6 20.65 20.65 0 0014.59-5.9l29.46-28.79a20.51 20.51 0 006.17-14.76z'/></svg>\"\nexport const constructOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Construct</title><path d='M436.67 184.11a27.17 27.17 0 01-38.3 0l-22.48-22.49a27.15 27.15 0 010-38.29l50.89-50.89a.85.85 0 00-.26-1.38C393.68 57 351.09 64.15 324.05 91c-25.88 25.69-27.35 64.27-17.87 98a27 27 0 01-7.67 27.14l-173 160.76a40.76 40.76 0 1057.57 57.54l162.15-173.3a27 27 0 0126.77-7.7c33.46 8.94 71.49 7.26 97.07-17.94 27.49-27.08 33.42-74.94 20.1-102.33a.85.85 0 00-1.36-.22z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M224 284c-17.48-17-25.49-24.91-31-30.29a18.24 18.24 0 01-3.33-21.35 20.76 20.76 0 013.5-4.62l15.68-15.29a18.66 18.66 0 015.63-3.87 18.11 18.11 0 0120 3.62c5.45 5.29 15.43 15 33.41 32.52M317.07 291.3c40.95 38.1 90.62 83.27 110 99.41a13.46 13.46 0 01.94 19.92L394.63 444a14 14 0 01-20.29-.76c-16.53-19.18-61.09-67.11-99.27-107' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M17.34 193.5l29.41-28.74a4.71 4.71 0 013.41-1.35 4.85 4.85 0 013.41 1.35h0a9.86 9.86 0 008.19 2.77c3.83-.42 7.92-1.6 10.57-4.12 6-5.8-.94-17.23 4.34-24.54a207 207 0 0119.78-22.6c6-5.88 29.84-28.32 69.9-44.45A107.31 107.31 0 01206.67 64c22.59 0 40 10 46.26 15.67a89.54 89.54 0 0110.28 11.64 78.92 78.92 0 00-9.21-2.77 68.82 68.82 0 00-20-1.26c-13.33 1.09-29.41 7.26-38 14-13.9 11-19.87 25.72-20.81 44.71-.68 14.12 2.72 22.1 36.1 55.49a6.6 6.6 0 01-.34 9.16l-18.22 18a6.88 6.88 0 01-9.54.09c-21.94-21.94-36.65-33.09-45-38.16s-15.07-6.5-18.3-6.85a30.85 30.85 0 00-18.27 3.87 11.39 11.39 0 00-2.64 2 14.14 14.14 0 00.42 20.08l1.71 1.6a4.63 4.63 0 010 6.64L71.73 246.6a4.71 4.71 0 01-3.41 1.4 4.86 4.86 0 01-3.41-1.35l-47.57-46.43a4.88 4.88 0 010-6.72z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const constructSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Construct</title><path d='M497.14 111.38l-81.09 80.84-48.58-48.41L448.56 63c-45.22-22-108.65-22.09-146.2 15.35-35.32 35.2-39.73 90.61-22.54 134.2L99.57 391.37a12 12 0 000 17l52.27 52.11a12 12 0 0017 0l180-180.5c43.16 16.21 98 11.64 132.74-23 37.5-37.45 37.42-100.34 15.56-145.6z'/><path d='M365.45 308.62l-71.83 72 75.53 79.92a10.88 10.88 0 0015.65.21l60-60.46a11 11 0 00-.24-15.69zM119 212c0-4.87-4-9.33-7.45-12.78l-.25-.24-1.54-1.47a1.06 1.06 0 01-.26-.8 16.16 16.16 0 019.52-2c1.27.13 5.91.9 12.4 4.91 3.38 2.09 32.63 30.23 43.93 40.7a11 11 0 00.14 15.35l7.43 7.86 65.66-65.17-8.25-7.84a10.87 10.87 0 00-15.31-.06c-23-24.68-29-35.45-31-42.45-4.42-15.47 4.14-28 14-36 5.84-4.62 17.88-8.08 29-9a52.72 52.72 0 0111.61.6c3.47.5 6.3 1.14 7.39 1.4a68.51 68.51 0 0111 4l12-19a88.38 88.38 0 00-13.4-17.7 115.05 115.05 0 00-5.19-5.1c-7.78-7.15-28-19.2-54.59-19.2a117.38 117.38 0 00-44.77 8.82c-37.44 15.34-61.88 36.25-73.11 47.35l-.07.07A219.55 219.55 0 0067 128.56c-5.35 7.53-4.77 15.84-4.38 21.34 0 .32 0 .67.07 1a18.41 18.41 0 00-10.78-3.5A18 18 0 0039 152.73L2 189.62a6.79 6.79 0 000 9.6L65 262a6.72 6.72 0 009.5 0l37.06-37c3.44-3.44 7.44-8.14 7.44-13z'/></svg>\"\nexport const contract = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contract</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const contractOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contract</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const contractSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contract</title><path stroke-linecap='square' stroke-miterlimit='10' d='M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const contrast = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contrast</title><path d='M256 32A224 224 0 0097.61 414.39 224 224 0 10414.39 97.61 222.53 222.53 0 00256 32zM64 256c0-105.87 86.13-192 192-192v384c-105.87 0-192-86.13-192-192z'/></svg>\"\nexport const contrastOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contrast</title><circle cx='256' cy='256' r='208' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 464c-114.88 0-208-93.12-208-208S141.12 48 256 48z'/></svg>\"\nexport const contrastSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Contrast</title><path d='M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zM128.72 383.28A180 180 0 01256 76v360a178.82 178.82 0 01-127.28-52.72z'/></svg>\"\nexport const copy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Copy</title><path d='M408 480H184a72 72 0 01-72-72V184a72 72 0 0172-72h224a72 72 0 0172 72v224a72 72 0 01-72 72z'/><path d='M160 80h235.88A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z'/></svg>\"\nexport const copyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Copy</title><rect x='128' y='128' width='336' height='336' rx='57' ry='57' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const copySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Copy</title><path d='M456 480H136a24 24 0 01-24-24V128a16 16 0 0116-16h328a24 24 0 0124 24v320a24 24 0 01-24 24z'/><path d='M112 80h288V56a24 24 0 00-24-24H60a28 28 0 00-28 28v316a24 24 0 0024 24h24V112a32 32 0 0132-32z'/></svg>\"\nexport const create = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Create</title><path d='M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z'/><path d='M386.34 193.66L264.45 315.79A41.08 41.08 0 01247.58 326l-25.9 8.67a35.92 35.92 0 01-44.33-44.33l8.67-25.9a41.08 41.08 0 0110.19-16.87l122.13-121.91a8 8 0 00-5.65-13.66H104a56 56 0 00-56 56v240a56 56 0 0056 56h240a56 56 0 0056-56V199.31a8 8 0 00-13.66-5.65z'/></svg>\"\nexport const createOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Create</title><path d='M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z'/></svg>\"\nexport const createSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Create</title><path d='M464.37 49.2a22.07 22.07 0 00-31.88-.76l-18.31 18.25 31.18 31.1 18-17.91a22.16 22.16 0 001.01-30.68zM252.76 336H176V259.24l9.4-9.38L323.54 112H48v352h352V188.46L262.14 326.6l-9.38 9.4zM400 143.16l32.79-32.86-31.09-31.09L368.85 112H400v31.16z'/><path d='M208 304h31.49L400 143.16V112h-31.15L208 272.51V304z'/></svg>\"\nexport const crop = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Crop</title><path d='M458 346H192a26 26 0 01-26-26V54a22 22 0 00-44 0v68H54a22 22 0 000 44h68v154a70.08 70.08 0 0070 70h154v68a22 22 0 0044 0v-68h68a22 22 0 000-44z'/><path d='M214 166h106a26 26 0 0126 26v106a22 22 0 0044 0V192a70.08 70.08 0 00-70-70H214a22 22 0 000 44z'/></svg>\"\nexport const cropOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Crop</title><path d='M144 48v272a48 48 0 0048 48h272' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M368 304V192a48 48 0 00-48-48H208M368 368v96M144 144H48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cropSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Crop</title><path d='M166 346V32h-44v90H32v44h90v224h224v90h44v-90h90v-44H166z'/><path d='M346 320h44V122H192v44h154v154z'/></svg>\"\nexport const cube = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cube</title><path d='M440.9 136.3a4 4 0 000-6.91L288.16 40.65a64.14 64.14 0 00-64.33 0L71.12 129.39a4 4 0 000 6.91L254 243.88a4 4 0 004.06 0zM54 163.51a4 4 0 00-6 3.49v173.89a48 48 0 0023.84 41.39L234 479.51a4 4 0 006-3.46V274.3a4 4 0 00-2-3.46zM272 275v201a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.89V167a4 4 0 00-6-3.45l-184 108a4 4 0 00-2 3.45z'/></svg>\"\nexport const cubeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cube</title><path d='M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M69 153.99l187 110 187-110M256 463.99v-200' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cubeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cube</title><path d='M48 170v196.92L240 480V284L48 170zM272 480l192-113.08V170L272 284zm176-122.36zM448 144L256 32 64 144l192 112 192-112z'/></svg>\"\nexport const cut = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cut</title><path d='M103.48 224a71.64 71.64 0 0044.76-15.66l41.5 16.89 6.82-12.63a39.15 39.15 0 014.32-6.37l14.22-14.42-41.17-24.94A72 72 0 10103.48 224zm0-112a40 40 0 11-40 40 40 40 0 0140-40z'/><path d='M480 169l-5.52-12.58c-4.48-10.42-14.74-16-32.78-17.85-10.12-1-26.95-1.24-49.69 3.81-20 4.45-122.14 28.2-164.95 58.62-20.25 14.39-24.06 33.67-27.06 49.16-2.78 14.14-5 25.31-18 35-15 11.14-27.27 16.38-33.58 18.6a71.74 71.74 0 1024.79 38zm-224.52 87a16 16 0 1116-16 16 16 0 01-16 16zm-152 144a40 40 0 1140-40 40 40 0 01-40 40z'/><path d='M343.79 259.87l-83.74 48.18 27.63 13.08 3.62 1.74C310 331.92 359.74 356 410.53 359c3.89.23 7.47.34 10.78.34C442 359.31 453 354 459.75 350L480 336z'/></svg>\"\nexport const cutOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cut</title><circle cx='104' cy='152' r='56' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='104' cy='360' r='56' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M157 175l-11 15 37 15s3.46-6.42 7-10z' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M154.17 334.43L460 162c-2.5-6.7-28-12-64-4-29.12 6.47-121.16 29.05-159.16 56.05C205.85 236.06 227 272 192 298c-25.61 19-44.43 22.82-44.43 22.82zM344.47 278.24L295 306.67c14.23 6.74 65.54 33.27 117 36.33 14.92.89 30 .39 39-6z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='240' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const cutSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Cut</title><path d='M480 128h-48l-198.94 70.46-59.13-31.59a72.16 72.16 0 10-25.69 41.47l52.2 31.72L192 277l-43.64 26.76a71.74 71.74 0 1024.79 38L480 160zm-376.52 64a40 40 0 1140-40 40 40 0 01-40 40zm0 208a40 40 0 1140-40 40 40 0 01-40 40zm152-144a16 16 0 1116-16 16 16 0 01-16 16z'/><path d='M343.79 259.87l-83.74 48.18L432 368h47.99l.01-32-136.21-76.13z'/></svg>\"\nexport const desktop = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Desktop</title><path d='M16 352a48.05 48.05 0 0048 48h133.88l-4 32H144a16 16 0 000 32h224a16 16 0 000-32h-49.88l-4-32H448a48.05 48.05 0 0048-48v-48H16zm240-16a16 16 0 11-16 16 16 16 0 0116-16zM496 96a48.05 48.05 0 00-48-48H64a48.05 48.05 0 00-48 48v192h480z'/></svg>\"\nexport const desktopOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Desktop</title><rect x='32' y='64' width='448' height='320' rx='32' ry='32' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M304 448l-8-64h-80l-8 64h96z' class='ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M368 448H144' class='ionicon-fill-none ionicon-stroke-width'/><path d='M32 304v48a32.09 32.09 0 0032 32h384a32.09 32.09 0 0032-32v-48zm224 64a16 16 0 1116-16 16 16 0 01-16 16z'/></svg>\"\nexport const desktopSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Desktop</title><path d='M480 48H32a16 16 0 00-16 16v320a16 16 0 0016 16h168v32h-72v32h256v-32h-72v-32h168a16 16 0 0016-16V64a16 16 0 00-16-16zm-20 36v216H52V84zM240.13 354.08a16 16 0 1113.79 13.79 16 16 0 01-13.79-13.79z'/></svg>\"\nexport const diamond = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Diamond</title><path d='M121.72 32a4 4 0 00-3.72 5.56l2.3 5.43 40.7 94.9a4 4 0 006.88.82L243 38.4a4 4 0 00-3.2-6.4zM419.93 58.06l-41.28 96.37a4 4 0 003.68 5.57h101a4 4 0 003.4-6.11L427 57.53a4 4 0 00-7.07.53zM85 57.57l-59.71 96.32a4 4 0 003.4 6.11h101a4 4 0 003.67-5.58L92 58.1a4 4 0 00-7-.53zM393.27 32H267.82a1.94 1.94 0 00-1.56 3.11l79.92 106.46a1.94 1.94 0 003.34-.4L391.6 43l3.4-8.34a1.92 1.92 0 00-1.7-2.66zM239 448l-89.43-253.49A3.78 3.78 0 00146 192H25.7a3.72 3.72 0 00-2.95 6l216 279.81a5.06 5.06 0 006.39 1.37 5 5 0 002.39-6.08zM486.3 192H366a3.75 3.75 0 00-3.54 2.51l-98.2 278.16a5.21 5.21 0 002.42 6.31 5.22 5.22 0 006.61-1.39L489.25 198a3.72 3.72 0 00-2.95-6zM259.2 78.93l56 74.67a4 4 0 01-3.2 6.4H200a4 4 0 01-3.2-6.4l56-74.67a4 4 0 016.4 0zm-7 310.31l-67.7-191.91a4 4 0 013.77-5.33h135.46a4 4 0 013.77 5.33l-67.73 191.91a4 4 0 01-7.54 0z'/></svg>\"\nexport const diamondOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Diamond</title><path d='M35.42 188.21l207.75 269.46a16.17 16.17 0 0025.66 0l207.75-269.46a16.52 16.52 0 00.95-18.75L407.06 55.71A16.22 16.22 0 00393.27 48H118.73a16.22 16.22 0 00-13.79 7.71L34.47 169.46a16.52 16.52 0 00.95 18.75zM48 176h416' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M400 64l-48 112-96-128M112 64l48 112 96-128M256 448l-96-272M256 448l96-272' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const diamondSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Diamond</title><path d='M396.31 32H264l84.19 112.26L396.31 32zM115.69 32l48.12 112.26L248 32H115.69zM256 74.67L192 160h128l-64-85.33zM422.95 51.06L376.26 160H488L422.95 51.06zM89.05 51.06L23 160h112.74L89.05 51.06zM146.68 192H24l222.8 288h.53L146.68 192zM365.32 192L264.67 480h.53L488 192H365.32zM329.39 192H182.61L256 400l73.39-208z'/></svg>\"\nexport const dice = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Dice</title><path d='M440.88 129.37L288.16 40.62a64.14 64.14 0 00-64.33 0L71.12 129.37a4 4 0 000 6.9L254 243.85a4 4 0 004.06 0L440.9 136.27a4 4 0 00-.02-6.9zM256 152c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16zM238 270.81L54 163.48a4 4 0 00-6 3.46v173.92a48 48 0 0023.84 41.39L234 479.48a4 4 0 006-3.46V274.27a4 4 0 00-2-3.46zM96 368c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96-32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zM458 163.51L274 271.56a4 4 0 00-2 3.45V476a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.86V167a4 4 0 00-6-3.49zM320 424c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z'/></svg>\"\nexport const diceOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Dice</title><path stroke-linecap='round' stroke-linejoin='round' d='M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M69 153.99l187 110 187-110M256 463.99v-200' class='ionicon-fill-none ionicon-stroke-width'/><ellipse cx='256' cy='152' rx='24' ry='16'/><ellipse cx='208' cy='296' rx='16' ry='24'/><ellipse cx='112' cy='328' rx='16' ry='24'/><ellipse cx='304' cy='296' rx='16' ry='24'/><ellipse cx='400' cy='240' rx='16' ry='24'/><ellipse cx='304' cy='384' rx='16' ry='24'/><ellipse cx='400' cy='328' rx='16' ry='24'/></svg>\"\nexport const diceSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Dice</title><path d='M48 366.92L240 480V284L48 170zM192 288c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zm-96 32c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zM272 284v196l192-113.08V170zm48 140c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm32 77.64zM256 32L64 144l192 112 192-112zm0 120c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16z'/></svg>\"\nexport const disc = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Disc</title><path d='M256 176a80 80 0 1080 80 80.09 80.09 0 00-80-80zm0 112a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 368a112 112 0 11112-112 112.12 112.12 0 01-112 112z'/></svg>\"\nexport const discOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Disc</title><circle cx='256' cy='256' r='208' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='96' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='32'/></svg>\"\nexport const discSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Disc</title><circle cx='256' cy='256' r='32'/><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z'/></svg>\"\nexport const document = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document</title><path d='M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4z'/><path d='M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z'/></svg>\"\nexport const documentAttach = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Attach</title><path d='M460 240H320a48 48 0 01-48-48V52a4 4 0 00-4-4h-53.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80a16 16 0 00-32 0v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144a16 16 0 00-32 0v82.13c0 51.51 33.19 89.63 80 93.53V432a64 64 0 0064 64h208a64 64 0 0064-64V244a4 4 0 00-4-4z'/><path d='M320 208h129.81a2 2 0 001.41-3.41L307.41 60.78a2 2 0 00-3.41 1.41V192a16 16 0 0016 16z'/></svg>\"\nexport const documentAttachOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Attach</title><path d='M208 64h66.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62V432a48 48 0 01-48 48H192a48 48 0 01-48-48V304' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M288 72v120a32 32 0 0032 32h120' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 80v152a23.69 23.69 0 01-24 24c-12 0-24-9.1-24-24V88c0-30.59 16.57-56 48-56s48 24.8 48 55.38v138.75c0 43-27.82 77.87-72 77.87s-72-34.86-72-77.87V144' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const documentAttachSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Attach</title><path d='M280 240a8 8 0 01-8-8V48h-57.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80h-32v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144H48v82.13c0 51.51 33.19 89.63 80 93.53V468a12 12 0 0012 12h312a12 12 0 0012-12V240z'/><path d='M308 208h146.31a2 2 0 001.42-3.41L307.41 56.27a2 2 0 00-3.41 1.42V204a4 4 0 004 4z'/></svg>\"\nexport const documentLock = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Lock</title><path d='M288 192h129.81a2 2 0 001.41-3.41L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16zM256 272c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z'/><path d='M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160a32 32 0 01-32 32h-96a32 32 0 01-32-32v-48a32 32 0 0132-32v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18a32 32 0 0132 32z'/></svg>\"\nexport const documentLockOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Lock</title><path d='M288 304v-18c0-16.63-14.26-30-32-30s-32 13.37-32 30v18' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M304 416h-96a32 32 0 01-32-32v-48a32 32 0 0132-32h96a32 32 0 0132 32v48a32 32 0 01-32 32z'/><path d='M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 50.88V176a32 32 0 0032 32h125.12' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const documentLockSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Lock</title><path d='M276 192h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42V188a4 4 0 004 4zM256 272c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z'/><path d='M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm88 175.91A16.1 16.1 0 01319.91 416H192.09A16.1 16.1 0 01176 399.91V320c0-10 7-16 16-16h16v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18h16a15.8 15.8 0 0116 16z'/></svg>\"\nexport const documentOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document</title><path d='M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 56v120a32 32 0 0032 32h120' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const documentSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document</title><path d='M240 216V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224H248a8 8 0 01-8-8z'/><path d='M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z'/></svg>\"\nexport const documentText = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Text</title><path d='M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z'/><path d='M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z'/></svg>\"\nexport const documentTextOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Text</title><path d='M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 56v120a32 32 0 0032 32h120M176 288h160M176 368h160' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const documentTextSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Document Text</title><path d='M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z'/><path d='M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm104 160H160v-32h192zm0-80H160v-32h192z'/></svg>\"\nexport const documents = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Documents</title><path d='M298.39 248a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V236a12 12 0 0012 12z'/><path d='M197 267a43.67 43.67 0 01-13-31v-92h-72a64.19 64.19 0 00-64 64v224a64 64 0 0064 64h144a64 64 0 0064-64V280h-92a43.61 43.61 0 01-31-13zM372 120h70.39a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V108a12 12 0 0012 12z'/><path d='M372 152a44.34 44.34 0 01-44-44V16H220a60.07 60.07 0 00-60 60v36h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400h53.05c32.51 0 58.95-26.92 58.95-60V152z'/></svg>\"\nexport const documentsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Documents</title><path d='M336 264.13V436c0 24.3-19.05 44-42.95 44H107c-23.95 0-43-19.7-43-44V172a44.26 44.26 0 0144-44h94.12a24.55 24.55 0 0117.49 7.36l109.15 111a25.4 25.4 0 017.24 17.77z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M200 128v108a28.34 28.34 0 0028 28h108' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M176 128V76a44.26 44.26 0 0144-44h94a24.83 24.83 0 0117.61 7.36l109.15 111A25.09 25.09 0 01448 168v172c0 24.3-19.05 44-42.95 44H344' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M312 32v108a28.34 28.34 0 0028 28h108' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const documentsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Documents</title><path d='M307.94 248L216 154.52V242a6 6 0 006 6z'/><path d='M184 268V144H60a12 12 0 00-12 12v328a12 12 0 0012 12h248a12 12 0 0012-12V280H196a12 12 0 01-12-12zM366 120h85.94L360 26.52V114a6 6 0 006 6z'/><path d='M340 152a12 12 0 01-12-12V16H172a12 12 0 00-12 12v84h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400H452a12 12 0 0012-12V152z'/></svg>\"\nexport const download = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Download</title><path d='M376 160H272v153.37l52.69-52.68a16 16 0 0122.62 22.62l-80 80a16 16 0 01-22.62 0l-80-80a16 16 0 0122.62-22.62L240 313.37V160H136a56.06 56.06 0 00-56 56v208a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V216a56.06 56.06 0 00-56-56zM272 48a16 16 0 00-32 0v112h32z'/></svg>\"\nexport const downloadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Download</title><path d='M336 176h40a40 40 0 0140 40v208a40 40 0 01-40 40H136a40 40 0 01-40-40V216a40 40 0 0140-40h40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M176 272l80 80 80-80M256 48v288' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const downloadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Download</title><path d='M272 160v147.37l64-64L358.63 266 256 368.63 153.37 266 176 243.37l64 64V160H92a12 12 0 00-12 12v296a12 12 0 0012 12h328a12 12 0 0012-12V172a12 12 0 00-12-12zM240 32h32v128h-32z'/></svg>\"\nexport const duplicate = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Duplicate</title><path d='M408 112H184a72 72 0 00-72 72v224a72 72 0 0072 72h224a72 72 0 0072-72V184a72 72 0 00-72-72zm-32.45 200H312v63.55c0 8.61-6.62 16-15.23 16.43A16 16 0 01280 376v-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01216 280h64v-63.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01312 216v64h64a16 16 0 0116 16.77c-.42 8.61-7.84 15.23-16.45 15.23z'/><path d='M395.88 80A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z'/></svg>\"\nexport const duplicateOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Duplicate</title><rect x='128' y='128' width='336' height='336' rx='57' ry='57' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24M296 216v160M376 296H216' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const duplicateSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Duplicate</title><path d='M112 80h288V56a24 24 0 00-24-24H66a34 34 0 00-34 34v310a24 24 0 0024 24h24V112a32 32 0 0132-32z'/><path d='M456 112H136a24 24 0 00-24 24v320a24 24 0 0024 24h320a24 24 0 0024-24V136a24 24 0 00-24-24zm-64 200h-80v80h-32v-80h-80v-32h80v-80h32v80h80z'/></svg>\"\nexport const ear = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ear</title><path d='M256 16C159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.51 94.51 0 00176 496c36.86 0 67.18-15.62 90.12-46.42 4.48-6 9.55-14.74 15.42-24.85 15.32-26.37 36.29-62.47 63.17-80.74 25.77-17.51 47.23-39.54 62-63.72C423.51 252.94 432 223.24 432 192c0-97-78.95-176-176-176zm96 184a16 16 0 01-16-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.42c27.19-7.84 58.4-6.72 64.28-6.42a48 48 0 0138.6 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.48-38.46 55a16 16 0 01-30.94-8.14c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-16.6-.89-45.89.8-62.94 8.31V304a16 16 0 01-32 0V184c0-57.35 50.24-104 112-104s112 46.65 112 104a16 16 0 01-16 16z'/></svg>\"\nexport const earOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ear</title><path d='M335.72 330.76C381.73 299.5 416 251.34 416 192a160 160 0 00-320 0v206.57c0 44.26 35.74 81.43 80 81.43h0c44.26 0 66.83-25.94 77.29-40 14.77-19.81 41.71-81.56 82.43-109.24z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 304V184c0-48.4 43.2-88 96-88h0c52.8 0 96 39.6 96 88' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 239c25-18 79.82-15 79.82-15 26 0 41.17 29.42 26 50.6 0 0-36.86 42.4-41.86 61.4' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const earSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ear</title><path d='M380.48 68.09C347.09 34.5 302.88 16 256 16 159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.49 94.49 0 00176 496c19.93 0 41.06-7.69 62.8-22.87a181.46 181.46 0 0025.88-21.86C327.37 390.16 432 288.06 432 192c0-46.49-18.29-90.49-51.52-123.91zM368 200h-32v-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.41c27.5-7.84 59.89-6.62 64.26-6.41a48 48 0 0138.62 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.49-38.46 55l-4.07 15.47-30.94-8.14 4.07-15.47c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-10.67-.58-42.66-.25-62.12 8l-.82.35V320h-32V184c0-57.35 50.24-104 112-104s112 46.65 112 104z'/></svg>\"\nexport const earth = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Earth</title><path d='M414.39 97.74A224 224 0 1097.61 414.52 224 224 0 10414.39 97.74zM64 256.13a191.63 191.63 0 016.7-50.31c7.34 15.8 18 29.45 25.25 45.66 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.21-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.08 8.72 21.52 10.08 33.36a305.36 305.36 0 007.45 41.27c0 .1 0 .21.08.31C117.8 411.13 64 339.8 64 256.13zm192 192a193.12 193.12 0 01-32-2.68c.11-2.71.16-5.24.43-7 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.68 34.11-33 8.78-13 11.41-30.5 7.79-45.69-5.33-22.44-35.82-29.93-52.26-42.1-9.45-7-17.86-17.82-30.27-18.7-5.72-.4-10.51.83-16.18-.63-5.2-1.35-9.28-4.15-14.82-3.42-10.35 1.36-16.88 12.42-28 10.92-10.55-1.41-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.68 5.78 2.14 8.51 7.8 13.7 10.66 9.73 5.34 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.21 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.06 10-21.46 1.65-3.45 0-8.24-2.78-12.75q5.41-2.28 11-4.23a15.6 15.6 0 008 3c6.69.44 13-3.18 18.84 1.38 6.48 5 11.15 11.32 19.75 12.88 8.32 1.51 17.13-3.34 19.19-11.86 1.25-5.18 0-10.65-1.2-16a190.83 190.83 0 01105 32.21c-2-.76-4.39-.67-7.34.7-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22 8.5 0 17.11-3.8 14.37-13.62-1.19-4.26-2.81-8.69-5.42-11.37a193.27 193.27 0 0118 14.14c-.09.09-.18.17-.27.27-5.76 6-12.45 10.75-16.39 18.05-2.78 5.14-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.4 3.74 23.51 8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.94 3.05 7.62 3.86 12.54 1.43 8.74 9.14 4 13.83-.41a192.12 192.12 0 019.24 18.77c-5.16 7.43-9.26 15.53-21.67 6.87-7.43-5.19-12-12.72-21.33-15.06-8.15-2-16.5.08-24.55 1.47-9.15 1.59-20 2.29-26.94 9.22-6.71 6.68-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.81 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21a158 158 0 004.74 30.07A191.75 191.75 0 01256 448.13z'/></svg>\"\nexport const earthOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Earth</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M445.57 172.14c-16.06.1-14.48 29.73-34.49 15.75-7.43-5.18-12-12.71-21.33-15-8.15-2-16.5.08-24.55 1.47-9.15 1.58-20 2.29-26.94 9.22-6.71 6.67-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.8 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21 1.18 16.2 4.16 34.36 12.2 48.67l15-21.16c1.85-2.62 5.72-6.29 6.64-9.38 1.63-5.47-1.58-14.87-1.95-21s-.19-12.34-1.13-18.47c-1.32-8.59-6.4-16.64-7.1-25.13-1.29-15.81 1.6-28.43-10.58-41.65-11.76-12.75-29-15.81-45.47-13.22-8.3 1.3-41.71 6.64-28.3-12.33 2.65-3.73 7.28-6.79 10.26-10.34 2.59-3.09 4.84-8.77 7.88-11.18s17-5.18 21-3.95 8.17 7 11.64 9.56a49.89 49.89 0 0021.81 9.36c13.66 2 42.22-5.94 42-23.46-.04-8.4-7.84-20.1-10.92-27.96zM287.45 316.3c-5.33-22.44-35.82-29.94-52.26-42.11-9.45-7-17.86-17.81-30.27-18.69-5.72-.41-10.51.83-16.18-.64-5.2-1.34-9.28-4.14-14.82-3.41-10.35 1.36-16.88 12.42-28 10.92-10.55-1.42-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.67 5.78 2.15 8.51 7.81 13.7 10.67 9.73 5.33 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.22 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.07 10-21.46s-8.27-21.36-14.61-24.9l-29.81 33.43a41.52 41.52 0 008.34 31.86c5.93 7.63 15.37 10.08 15.8 20.5.42 10-1.14 15.12-7.68 22.15-2.83 3-4.83 7.26-7.71 10.07-3.53 3.43-2.22 2.38-7.73 3.32-10.36 1.75-19.18 4.45-29.19 7.21C95.34 199.94 93.8 172.69 86.2 162l-25 20.19c-.27 3.31 4.1 9.4 5.29 13 6.83 20.57 20.61 36.48 29.51 56.16 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.2-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.09 8.72 21.53 10.08 33.36a305.22 305.22 0 007.45 41.28c1.21 4.69 2.32 10.89 5.53 14.76 2.2 2.66 9.75 4.95 6.7 5.83 4.26.7 11.85 4.68 15.4 1.76 4.68-3.84 3.43-15.66 4.24-21 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.69 34.11-33 8.73-12.98 11.36-30.49 7.74-45.68zm-33.39 26.32c-6 10.71-19.36 17.88-27.95 26.39-2.33 2.31-7.29 10.31-10.21 8.58-2.09-1.24-2.8-11.62-3.57-14a61.17 61.17 0 00-21.71-29.95c-3.13-2.37-10.89-5.45-12.68-8.7-2-3.53-.2-11.86-.13-15.7.11-5.6-2.44-14.91-1.06-20 1.6-5.87-1.48-2.33 3.77-3.49 2.77-.62 14.21 1.39 17.66 2.11 5.48 1.14 8.5 4.55 12.82 8 11.36 9.11 23.87 16.16 36.6 23.14 9.86 5.46 12.76 12.37 6.46 23.62zM184.46 67.09c4.74 4.63 9.2 10.11 16.27 10.57 6.69.45 13-3.17 18.84 1.38 6.48 5 11.15 11.33 19.75 12.89 8.32 1.51 17.13-3.35 19.19-11.86 2-8.11-2.31-16.93-2.57-25.07 0-1.13.61-6.15-.17-7-.58-.64-5.42.08-6.16.1q-8.13.24-16.22 1.12a207.1 207.1 0 00-57.18 14.65c2.43 1.68 5.48 2.35 8.25 3.22zM356.4 123.27c8.49 0 17.11-3.8 14.37-13.62-2.3-8.23-6.22-17.16-15.76-12.72-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22zM349.62 166.24c8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.93 3.05 7.62 3.86 12.54 1.81 11.05 13.66.63 16.75-3.65 2-2.79 4.71-6.93 3.8-10.56-.84-3.39-4.8-7-6.56-10.11-5.14-9-9.37-19.47-17.07-26.74-7.41-7-16.52-6.19-23.55 1.08-5.76 6-12.45 10.75-16.39 18.05-2.78 5.13-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.39 3.74 23.51z'/></svg>\"\nexport const earthSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Earth</title><path d='M267 474l-.8-.13a.85.85 0 00.8.13zM448.9 187.78a5.51 5.51 0 00-10.67-.63A5.52 5.52 0 01433 191h-15.47a5.48 5.48 0 01-2.84-.79l-22.38-13.42a5.48 5.48 0 00-2.84-.79h-35.8a5.48 5.48 0 00-3.06.93l-44.15 29.43A5.52 5.52 0 00304 211v41.74a5.51 5.51 0 002.92 4.87l57.89 30.9a5.55 5.55 0 012.92 4.8l.27 23.49a5.53 5.53 0 002.85 4.75l23.26 12.87a5.54 5.54 0 012.85 4.83v48.6a5.52 5.52 0 009.17 4.14c9.38-8.26 22.83-20.32 24.62-23.08q4.44-6.87 8.33-14.07a207.39 207.39 0 0013.6-31c12.68-36.71 2.66-102.7-3.78-136.06zM286.4 302.8l-61.33-46a4 4 0 00-2.4-.8h-29.1a3.78 3.78 0 01-2.68-1.11l-13.72-13.72a4 4 0 00-2.83-1.17h-53.19a3.79 3.79 0 01-2.68-6.47l8.42-8.42a3.78 3.78 0 012.68-1.11h32.37a8 8 0 007.7-5.83l6.89-24.5a4 4 0 012-2.47L206 177.06a3.79 3.79 0 002.05-3.37v-12.5a3.82 3.82 0 01.68-2.17l14.6-21.02a3.75 3.75 0 011.78-1.38l20.43-7.67a3.79 3.79 0 002.46-3.55V114a3.8 3.8 0 00-1.69-3.16l-20.48-13.62A3.83 3.83 0 00222 97l-27.88 13.94a3.78 3.78 0 01-4-.41l-13.22-10.45a3.8 3.8 0 01.1-6l10.74-7.91a3.78 3.78 0 00-.09-6.16l-16.73-11.67a3.78 3.78 0 00-4-.22c-6.05 3.31-23.8 13.11-30.1 17.52a209.48 209.48 0 00-68.16 80c-1.82 3.76-4.07 7.59-4.29 11.72s-3.46 13.35-4.81 17.08a3.78 3.78 0 00.24 3.1l35.69 65.58a3.74 3.74 0 001.38 1.44l37.55 22.54a3.78 3.78 0 011.81 2.73l7.52 54.54a3.82 3.82 0 001.61 2.61l29.3 20.14a4 4 0 011.65 2.48l15.54 73.8a3.6 3.6 0 00.49 1.22c1.46 2.36 7.28 11 14.3 12.28-.65.18-1.23.59-1.88.78a47.63 47.63 0 015 1.16c2 .54 4 1 6 1.43 3.13.62 3.44 1.1 4.94-1.68 2-3.72 4.29-5 6-5.46a3.85 3.85 0 002.89-2.9l10.07-46.68a4 4 0 011.6-2.42l45-31.9a4 4 0 001.69-3.27V306a4 4 0 00-1.55-3.2z'/><path d='M262 48s-3.65.21-4.39.23q-8.13.24-16.22 1.12A207.45 207.45 0 00184.21 64c2.43 1.68-1.75 3.22-1.75 3.22L189 80h35l24 12 21-12zM354.23 120.06l16.11-14a4 4 0 00-.94-6.65l-18.81-8.73a4 4 0 00-5.3 1.9l-7.75 16.21a4 4 0 001.49 5.11l10.46 6.54a4 4 0 004.74-.38zM429.64 140.67l-5.83-9c-.09-.14-.17-.28-.25-.43-1.05-2.15-9.74-19.7-17-26.51-5.45-5.15-7-3.67-7.43-2.53a3.77 3.77 0 01-1.19 1.6l-28.84 23.31a4 4 0 01-2.51.89h-14.93a4 4 0 00-2.83 1.17l-12 12a4 4 0 000 5.66l12 12a4 4 0 002.83 1.17h75.17a4 4 0 004-4.17l-.55-13.15a4 4 0 00-.64-2.01z'/><path d='M256 72a184 184 0 11-130.1 53.9A182.77 182.77 0 01256 72m0-40C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32z'/></svg>\"\nexport const easel = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Easel</title><rect x='80' y='112' width='352' height='208' rx='12' ry='12'/><path d='M432 64H272V48a16 16 0 00-32 0v16H80a48.05 48.05 0 00-48 48v208a48.05 48.05 0 0048 48h42.79l-26.17 91.6a16 16 0 1030.76 8.8L156.07 368H240v48a16 16 0 0032 0v-48h83.93l28.69 100.4a16 16 0 1030.76-8.8L389.21 368H432a48.05 48.05 0 0048-48V112a48.05 48.05 0 00-48-48zm16 256a16 16 0 01-16 16H80a16 16 0 01-16-16V112a16 16 0 0116-16h352a16 16 0 0116 16z'/></svg>\"\nexport const easelOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Easel</title><rect x='48' y='80' width='416' height='272' rx='32' ry='32' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 416v-64M256 80V48M400 464l-32-112M112 464l32-112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const easelSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Easel</title><path d='M468 64H278V32h-44v32H44a12 12 0 00-12 12v280a12 12 0 0012 12h78.19L89.93 470.46l36.53 9.61L161.74 368H234v64h44v-64h71.84l31 111.7 36.83-8.57L389.05 368H468a12 12 0 0012-12V76a12 12 0 00-12-12zm-26 266H70V102h372z'/><path d='M88 120h336v192H88z'/></svg>\"\nexport const egg = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Egg</title><path d='M256 480c-52.57 0-96.72-17.54-127.7-50.73C96.7 395.4 80 346.05 80 286.55 80 230.5 101.48 168 138.93 115 175.65 63 219.41 32 256 32s80.35 31 117.07 83C410.52 168 432 230.5 432 286.55c0 59.5-16.7 108.85-48.3 142.72C352.72 462.46 308.57 480 256 480z'/></svg>\"\nexport const eggOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Egg</title><path d='M256 48C192 48 96 171.69 96 286.55S160 464 256 464s160-62.59 160-177.45S320 48 256 48z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const eggSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Egg</title><path d='M418.39 381.05c-8.08 21.68-19.76 40.1-34.72 54.75-14.38 14.07-32.1 24.95-52.67 32.34C309.08 476 283.85 480 256 480s-53.08-4-75-11.86c-20.57-7.39-38.29-18.27-52.67-32.34-15-14.65-26.64-33.07-34.72-54.75C84.58 356.82 80 328.53 80 296.94c0-30.28 6.68-62.57 19.86-96A371 371 0 01151 111.42C195.78 53.56 241 32 256 32s62.67 22.4 105 79.42c18.33 24.71 38.87 58.34 51.17 89.54 13.18 33.41 19.86 65.7 19.86 96-.03 31.57-4.61 59.86-13.64 84.09z'/></svg>\"\nexport const ellipse = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipse</title><path d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/></svg>\"\nexport const ellipseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipse</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipse</title><path d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/></svg>\"\nexport const ellipsisHorizontal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal</title><circle cx='256' cy='256' r='48'/><circle cx='416' cy='256' r='48'/><circle cx='96' cy='256' r='48'/></svg>\"\nexport const ellipsisHorizontalCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal Circle</title><circle cx='256' cy='256' r='26'/><circle cx='346' cy='256' r='26'/><circle cx='166' cy='256' r='26'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisHorizontalCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal Circle</title><circle cx='256' cy='256' r='26'/><circle cx='346' cy='256' r='26'/><circle cx='166' cy='256' r='26'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisHorizontalCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-90 234a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26z'/></svg>\"\nexport const ellipsisHorizontalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal</title><circle cx='256' cy='256' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='416' cy='256' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='96' cy='256' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisHorizontalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal</title><circle cx='256' cy='256' r='48'/><circle cx='416' cy='256' r='48'/><circle cx='96' cy='256' r='48'/></svg>\"\nexport const ellipsisVertical = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical</title><circle cx='256' cy='256' r='48'/><circle cx='256' cy='416' r='48'/><circle cx='256' cy='96' r='48'/></svg>\"\nexport const ellipsisVerticalCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical Circle</title><circle cx='256' cy='256' r='26'/><circle cx='256' cy='346' r='26'/><circle cx='256' cy='166' r='26'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisVerticalCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical Circle</title><circle cx='256' cy='256' r='26'/><circle cx='256' cy='346' r='26'/><circle cx='256' cy='166' r='26'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisVerticalCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical Circle</title><path d='M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-234-90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26z'/></svg>\"\nexport const ellipsisVerticalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical</title><circle cx='256' cy='256' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='416' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='96' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ellipsisVerticalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Vertical</title><circle cx='256' cy='256' r='48'/><circle cx='256' cy='416' r='48'/><circle cx='256' cy='96' r='48'/></svg>\"\nexport const enter = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Enter</title><path d='M160 136v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L313.37 272H160v104a56.06 56.06 0 0056 56h208a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56H216a56.06 56.06 0 00-56 56zM48 240a16 16 0 000 32h112v-32z'/></svg>\"\nexport const enterOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Enter</title><path d='M176 176v-40a40 40 0 0140-40h208a40 40 0 0140 40v240a40 40 0 01-40 40H216a40 40 0 01-40-40v-40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M272 336l80-80-80-80M48 256h288' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const enterSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Enter</title><path d='M160 240h147.37l-64-64L266 153.37 368.63 256 266 358.63 243.37 336l64-64H160v148a12 12 0 0012 12h296a12 12 0 0012-12V92a12 12 0 00-12-12H172a12 12 0 00-12 12zM32 240h128v32H32z'/></svg>\"\nexport const exit = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Exit</title><path d='M336 376V272H191a16 16 0 010-32h145V136a56.06 56.06 0 00-56-56H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h192a56.06 56.06 0 0056-56zM425.37 272l-52.68 52.69a16 16 0 0022.62 22.62l80-80a16 16 0 000-22.62l-80-80a16 16 0 00-22.62 22.62L425.37 240H336v32z'/></svg>\"\nexport const exitOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Exit</title><path d='M320 176v-40a40 40 0 00-40-40H88a40 40 0 00-40 40v240a40 40 0 0040 40h192a40 40 0 0040-40v-40M384 176l80 80-80 80M191 256h273' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const exitSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Exit</title><path d='M335.69 272h-161v-32h161V92a12 12 0 00-12-12h-280a12 12 0 00-12 12v328a12 12 0 0012 12h280a12 12 0 0012-12zM419.06 272l-64 64 22.63 22.63L480.31 256 377.69 153.37 355.06 176l64 64h-83.37v32h83.37z'/></svg>\"\nexport const expand = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Expand</title><path stroke-linecap='round' stroke-linejoin='round' d='M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const expandOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Expand</title><path stroke-linecap='round' stroke-linejoin='round' d='M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const expandSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Expand</title><path stroke-linecap='square' stroke-miterlimit='10' d='M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const extensionPuzzle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Extension Puzzle</title><path d='M345.14 480H274a18 18 0 01-18-18v-27.71a31.32 31.32 0 00-9.71-22.77c-7.78-7.59-19.08-11.8-30.89-11.51-21.36.5-39.4 19.3-39.4 41.06V462a18 18 0 01-18 18H87.62A55.62 55.62 0 0132 424.38V354a18 18 0 0118-18h27.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H50a18 18 0 01-18-18v-70.38A55.62 55.62 0 0187.62 112h55.24a8 8 0 008-8v-6.48A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V104a8 8 0 008 8h55.24A54.86 54.86 0 01400 166.86v55.24a8 8 0 008 8h5.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H408a8 8 0 00-8 8v56A54.86 54.86 0 01345.14 480z'/></svg>\"\nexport const extensionPuzzleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Extension Puzzle</title><path stroke-linecap='round' stroke-linejoin='round' d='M413.66 246.1H386a2 2 0 01-2-2v-77.24A38.86 38.86 0 00345.14 128H267.9a2 2 0 01-2-2V98.34c0-27.14-21.5-49.86-48.64-50.33a49.53 49.53 0 00-50.4 49.51V126a2 2 0 01-2 2H87.62A39.74 39.74 0 0048 167.62V238a2 2 0 002 2h26.91c29.37 0 53.68 25.48 54.09 54.85.42 29.87-23.51 57.15-53.29 57.15H50a2 2 0 00-2 2v70.38A39.74 39.74 0 0087.62 464H158a2 2 0 002-2v-20.93c0-30.28 24.75-56.35 55-57.06 30.1-.7 57 20.31 57 50.28V462a2 2 0 002 2h71.14A38.86 38.86 0 00384 425.14v-78a2 2 0 012-2h28.48c27.63 0 49.52-22.67 49.52-50.4s-23.2-48.64-50.34-48.64z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const extensionPuzzleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Extension Puzzle</title><path d='M345.14 480H256v-45.71a31.3 31.3 0 00-9.59-22.65c-7.67-7.56-18.83-11.81-30.57-11.64a44.38 44.38 0 00-28.45 10.67c-5.2 4.6-11.39 12.56-11.39 24.42V480H87.62A55.68 55.68 0 0132 424.38V336h45.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H32v-89.34a53.77 53.77 0 0116.53-39A55.88 55.88 0 0187.62 112h63.24V97.52A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V112h63.24A54.28 54.28 0 01400 166.86v63.24h13.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H400v63.24c0 30.67-24.61 55.62-54.86 55.62z'/></svg>\"\nexport const eye = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye</title><circle cx='256' cy='256' r='64'/><path d='M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96c-42.52 0-84.33 12.15-124.27 36.11-40.73 24.43-77.63 60.12-109.68 106.07a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416c46.71 0 93.81-14.43 136.2-41.72 38.46-24.77 72.72-59.66 99.08-100.92a32.2 32.2 0 00-.1-34.76zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z'/></svg>\"\nexport const eyeOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye Off</title><path d='M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM248 315.85l-51.79-51.79a2 2 0 00-3.39 1.69 64.11 64.11 0 0053.49 53.49 2 2 0 001.69-3.39zM264 196.15L315.87 248a2 2 0 003.4-1.69 64.13 64.13 0 00-53.55-53.55 2 2 0 00-1.72 3.39z'/><path d='M491 273.36a32.2 32.2 0 00-.1-34.76c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.68 96a226.54 226.54 0 00-71.82 11.79 4 4 0 00-1.56 6.63l47.24 47.24a4 4 0 003.82 1.05 96 96 0 01116 116 4 4 0 001.05 3.81l67.95 68a4 4 0 005.4.24 343.81 343.81 0 0067.24-77.4zM256 352a96 96 0 01-93.3-118.63 4 4 0 00-1.05-3.81l-66.84-66.87a4 4 0 00-5.41-.23c-24.39 20.81-47 46.13-67.67 75.72a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.39 76.14 98.28 100.65C162.06 402 207.92 416 255.68 416a238.22 238.22 0 0072.64-11.55 4 4 0 001.61-6.64l-47.47-47.46a4 4 0 00-3.81-1.05A96 96 0 01256 352z'/></svg>\"\nexport const eyeOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye Off</title><path d='M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM255.66 384c-41.49 0-81.5-12.28-118.92-36.5-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 00.14-2.94L93.5 161.38a2 2 0 00-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0075.8-12.58 2 2 0 00.77-3.31l-21.58-21.58a4 4 0 00-3.83-1 204.8 204.8 0 01-51.16 6.47zM490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 00-74.89 12.83 2 2 0 00-.75 3.31l21.55 21.55a4 4 0 003.88 1 192.82 192.82 0 0150.21-6.69c40.69 0 80.58 12.43 118.55 37 34.71 22.4 65.74 53.88 89.76 91a.13.13 0 010 .16 310.72 310.72 0 01-64.12 72.73 2 2 0 00-.15 2.95l19.9 19.89a2 2 0 002.7.13 343.49 343.49 0 0068.64-78.48 32.2 32.2 0 00-.1-34.78z'/><path d='M256 160a95.88 95.88 0 00-21.37 2.4 2 2 0 00-1 3.38l112.59 112.56a2 2 0 003.38-1A96 96 0 00256 160zM165.78 233.66a2 2 0 00-3.38 1 96 96 0 00115 115 2 2 0 001-3.38z'/></svg>\"\nexport const eyeOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye Off</title><path d='M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM259.34 192.09l60.57 60.57a64.07 64.07 0 00-60.57-60.57zM252.66 319.91l-60.57-60.57a64.07 64.07 0 0060.57 60.57z'/><path d='M256 352a96 96 0 01-92.6-121.34l-69.07-69.08C66.12 187.42 39.24 221.14 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416A233.47 233.47 0 00335 402.2l-53.61-53.6A95.84 95.84 0 01256 352zM256 160a96 96 0 0192.6 121.34L419.26 352c29.15-26.25 56.07-61.56 76.74-96-26.38-43.43-62.9-88.56-101.18-114.82C351.1 111.2 304.31 96 255.76 96a222.92 222.92 0 00-78.21 14.29l53.11 53.11A95.84 95.84 0 01256 160z'/></svg>\"\nexport const eyeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye</title><path d='M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 00-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 000-17.47C428.89 172.28 347.8 112 255.66 112z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='80' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const eyeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eye</title><circle cx='256' cy='256' r='64'/><path d='M394.82 141.18C351.1 111.2 304.31 96 255.76 96c-43.69 0-86.28 13-126.59 38.48C88.52 160.23 48.67 207 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416c49 0 95.85-15.07 139.3-44.79C433.31 345 469.71 299.82 496 256c-26.38-43.43-62.9-88.56-101.18-114.82zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z'/></svg>\"\nexport const eyedrop = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eyedrop</title><path d='M461.05 51a65 65 0 00-45.71-19h-.76a61.81 61.81 0 00-44.36 19.25 12.81 12.81 0 00-1.07 1.25l-54 69.76c-5.62 7.1-12.74 8.68-16.78 4.64l-1.9-1.9a48 48 0 00-67.92 67.92l9.91 9.91a2 2 0 010 2.83L58.7 385.38C54 390.05 46.9 399.85 38.85 431c-4.06 15.71-6.51 29.66-6.61 30.24A16 16 0 0048 480a15.68 15.68 0 002.64-.22c.58-.1 14.44-2.43 30.13-6.44 31.07-7.94 41.05-15.24 45.85-20l179.77-179.79a2 2 0 012.82 0l9.92 9.92a48 48 0 0067.92-67.93l-1.59-1.54c-5-5-2.52-12.11 4.32-17.14l69.75-53.94a17.82 17.82 0 001.47-1.32 63.2 63.2 0 0019-45A63.88 63.88 0 00461.05 51zM250.78 283.9c-2.92 2.92-16.18 7.92-23.39.71s-2.24-20.42.69-23.35l33-33a2 2 0 012.83 0l19.84 19.83a2 2 0 010 2.83z'/></svg>\"\nexport const eyedropOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eyedrop</title><path d='M262.51 204.22L70 396.69C57.56 409.15 48 464 48 464s54.38-9.09 67.31-22L307.8 249.51' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='211.72' y='172.19' width='192.15' height='64.05' rx='32.03' ry='32.03' transform='rotate(45 307.788 204.2)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M289.91 141s20.57 8.57 37.22-8.08l54.67-70.63c18.5-19.41 49.26-18.69 67.94 0h0c18.68 18.68 19.34 48.81 0 67.93l-70.68 54.67c-15.65 15.65-8.08 37.22-8.08 37.22M115.31 442s-26.48 17.34-44.56-.73-.75-44.58-.75-44.58' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const eyedropSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Eyedrop</title><path d='M480 96.22a63.84 63.84 0 00-18.95-45.61 65 65 0 00-45.71-19h-.76a61.78 61.78 0 00-44.22 19.09l-74.88 74.88-33.88-33.86-34.07 33.91-33.85 34 44 44L32 409.37V480h70.63l205.7-205.71L352 317.94l11.31-11.19c.11-.1 10.42-10.31 22.79-22.68l33.85-34-33.89-33.89L461 141.23a63.18 63.18 0 0019-45.01zM245 292.35L219.65 267l40.68-40.69 25.38 25.38z'/></svg>\"\nexport const fastFood = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fast Food</title><path d='M368 128h.09M479.55 96h-91.06l8.92-35.66 38.32-13.05c8.15-2.77 13-11.43 10.65-19.71a16 16 0 00-20.54-10.73l-47 16a16 16 0 00-10.36 11.27L355.51 96H224.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 128h2.75l1 8.66A8.3 8.3 0 00236 144c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a123.4 123.4 0 0110.12 29.51 7.83 7.83 0 003.29 4.88 72 72 0 0126.38 86.43 7.92 7.92 0 00-.15 5.53A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80.12 80.12 0 01-28.78 21.67 8 8 0 00-4.21 4.37 108.19 108.19 0 01-17.37 29.86 2.5 2.5 0 001.9 4.11h49.21a48.22 48.22 0 0047.85-44.14L477.4 128h2.6a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z'/><path d='M108.69 320a23.87 23.87 0 0117 7l15.51 15.51a4 4 0 005.66 0L162.34 327a23.87 23.87 0 0117-7h196.58a8 8 0 008.08-7.92V312a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312a8 8 0 008 8zM185.94 352a8 8 0 00-5.66 2.34l-22.14 22.15a20 20 0 01-28.28 0l-22.14-22.15a8 8 0 00-5.66-2.34h-69.4a15.93 15.93 0 00-15.76 13.17A65.22 65.22 0 0016 376c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 26.13-.47 47.26-25.39 47.26-56a65.22 65.22 0 00-.9-10.83A15.93 15.93 0 00367.34 352z'/></svg>\"\nexport const fastFoodOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fast Food</title><path d='M322 416c0 35.35-20.65 64-56 64H134c-35.35 0-56-28.65-56-64M336 336c17.67 0 32 17.91 32 40h0c0 22.09-14.33 40-32 40H64c-17.67 0-32-17.91-32-40h0c0-22.09 14.33-40 32-40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M344 336H179.31a8 8 0 00-5.65 2.34l-26.83 26.83a4 4 0 01-5.66 0l-26.83-26.83a8 8 0 00-5.65-2.34H56a24 24 0 01-24-24h0a24 24 0 0124-24h288a24 24 0 0124 24h0a24 24 0 01-24 24zM64 276v-.22c0-55 45-83.78 100-83.78h72c55 0 100 29 100 84v-.22M241 112l7.44 63.97' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 480h139.31a32 32 0 0031.91-29.61L463 112' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M368 112l16-64 47-16' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M224 112h256' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fastFoodSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fast Food</title><path d='M384 352H184.36l-41 35-41-35H16v24c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 13.88-.25 26.35-7.4 35-18.63A61.26 61.26 0 00384 376zM105 320l38.33 28.19L182 320h202v-8a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312v8h89z'/><path d='M463.08 96h-74.59l8.92-35.66L442 45l-10-29-62 20-14.49 60H208v32h18.75l1.86 16H236c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a124.16 124.16 0 0110.73 32.65 72 72 0 0127.89 90.9A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80 80 0 01-31.83 22.95 109.21 109.21 0 01-18.53 33c-1.18 1.42-2.39 2.81-3.63 4.15H416c16 0 23-8 25-23l36.4-345H496V96z'/></svg>\"\nexport const female = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Female</title><path d='M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-36a22 22 0 000 44h36v36a22 22 0 0044 0v-36h36a22 22 0 000-44h-36v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z'/></svg>\"\nexport const femaleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Female</title><circle cx='256' cy='184' r='152' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 336v144M314 416H198' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const femaleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Female</title><path d='M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-58v44h58v58h44v-58h58v-44h-58v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z'/></svg>\"\nexport const fileTray = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray</title><path d='M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z'/></svg>\"\nexport const fileTrayFull = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Full</title><path d='M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z'/><path d='M368 160H144a16 16 0 010-32h224a16 16 0 010 32zM384 224H128a16 16 0 010-32h256a16 16 0 010 32z'/></svg>\"\nexport const fileTrayFullOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Full</title><path d='M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fileTrayFullSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Full</title><path d='M128 128h256v38H128zM112 192h288v38H112z'/><path d='M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z'/></svg>\"\nexport const fileTrayOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray</title><path d='M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 272h144M320 272h144M192 272a64 64 0 00128 0' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fileTraySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray</title><path d='M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z'/></svg>\"\nexport const fileTrayStacked = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Stacked</title><path d='M464 352H320a16 16 0 00-16 16 48 48 0 01-96 0 16 16 0 00-16-16H48a16 16 0 00-16 16v64a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64v-64a16 16 0 00-16-16zM479.46 187.88L447.61 68.45C441.27 35.59 417.54 16 384 16H128c-16.8 0-31 4.69-42.1 13.94S67.66 52 64.4 68.4L32.54 187.88A15.9 15.9 0 0032 192v48c0 35.29 28.71 80 64 80h320c35.29 0 64-44.71 64-80v-48a15.9 15.9 0 00-.54-4.12zM440.57 176H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 176H71.43a2 2 0 01-1.93-2.52L95.71 75c3.55-18.41 13.81-27 32.29-27h256c18.59 0 28.84 8.53 32.25 26.85l26.25 98.63a2 2 0 01-1.93 2.52z'/></svg>\"\nexport const fileTrayStackedOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Stacked</title><path d='M48 336v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 336h144M320 336h144M192 336a64 64 0 00128 0' class='ionicon-fill-none ionicon-stroke-width'/><path d='M384 32H128c-26 0-43 14-48 40L48 192v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96L432 72c-5-27-23-40-48-40z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 192h144M320 192h144M192 192a64 64 0 00128 0' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fileTrayStackedSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>File Tray Stacked</title><path d='M448 16H64L32 176v144h448V176zm-12 160H320a64 64 0 01-128 0H76L98 58h316zM320 352a64 64 0 01-128 0H32v144h448V352z'/></svg>\"\nexport const film = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Film</title><path d='M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44zM112 388a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm241.68 124H158.32a16 16 0 010-32h195.36a16 16 0 110 32zM448 388a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12z'/></svg>\"\nexport const filmOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Film</title><rect x='48' y='96' width='416' height='320' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='384' y='336' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='384' y='256' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='384' y='176' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='384' y='96' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='336' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='256' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='176' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='96' width='80' height='80' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='128' y='96' width='256' height='160' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='128' y='256' width='256' height='160' rx='28' ry='28' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const filmSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Film</title><path d='M480 80H32v352h448zM112 352v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm256 160H144v-32h224zm80 80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48z'/></svg>\"\nexport const filter = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter</title><path d='M472 168H40a24 24 0 010-48h432a24 24 0 010 48zM392 280H120a24 24 0 010-48h272a24 24 0 010 48zM296 392h-80a24 24 0 010-48h80a24 24 0 010 48z'/></svg>\"\nexport const filterCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm32 304h-64a16 16 0 010-32h64a16 16 0 010 32zm48-64H176a16 16 0 010-32h160a16 16 0 010 32zm32-64H144a16 16 0 010-32h224a16 16 0 010 32z'/></svg>\"\nexport const filterCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter Circle</title><path stroke-miterlimit='10' d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M144 208h224M176 272h160M224 336h64' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const filterCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 304h-96v-32h96zm48-64H160v-32h192zm32-64H128v-32h256z'/></svg>\"\nexport const filterOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter</title><path stroke-linecap='round' stroke-linejoin='round' d='M32 144h448M112 256h288M208 368h96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const filterSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Filter</title><path d='M16 120h480v48H16zM96 232h320v48H96zM192 344h128v48H192z'/></svg>\"\nexport const fingerPrint = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Finger Print</title><path d='M63.28 202a15.29 15.29 0 01-7.7-2 14.84 14.84 0 01-5.52-20.46C69.34 147.36 128 72.25 256 72.25c55.47 0 104.12 14.57 144.53 43.29 33.26 23.57 51.9 50.25 60.78 63.1a14.79 14.79 0 01-4 20.79 15.52 15.52 0 01-21.24-4C420 172.32 371 102 256 102c-112.25 0-163 64.71-179.53 92.46A15 15 0 0163.28 202z'/><path d='M320.49 496a15.31 15.31 0 01-3.79-.43c-92.85-23-127.52-115.82-128.93-119.68l-.22-.85c-.76-2.68-19.39-66.33 9.21-103.61 13.11-17 33.05-25.72 59.38-25.72 24.48 0 42.14 7.61 54.28 23.36 10 12.86 14 28.72 17.87 44 8.13 31.82 14 48.53 47.79 50.25 14.84.75 24.59-7.93 30.12-15.32 14.95-20.15 17.55-53 6.28-82C398 228.57 346.61 158 256 158c-38.68 0-74.22 12.43-102.72 35.79-23.59 19.35-42.28 46.67-51.28 74.75-16.69 52.28 5.2 134.46 5.41 135.21A14.83 14.83 0 0196.54 422a15.39 15.39 0 01-18.74-10.6c-1-3.75-24.38-91.4-5.1-151.82 21-65.47 85.81-131.47 183.33-131.47 45.07 0 87.65 15.32 123.19 44.25 27.52 22.5 50 52.72 61.76 82.93 14.95 38.57 10.94 81.86-10.19 110.14-14.08 18.86-34.13 28.72-56.34 27.65-57.86-2.9-68.26-43.29-75.84-72.75-7.8-30.22-12.79-44.79-42.58-44.79-16.36 0-27.85 4.5-35 13.82-9.75 12.75-10.51 32.68-9.43 47.14a152.44 152.44 0 005.1 29.79c2.38 6 33.37 82 107.59 100.39a14.88 14.88 0 0111 18.11 15.36 15.36 0 01-14.8 11.21z'/><path d='M201.31 489.14a15.5 15.5 0 01-11.16-4.71c-37.16-39-58.18-82.61-66.09-137.14V347c-4.44-36.1 2.06-87.21 33.91-122.35 23.51-25.93 56.56-39.11 98.06-39.11 49.08 0 87.65 22.82 111.7 65.89 17.45 31.29 20.91 62.47 21 63.75a15.07 15.07 0 01-13.65 16.4 15.26 15.26 0 01-16.79-13.29A154 154 0 00340.43 265c-18.64-32.89-47-49.61-84.51-49.61-32.4 0-57.75 9.75-75.19 29-25.14 27.75-30 70.5-26.55 98.78 6.93 48.22 25.46 86.58 58.18 120.86a14.7 14.7 0 01-.76 21.11 15.44 15.44 0 01-10.29 4z'/><path d='M372.5 446.18c-32.5 0-60.13-9-82.24-26.89-44.42-35.79-49.4-94.08-49.62-96.54a15.27 15.27 0 0130.45-2.36c.11.86 4.55 48.54 38.79 76 20.26 16.18 47.34 22.6 80.71 18.85a15.2 15.2 0 0116.91 13.18 14.92 14.92 0 01-13.44 16.5 187 187 0 01-21.56 1.26zM398.18 48.79C385.5 40.54 340.54 16 256 16c-88.74 0-133.81 27.11-143.78 34a11.59 11.59 0 00-1.84 1.4.36.36 0 01-.22.1 14.87 14.87 0 00-5.09 11.15 15.06 15.06 0 0015.31 14.85 15.56 15.56 0 008.88-2.79c.43-.32 39.22-28.82 126.77-28.82S382.58 74.29 383 74.5a15.25 15.25 0 009.21 3 15.06 15.06 0 0015.29-14.89 14.9 14.9 0 00-9.32-13.82z'/></svg>\"\nexport const fingerPrintOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Finger Print</title><path d='M390.42 75.28a10.45 10.45 0 01-5.32-1.44C340.72 50.08 302.35 40 256.35 40c-45.77 0-89.23 11.28-128.76 33.84C122 77 115.11 74.8 111.87 69a12.4 12.4 0 014.63-16.32A281.81 281.81 0 01256.35 16c49.23 0 92.23 11.28 139.39 36.48a12 12 0 014.85 16.08 11.3 11.3 0 01-10.17 6.72zm-330.79 126a11.73 11.73 0 01-6.7-2.16 12.26 12.26 0 01-2.78-16.8c22.89-33.6 52-60 86.69-78.48 72.58-38.84 165.51-39.12 238.32-.24 34.68 18.48 63.8 44.64 86.69 78a12.29 12.29 0 01-2.78 16.8 11.26 11.26 0 01-16.18-2.88c-20.8-30.24-47.15-54-78.36-70.56-66.34-35.28-151.18-35.28-217.29.24-31.44 16.8-57.79 40.8-78.59 71a10 10 0 01-9.02 5.08zM204.1 491a10.66 10.66 0 01-8.09-3.6C175.9 466.48 165 453 149.55 424c-16-29.52-24.27-65.52-24.27-104.16 0-71.28 58.71-129.36 130.84-129.36S387 248.56 387 319.84a11.56 11.56 0 11-23.11 0c0-58.08-48.32-105.36-107.72-105.36S148.4 261.76 148.4 319.84c0 34.56 7.39 66.48 21.49 92.4 14.8 27.6 25 39.36 42.77 58.08a12.67 12.67 0 010 17 12.44 12.44 0 01-8.56 3.68zm165.75-44.4c-27.51 0-51.78-7.2-71.66-21.36a129.1 129.1 0 01-55-105.36 11.57 11.57 0 1123.12 0 104.28 104.28 0 0044.84 85.44c16.41 11.52 35.6 17 58.72 17a147.41 147.41 0 0024-2.4c6.24-1.2 12.25 3.12 13.4 9.84a11.92 11.92 0 01-9.47 13.92 152.28 152.28 0 01-27.95 2.88zM323.38 496a13 13 0 01-3-.48c-36.76-10.56-60.8-24.72-86-50.4-32.37-33.36-50.16-77.76-50.16-125.28 0-38.88 31.9-70.56 71.19-70.56s71.2 31.68 71.2 70.56c0 25.68 21.5 46.56 48.08 46.56s48.08-20.88 48.08-46.56c0-90.48-75.13-163.92-167.59-163.92-65.65 0-125.75 37.92-152.79 96.72-9 19.44-13.64 42.24-13.64 67.2 0 18.72 1.61 48.24 15.48 86.64 2.32 6.24-.69 13.2-6.7 15.36a11.34 11.34 0 01-14.79-7 276.39 276.39 0 01-16.88-95c0-28.8 5.32-55 15.72-77.76 30.75-67 98.94-110.4 173.6-110.4 105.18 0 190.71 84.24 190.71 187.92 0 38.88-31.9 70.56-71.2 70.56s-71.2-31.68-71.2-70.56c.01-25.68-21.49-46.6-48.07-46.6s-48.08 20.88-48.08 46.56c0 41 15.26 79.44 43.23 108.24 22 22.56 43 35 75.59 44.4 6.24 1.68 9.71 8.4 8.09 14.64a11.39 11.39 0 01-10.87 9.16z'/></svg>\"\nexport const fingerPrintSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Finger Print</title><path d='M56.79 200.58l12.36 7.5 7.35-13.58C93.07 166.75 143.78 102 256 102c115 0 164 70.32 180.1 93.46l8.16 12.7L469.88 192l-8.54-13.36c-8.88-12.85-27.52-39.53-60.78-63.1C360.15 86.82 311.5 72.25 256 72.25c-128.07 0-186.69 75.11-206 107.25L42.63 192 54 198.86a14.09 14.09 0 001.63 1.1 12.57 12.57 0 001.16.62z'/><path d='M379.22 172.32c-35.54-28.93-78.12-44.25-123.22-44.25-97.52 0-162.31 66-183.33 131.47C53.42 320 76.82 407.61 77.8 411.36l4.38 13.81 29.93-6.43-4.74-15c-.21-.75-22.1-82.93-5.41-135.21 9-28.08 27.73-55.4 51.35-74.79C181.81 170.39 217.35 158 256 158c90.58 0 141.93 70.61 156.45 108.11 11.27 28.93 8.67 61.82-6.28 82-5.53 7.39-15.28 16.07-30.12 15.32-33.81-1.72-39.66-18.43-47.79-50.25-3.9-15.32-7.9-31.18-17.87-44-12.14-15.75-29.8-23.36-54.28-23.36-26.33 0-46.27 8.68-59.38 25.72-28.6 37.28-10 100.93-9.21 103.61l.22.85c1.41 3.86 36.08 96.65 128.93 119.68l14.77 3.21 8.09-28.71-15.27-3.43c-74.22-18.43-105.21-94.39-107.59-100.39a152.44 152.44 0 01-5.1-29.79c-1.08-14.46-.32-34.39 9.43-47.14 7.15-9.32 18.64-13.82 35-13.82 29.79 0 34.78 14.57 42.58 44.79 7.58 29.46 18 69.85 75.84 72.75 22.21 1.07 42.26-8.79 56.34-27.65 21.13-28.28 25.14-71.57 10.19-110.14-11.68-30.36-34.21-60.54-61.73-83.04z'/><path d='M154.18 343.21c-3.47-28.28 1.41-71 26.55-98.78 17.44-19.29 42.79-29 75.19-29 37.49 0 65.87 16.72 84.51 49.61a154 154 0 0117.88 53.25l1.43 14.69 30-2.2a112.63 112.63 0 00-1-15.6c-.11-1.28-3.57-32.46-21-63.75-24.06-43.11-62.63-65.93-111.74-65.93-41.5 0-74.55 13.18-98.06 39.11-31.85 35.14-38.35 86.25-33.91 122.35v.33c7.97 54.53 28.97 98.14 66.12 137.14l11.6 11.22 20.95-21.79-10.34-9.79c-32.72-34.28-51.25-72.64-58.18-120.86zM132.47 72.66c11.08-6.72 50.27-26.77 123.53-26.77 87.54 0 126.44 28.72 126.87 28.93l13.9 8.86L413 58.47l-13.22-8.56c-.52-.38-1.06-.76-1.6-1.12C385.5 40.54 340.54 16 256 16c-87.71 0-132.75 26.48-143.41 33.71L99 58.52l16.2 25.21z'/><path d='M390.59 415.21c-33.37 3.75-60.45-2.67-80.71-18.85-34.24-27.43-38.68-75.11-38.79-76l-1.23-14.88-30.53 2.23 1.31 15c.22 2.46 5.2 60.75 49.62 96.54 22.11 17.89 49.74 26.89 82.24 26.89a187 187 0 0021.56-1.29l16.59-2.09-6.1-29.71z'/></svg>\"\nexport const fish = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fish</title><path d='M512 256c0-16.54-14.27-46.76-45.61-74a207.06 207.06 0 00-60.28-36.12 3.15 3.15 0 00-3.93 1.56c-.15.29-.3.57-.47.86l-9.59 15.9a183.24 183.24 0 00.07 183.78l.23.39 8.74 16a4 4 0 004.94 1.82C479.63 337.42 512 281.49 512 256zm-93.92-.14a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z'/><path d='M335.45 256a214.8 214.8 0 0129.08-108l.12-.21 4.62-7.67a4 4 0 00-2.59-6 284.29 284.29 0 00-39.26-5.39 7.94 7.94 0 01-4.29-1.6c-19.28-14.66-57.5-40.3-96.46-46.89a16 16 0 00-18 20.18l10.62 37.17a4 4 0 01-2.42 4.84c-36.85 13.69-68.59 38.75-91.74 57.85a8 8 0 01-10.06.06q-4.72-3.75-9.69-7.39c-39.64-28.95-86.21-32.76-88.17-32.9a16 16 0 00-16.83 19.4c.42 1.93 9.19 40.69 31.7 71.61a8.09 8.09 0 010 9.55C9.57 291.52.8 330.29.38 332.22a16 16 0 0016.83 19.4c2-.14 48.53-4 88.12-32.88q4.85-3.56 9.47-7.22a8 8 0 0110.06.07c23.25 19.19 55.05 44.28 92 58a4 4 0 012.42 4.83l-10.66 37.18a16 16 0 0018 20.18c17.16-2.9 51.88-12.86 96.05-46.83a8.15 8.15 0 014.36-1.65 287.36 287.36 0 0039.22-5.3 4 4 0 002.69-5.83l-4.51-8.29A214.81 214.81 0 01335.45 256z'/></svg>\"\nexport const fishOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fish</title><path stroke-linejoin='round' d='M240 152c-50.71 12.21-94.15 52.31-120.3 73.43a261.14 261.14 0 00-23.81-19.58C59.53 179.29 16 176 16 176s11.37 51.53 41.36 79.83C27.37 284.14 16 335.67 16 335.67s43.53-3.29 79.89-29.85a259.18 259.18 0 0023.61-19.41c26.1 21.14 69.74 61.34 120.5 73.59l-16 56c39.43-6.67 78.86-35.51 94.72-48.25C448 362 496 279 496 256c0-22-48-106-176.89-111.73C303.52 131.78 263.76 102.72 224 96z' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='416' cy='239.99' r='16'/><path stroke-linecap='round' stroke-miterlimit='20' d='M378.37 356a199.22 199.22 0 010-200' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fishSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fish</title><path d='M335.45 256a214.83 214.83 0 0129.08-108l7.62-13.26a280.69 280.69 0 00-48.64-7.15c-21.94-16.9-54.64-36.95-92.34-43.33L208 80l13.37 61.86c-41.67 14.14-78.43 42.86-102.76 62.62q-7.06-5.91-14.78-11.55c-39.71-29-82.6-31.8-84.4-31.9L0 160l2.67 19.31c.29 2 6.79 44.73 31.65 76.52C9.46 287.63 3 330.33 2.67 332.36L0 352l19.43-1.36c1.8-.1 44.69-2.89 84.4-31.9q7.58-5.53 14.56-11.37c24.37 19.83 61.14 48.6 102.86 62.74L208 432l23.17-4.22c37.49-6.34 70.08-26.4 92-43.32a284.27 284.27 0 0049.32-7.23l-7.91-13.18A214.92 214.92 0 01335.45 256z'/><path d='M499.59 221.75c-5.85-9.88-16.54-24.9-34.19-40.28a209.82 209.82 0 00-62-37L392.23 164a183.22 183.22 0 00-.09 183.87l11.75 19.57a209.26 209.26 0 0061.42-36.49C497.05 303.47 512 269 512 256c0-12.31-8-26.74-12.41-34.25zM416 256a16 16 0 1116-16 16 16 0 01-16 16z'/></svg>\"\nexport const fitness = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fitness</title><path d='M193.69 152.84a16 16 0 0129.64 2.56l36.4 121.36 30-59.92a16 16 0 0128.62 0L345.89 272h96.76A213.08 213.08 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65A211.13 211.13 0 0056.93 240h93.18z'/><path d='M321.69 295.16L304 259.78l-33.69 67.38A16 16 0 01256 336q-.67 0-1.38-.06a16 16 0 01-14-11.34l-36.4-121.36-30 59.92A16 16 0 01160 272H69.35q14 29.29 37.27 57.66c18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81a316.79 316.79 0 0019-25.66H336a16 16 0 01-14.31-8.84zM464 272h-21.35a260.11 260.11 0 01-18.25 32H464a16 16 0 000-32zM48 240a16 16 0 000 32h21.35a225.22 225.22 0 01-12.42-32z'/></svg>\"\nexport const fitnessOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fitness</title><path d='M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M48 256h112l48-96 48 160 48-96 32 64h128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const fitnessSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Fitness</title><path d='M480 272h-37.34a261.41 261.41 0 01-18.25 32H480zM32 240v32h37.34a225.1 225.1 0 01-12.4-32z'/><path d='M304 259.78l-51.73 103.46-48-160L169.89 272H69.34c10 20.92 23.5 41.41 40.63 61.68 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32A322.78 322.78 0 00424.41 304h-98.3z'/><path d='M211.73 116.76l48 160L304 188.22 345.89 272h96.77A213.13 213.13 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65A211.23 211.23 0 0056.94 240h93.17z'/></svg>\"\nexport const flag = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flag</title><path d='M80 480a16 16 0 01-16-16V68.13a24 24 0 0111.9-20.72C88 40.38 112.38 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80a183.84 183.84 0 0071-14.5 18 18 0 0125 16.58v219.36a20 20 0 01-12 18.31c-8.71 3.81-40.51 16.25-84 16.25-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-55.74 5.58-64 9.11V464a16 16 0 01-16 16z'/></svg>\"\nexport const flagOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flag</title><path d='M80 464V68.14a8 8 0 014-6.9C91.81 56.66 112.92 48 160 48c64 0 145 48 192 48a199.53 199.53 0 0077.23-15.77 2 2 0 012.77 1.85v219.36a4 4 0 01-2.39 3.65C421.37 308.7 392.33 320 352 320c-48 0-128-32-192-32s-80 16-80 16' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flagSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flag</title><path d='M102 480H64V57.37l4.69-4.68C72.14 49.23 92.78 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80c42.83 0 72.72-14.25 73-14.4l23-11.14v259.43l-8.84 4.42C437.71 319 403.19 336 352 336c-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-49.74 5.58-58 9.11z'/></svg>\"\nexport const flame = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flame</title><path d='M394.23 197.56a300.43 300.43 0 00-53.37-90C301.2 61.65 249.05 32 208 32a16 16 0 00-15.48 20c13.87 53-14.88 97.07-45.31 143.72C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.77-122.44zm-105.9 221.13C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 4.95-10.74 10-21.67 13-33.37a8 8 0 0112.49-4.51A126.48 126.48 0 01275 292c18.17 24 29 52.42 29 76 0 22.24-5.42 39.77-15.67 50.69z'/></svg>\"\nexport const flameOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flame</title><path d='M112 320c0-93 124-165 96-272 66 0 192 96 192 272a144 144 0 01-288 0z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M320 368c0 57.71-32 80-64 80s-64-22.29-64-80 40-86 32-128c42 0 96 70.29 96 128z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flameSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flame</title><path d='M394.24 197.56a300.67 300.67 0 00-53.38-90C301.2 61.65 240 32 192 32c19 70-14.36 117.12-44.79 163.77C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.76-122.44zM288.33 418.69C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 6.48-14.07 14.66-27.22 15.11-44.49 11.3 5.88 23.67 16.91 34.54 31.28 18.17 24 29 52.42 29 76 .01 22.23-5.41 39.76-15.66 50.68z'/></svg>\"\nexport const flash = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash</title><path d='M194.82 496a18.36 18.36 0 01-18.1-21.53v-.11L204.83 320H96a16 16 0 01-12.44-26.06L302.73 23a18.45 18.45 0 0132.8 13.71c0 .3-.08.59-.13.89L307.19 192H416a16 16 0 0112.44 26.06L209.24 489a18.45 18.45 0 01-14.42 7z'/></svg>\"\nexport const flashOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash Off</title><path d='M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM431.5 204a16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.29 5.35l151 151a4 4 0 005.94-.31l60.8-75.16A16.37 16.37 0 00431.5 204zM301.57 369.19l-151-151a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35z'/></svg>\"\nexport const flashOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash Off</title><path d='M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM294.34 84.28l-22.08 120.84a16 16 0 006.17 15.71 16.49 16.49 0 009.93 3.17h94.12l-38.37 47.42a4 4 0 00.28 5.34l17.07 17.07a4 4 0 005.94-.31l60.8-75.16a16.37 16.37 0 003.3-14.36 16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.28 5.35l17.07 17.06a4 4 0 005.94-.31zM217.78 427.57l22-120.71a16 16 0 00-6.19-15.7 16.54 16.54 0 00-9.92-3.16h-94.1l38.36-47.42a4 4 0 00-.28-5.34l-17.07-17.07a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35l-17.07-17.06a4 4 0 00-5.94.31z'/></svg>\"\nexport const flashOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash Off</title><path d='M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM80 304h144l-32 192 108.18-129.82-148.36-148.36L80 304zM432 208H288l32-192-108.18 129.82 148.36 148.36L432 208z'/></svg>\"\nexport const flashOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash</title><path d='M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flashSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flash</title><path d='M432 208H288l32-192L80 304h144l-32 192z'/></svg>\"\nexport const flashlight = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flashlight</title><path d='M462 216c9.35-9.35 15.14-19.09 17.19-28.95 2.7-12.95-1.29-25.55-11.22-35.48L360.43 44.05C346.29 29.92 322 24.07 296 50l-2 2a8 8 0 000 11.32L448.64 218a8 8 0 0011.36 0zM250.14 153.08l-.16 2.34c-.53 7.18-6.88 19.15-13.88 26.14L47.27 370.36c-11.12 11.11-16.46 25.57-15.05 40.7C33.49 424.58 40.16 438 51 448.83L63.17 461c12.61 12.6 27.78 19 42.49 19a50.4 50.4 0 0036-15.24l188.84-188.8c7.07-7.07 18.84-13.3 26.17-13.87 17.48-1.32 43.57-3.28 67.79-15.65a4 4 0 001-6.37L271.69 86.31a4 4 0 00-6.39 1c-12.12 22.99-13.82 46.91-15.16 65.77zm-9.95 146.83a20 20 0 110-25.25 20 20 0 010 25.25z'/></svg>\"\nexport const flashlightOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flashlight</title><path d='M456.64 162.86L349.12 55.36c-13.15-13.14-28.68-7.17-41.82 6l-11.95 12c-26.13 26.13-27.62 58.38-29.42 83.31-.89 12.24-9.78 27.55-18.51 36.28L58.58 381.67c-16.35 16.33-12.69 39.42 3.73 55.84l12.17 12.17c16.36 16.35 39.43 20.16 55.86 3.74l188.83-188.8c8.74-8.74 24-17.55 36.29-18.52 24.87-1.86 58.62-4.85 83.26-29.49l11.94-11.94c13.15-13.14 19.12-28.67 5.98-41.81z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='224.68' cy='287.28' r='20'/><path stroke-linecap='round' stroke-miterlimit='10' d='M289 81l142 142' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flashlightSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flashlight</title><path d='M330 16l-42.68 42.7L453.3 224.68 496 182 330 16z'/><ellipse cx='224.68' cy='287.3' rx='20.03' ry='19.96' class='ionicon-fill-none'/><path d='M429.21 243.85L268 82.59 249.65 168 16 402l94 94 234.23-233.8zm-189 56.07a20 20 0 110-25.25 20 20 0 01-.02 25.25z'/></svg>\"\nexport const flask = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flask</title><path d='M452.32 365L327.4 167.12a48.07 48.07 0 01-7.4-25.64V64h15.56c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 32H176.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 64h16v77.48a47.92 47.92 0 01-7.41 25.63L59.68 365a74 74 0 00-2.5 75.84C70.44 465.19 96.36 480 124.13 480h263.74c27.77 0 53.69-14.81 66.95-39.21a74 74 0 00-2.5-75.79zM211.66 184.2A79.94 79.94 0 00224 141.48V68a4 4 0 014-4h56a4 4 0 014 4v73.48a79.94 79.94 0 0012.35 42.72l57.8 91.53a8 8 0 01-6.78 12.27H160.63a8 8 0 01-6.77-12.27z'/></svg>\"\nexport const flaskOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flask</title><path stroke-linecap='round' stroke-miterlimit='10' d='M176 48h160M118 304h276M208 48v93.48a64.09 64.09 0 01-9.88 34.18L73.21 373.49C48.4 412.78 76.63 464 123.08 464h265.84c46.45 0 74.68-51.22 49.87-90.51L313.87 175.66a64.09 64.09 0 01-9.87-34.18V48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flaskSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flask</title><path d='M469.11 382.76L325 153.92V74h32V32H155v42h32v79.92L42.89 382.76c-13 20.64-14.78 43.73-3 65.1S71.59 480 96 480h320c24.41 0 44.32-10.76 56.1-32.14s10.04-44.46-2.99-65.1zM224.39 173.39a29.76 29.76 0 004.62-16V74h54v84.59a25.85 25.85 0 004 13.82L356.82 283H155.18z'/></svg>\"\nexport const flower = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flower</title><circle cx='256' cy='256' r='48'/><path d='M475.93 303.91a67.49 67.49 0 00-44.34-115.53 5.2 5.2 0 01-4.58-3.21 5.21 5.21 0 011-5.51A67.83 67.83 0 00378 66.33h-.25A67.13 67.13 0 00332.35 84a5.21 5.21 0 01-5.52 1 5.23 5.23 0 01-3.22-4.58 67.68 67.68 0 00-135.23 0 5.2 5.2 0 01-3.21 4.58 5.21 5.21 0 01-5.52-1 67.11 67.11 0 00-45.44-17.69H134a67.91 67.91 0 00-50 113.34 5.21 5.21 0 011 5.51 5.2 5.2 0 01-4.58 3.21 67.71 67.71 0 000 135.23 5.23 5.23 0 014.58 3.23 5.22 5.22 0 01-1 5.52 67.54 67.54 0 0050.08 113h.25A67.38 67.38 0 00179.65 428a5.21 5.21 0 015.51-1 5.2 5.2 0 013.21 4.58 67.71 67.71 0 00135.23 0 5.23 5.23 0 013.22-4.58 5.21 5.21 0 015.51 1 67.38 67.38 0 0045.29 17.42h.25a67.48 67.48 0 0050.08-113 5.22 5.22 0 01-1-5.52 5.23 5.23 0 014.58-3.22 67.31 67.31 0 0044.4-19.77zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z'/></svg>\"\nexport const flowerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flower</title><path d='M215.08 156.92c-4.89-24-10.77-56.27-10.77-73.23A51.36 51.36 0 01256 32h0c28.55 0 51.69 23.69 51.69 51.69 0 16.5-5.85 48.95-10.77 73.23M215.08 355.08c-4.91 24.06-10.77 56.16-10.77 73.23A51.36 51.36 0 00256 480h0c28.55 0 51.69-23.69 51.69-51.69 0-16.54-5.85-48.93-10.77-73.23M355.08 215.08c24.06-4.91 56.16-10.77 73.23-10.77A51.36 51.36 0 01480 256h0c0 28.55-23.69 51.69-51.69 51.69-16.5 0-48.95-5.85-73.23-10.77M156.92 215.07c-24-4.89-56.25-10.76-73.23-10.76A51.36 51.36 0 0032 256h0c0 28.55 23.69 51.69 51.69 51.69 16.5 0 48.95-5.85 73.23-10.77' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M296.92 156.92c13.55-20.48 32.3-47.25 44.37-59.31a51.35 51.35 0 0173.1 0h0c20.19 20.19 19.8 53.3 0 73.1-11.66 11.67-38.67 30.67-59.31 44.37M156.92 296.92c-20.48 13.55-47.25 32.3-59.31 44.37a51.35 51.35 0 000 73.1h0c20.19 20.19 53.3 19.8 73.1 0 11.67-11.66 30.67-38.67 44.37-59.31M355.08 296.92c20.48 13.55 47.25 32.3 59.31 44.37a51.35 51.35 0 010 73.1h0c-20.19 20.19-53.3 19.8-73.1 0-11.69-11.69-30.66-38.65-44.37-59.31M215.08 156.92c-13.53-20.43-32.38-47.32-44.37-59.31a51.35 51.35 0 00-73.1 0h0c-20.19 20.19-19.8 53.3 0 73.1 11.61 11.61 38.7 30.68 59.31 44.37' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='64' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const flowerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Flower</title><circle cx='256' cy='256' r='43'/><path d='M475.93 303.91a67.49 67.49 0 00-47.62-115.6c-2.88 0-6.2.14-9.93.43 2.75-2.36 5.23-4.62 7.33-6.71A67.83 67.83 0 00378 66.33h-.25a67.27 67.27 0 00-47.82 20c-2.11 2.11-4.37 4.59-6.72 7.33.29-3.75.44-7.07.44-9.93a67.69 67.69 0 10-135.38 0c0 2.87.15 6.19.44 9.93-2.36-2.74-4.62-5.22-6.72-7.33a67.27 67.27 0 00-47.82-20H134A67.9 67.9 0 0086.29 182c2.1 2.09 4.58 4.35 7.34 6.72-3.74-.29-7.06-.44-9.94-.44a67.69 67.69 0 000 135.38c2.86 0 6.18-.15 9.93-.44-2.74 2.35-5.22 4.61-7.33 6.72a67.55 67.55 0 0047.82 115.42h.25A67.32 67.32 0 00182 425.71c2.09-2.1 4.35-4.58 6.71-7.33-.28 3.73-.43 7.05-.43 9.93a67.69 67.69 0 00135.38 0c0-2.87-.15-6.19-.44-9.94 2.36 2.75 4.62 5.24 6.72 7.34a67.32 67.32 0 0047.67 19.68h.25A67.5 67.5 0 00425.71 330c-2.11-2.11-4.59-4.37-7.33-6.72 3.75.29 7.07.44 9.93.44a67.27 67.27 0 0047.62-19.81zM256 341a85 85 0 1185-85 85.1 85.1 0 01-85 85z'/></svg>\"\nexport const folder = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder</title><path d='M496 152a56 56 0 00-56-56H220.11a23.89 23.89 0 01-13.31-4L179 73.41A55.77 55.77 0 00147.89 64H72a56 56 0 00-56 56v48a8 8 0 008 8h464a8 8 0 008-8zM16 392a56 56 0 0056 56h368a56 56 0 0056-56V216a8 8 0 00-8-8H24a8 8 0 00-8 8z'/></svg>\"\nexport const folderOpen = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder Open</title><path d='M408 96H252.11a23.89 23.89 0 01-13.31-4L211 73.41A55.77 55.77 0 00179.89 64H104a56.06 56.06 0 00-56 56v24h416c0-30.88-25.12-48-56-48zM423.75 448H88.25a56 56 0 01-55.93-55.15L16.18 228.11v-.28A48 48 0 0164 176h384.1a48 48 0 0147.8 51.83v.28l-16.22 164.74A56 56 0 01423.75 448zm56.15-221.45z'/></svg>\"\nexport const folderOpenOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder Open</title><path d='M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const folderOpenSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder Open</title><path d='M16.08 189.4l28.58 233.87A28 28 0 0072.52 448h367a28 28 0 0027.86-24.73l28.54-233.87A12 12 0 00484 176H28a12 12 0 00-11.92 13.4zM464 124a28 28 0 00-28-28H244.84l-48-32H76a28 28 0 00-28 28v52h416z'/></svg>\"\nexport const folderOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder</title><path d='M440 432H72a40 40 0 01-40-40V120a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H440a40 40 0 0140 40v240a40 40 0 01-40 40zM32 192h448' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const folderSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Folder</title><path d='M16 420a28 28 0 0028 28h424a28 28 0 0028-28V208H16zM496 124a28 28 0 00-28-28H212.84l-48-32H44a28 28 0 00-28 28v84h480z'/></svg>\"\nexport const football = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Football</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm143 304h-45.22a8 8 0 01-6.91-4l-16.14-27.68a8 8 0 01-.86-6l14.86-59.92a8 8 0 014.65-5.45l28.1-11.9a8 8 0 018.34 1.3l41.63 35.82a8 8 0 012.69 7.26 174.75 174.75 0 01-24.28 66.68A8 8 0 01399 352zM134.52 237.13l28.1 11.9a8 8 0 014.65 5.45l14.86 59.92a8 8 0 01-.86 6L165.13 348a8 8 0 01-6.91 4H113a8 8 0 01-6.82-3.81 174.75 174.75 0 01-24.28-66.68 8 8 0 012.69-7.26l41.63-35.82a8 8 0 018.3-1.3zm256.94-87.24l-18.07 51.38A8 8 0 01369 206l-29.58 12.53a8 8 0 01-8.26-1.24L274.9 170.1a8 8 0 01-2.9-6.1v-33.58a8 8 0 013.56-6.65l42.83-28.54a8 8 0 017.66-.67A176.92 176.92 0 01390 142a8 8 0 011.46 7.89zM193.6 95.23l42.84 28.54a8 8 0 013.56 6.65V164a8 8 0 01-2.86 6.13l-56.26 47.19a8 8 0 01-8.26 1.24L143 206a8 8 0 01-4.43-4.72L120.5 149.9a8 8 0 011.5-7.9 176.92 176.92 0 0164-47.48 8 8 0 017.6.71zm17.31 327.46L191.18 373a8 8 0 01.52-7l15.17-26a8 8 0 016.91-4h84.44a8 8 0 016.91 4l15.18 26a8 8 0 01.53 7l-19.59 49.67a8 8 0 01-5.69 4.87 176.58 176.58 0 01-79 0 8 8 0 01-5.65-4.85z'/></svg>\"\nexport const footballOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Football</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 175.15l-76.09 63.83L200 320h112l20.09-81.02L256 175.15zM332.09 238.98l52.87-22.4 25.78-73.26M447 269.97l-62.04-53.39M179.91 238.98l-52.87-22.4-25.78-73.26M65 269.97l62.04-53.39M256 175.15v-57.57l64-42.64M192 74.93l64 42.65M312 320l28 48-28 71M410.74 368H342M200 320l-28 48 28.37 71.5M101.63 368H172' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const footballSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Football</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm140.64 296.08h-46.77l-16.89-29 15-60.44L377.79 242l42.65 36.71a164.87 164.87 0 01-23.8 65.37zM134.21 242L164 254.67l15 60.44-16.89 29h-46.75a164.87 164.87 0 01-23.8-65.34zm249.07-92.47l-18.41 52.33-31.12 13.18L277 167.46v-35l43.86-29.22a166.87 166.87 0 0162.42 46.32zM191.14 103.2L235 132.42v35l-56.75 47.61-31.12-13.18-18.41-52.33a166.87 166.87 0 0162.42-46.32zm26.44 314.3l-20.1-50.66 16-27.51h85l16.06 27.53-20 50.6a166.23 166.23 0 01-77 0z'/></svg>\"\nexport const footsteps = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Footsteps</title><path d='M133.83 361.27c-22.61 0-41-8.17-54.79-24.39s-22.84-40.29-28.11-75.31c-7.76-51.61-.06-95.11 21.68-122.48 12.8-16.12 29.6-25.44 48.58-26.94 16.25-1.3 40.54 5.29 64 44 14.69 24.24 25.86 56.44 30.65 88.34 5.79 38.51 1.48 66.86-13.18 86.65-11.64 15.72-29.54 25.46-53.21 29a106.46 106.46 0 01-15.62 1.13zM173 496c-13.21 0-26.6-4.23-38.66-12.36a79.79 79.79 0 01-33.52-50.6c-2.85-14.66-1.14-26.31 5.22-35.64 10.33-15.15 28.87-18.56 48.49-22.18 2.07-.38 4.17-.76 6.3-1.17 4.52-.86 9.14-2 13.62-3.11 16.78-4.14 34.14-8.43 48.47 1.75 9.59 6.8 15 18.36 16.62 35.32 1.84 19.57-2.36 39.1-11.83 55-10.19 17.11-25.47 28.42-43 31.86A61 61 0 01173 496zM378.17 265.27a106.69 106.69 0 01-15.6-1.2c-23.66-3.5-41.56-13.25-53.2-29-14.66-19.79-19-48.13-13.18-86.65 4.79-31.93 15.93-64.1 30.55-88.25 23.34-38.57 47.66-45.26 64-44.08 18.92 1.38 35.69 10.57 48.51 26.6 21.89 27.37 29.65 71 21.86 122.84-5.27 35-14.2 58.95-28.11 75.31s-32.22 24.43-54.83 24.43zM339 400a61 61 0 01-11.68-1.13c-17.56-3.44-32.84-14.75-43-31.86-9.47-15.9-13.67-35.43-11.83-55 1.6-17 7-28.52 16.62-35.33 14.33-10.17 31.69-5.89 48.47-1.74 4.48 1.1 9.1 2.24 13.62 3.11l6.29 1.17c19.63 3.61 38.17 7 48.5 22.17 6.36 9.33 8.07 21 5.22 35.64a79.78 79.78 0 01-33.52 50.61C365.56 395.78 352.17 400 339 400z'/></svg>\"\nexport const footstepsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Footsteps</title><path d='M200 246.84c8.81 58.62-7.33 90.67-52.91 97.41-50.65 7.49-71.52-26.44-80.33-85.06-11.85-78.88 16-127.94 55.71-131.1 36.14-2.87 68.71 60.14 77.53 118.75zM223.65 409.53c3.13 33.28-14.86 64.34-42 69.66-27.4 5.36-58.71-16.37-65.09-49.19s17.75-34.56 47.32-40.21 55.99-20.4 59.77 19.74zM312 150.83c-8.81 58.62 7.33 90.67 52.9 97.41 50.66 7.49 71.52-26.44 80.33-85.06 11.86-78.89-16-128.22-55.7-131.1-36.4-2.64-68.71 60.13-77.53 118.75zM288.35 313.53c-3.13 33.27 14.86 64.34 42 69.66 27.4 5.36 58.71-16.37 65.09-49.19s-17.75-34.56-47.32-40.22-55.99-20.4-59.77 19.75z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const footstepsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Footsteps</title><path d='M130.54 358.31c-12.83 1.88-33.95 5.38-48-10.56S56.34 293.32 51 258.92c-7.88-50.7-.06-93.43 22-120.31 13-15.83 30.06-25 49.34-26.46 16.51-1.27 41.18 5.19 65 43.19 14.92 23.81 26.27 55.44 31.14 86.77 5.88 37.82 11.61 78.18-8.44 92.65-11.31 8.17-19.43 11-38.62 15.57-15.78 3.75-28.04 6.09-40.88 7.98zM107.72 390.84l108.89-22.46c9.2-1.9 16.58 3.16 20 18.32 11.22 49.76-4.86 109.3-55.22 109.3-47.69 0-79.47-54.36-84.66-83.58-2.37-13.25 1.01-19.53 10.99-21.58zM340.59 254.34c-19.19-4.55-27.31-7.4-38.62-15.57-20.05-14.47-14.32-54.83-8.44-92.65 4.87-31.33 16.22-63 31.14-86.77 23.8-38 48.47-44.46 65-43.19C408.93 17.63 426 26.78 439 42.61c22.08 26.88 29.9 69.61 22 120.31-5.35 34.4-17.46 72.76-31.59 88.83s-35.13 12.44-48 10.56-25.05-4.23-40.82-7.97zM404.28 294.84l-108.89-22.46c-9.2-1.9-16.58 3.16-20 18.32-11.21 49.76 4.87 109.3 55.23 109.3 47.69 0 79.47-54.36 84.66-83.58 2.36-13.25-1.02-19.53-11-21.58z'/></svg>\"\nexport const funnel = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Funnel</title><path d='M296 464a23.88 23.88 0 01-7.55-1.23L208.3 436.1a23.92 23.92 0 01-16.3-22.78V294.11a.44.44 0 00-.09-.13L23.26 97.54A30 30 0 0146.05 48H466a30 30 0 0122.79 49.54L320.09 294a.77.77 0 00-.09.13V440a23.93 23.93 0 01-24 24z'/></svg>\"\nexport const funnelOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Funnel</title><path d='M35.4 87.12l168.65 196.44A16.07 16.07 0 01208 294v119.32a7.93 7.93 0 005.39 7.59l80.15 26.67A7.94 7.94 0 00304 440V294a16.07 16.07 0 014-10.44L476.6 87.12A14 14 0 00466 64H46.05A14 14 0 0035.4 87.12z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const funnelSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Funnel</title><path d='M0 48l192 240v128l128 48V288L512 48H0z'/></svg>\"\nexport const gameController = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Game Controller</title><path d='M483.13 245.38C461.92 149.49 430 98.31 382.65 84.33A107.13 107.13 0 00352 80c-13.71 0-25.65 3.34-38.28 6.88C298.5 91.15 281.21 96 256 96s-42.51-4.84-57.76-9.11C185.6 83.34 173.67 80 160 80a115.74 115.74 0 00-31.73 4.32c-47.1 13.92-79 65.08-100.52 161C4.61 348.54 16 413.71 59.69 428.83a56.62 56.62 0 0018.64 3.22c29.93 0 53.93-24.93 70.33-45.34 18.53-23.1 40.22-34.82 107.34-34.82 59.95 0 84.76 8.13 106.19 34.82 13.47 16.78 26.2 28.52 38.9 35.91 16.89 9.82 33.77 12 50.16 6.37 25.82-8.81 40.62-32.1 44-69.24 2.57-28.48-1.39-65.89-12.12-114.37zM208 240h-32v32a16 16 0 01-32 0v-32h-32a16 16 0 010-32h32v-32a16 16 0 0132 0v32h32a16 16 0 010 32zm84 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-19.95A20 20 0 01336 288zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z'/></svg>\"\nexport const gameControllerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Game Controller</title><path d='M467.51 248.83c-18.4-83.18-45.69-136.24-89.43-149.17A91.5 91.5 0 00352 96c-26.89 0-48.11 16-96 16s-69.15-16-96-16a99.09 99.09 0 00-27.2 3.66C89 112.59 61.94 165.7 43.33 248.83c-19 84.91-15.56 152 21.58 164.88 26 9 49.25-9.61 71.27-37 25-31.2 55.79-40.8 119.82-40.8s93.62 9.6 118.66 40.8c22 27.41 46.11 45.79 71.42 37.16 41.02-14.01 40.44-79.13 21.43-165.04z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='292' cy='224' r='20'/><path d='M336 288a20 20 0 1120-19.95A20 20 0 01336 288z'/><circle cx='336' cy='180' r='20'/><circle cx='380' cy='224' r='20'/><path stroke-linecap='round' stroke-linejoin='round' d='M160 176v96M208 224h-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gameControllerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Game Controller</title><path d='M478.07 356.88L439 151c-8.86-40.35-23-71-88-71H145c-66 0-79.14 30.65-88 71L18 356.88c-7 34.12 4.43 61.25 33.37 71.81S103 423 119.18 391.3l15.42-30.52a16 16 0 0114.28-8.78h198.28a16 16 0 0114.28 8.78l15.42 30.52c16.14 31.7 38.88 48 67.81 37.39S485 391 478.07 356.88zM224 240h-48v48h-32v-48H96v-32h48v-48h32v48h48zm68 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z'/></svg>\"\nexport const gift = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Gift</title><path d='M200 144h40v-40a40 40 0 10-40 40zM352 104a40 40 0 00-80 0v40h40a40 40 0 0040-40z' class='ionicon-fill-none'/><path d='M80 416a64 64 0 0064 64h92a4 4 0 004-4V292a4 4 0 00-4-4H88a8 8 0 00-8 8zM240 252V144h32v108a4 4 0 004 4h140a47.93 47.93 0 0016-2.75A48.09 48.09 0 00464 208v-16a48 48 0 00-48-48h-40.54a2 2 0 01-1.7-3A72 72 0 00256 58.82 72 72 0 00138.24 141a2 2 0 01-1.7 3H96a48 48 0 00-48 48v16a48.09 48.09 0 0032 45.25A47.93 47.93 0 0096 256h140a4 4 0 004-4zm32-148a40 40 0 1140 40h-40zm-74.86-39.9A40 40 0 01240 104v40h-40a40 40 0 01-2.86-79.89zM276 480h92a64 64 0 0064-64V296a8 8 0 00-8-8H276a4 4 0 00-4 4v184a4 4 0 004 4z'/></svg>\"\nexport const giftOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Gift</title><path d='M256 104v56h56a56 56 0 10-56-56zM256 104v56h-56a56 56 0 1156-56z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><rect x='64' y='160' width='384' height='112' rx='32' ry='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M416 272v144a48 48 0 01-48 48H144a48 48 0 01-48-48V272M256 160v304' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const giftSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Gift</title><path d='M346 110a34 34 0 00-68 0v34h34a34 34 0 0034-34zM234 110a34 34 0 10-34 34h34z' class='ionicon-fill-none'/><path d='M234 144h44v112h164a22 22 0 0022-22v-68a22 22 0 00-22-22h-59.82A77.95 77.95 0 00256 55.79 78 78 0 00129.81 144H70a22 22 0 00-22 22v68a22 22 0 0022 22h164zm44-34a34 34 0 1134 34h-34zm-112 0a34 34 0 1168 0v34h-34a34 34 0 01-34-34zM278 480h132a22 22 0 0022-22V288H278zM80 458a22 22 0 0022 22h132V288H80z'/></svg>\"\nexport const gitBranch = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Branch</title><path d='M416 160a64 64 0 10-96.27 55.24c-2.29 29.08-20.08 37-75 48.42-17.76 3.68-35.93 7.45-52.71 13.93v-126.2a64 64 0 10-64 0v209.22a64 64 0 1064.42.24c2.39-18 16-24.33 65.26-34.52 27.43-5.67 55.78-11.54 79.78-26.95 29-18.58 44.53-46.78 46.36-83.89A64 64 0 00416 160zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitBranchOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Branch</title><circle cx='160' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='160' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M160 368V144' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='352' cy='160' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 208c0 128-192 48-192 160' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitBranchSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Branch</title><path d='M352 96a64 64 0 00-58.86 89.11l-101.14 88V151.39a64 64 0 10-64 0v209.22a64 64 0 1064 0V358l154.25-134.27c1.9.17 3.81.27 5.75.27a64 64 0 000-128zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitCommit = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Commit</title><path d='M448 224h-68a128 128 0 00-247.9 0H64a32 32 0 000 64h68.05A128 128 0 00380 288h68a32 32 0 000-64zm-192 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z'/></svg>\"\nexport const gitCommitOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Commit</title><circle cx='256' cy='256' r='96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M160 256H48M464 256H352' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitCommitSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Commit</title><path d='M480 224H380a128 128 0 00-247.9 0H32v64h100.05A128 128 0 00380 288h100zm-224 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z'/></svg>\"\nexport const gitCompare = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Compare</title><path d='M218.31 340.69A16 16 0 00191 352v32h-20a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h20v32a16 16 0 0027.31 11.31l64-64a16 16 0 000-22.62zM112 64a32 32 0 11-32 32 32 32 0 0132-32zM432 360.61V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00320 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitCompareOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Compare</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 160l-64-64 64-64M207 352l64 64-64 64' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='112' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='400' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 96h84a60 60 0 0160 60v212M255 416h-84a60 60 0 01-60-60V144' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitCompareSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Compare</title><path d='M209 384h-37a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h37v55.21L294.39 416 209 328.79zM113 64a32 32 0 11-32 32 32 32 0 0132-32zM432 360.61V156a92.1 92.1 0 00-92-92h-35V9.93L217.14 96 305 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitMerge = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Merge</title><path d='M385 224a64 64 0 00-55.33 31.89c-42.23-1.21-85.19-12.72-116.21-31.33-32.2-19.32-49.71-44-52.15-73.35a64 64 0 10-64.31.18v209.22a64 64 0 1064 0v-94.46c44.76 34 107.28 52.38 168.56 53.76A64 64 0 10385 224zM129 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitMergeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Merge</title><circle cx='129' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='129' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M129 144v224' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='385' cy='288' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M129 144c0 96 112 144 208 144' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitMergeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Merge</title><path d='M384 224a63.66 63.66 0 00-37.95 12.5L160 153.36v-2a64 64 0 10-64 0v209.25a64 64 0 1064 0V223.46l160.41 71.69A64 64 0 10384 224zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitNetwork = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Network</title><path d='M448 96a64 64 0 10-96.31 55.21c-1.79 20.87-11.47 38.1-28.87 51.29C305.07 216 280.09 224 256 224s-49.07-8-66.82-21.5c-17.4-13.19-27.08-30.42-28.87-51.29a64 64 0 10-64.11.29c2.08 40.87 21.17 76.87 54.31 102C171.3 269.26 197 280.19 224 285.09v75.52a64 64 0 1064 0v-75.52c27-4.9 52.7-15.83 73.49-31.59 33.14-25.13 52.23-61.13 54.31-102A64 64 0 00448 96zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm128 384a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitNetworkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Network</title><circle cx='128' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 256v112' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M128 144c0 74.67 68.92 112 128 112M384 144c0 74.67-68.92 112-128 112' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitNetworkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Network</title><path d='M384 32a64 64 0 00-57.67 91.73l-70.83 80.82-70.19-80.1A64 64 0 10128 160c1.1 0 2.2 0 3.29-.08L224 265.7v94.91a64 64 0 1064 0v-96.05l91.78-104.71c1.39.09 2.8.15 4.22.15a64 64 0 000-128zM96 96a32 32 0 1132 32 32 32 0 01-32-32zm160 352a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitPullRequest = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Pull Request</title><path d='M192 96a64 64 0 10-96 55.39v209.22a64 64 0 1064 0V151.39A64 64 0 00192 96zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zM416 360.61V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00304 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const gitPullRequestOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Pull Request</title><circle cx='128' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M128 144v224M288 160l-64-64 64-64' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='128' cy='96' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='416' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M240 96h84a60 60 0 0160 60v212' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gitPullRequestSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Git Pull Request</title><path d='M192 96a64 64 0 10-97 54.81v209.8a64 64 0 1064 0V152a64.06 64.06 0 0033-56zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm-1 384a32 32 0 1132-32 32 32 0 01-32 32zM416 360.61V156a92.1 92.1 0 00-92-92h-35V9.93L201.14 96 289 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const glasses = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Glasses</title><path d='M464 184h-10.9a78.72 78.72 0 00-16-7.18C419.5 171 396.26 168 368 168s-51.5 3-69.06 8.82c-14.06 4.69-20.25 9.86-22.25 11.87a47.94 47.94 0 00-41.36 0c-2-2-8.19-7.18-22.25-11.87C195.5 171 172.26 168 144 168s-51.5 3-69.06 8.82a78.72 78.72 0 00-16 7.18H48a16 16 0 000 32h.17c1 45.46 6.44 72.78 18.11 92.23a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 9.68-16.14 15.09-37.69 17.21-70.52A16 16 0 00240 232a16 16 0 0132 0 16 16 0 001.07 5.71c2.12 32.83 7.53 54.38 17.21 70.52a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 11.67-19.45 17.13-46.77 18.11-92.23h.17a16 16 0 000-32z'/></svg>\"\nexport const glassesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Glasses</title><path d='M224 232a32 32 0 0164 0M448 200h16M64 200H48M64 200c0 96 16 128 80 128s80-32 80-128c0 0-16-16-80-16s-80 16-80 16zM448 200c0 96-16 128-80 128s-80-32-80-128c0 0 16-16 80-16s80 16 80 16z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const glassesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Glasses</title><path d='M496 176H16v64h21.24l12.44 112h171.87L240 241.32V240a16 16 0 0132 0v1.32L290.45 352h171.87l12.44-112H496z'/></svg>\"\nexport const globe = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Globe</title><path d='M340.75 344.49c5.91-20.7 9.82-44.75 11.31-67.84a4.41 4.41 0 00-4.46-4.65h-71.06a4.43 4.43 0 00-4.47 4.39v55.3a4.44 4.44 0 004.14 4.38 273.51 273.51 0 0159 11.39 4.45 4.45 0 005.54-2.97zM323.58 377.31a260.05 260.05 0 00-46.6-9.09 4.42 4.42 0 00-4.91 4.29v65.24a4.47 4.47 0 006.76 3.7c15.9-9.27 29-24.84 40.84-45.43 1.94-3.36 4.89-9.15 6.67-12.69a4.29 4.29 0 00-2.76-6.02zM235.29 368.4a256.85 256.85 0 00-46.56 8.82c-2.64.76-3.75 4.4-2.55 6.79 1.79 3.56 4 8.11 5.89 11.51 13 23 26.84 37.5 41.24 45.93a4.47 4.47 0 006.76-3.7v-65.27a4.16 4.16 0 00-4.78-4.08zM235.6 272h-71.06a4.41 4.41 0 00-4.46 4.64c1.48 23.06 5.37 47.16 11.26 67.84a4.46 4.46 0 005.59 3 272.2 272.2 0 0159-11.36 4.44 4.44 0 004.15-4.38V276.4a4.43 4.43 0 00-4.48-4.4zM277 143.78a235.8 235.8 0 0046.5-9.14 4.3 4.3 0 002.76-6c-1.79-3.57-4.27-8.68-6.17-12.09-12.29-22-26.14-37.35-41.24-46a4.48 4.48 0 00-6.76 3.7v65.23a4.43 4.43 0 004.91 4.3zM276.54 240h71.06a4.39 4.39 0 004.46-4.58c-1.48-22.77-5.27-47.8-11.16-68.22a4.46 4.46 0 00-5.59-2.95c-19 5.74-38.79 10.43-59.09 12a4.4 4.4 0 00-4.15 4.32v55.11a4.4 4.4 0 004.47 4.32zM233.31 70.56c-15.42 8.57-29.17 24.43-41.47 46.37-1.91 3.41-4.19 8.11-6 11.67a4.31 4.31 0 002.76 6 225.42 225.42 0 0046.54 9.17 4.43 4.43 0 004.91-4.29V74.26a4.49 4.49 0 00-6.74-3.7zM235.92 176.26c-20.3-1.55-40.11-6.24-59.09-12a4.46 4.46 0 00-5.59 2.95c-5.89 20.42-9.68 45.45-11.16 68.22a4.39 4.39 0 004.46 4.58h71.06a4.4 4.4 0 004.47-4.34v-55.09a4.4 4.4 0 00-4.15-4.32z'/><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM176.6 430.85a219.08 219.08 0 01-12.48-19.66c-2-3.69-4.84-9.26-6.73-13.13a7.29 7.29 0 00-10.31-3.16c-4.3 2.41-10 5.72-14.13 8.43a147.29 147.29 0 01-23.57-22.43 248.83 248.83 0 0130.41-18.36c1.86-1 2.77-2.14 2.18-4.18a374.8 374.8 0 01-14.09-82.17 4.36 4.36 0 00-4.3-4.17H66.84a2 2 0 01-2-1.7A98.28 98.28 0 0164 256a96.27 96.27 0 01.86-14.29 2 2 0 012-1.7h56.74c2.29 0 4.17-1.32 4.29-3.63a372.71 372.71 0 0114-81.83 4.36 4.36 0 00-2.19-5.11 260.63 260.63 0 01-29.84-17.9 169.82 169.82 0 0123.14-22.8c4.08 2.68 9.4 5.71 13.66 8.11a7.89 7.89 0 0011-3.42c1.88-3.87 4-8.18 6.06-11.88a221.93 221.93 0 0112.54-19.91A185 185 0 01256 64c28.94 0 55.9 7 80.53 18.46a202.23 202.23 0 0112 19c2.59 4.66 5.34 10.37 7.66 15.32a4.29 4.29 0 005.92 1.94c5.38-2.91 11.21-6.26 16.34-9.63a171.36 171.36 0 0123.2 23 244.89 244.89 0 01-29.06 17.31 4.35 4.35 0 00-2.18 5.12 348.68 348.68 0 0113.85 81.4 4.33 4.33 0 004.3 4.12l56.62-.07a2 2 0 012 1.7 117.46 117.46 0 010 28.62 2 2 0 01-2 1.72h-56.67a4.35 4.35 0 00-4.3 4.17 367.4 367.4 0 01-13.87 81.3 4.45 4.45 0 002.19 5.19c5 2.59 10.57 5.48 15.37 8.42s9.55 6.08 14.13 9.34a172.73 172.73 0 01-23 22.93c-2.44-1.61-5.34-3.44-7.84-4.94-1.72-1-4.89-2.77-6.65-3.76-3.82-2.14-7.88-.54-9.79 3.4s-4.83 9.59-6.87 13.25a212.42 212.42 0 01-12.35 19.53C310.91 442.37 284.94 448 256 448s-54.77-5.63-79.4-17.15z'/></svg>\"\nexport const globeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Globe</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-miterlimit='10' d='M256 48v416M464 256H48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const globeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Globe</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z' stroke-miterlimit='10' stroke-width='44' class='ionicon-fill-none'/><path d='M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z' stroke-miterlimit='10' stroke-width='44' class='ionicon-fill-none'/><path d='M117.33 121.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 390.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34' stroke-linecap='round' stroke-linejoin='round' stroke-width='44' class='ionicon-fill-none'/><path stroke-miterlimit='10' stroke-width='44' d='M256 48v416M464 256H48' class='ionicon-fill-none'/></svg>\"\nexport const golf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Golf</title><path d='M272 320.46V202.3l166.62-75.73a16 16 0 000-29.14l-176-80A16 16 0 00240 32v288.46q8-.45 16-.46t16 .46z'/><path d='M463.33 457.5c-8.56-42.85-35.11-78.74-76.78-103.8-32.5-19.55-72.67-31.3-114.55-33.7v79.75a16 16 0 11-32 0V320c-41.88 2.4-82.05 14.15-114.55 33.7-41.67 25.06-68.22 60.95-76.78 103.8a32.49 32.49 0 006.44 27.08C61.13 492 70 496 80 496h352c10 0 18.88-4.05 24.9-11.42a32.49 32.49 0 006.43-27.08z'/></svg>\"\nexport const golfOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Golf</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 400V32l176 80-176 80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 336c-87 0-175.3 43.2-191.64 124.74C62.39 470.57 68.57 480 80 480h352c11.44 0 17.62-9.43 15.65-19.26C431.3 379.2 343 336 256 336z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const golfSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Golf</title><path d='M240 16v304.47q8-.47 16-.47t16 .47V202.3L448 112z'/><path d='M462.91 457.5c-8.54-42.85-35-78.74-76.62-103.8-32.43-19.55-72.53-31.3-114.29-33.7v95.79h-32V320c-41.79 2.4-81.89 14.15-114.32 33.7-41.59 25.06-68.08 60.95-76.62 103.8-2 9.81-.68 38.5-.68 38.5h415.21s1.28-28.69-.68-38.5z'/></svg>\"\nexport const grid = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Grid</title><path d='M204 240H68a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 240H308a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM204 480H68a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 480H308a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36z'/></svg>\"\nexport const gridOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Grid</title><rect x='48' y='48' width='176' height='176' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='288' y='48' width='176' height='176' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='48' y='288' width='176' height='176' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='288' y='288' width='176' height='176' rx='20' ry='20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const gridSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Grid</title><path d='M240 240H32V32h208zM480 240H272V32h208zM240 480H32V272h208zM480 480H272V272h208z'/></svg>\"\nexport const hammer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hammer</title><path d='M280.16 242.79l-26.11-26.12a32 32 0 00-45.14-.12L27.38 384.08c-6.61 6.23-10.95 14.17-11.35 23.06a32.11 32.11 0 009.21 23.94l39 39.43a.46.46 0 00.07.07A32.29 32.29 0 0087 480h1.18c8.89-.33 16.85-4.5 23.17-11.17l168.7-180.7a32 32 0 00.11-45.34zM490 190l-.31-.31-34.27-33.92a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68a119.92 119.92 0 00-14.18 16.22 16 16 0 0018.65 24.34 74.45 74.45 0 018.58-2.63 63.46 63.46 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.18 3.82-7.72 18.14-20 34.48a16 16 0 001.45 21l34.41 34.41a16 16 0 0022 .62c9.73-8.69 24.55-21.79 29.73-25 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l34.26 33.91a21.45 21.45 0 0015.28 6.25 21.7 21.7 0 0015.22-6.2l55.5-54.82c.19-.19.38-.39.56-.59A21.87 21.87 0 00490 190z'/></svg>\"\nexport const hammerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hammer</title><path d='M277.42 247a24.68 24.68 0 00-4.08-5.47L255 223.44a21.63 21.63 0 00-6.56-4.57 20.93 20.93 0 00-23.28 4.27c-6.36 6.26-18 17.68-39 38.43C146 301.3 71.43 367.89 37.71 396.29a16 16 0 00-1.09 23.54l39 39.43a16.13 16.13 0 0023.67-.89c29.24-34.37 96.3-109 136-148.23 20.39-20.06 31.82-31.58 38.29-37.94a21.76 21.76 0 003.84-25.2zM478.43 201l-34.31-34a5.44 5.44 0 00-4-1.59 5.59 5.59 0 00-4 1.59h0a11.41 11.41 0 01-9.55 3.27c-4.48-.49-9.25-1.88-12.33-4.86-7-6.86 1.09-20.36-5.07-29a242.88 242.88 0 00-23.08-26.72c-7.06-7-34.81-33.47-81.55-52.53a123.79 123.79 0 00-47-9.24c-26.35 0-46.61 11.76-54 18.51-5.88 5.32-12 13.77-12 13.77a91.29 91.29 0 0110.81-3.2 79.53 79.53 0 0123.28-1.49C241.19 76.8 259.94 84.1 270 92c16.21 13 23.18 30.39 24.27 52.83.8 16.69-15.23 37.76-30.44 54.94a7.85 7.85 0 00.4 10.83l21.24 21.23a8 8 0 0011.14.1c13.93-13.51 31.09-28.47 40.82-34.46s17.58-7.68 21.35-8.09a35.71 35.71 0 0121.3 4.62 13.65 13.65 0 013.08 2.38c6.46 6.56 6.07 17.28-.5 23.74l-2 1.89a5.5 5.5 0 000 7.84l34.31 34a5.5 5.5 0 004 1.58 5.65 5.65 0 004-1.58L478.43 209a5.82 5.82 0 000-8z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const hammerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hammer</title><path d='M294.28 256.9l-54.42-54.41a12 12 0 00-17 0L12.45 401a12 12 0 00-.27 17.2l66.05 66.28a12 12 0 0017.22-.23l198.81-210.36a12 12 0 00.02-16.99zM499.33 199.33l-43.89-43.58a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68A53.4 53.4 0 00176 86.17L192 96s8.06-2 13.86-3.39a62.73 62.73 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.2 4.23-9.52 21.35-24.16 39.84a8 8 0 00.61 10.62l45.37 45.37a8 8 0 0011 .25c12.07-11 30.49-28 34.67-30.59 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l43.95 43.68a8 8 0 0011.28 0l74.68-74.2a8 8 0 00.06-11.36z'/></svg>\"\nexport const handLeft = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Left</title><path d='M432.8 211.44c-15.52-8.82-34.91-2.28-43.31 13.68l-41.38 84.41a7 7 0 01-8.93 3.43 7 7 0 01-4.41-6.52V72c0-13.91-12.85-24-26.77-24s-26 10.09-26 24v156.64A11.24 11.24 0 01271.21 240 11 11 0 01260 229V24c0-13.91-10.94-24-24.86-24S210 10.09 210 24v204.64A11.24 11.24 0 01199.21 240 11 11 0 01188 229V56c0-13.91-12.08-24-26-24s-26 11.09-26 25v187.64A11.24 11.24 0 01125.21 256 11 11 0 01114 245V120c0-13.91-11.08-24-25-24s-25.12 10.22-25 24v216c0 117.41 72 176 160 176h16c88 0 115.71-39.6 136-88l68.71-169c6.62-18 3.6-34.75-11.91-43.56z'/></svg>\"\nexport const handLeftOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Left</title><path d='M80 320V144a32 32 0 0132-32h0a32 32 0 0132 32v112M144 256V80a32 32 0 0132-32h0a32 32 0 0132 32v160M272 241V96a32 32 0 0132-32h0a32 32 0 0132 32v224M208 240V48a32 32 0 0132-32h0a32 32 0 0132 32v192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M80 320c0 117.4 64 176 152 176s123.71-39.6 144-88l52.71-144c6.66-18.05 3.64-34.79-11.87-43.6h0c-15.52-8.82-35.91-4.28-44.31 11.68L336 320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const handLeftSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Left</title><path d='M429.58 209.08c-15.06-6.62-32.38 1.31-38.5 17.62L356 312h-11.27V80c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v151.75l-14.78.25V32c0-17.6-13.3-32-29.55-32s-29.55 14.4-29.55 32v199.75L197 232V64c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v183.75l-14.8.25V128c0-17.6-13.3-32-29.55-32S64 110.4 64 128v216c0 75.8 37.13 168 169 168 40.8 0 79.42-7 100.66-21a121.41 121.41 0 0033.72-33.31 138 138 0 0016-31.78l62.45-175.14c6.17-16.31-1.19-35.06-16.25-41.69z'/></svg>\"\nexport const handRight = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Right</title><path d='M79.2 211.44c15.52-8.82 34.91-2.28 43.31 13.68l41.38 84.41a7 7 0 008.93 3.43 7 7 0 004.41-6.52V72c0-13.91 12.85-24 26.77-24s26 10.09 26 24v156.64A11.24 11.24 0 00240.79 240 11 11 0 00252 229V24c0-13.91 10.94-24 24.86-24S302 10.09 302 24v204.64A11.24 11.24 0 00312.79 240 11 11 0 00324 229V56c0-13.91 12.08-24 26-24s26 11.09 26 25v187.64A11.24 11.24 0 00386.79 256 11 11 0 00398 245V120c0-13.91 11.08-24 25-24s25.12 10.22 25 24v216c0 117.41-72 176-160 176h-16c-88 0-115.71-39.6-136-88L67.33 255c-6.66-18-3.64-34.75 11.87-43.56z'/></svg>\"\nexport const handRightOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Right</title><path d='M432 320V144a32 32 0 00-32-32h0a32 32 0 00-32 32v112M368 256V80a32 32 0 00-32-32h0a32 32 0 00-32 32v160M240 241V96a32 32 0 00-32-32h0a32 32 0 00-32 32v224M304 240V48a32 32 0 00-32-32h0a32 32 0 00-32 32v192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M432 320c0 117.4-64 176-152 176s-123.71-39.6-144-88L83.33 264c-6.66-18.05-3.64-34.79 11.87-43.6h0c15.52-8.82 35.91-4.28 44.31 11.68L176 320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const handRightSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hand Right</title><path d='M82.42 209.08c15.06-6.62 32.38 1.31 38.5 17.62L156 312h11.27V80c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v151.75l14.78.25V32c0-17.6 13.3-32 29.55-32 16.3 0 29.55 14.4 29.55 32v199.75L315 232V64c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v183.75l14.78.25V128c0-17.6 13.3-32 29.55-32C434.7 96 448 110.4 448 128v216c0 75.8-37.13 168-169 168-40.8 0-79.42-7-100.66-21a121.41 121.41 0 01-33.72-33.31 138 138 0 01-16-31.78L66.16 250.77c-6.11-16.31 1.2-35.06 16.26-41.69z'/></svg>\"\nexport const happy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Happy</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm167.67 106.17c-12 40.3-50.2 69.83-95.62 69.83s-83.62-29.53-95.72-69.83a8 8 0 017.83-10.17h175.69a8 8 0 017.82 10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z'/></svg>\"\nexport const happyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Happy</title><circle cx='184' cy='232' r='24'/><path d='M256.05 384c-45.42 0-83.62-29.53-95.71-69.83a8 8 0 017.82-10.17h175.69a8 8 0 017.82 10.17c-11.99 40.3-50.2 69.83-95.62 69.83z'/><circle cx='328' cy='232' r='24'/><circle cx='256' cy='256' r='208' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const happySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Happy</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72.05 176c-45.42 0-83.75-29.49-95.72-69.83C159.29 310.65 158 304 158 304h196s-1.31 6.69-2.33 10.17c-11.78 40.36-50.2 69.83-95.62 69.83z'/></svg>\"\nexport const hardwareChip = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hardware Chip</title><path d='M352 128H160a32 32 0 00-32 32v192a32 32 0 0032 32h192a32 32 0 0032-32V160a32 32 0 00-32-32zm0 216a8 8 0 01-8 8H168a8 8 0 01-8-8V168a8 8 0 018-8h176a8 8 0 018 8z' class='ionicon-fill-none'/><rect x='160' y='160' width='192' height='192' rx='8' ry='8'/><path d='M464 192a16 16 0 000-32h-16v-32a64.07 64.07 0 00-64-64h-32V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-32a64.07 64.07 0 00-64 64v32H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v32a64.07 64.07 0 0064 64h32v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h32a64.07 64.07 0 0064-64v-32h16a16 16 0 000-32h-16v-48h16a16 16 0 000-32h-16v-48zm-80 160a32 32 0 01-32 32H160a32 32 0 01-32-32V160a32 32 0 0132-32h192a32 32 0 0132 32z'/></svg>\"\nexport const hardwareChipOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hardware Chip</title><rect x='80' y='80' width='352' height='352' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='144' y='144' width='224' height='224' rx='16' ry='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 80V48M336 80V48M176 80V48M256 464v-32M336 464v-32M176 464v-32M432 256h32M432 336h32M432 176h32M48 256h32M48 336h32M48 176h32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const hardwareChipSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hardware Chip</title><path d='M160 160h192v192H160z'/><path d='M480 198v-44h-32V88a24 24 0 00-24-24h-66V32h-44v32h-36V32h-44v32h-36V32h-44v32H88a24 24 0 00-24 24v66H32v44h32v36H32v44h32v36H32v44h32v66a24 24 0 0024 24h66v32h44v-32h36v32h44v-32h36v32h44v-32h66a24 24 0 0024-24v-66h32v-44h-32v-36h32v-44h-32v-36zm-352-70h256v256H128z'/></svg>\"\nexport const headset = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Headset</title><path d='M411.16 97.46C368.43 55.86 311.88 32 256 32S143.57 55.86 100.84 97.46C56.45 140.67 32 197 32 256c0 26.67 8.75 61.09 32.88 125.55S137 473 157.27 477.41c5.81 1.27 12.62 2.59 18.73 2.59a60.06 60.06 0 0030-8l14-8c15.07-8.82 19.47-28.13 10.8-43.35l-86.92-152.57a31.73 31.73 0 00-43.57-11.76l-13.69 8a56.49 56.49 0 00-14 11.59 4 4 0 01-7-2A114.68 114.68 0 0164 256c0-50.31 21-98.48 59.16-135.61C160 84.55 208.39 64 256 64s96 20.55 132.84 56.39C427 157.52 448 205.69 448 256a114.68 114.68 0 01-1.68 17.91 4 4 0 01-7 2 56.49 56.49 0 00-14-11.59l-13.69-8a31.73 31.73 0 00-43.57 11.76L281.2 420.65c-8.67 15.22-4.27 34.53 10.8 43.35l14 8a60.06 60.06 0 0030 8c6.11 0 12.92-1.32 18.73-2.59C375 473 423 446 447.12 381.55S480 282.67 480 256c0-59-24.45-115.33-68.84-158.54z'/></svg>\"\nexport const headsetOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Headset</title><path d='M83 384c-13-33-35-93.37-35-128C48 141.12 149.33 48 256 48s208 93.12 208 208c0 34.63-23 97-35 128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M108.39 270.13l-13.69 8h0c-30.23 17.7-31.7 72.41-3.38 122.2s75.87 75.81 106.1 58.12h0l13.69-8a16.16 16.16 0 005.78-21.87L130 276a15.74 15.74 0 00-21.61-5.87zM403.61 270.13l13.69 8h0c30.23 17.69 31.74 72.4 3.38 122.19s-75.87 75.81-106.1 58.12h0l-13.69-8a16.16 16.16 0 01-5.78-21.87L382 276a15.74 15.74 0 0121.61-5.87z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const headsetSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Headset</title><path d='M411.16 97.45C368.43 55.85 311.88 32 256 32S143.57 55.85 100.84 97.45C56.45 140.67 32 196 32 256s26.84 118.49 45.42 152.25S121 480 144 480c32 0 96-32 96-32L128 240l-54.42 31.73a176.07 176.07 0 01-1-18.84c0-48.57 19.32-94.1 56.15-130C164.24 88.34 210 70 256 70s91.73 18.34 127.27 52.93c36.83 35.86 56.14 81.39 56.14 130a175.56 175.56 0 01-1 18.82L384 240 272 448s64 32 96 32c23 0 48-38 66.58-71.75S480 316 480 256s-24.45-115.33-68.84-158.55z'/></svg>\"\nexport const heart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart</title><path d='M256 448a32 32 0 01-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 009.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64.54 54.21-18.63 104.26-58.61 153-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 01-18 5.56z'/></svg>\"\nexport const heartCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-9.38 11.44-26.4 29.73-65.7 56.41a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.3 27.1-9.29 52.13-29.28 76.5z'/></svg>\"\nexport const heartCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 360a16 16 0 01-9-2.78c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.28 27.1-9.31 52.13-29.3 76.5-9.38 11.44-26.4 29.73-65.7 56.41A16 16 0 01256 360z'/></svg>\"\nexport const heartCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-8.5 10.36-39.69 38.48-74.69 63.51-35-25-66.19-53.15-74.69-63.51-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 22 0 37.3 12.41 46.19 22.76l2.27 2.75 2.27-2.75C267 180.29 282.42 168 304.46 168c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z'/></svg>\"\nexport const heartDislike = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike</title><path d='M417.84 448a16 16 0 01-11.35-4.72l-365.84-368a16 16 0 1122.7-22.56l365.83 368A16 16 0 01417.84 448zM364.92 80c-44.09 0-74.61 24.82-92.39 45.5a6 6 0 01-9.06 0C245.69 104.82 215.16 80 171.08 80a107.71 107.71 0 00-31 4.54l269.13 270.7c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.79 58.61-153C475.37 130.53 425.54 80 364.92 80zM69 149.15a115.06 115.06 0 00-9 43.49c-.54 54.21 18.63 104.25 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.88 31.88 0 0036 0c20.35-13.82 37.7-26.5 52.58-38.12z'/></svg>\"\nexport const heartDislikeCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm23.3 299.19c-4.41 3.2-9.16 6.55-14.31 10a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5v-.64a4 4 0 016.82-2.72l120.95 120.2a4 4 0 01-.46 6.07zm68 16.12a16 16 0 01-22.62 0l-176-176a16 16 0 0122.62-22.62l176 176a16 16 0 01.01 22.62zm-14.1-65.62a3.92 3.92 0 01-6 .37l-124-123.21A4 4 0 01206 168h1.55c20.4 0 35 10.64 44.11 20.42a5.93 5.93 0 008.7 0c9.11-9.78 23.71-20.42 44.11-20.42 30.31 0 55.22 25.27 55.53 56.33.26 25.93-8.52 49.97-26.8 73.36z'/></svg>\"\nexport const heartDislikeCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M333.2 297.69c18.28-23.39 27.06-47.43 26.79-73.37-.31-31.06-25.22-56.33-55.53-56.33-20.4 0-35 10.64-44.11 20.42a5.93 5.93 0 01-8.7 0c-9.11-9.78-23.71-20.42-44.11-20.42L206 168a4 4 0 00-2.75 6.84l124 123.21a3.92 3.92 0 005.95-.36zM158.84 221a4 4 0 00-6.82 2.72v.64c-.28 27.1 9.31 52.13 29.3 76.5 9.38 11.44 26.4 29.73 65.7 56.41a15.93 15.93 0 0018 0c5.15-3.49 9.9-6.84 14.31-10a4 4 0 00.46-6.07zM336 368a15.92 15.92 0 01-11.31-4.69l-176-176a16 16 0 0122.62-22.62l176 176A16 16 0 01336 368z'/></svg>\"\nexport const heartDislikeCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm63.73 310.36l-183.14-182.3 22.74-22.51 183.19 182.36zm-63.51 4.86c-35.36-25-66.31-51.92-74.91-62.4-20-24.37-29.58-49.4-29.3-76.5a58.27 58.27 0 01.85-9.31l130.21 129.4c-3.43 2.59-16.21 11.45-26.85 18.81zm74.47-62.4l-.31.38L197.33 169a53.8 53.8 0 0110.21-1 59.34 59.34 0 0144.1 19.41L256 192l4.36-4.6a59.34 59.34 0 0144.1-19.4c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z'/></svg>\"\nexport const heartDislikeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike</title><path d='M417.84 448a15.94 15.94 0 01-11.35-4.72L40.65 75.26a16 16 0 0122.7-22.56l365.83 368a16 16 0 01-11.34 27.3zM364.92 80c-48.09 0-80 29.55-96.92 51-16.88-21.48-48.83-51-96.92-51a107.37 107.37 0 00-31 4.55L168 112c22.26 0 45.81 9 63.94 26.67a123 123 0 0121.75 28.47 16 16 0 0028.6 0 123 123 0 0121.77-28.51C322.19 121 342.66 112 364.92 112c43.15 0 78.62 36.33 79.07 81 .54 53.69-22.75 99.55-57.38 139.52l22.63 22.77c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.8 58.61-153C475.37 130.52 425.54 80 364.92 80zM268 432C180.38 372.51 91 297.6 92 193a83.69 83.69 0 012.24-18.39L69 149.14a115.1 115.1 0 00-9 43.49c-.54 54.22 18.63 104.27 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.84 31.84 0 0036 0c20.35-13.81 37.7-26.5 52.58-38.11l-22.66-22.81C300.25 409.6 284.09 421.05 268 432z'/></svg>\"\nexport const heartDislikeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Dislike</title><path d='M32 64.45l389.47 389.94 22.84-22.47L54.85 42 32 64.45zM62.67 192.91c-.56 55.63 19.77 106.94 62.16 156.88 40.25 47.42 94.56 79.67 137.47 108.21l9 6 9-6c18.49-12.3 39.1-25.3 59.79-39.89L71.74 149.28a114.62 114.62 0 00-9.07 43.63zM417.83 349.79c42.39-49.94 62.72-101.25 62.16-156.88-.63-62-50.61-112.54-111.43-112.54-48.26 0-80.35 28-97.23 48.17-16.88-20.2-49-48.17-97.23-48.17A108.24 108.24 0 00142.84 85l270 270.48c1.71-1.89 3.37-3.78 4.99-5.69z'/></svg>\"\nexport const heartHalf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Half</title><path d='M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z'/></svg>\"\nexport const heartHalfOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Half</title><path d='M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z'/></svg>\"\nexport const heartHalfSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart Half</title><path d='M352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65c-.56 55.68 19.71 107 62 157 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32 42.25-50 62.52-101.35 62-157C463.37 114.54 413.54 64 352.92 64zm24.67 249c-31.78 37.6-74.68 65.75-112.52 90.59l-9.07 6V162.23l24.59-29.54C294.53 116 318.38 96 352.92 96c43.15 0 78.62 36.32 79.07 81a178.63 178.63 0 01-12.69 68.59c-9.03 22.84-22.67 44.91-41.71 67.41z'/></svg>\"\nexport const heartOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart</title><path d='M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const heartSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Heart</title><path d='M256 448l-9-6c-42.78-28.57-96.91-60.86-137-108.32-42.25-50-62.52-101.35-62-157C48.63 114.54 98.46 64 159.08 64c48.11 0 80.1 28 96.92 48.21C272.82 92 304.81 64 352.92 64c60.62 0 110.45 50.54 111.08 112.65.56 55.68-19.71 107-62 157-40.09 47.49-94.22 79.78-137 108.35z'/></svg>\"\nexport const help = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help</title><path d='M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324' stroke-linecap='round' stroke-miterlimit='10' stroke-width='40' class='ionicon-fill-none'/><circle cx='248' cy='399.99' r='32'/></svg>\"\nexport const helpBuoy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Buoy</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z'/></svg>\"\nexport const helpBuoyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Buoy</title><circle cx='256' cy='256' r='208' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='80' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M208 54l8 132M296 186l8-132M208 458l8-132M296 326l8 132M458 208l-132 8M326 296l132 8M54 208l132 8M186 296l-132 8' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const helpBuoySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Buoy</title><path d='M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm-64 224a64 64 0 1164 64 64 64 0 01-64-64zm237.24-62.29L342.91 199a104.86 104.86 0 00-29.86-29.86l5.24-86.33a185 185 0 01111 111zm-303.35-67.82a183.44 183.44 0 0167.82-43.13l5.29 86.33A104.86 104.86 0 00169.09 199l-86.33-5.24a183.44 183.44 0 0143.13-67.87zm-43.13 192.4l86.33-5.24A104.86 104.86 0 00199 342.91l-5.24 86.33a185 185 0 01-111-110.95zm303.35 67.82a183.44 183.44 0 01-67.82 43.13l-5.24-86.33a104.86 104.86 0 0029.86-29.86l86.33 5.24a183.44 183.44 0 01-43.13 67.82z'/></svg>\"\nexport const helpCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Circle</title><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm-6 304a20 20 0 1120-20 20 20 0 01-20 20zm33.44-102C267.23 276.88 265 286.85 265 296a14 14 0 01-28 0c0-21.91 10.08-39.33 30.82-53.26C287.1 229.8 298 221.6 298 203.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 191.25 214 202.83 214 203a14 14 0 11-28-1.35c.11-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82C312.7 161.34 326 180.43 326 203.57c0 33.83-22.61 49.02-42.56 62.43z'/></svg>\"\nexport const helpCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Circle</title><path d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296' stroke-linecap='round' stroke-miterlimit='10' stroke-width='28' class='ionicon-fill-none'/><circle cx='250' cy='348' r='20'/></svg>\"\nexport const helpCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help Circle</title><path d='M288.55 150.84c-8.09-3.86-20-6-32.72-5.82-18 .22-33.13 5.2-45 14.78-23 18.48-24.55 40.37-24.77 42.8a61.69 61.69 0 00-.09 12 3 3 0 003 2.69h21.23a3 3 0 003-3A65.7 65.7 0 01214 204c0-.11 1.14-11.7 14.36-22.34 7-5.64 16.11-8.44 27.83-8.59 9.32-.11 16.93 1.47 20.34 3.09C291 183 298 192.31 298 204.57c0 18-10.9 26.23-30.18 39.18C247.08 257.68 237 275.1 237 297v11a3 3 0 003 3h22a3 3 0 003-3v-11c0-9.16 2.23-19.13 18.44-30 19.95-13.41 42.56-28.6 42.56-62.43 0-23.14-13.3-42.23-37.45-53.73z' class='ionicon-fill-none'/><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm10.44 302h-30.21a2.57 2.57 0 01-2.56-2.57v-30.2a2.57 2.57 0 012.56-2.57h30.21a2.57 2.57 0 012.56 2.57v30.2a2.57 2.57 0 01-2.56 2.57zm17-99C267.23 277.88 265 287.85 265 297v11a3 3 0 01-3 3h-22a3 3 0 01-3-3v-11c0-21.91 10.08-39.33 30.82-53.26C287.1 230.8 298 222.6 298 204.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 192.25 214 203.84 214 204a65.7 65.7 0 00-.84 10.28 3 3 0 01-3 3h-21.25a3 3 0 01-3-2.69 61.69 61.69 0 01.09-12c.22-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82 24.21 11.51 37.51 30.6 37.51 53.74 0 33.83-22.61 49.02-42.56 62.43z'/></svg>\"\nexport const helpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help</title><path d='M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324' stroke-linecap='round' stroke-miterlimit='10' stroke-width='40' class='ionicon-fill-none'/><circle cx='248' cy='399.99' r='32'/></svg>\"\nexport const helpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Help</title><path d='M160 164c0-10 1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 290.36 248 316' stroke-linecap='square' stroke-miterlimit='10' stroke-width='40' class='ionicon-fill-none'/><rect x='220' y='368' width='56' height='56' rx='3.5' ry='3.5'/></svg>\"\nexport const home = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Home</title><path d='M261.56 101.28a8 8 0 00-11.06 0L66.4 277.15a8 8 0 00-2.47 5.79L63.9 448a32 32 0 0032 32H192a16 16 0 0016-16V328a8 8 0 018-8h80a8 8 0 018 8v136a16 16 0 0016 16h96.06a32 32 0 0032-32V282.94a8 8 0 00-2.47-5.79z'/><path d='M490.91 244.15l-74.8-71.56V64a16 16 0 00-16-16h-48a16 16 0 00-16 16v32l-57.92-55.38C272.77 35.14 264.71 32 256 32c-8.68 0-16.72 3.14-22.14 8.63l-212.7 203.5c-6.22 6-7 15.87-1.34 22.37A16 16 0 0043 267.56L250.5 69.28a8 8 0 0111.06 0l207.52 198.28a16 16 0 0022.59-.44c6.14-6.36 5.63-16.86-.76-22.97z'/></svg>\"\nexport const homeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Home</title><path d='M80 212v236a16 16 0 0016 16h96V328a24 24 0 0124-24h80a24 24 0 0124 24v136h96a16 16 0 0016-16V212' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256M400 179V64h-48v69' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const homeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Home</title><path d='M416 174.74V48h-80v58.45L256 32 0 272h64v208h144V320h96v160h144V272h64l-96-97.26z'/></svg>\"\nexport const hourglass = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hourglass</title><path d='M415.7 427.13c-8.74-76.89-43.83-108.76-69.46-132C328.52 279 320 270.61 320 256c0-14.41 8.49-22.64 26.16-38.44 25.93-23.17 61.44-54.91 69.56-132.84a47 47 0 00-12-36.26A50.3 50.3 0 00366.39 32H145.61a50.34 50.34 0 00-37.39 16.46 47.05 47.05 0 00-11.94 36.26c8.09 77.68 43.47 109.19 69.3 132.19C183.42 232.8 192 241.09 192 256c0 15.1-8.6 23.56-26.5 39.75-25.5 23.1-60.5 54.73-69.2 131.38a46.59 46.59 0 0011.7 36.2A50.44 50.44 0 00145.61 480h220.78A50.44 50.44 0 00404 463.33a46.59 46.59 0 0011.7-36.2zM343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.22 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z'/></svg>\"\nexport const hourglassOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hourglass</title><path d='M145.61 464h220.78c19.8 0 35.55-16.29 33.42-35.06C386.06 308 304 310 304 256s83.11-51 95.8-172.94c2-18.78-13.61-35.06-33.41-35.06H145.61c-19.8 0-35.37 16.28-33.41 35.06C124.89 205 208 201 208 256s-82.06 52-95.8 172.94c-2.14 18.77 13.61 35.06 33.41 35.06z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.23 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z'/></svg>\"\nexport const hourglassSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Hourglass</title><path d='M416 32H96v112l108 112L96 368v112h320V368L308 256l108-112zM272 224v112l91 96H148l92-96V224l-80-80h192z'/></svg>\"\nexport const iceCream = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ice Cream</title><path d='M183 352c-21.84-.52-39-18.9-39-40.74v-34.07a8 8 0 00-6-7.74c-33.75-8.85-58-39.71-58-77.45a80.14 80.14 0 0166.27-78.82 8 8 0 006.62-6.83 104 104 0 01206.22 0 8 8 0 006.62 6.83A80 80 0 01352 272a74.33 74.33 0 01-47.45-17.41 7.93 7.93 0 00-9.92-.14A62.89 62.89 0 01256 268a80.47 80.47 0 01-21.8-3.18 8 8 0 00-10.2 7.69V312a40 40 0 01-41 40z'/><path d='M263.39 299.7a8 8 0 00-7.39 7.91V312a72.11 72.11 0 01-50.69 68.76 8 8 0 00-4.91 10.78l40.91 94.8A16 16 0 00256 496a16 16 0 0014.69-9.7l73.78-172.15a8 8 0 00-6.2-11.07 106.31 106.31 0 01-35.9-11.59 8 8 0 00-7.13-.2 95 95 0 01-31.85 8.41z'/></svg>\"\nexport const iceCreamOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ice Cream</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 256l-96 224-62-145' class='ionicon-fill-none ionicon-stroke-width'/><path d='M299.42 223.48C291.74 239.75 275.18 252 256 252c-13.1 0-27-5-33.63-9.76C216.27 237.87 208 240 208 250v62a24.07 24.07 0 01-24 24h0a24.07 24.07 0 01-24-24v-56h-2c-35.35 0-62-28.65-62-64a64 64 0 0164-64h8v-8a88 88 0 01176 0v8h8a64 64 0 010 128c-21.78 0-42-13-52.59-32.51z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const iceCreamSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ice Cream</title><path d='M359.72 112.37a104 104 0 00-207.44 0A80.12 80.12 0 0080 192c0 39.36 26.37 71.23 62.38 78.46a2 2 0 011.62 2v38.83c0 21.84 17.2 40.22 39 40.74a40 40 0 0041-40v-47.84a2 2 0 012.72-1.86A83.47 83.47 0 00256 268a63.18 63.18 0 0042.24-16.59 2 2 0 012.74 0A74.63 74.63 0 00352 272a80 80 0 007.72-159.63z'/><path d='M256 300v12a72.1 72.1 0 01-58.21 70.64L256 496l92.06-192.08a105.29 105.29 0 01-49.18-14.36A93.75 93.75 0 01256 300z'/></svg>\"\nexport const idCard = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Id Card</title><path d='M368 16H144a64.07 64.07 0 00-64 64v352a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V80a64.07 64.07 0 00-64-64zm-34.52 268.51c7.57 8.17 11.27 19.16 10.39 30.94C342.14 338.91 324.25 358 304 358s-38.17-19.09-39.88-42.55c-.86-11.9 2.81-22.91 10.34-31S292.4 272 304 272a39.65 39.65 0 0129.48 12.51zM192 80a16 16 0 0116-16h96a16 16 0 010 32h-96a16 16 0 01-16-16zm189 363.83a12.05 12.05 0 01-9.31 4.17H236.31a12.05 12.05 0 01-9.31-4.17 13 13 0 01-2.76-10.92c3.25-17.56 13.38-32.31 29.3-42.66C267.68 381.06 285.6 376 304 376s36.32 5.06 50.46 14.25c15.92 10.35 26.05 25.1 29.3 42.66a13 13 0 01-2.76 10.92z'/></svg>\"\nexport const idCardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Id Card</title><rect x='96' y='32' width='320' height='448' rx='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M208 80h96' class='ionicon-fill-none ionicon-stroke-width'/><path d='M333.48 284.51A39.65 39.65 0 00304 272c-11.6 0-22.09 4.41-29.54 12.43s-11.2 19.12-10.34 31C265.83 338.91 283.72 358 304 358s38.14-19.09 39.87-42.55c.88-11.78-2.82-22.77-10.39-30.94zM371.69 448H236.31a12.05 12.05 0 01-9.31-4.17 13 13 0 01-2.76-10.92c3.25-17.56 13.38-32.31 29.3-42.66C267.68 381.06 285.6 376 304 376s36.32 5.06 50.46 14.25c15.92 10.35 26.05 25.1 29.3 42.66a13 13 0 01-2.76 10.92 12.05 12.05 0 01-9.31 4.17z'/></svg>\"\nexport const idCardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Id Card</title><path d='M408 16H104a24 24 0 00-24 24v432a24 24 0 0024 24h304a24 24 0 0024-24V40a24 24 0 00-24-24zm-61.1 296.77a43 43 0 11-40.71-40.71 43 43 0 0140.71 40.71zM192 64h128v32H192zm192 384H224v-24.6c0-32.72 53.27-49.21 80-49.21s80 16.49 80 49.21z'/></svg>\"\nexport const image = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Image</title><path d='M416 64H96a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V128a64.07 64.07 0 00-64-64zm-80 64a48 48 0 11-48 48 48.05 48.05 0 0148-48zM96 416a32 32 0 01-32-32v-67.63l94.84-84.3a48.06 48.06 0 0165.8 1.9l64.95 64.81L172.37 416zm352-32a32 32 0 01-32 32H217.63l121.42-121.42a47.72 47.72 0 0161.64-.16L448 333.84z'/></svg>\"\nexport const imageOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Image</title><rect x='48' y='80' width='416' height='352' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='336' cy='176' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const imageSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Image</title><path d='M456 64H56a24 24 0 00-24 24v336a24 24 0 0024 24h400a24 24 0 0024-24V88a24 24 0 00-24-24zm-124.38 64.2a48 48 0 11-43.42 43.42 48 48 0 0143.42-43.42zM76 416a12 12 0 01-12-12v-87.63L192.64 202l96.95 96.75L172.37 416zm372-12a12 12 0 01-12 12H217.63l149.53-149.53L448 333.84z'/></svg>\"\nexport const images = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Images</title><path d='M450.29 112H142c-34 0-62 27.51-62 61.33v245.34c0 33.82 28 61.33 62 61.33h308c34 0 62-26.18 62-60V173.33c0-33.82-27.68-61.33-61.71-61.33zm-77.15 61.34a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46.01zm-231.55 276c-17 0-29.86-13.75-29.86-30.66v-64.83l90.46-80.79a46.54 46.54 0 0163.44 1.83L328.27 337l-113 112.33zM480 418.67a30.67 30.67 0 01-30.71 30.66H259L376.08 333a46.24 46.24 0 0159.44-.16L480 370.59z'/><path d='M384 32H64A64 64 0 000 96v256a64.11 64.11 0 0048 62V152a72 72 0 0172-72h326a64.11 64.11 0 00-62-48z'/></svg>\"\nexport const imagesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Images</title><path d='M432 112V96a48.14 48.14 0 00-48-48H64a48.14 48.14 0 00-48 48v256a48.14 48.14 0 0048 48h16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='128' width='400' height='336' rx='45.99' ry='45.99' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><ellipse cx='372.92' cy='219.64' rx='30.77' ry='30.55' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M342.15 372.17L255 285.78a30.93 30.93 0 00-42.18-1.21L96 387.64M265.23 464l118.59-117.73a31 31 0 0141.46-1.87L496 402.91' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const imagesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Images</title><ellipse cx='373.14' cy='219.33' rx='46.29' ry='46' class='ionicon-fill-none'/><path d='M80 132v328a20 20 0 0020 20h392a20 20 0 0020-20V132a20 20 0 00-20-20H100a20 20 0 00-20 20zm293.14 41.33a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46zm-261.41 276v-95.48l122.76-110.2L328.27 337l-113 112.33zm368.27 0H259l144.58-144L480 370.59z'/><path d='M20 32A20 20 0 000 52v344a20 20 0 0020 20h28V100a20 20 0 0120-20h380V52a20 20 0 00-20-20z'/></svg>\"\nexport const infinite = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Infinite</title><path d='M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c30 0 56.45-13.18 78-32M256 256s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-29.37 0-56.66 13.75-78 32' stroke-linecap='round' stroke-miterlimit='10' stroke-width='48' class='ionicon-fill-none'/></svg>\"\nexport const infiniteOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Infinite</title><path d='M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c37.51 0 71-22.41 94-48M256 256s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-37.51 0-71 22.41-94 48' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const infiniteSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Infinite</title><path d='M382 136c-40.87 0-73.46 20.53-93.6 37.76l-.71.61-11.47 12.47 25.32 41.61 18.74-18.79C339.89 193.1 361.78 184 382 184c40.8 0 74 32.3 74 72s-33.2 72-74 72c-62 0-104.14-81.95-104.56-82.78C275 240.29 221.56 136 130 136 62.73 136 8 189.83 8 256s54.73 120 122 120c32.95 0 65.38-13.11 93.79-37.92l.61-.54 11.38-12.38-25.33-41.61-18.83 18.88C172 319.4 151.26 328 130 328c-40.8 0-74-32.3-74-72s33.2-72 74-72c62 0 104.14 81.95 104.56 82.78C237 271.71 290.44 376 382 376c67.27 0 122-53.83 122-120s-54.73-120-122-120z'/></svg>\"\nexport const information = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='40' d='M196 220h64v172' class='ionicon-fill-none'/><path stroke-linecap='round' stroke-miterlimit='10' stroke-width='40' d='M187 396h138' class='ionicon-fill-none'/><path d='M256 160a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const informationCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information Circle</title><path d='M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm48 226h-88a16 16 0 010-32h28v-88h-16a16 16 0 010-32h32a16 16 0 0116 16v104h28a16 16 0 010 32z'/></svg>\"\nexport const informationCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information Circle</title><path d='M248 64C146.39 64 64 146.39 64 248s82.39 184 184 184 184-82.39 184-184S349.61 64 248 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M220 220h32v116' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M208 340h88' class='ionicon-fill-none ionicon-stroke-width'/><path d='M248 130a26 26 0 1026 26 26 26 0 00-26-26z'/></svg>\"\nexport const informationCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information Circle</title><path d='M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm64 226H200v-32h44v-88h-32v-32h64v120h44z'/></svg>\"\nexport const informationOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='40' d='M196 220h64v172' class='ionicon-fill-none'/><path stroke-linecap='round' stroke-miterlimit='10' stroke-width='40' d='M187 396h138' class='ionicon-fill-none'/><path d='M256 160a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const informationSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Information</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='40' d='M196 220h64v172M187 396h138' class='ionicon-fill-none'/><path d='M256 160a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const invertMode = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Invert Mode</title><circle stroke-miterlimit='10' cx='256' cy='256' r='208' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 176v160a80 80 0 000-160zM256 48v128a80 80 0 000 160v128c-114.88 0-208-93.12-208-208S141.12 48 256 48z'/></svg>\"\nexport const invertModeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Invert Mode</title><circle stroke-miterlimit='10' cx='256' cy='256' r='208' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 176v160a80 80 0 010-160zM256 48v128a80 80 0 010 160v128c114.88 0 208-93.12 208-208S370.88 48 256 48z'/></svg>\"\nexport const invertModeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Invert Mode</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 432v-96a80 80 0 010-160V80c97.05 0 176 79 176 176s-78.95 176-176 176z'/><path d='M336 256a80 80 0 00-80-80v160a80 80 0 0080-80z'/></svg>\"\nexport const journal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Journal</title><path d='M290 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h146zM368 32h-18v448h18a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64z'/></svg>\"\nexport const journalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Journal</title><rect x='96' y='48' width='320' height='416' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' stroke-width='60' d='M320 48v416' class='ionicon-fill-none'/></svg>\"\nexport const journalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Journal</title><path d='M290 32H104a24 24 0 00-24 24v400a24 24 0 0024 24h186zM408 32h-58v448h58a24 24 0 0024-24V56a24 24 0 00-24-24z'/></svg>\"\nexport const key = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Key</title><path d='M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z'/></svg>\"\nexport const keyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Key</title><path d='M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const keySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Key</title><path d='M218.1 167.2c0 13 0 25.6 4.1 37.4-43.1 50.6-167.5 194.5-167.5 194.5l2.9 36.3s34.8 33 40 28c15.4-15 24.8-25.2 24.8-25.2l7.24-43.35 47.11-3.47 3.78-46.8 49.63-.95.49-50.09 52.69 2.1 9-18.84c15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.4-121.9 119.2zM406.85 144A38.85 38.85 0 11368 105.15 38.81 38.81 0 01406.85 144z'/></svg>\"\nexport const keypad = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Keypad</title><path d='M256 400a48 48 0 1048 48 48 48 0 00-48-48zM256 272a48 48 0 1048 48 48 48 0 00-48-48zM256 144a48 48 0 1048 48 48 48 0 00-48-48zM256 16a48 48 0 1048 48 48 48 0 00-48-48zM384 272a48 48 0 1048 48 48 48 0 00-48-48zM384 144a48 48 0 1048 48 48 48 0 00-48-48zM384 16a48 48 0 1048 48 48 48 0 00-48-48zM128 272a48 48 0 1048 48 48 48 0 00-48-48zM128 144a48 48 0 1048 48 48 48 0 00-48-48zM128 16a48 48 0 1048 48 48 48 0 00-48-48z'/></svg>\"\nexport const keypadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Keypad</title><circle cx='256' cy='448' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='320' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M288 192a32 32 0 11-32-32 32 32 0 0132 32z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='64' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='320' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='192' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='64' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='128' cy='320' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='128' cy='192' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='128' cy='64' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const keypadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Keypad</title><rect x='80' y='16' width='96' height='96' rx='8' ry='8'/><rect x='208' y='16' width='96' height='96' rx='8' ry='8'/><rect x='336' y='16' width='96' height='96' rx='8' ry='8'/><rect x='80' y='144' width='96' height='96' rx='8' ry='8'/><rect x='208' y='144' width='96' height='96' rx='8' ry='8'/><rect x='336' y='144' width='96' height='96' rx='8' ry='8'/><rect x='80' y='272' width='96' height='96' rx='8' ry='8'/><rect x='208' y='272' width='96' height='96' rx='8' ry='8'/><rect x='208' y='400' width='96' height='96' rx='8' ry='8'/><rect x='336' y='272' width='96' height='96' rx='8' ry='8'/></svg>\"\nexport const language = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Language</title><path d='M478.33 433.6l-90-218a22 22 0 00-40.67 0l-90 218a22 22 0 1040.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 00458 464a22 22 0 0020.32-30.4zM334.83 362L368 281.65 401.17 362zM267.84 342.92a22 22 0 00-4.89-30.7c-.2-.15-15-11.13-36.49-34.73 39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 000-44H214V70a22 22 0 00-44 0v20H54a22 22 0 000 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 00-40.58 17c.58 1.38 14.55 34.23 52.86 83.93.92 1.19 1.83 2.35 2.74 3.51-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1021.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59 22.52 24.08 38 35.44 38.93 36.1a22 22 0 0030.75-4.9z'/></svg>\"\nexport const languageOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Language</title><path stroke-linecap='round' stroke-linejoin='round' d='M48 112h288M192 64v48M272 448l96-224 96 224M301.5 384h133M281.3 112S257 206 199 277 80 384 80 384' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 336s-35-27-72-75-56-85-56-85' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const languageSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Language</title><path d='M363 176L246 464h47.24l24.49-58h90.54l24.49 58H480zm-26.69 186L363 279.85 389.69 362zM272 320c-.25-.19-20.59-15.77-45.42-42.67 39.58-53.64 62-114.61 71.15-143.33H352V90H214V48h-44v42H32v44h219.25c-9.52 26.95-27.05 69.5-53.79 108.36-32.68-43.44-47.14-75.88-47.33-76.22L143 152l-38 22 6.87 13.86c.89 1.56 17.19 37.9 54.71 86.57.92 1.21 1.85 2.39 2.78 3.57-49.72 56.86-89.15 79.09-89.66 79.47L64 368l23 36 19.3-11.47c2.2-1.67 41.33-24 92-80.78 24.52 26.28 43.22 40.83 44.3 41.67L255 362z'/></svg>\"\nexport const laptop = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Laptop</title><path d='M496 400h-28.34A47.92 47.92 0 00480 367.86V128.14A48.2 48.2 0 00431.86 80H80.14A48.2 48.2 0 0032 128.14v239.72A47.92 47.92 0 0044.34 400H16a16 16 0 000 32h480a16 16 0 000-32z'/></svg>\"\nexport const laptopOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Laptop</title><rect x='48' y='96' width='416' height='304' rx='32.14' ry='32.14' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M16 416h480' class='ionicon-stroke-width'/></svg>\"\nexport const laptopSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Laptop</title><path d='M477.29 400a27.75 27.75 0 002.71-12V108a28 28 0 00-28-28H60a28 28 0 00-28 28v280a27.75 27.75 0 002.71 12H0v32h512v-32z'/></svg>\"\nexport const layers = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Layers</title><path d='M256 256c-13.47 0-26.94-2.39-37.44-7.17l-148-67.49C63.79 178.26 48 169.25 48 152.24s15.79-26 22.58-29.12l149.28-68.07c20.57-9.4 51.61-9.4 72.19 0l149.37 68.07c6.79 3.09 22.58 12.1 22.58 29.12s-15.79 26-22.58 29.11l-148 67.48C282.94 253.61 269.47 256 256 256zm176.76-100.86z'/><path d='M441.36 226.81L426.27 220l-38.77 17.74-94 43c-10.5 4.8-24 7.19-37.44 7.19s-26.93-2.39-37.42-7.19l-94.07-43L85.79 220l-15.22 6.84C63.79 229.93 48 239 48 256s15.79 26.08 22.56 29.17l148 67.63C229 357.6 242.49 360 256 360s26.94-2.4 37.44-7.19l147.87-67.61c6.81-3.09 22.69-12.11 22.69-29.2s-15.77-26.07-22.64-29.19z'/><path d='M441.36 330.8l-15.09-6.8-38.77 17.73-94 42.95c-10.5 4.78-24 7.18-37.44 7.18s-26.93-2.39-37.42-7.18l-94.07-43L85.79 324l-15.22 6.84C63.79 333.93 48 343 48 360s15.79 26.07 22.56 29.15l148 67.59C229 461.52 242.54 464 256 464s26.88-2.48 37.38-7.27l147.92-67.57c6.82-3.08 22.7-12.1 22.7-29.16s-15.77-26.07-22.64-29.2z'/></svg>\"\nexport const layersOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Layers</title><path d='M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const layersSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Layers</title><path d='M480 150L256 48 32 150l224 104 224-104zM255.71 392.95l-144.81-66.2L32 362l224 102 224-102-78.69-35.3-145.6 66.25z'/><path d='M480 256l-75.53-33.53L256.1 290.6l-148.77-68.17L32 256l224 102 224-102z'/></svg>\"\nexport const leaf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Leaf</title><path d='M161.35 242a16 16 0 0122.62-.68c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.84-26.38-81.66-33.25-121.15-39.89-49.82-8.38-96.88-16.3-141.79-63.85-5-5.26-11.81-7.37-18.32-5.66-7.44 2-12.43 7.88-14.82 17.6-5.6 22.75-2 86.51 13.75 153.82 25.29 108.14 65.65 162.86 95.06 189.73 38 34.69 87.62 53.9 136.93 53.9a186 186 0 0027.77-2.04c41.71-6.32 76.43-27.27 96-57.75-89.49-23.28-165.94-67.55-242-139.16a16 16 0 01-.65-22.65zM467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a157.71 157.71 0 01-12.13 25.68c-.73 1.25-1.5 2.49-2.29 3.71a584.21 584.21 0 0058.56 12 16 16 0 104.87-31.62z'/></svg>\"\nexport const leafOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Leaf</title><path d='M321.89 171.42C233 114 141 155.22 56 65.22c-19.8-21-8.3 235.5 98.1 332.7 77.79 71 197.9 63.08 238.4-5.92s18.28-163.17-70.61-220.58zM173 253c86 81 175 129 292 147' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const leafSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Leaf</title><path d='M150.38 253.68l21.94-23.3 11.65 11c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.25-26-76.6-32.09-115.09-38.54-21.12-3.54-43-7.2-66.85-14.43-43.78-13.28-89.69-52.74-90.15-53.13L33.4 30.15 32 63.33c-.1 2.56-2.42 63.57 14.22 147.77 17.58 89 50.24 155.85 97.07 198.63 38 34.69 87.62 53.9 136.93 53.9a185.88 185.88 0 0027.78-2.07c41.72-6.32 76.43-27.27 96-57.75-89.5-23.28-165.95-67.55-242-139.16z'/><path d='M467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a158.49 158.49 0 01-12.13 25.68c-.74 1.25-1.51 2.49-2.29 3.71a583.43 583.43 0 0058.55 12l15.82 2.44 4.86-31.63z'/></svg>\"\nexport const library = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Library</title><path d='M64 480H48a32 32 0 01-32-32V112a32 32 0 0132-32h16a32 32 0 0132 32v336a32 32 0 01-32 32zM240 176a32 32 0 00-32-32h-64a32 32 0 00-32 32v28a4 4 0 004 4h120a4 4 0 004-4zM112 448a32 32 0 0032 32h64a32 32 0 0032-32v-30a2 2 0 00-2-2H114a2 2 0 00-2 2z'/><rect x='112' y='240' width='128' height='144' rx='2' ry='2'/><path d='M320 480h-32a32 32 0 01-32-32V64a32 32 0 0132-32h32a32 32 0 0132 32v384a32 32 0 01-32 32zM495.89 445.45l-32.23-340c-1.48-15.65-16.94-27-34.53-25.31l-31.85 3c-17.59 1.67-30.65 15.71-29.17 31.36l32.23 340c1.48 15.65 16.94 27 34.53 25.31l31.85-3c17.59-1.67 30.65-15.71 29.17-31.36z'/></svg>\"\nexport const libraryOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Library</title><rect x='32' y='96' width='64' height='368' rx='16' ry='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M112 224h128M112 400h128' class='ionicon-fill-none ionicon-stroke-width'/><rect x='112' y='160' width='128' height='304' rx='16' ry='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='256' y='48' width='96' height='416' rx='16' ry='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M422.46 96.11l-40.4 4.25c-11.12 1.17-19.18 11.57-17.93 23.1l34.92 321.59c1.26 11.53 11.37 20 22.49 18.84l40.4-4.25c11.12-1.17 19.18-11.57 17.93-23.1L445 115c-1.31-11.58-11.42-20.06-22.54-18.89z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const librarySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Library</title><path d='M84 480H28a12 12 0 01-12-12V92a12 12 0 0112-12h56a12 12 0 0112 12v376a12 12 0 01-12 12zM240 208v-52a12 12 0 00-12-12H124a12 12 0 00-12 12v52zM112 416v52a12 12 0 0012 12h104a12 12 0 0012-12v-52zM112 240h128v144H112zM340 480h-72a12 12 0 01-12-12V44a12 12 0 0112-12h72a12 12 0 0112 12v424a12 12 0 01-12 12zM369 100.7l30 367.83a12 12 0 0013.45 10.92l72.16-9a12 12 0 0010.47-12.9L465 91.21a12 12 0 00-13.2-10.94l-72.13 7.51A12 12 0 00369 100.7z'/></svg>\"\nexport const link = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Link</title><path d='M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66M169.07 256h175.86' stroke-linecap='round' stroke-linejoin='round' stroke-width='48' class='ionicon-fill-none'/></svg>\"\nexport const linkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Link</title><path d='M208 352h-64a96 96 0 010-192h64M304 160h64a96 96 0 010 192h-64M163.29 256h187.42' stroke-linecap='round' stroke-linejoin='round' stroke-width='36' class='ionicon-fill-none'/></svg>\"\nexport const linkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Link</title><path d='M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66M169.07 256h175.86' stroke-linecap='square' stroke-linejoin='round' stroke-width='48' class='ionicon-fill-none'/></svg>\"\nexport const list = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M160 144h288M160 256h288M160 368h288' class='ionicon-fill-none'/><circle cx='80' cy='144' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='80' cy='256' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='80' cy='368' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const listCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-88 302a24 24 0 1124-24 24 24 0 01-24 24zm0-71a24 24 0 1124-24 24 24 0 01-24 24zm0-73a24 24 0 1124-24 24 24 0 01-24 24zm184 135H224a16 16 0 010-32h128a16 16 0 010 32zm0-71H224a16 16 0 010-32h128a16 16 0 010 32zm0-72H224a16 16 0 010-32h128a16 16 0 010 32z'/></svg>\"\nexport const listCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List Circle</title><path stroke-linecap='round' stroke-linejoin='round' d='M224 184h128M224 256h128M224 327h128' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 258c0-106-86-192-192-192S64 152 64 258s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='184' r='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='257' r='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='328' r='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const listCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-64 287.5a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-71a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-72a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm176 151H212.67v-32H368zm0-71H212.67v-32H368zm0-72H212.67v-32H368z'/></svg>\"\nexport const listOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List</title><path stroke-linecap='round' stroke-linejoin='round' d='M160 144h288M160 256h288M160 368h288' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='80' cy='144' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='80' cy='256' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='80' cy='368' r='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const listSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>List</title><path stroke-linejoin='round' stroke-width='48' d='M144 144h320M144 256h320M144 368h320' class='ionicon-fill-none'/><path stroke-linecap='square' stroke-linejoin='round' d='M64 128h32v32H64zM64 240h32v32H64zM64 352h32v32H64z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const locate = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Locate</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M256 96V56M256 456v-40M256 112a144 144 0 10144 144 144 144 0 00-144-144zM416 256h40M56 256h40' class='ionicon-fill-none'/></svg>\"\nexport const locateOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Locate</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M256 96V56M256 456v-40' class='ionicon-fill-none'/><path d='M256 112a144 144 0 10144 144 144 144 0 00-144-144z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M416 256h40M56 256h40' class='ionicon-fill-none'/></svg>\"\nexport const locateSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Locate</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='48' d='M256 96V56M256 456v-40M256 112a144 144 0 10144 144 144 144 0 00-144-144zM416 256h40M56 256h40' class='ionicon-fill-none'/></svg>\"\nexport const location = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Location</title><circle cx='256' cy='192' r='32'/><path d='M256 32c-88.22 0-160 68.65-160 153 0 40.17 18.31 93.59 54.42 158.78 29 52.34 62.55 99.67 80 123.22a31.75 31.75 0 0051.22 0c17.42-23.55 51-70.88 80-123.22C397.69 278.61 416 225.19 416 185c0-84.35-71.78-153-160-153zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z'/></svg>\"\nexport const locationOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Location</title><path d='M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='192' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const locationSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Location</title><path d='M256 32C167.67 32 96 96.51 96 176c0 128 160 304 160 304s160-176 160-304c0-79.49-71.67-144-160-144zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z'/></svg>\"\nexport const lockClosed = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Closed</title><path d='M368 192h-16v-80a96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64zm-48 0H192v-80a64 64 0 11128 0z'/></svg>\"\nexport const lockClosedOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Closed</title><path d='M336 208v-95a80 80 0 00-160 0v95' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='208' width='320' height='272' rx='48' ry='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const lockClosedSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Closed</title><path d='M420 192h-68v-80a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12zm-106 0H198v-80.75a58 58 0 11116 0z'/></svg>\"\nexport const lockOpen = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Open</title><path d='M368 192H192v-80a64 64 0 11128 0 16 16 0 0032 0 96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64z'/></svg>\"\nexport const lockOpenOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Open</title><path d='M336 112a80 80 0 00-160 0v96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='208' width='320' height='272' rx='48' ry='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const lockOpenSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Lock Open</title><path d='M420 192H198v-80.75a58.08 58.08 0 0199.07-41.07A59.4 59.4 0 01314 112h38a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12z'/></svg>\"\nexport const logIn = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log In</title><path d='M392 80H232a56.06 56.06 0 00-56 56v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L329.37 272H176v104c0 32.05 33.79 56 64 56h152a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zM80 240a16 16 0 000 32h96v-32z'/></svg>\"\nexport const logInOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log In</title><path d='M192 176v-40a40 40 0 0140-40h160a40 40 0 0140 40v240a40 40 0 01-40 40H240c-22.09 0-48-17.91-48-40v-40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M288 336l80-80-80-80M80 256h272' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const logInSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log In</title><path d='M432 80H192a16 16 0 00-16 16v144h153.37l-64-64L288 153.37l91.31 91.32a16 16 0 010 22.62L288 358.63 265.37 336l64-64H176v144a16 16 0 0016 16h240a16 16 0 0016-16V96a16 16 0 00-16-16zM64 240h112v32H64z'/></svg>\"\nexport const logOut = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log Out</title><path d='M160 256a16 16 0 0116-16h144V136c0-32-33.79-56-64-56H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h160a56.06 56.06 0 0056-56V272H176a16 16 0 01-16-16zM459.31 244.69l-80-80a16 16 0 00-22.62 22.62L409.37 240H320v32h89.37l-52.68 52.69a16 16 0 1022.62 22.62l80-80a16 16 0 000-22.62z'/></svg>\"\nexport const logOutOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log Out</title><path d='M304 336v40a40 40 0 01-40 40H104a40 40 0 01-40-40V136a40 40 0 0140-40h152c22.09 0 48 17.91 48 40v40M368 336l80-80-80-80M176 256h256' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const logOutSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Log Out</title><path d='M160 240h160V96a16 16 0 00-16-16H64a16 16 0 00-16 16v320a16 16 0 0016 16h240a16 16 0 0016-16V272H160zM459.31 244.69L368 153.37 345.37 176l64 64H320v32h89.37l-64 64L368 358.63l91.31-91.32a16 16 0 000-22.62z'/></svg>\"\nexport const logoAlipay = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Alipay</title><path d='M102.41 32C62.38 32 32 64.12 32 103.78v304.45C32 447.86 64.38 480 104.41 480h303.2c40 0 72.39-32.14 72.39-71.77v-3.11c-1.35-.56-115.47-48.57-174.5-76.7-39.82 48.57-91.18 78-144.5 78-90.18 0-120.8-78.22-78.1-129.72 9.31-11.22 25.15-21.94 49.73-28 38.45-9.36 99.64 5.85 157 24.61a309.41 309.41 0 0025.46-61.67H138.34V194h91.13v-31.83H119.09v-17.75h110.38V99s0-7.65 7.82-7.65h44.55v53H391v17.75H281.84V194h89.08a359.41 359.41 0 01-37.72 94.43c27 9.69 49.31 18.88 67.39 24.89 60.32 20 77.23 22.45 79.41 22.7V103.78C480 64.12 447.6 32 407.61 32h-305.2zM152 274.73q-5.81.06-11.67.63c-11.3 1.13-32.5 6.07-44.09 16.23-34.74 30-13.94 84.93 56.37 84.93 40.87 0 81.71-25.9 113.79-67.37-41.36-20-77-34.85-114.4-34.42z'/></svg>\"\nexport const logoAmazon = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Amazon</title><path d='M48.48 378.73a300.52 300.52 0 00152.89 95.92 262.57 262.57 0 00159.3-17.25 225.52 225.52 0 0066.79-47 6.36 6.36 0 00-2-8.53 11.76 11.76 0 00-8-.05 401.92 401.92 0 01-116.55 39.34 358.13 358.13 0 01-127.29-8.83 446.73 446.73 0 01-119.1-60.49 5 5 0 00-6.06 6.9z'/><path d='M387.15 388.44a168.11 168.11 0 0148.94-2.23l.67.13a10 10 0 017.37 12.05A204.71 204.71 0 01429 444.47a2.55 2.55 0 001.66 3.18 2.51 2.51 0 002.23-.37A83.31 83.31 0 00464 382.86a12.44 12.44 0 00-10.22-13.22A95.75 95.75 0 00384.91 384a2.55 2.55 0 00-.57 3.55 2.52 2.52 0 002.81.89zM304.24 324.92a164 164 0 01-28.92 25.3A135.16 135.16 0 01208.63 369a99.49 99.49 0 01-57.49-19.85 97.25 97.25 0 01-27.36-100.28 112.35 112.35 0 0165.3-69.06 367.67 367.67 0 01104.7-15.55V127A37.82 37.82 0 00261 94.72a59.9 59.9 0 00-31.17 4.08 48.89 48.89 0 00-27.13 34.67 12 12 0 01-12.58 6.72l-50.9-4.5a11.38 11.38 0 01-8.38-10.16 103.66 103.66 0 0136.61-63.45A143.86 143.86 0 01257.85 32a146.24 146.24 0 0184.27 27.67 86.82 86.82 0 0130.7 70.22V258.8a84.46 84.46 0 008 31.28l15.87 23.23a13 13 0 010 11.23l-46.99 39.71a12.5 12.5 0 01-12.68-.44 244.84 244.84 0 01-32.78-38.89zm-10.6-116.83a257.68 257.68 0 00-44 2.89A63 63 0 00208 242.54a63 63 0 003.07 54 40.6 40.6 0 0047.11 12.19 78.61 78.61 0 0035.46-55.58v-45.06'/></svg>\"\nexport const logoAmplify = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Amplify</title><path d='M112.31 268l40.36-68.69 34.65 59-67.54 115h135L289.31 432H16zm58.57-99.76l33.27-56.67L392.44 432h-66.68zM222.67 80h66.59L496 432h-66.68z' fill-rule='evenodd'/></svg>\"\nexport const logoAndroid = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Android</title><path d='M380.91 199l42.47-73.57a8.63 8.63 0 00-3.12-11.76 8.52 8.52 0 00-11.71 3.12l-43 74.52c-32.83-15-69.78-23.35-109.52-23.35s-76.69 8.36-109.52 23.35l-43-74.52a8.6 8.6 0 10-14.88 8.64L131 199C57.8 238.64 8.19 312.77 0 399.55h512c-8.19-86.78-57.8-160.91-131.09-200.55zM138.45 327.65a21.46 21.46 0 1121.46-21.46 21.47 21.47 0 01-21.46 21.46zm235 0A21.46 21.46 0 11395 306.19a21.47 21.47 0 01-21.51 21.46z'/></svg>\"\nexport const logoAngular = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Angular</title><path d='M213.57 256h84.85l-42.43-89.36L213.57 256z'/><path d='M256 32L32 112l46.12 272L256 480l177.75-96L480 112zm88 320l-26.59-56H194.58L168 352h-40L256 72l128 280z'/></svg>\"\nexport const logoApple = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Apple</title><path d='M349.13 136.86c-40.32 0-57.36 19.24-85.44 19.24-28.79 0-50.75-19.1-85.69-19.1-34.2 0-70.67 20.88-93.83 56.45-32.52 50.16-27 144.63 25.67 225.11 18.84 28.81 44 61.12 77 61.47h.6c28.68 0 37.2-18.78 76.67-19h.6c38.88 0 46.68 18.89 75.24 18.89h.6c33-.35 59.51-36.15 78.35-64.85 13.56-20.64 18.6-31 29-54.35-76.19-28.92-88.43-136.93-13.08-178.34-23-28.8-55.32-45.48-85.79-45.48z'/><path d='M340.25 32c-24 1.63-52 16.91-68.4 36.86-14.88 18.08-27.12 44.9-22.32 70.91h1.92c25.56 0 51.72-15.39 67-35.11 14.72-18.77 25.88-45.37 21.8-72.66z'/></svg>\"\nexport const logoAppleAppstore = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Apple Appstore</title><path d='M256 32C132.26 32 32 132.26 32 256s100.26 224 224 224 224-100.26 224-224S379.74 32 256 32zm-85 321.89a15.48 15.48 0 01-13.46 7.65 14.91 14.91 0 01-7.86-2.16 15.48 15.48 0 01-5.6-21.21l15.29-25.42a8.73 8.73 0 017.54-4.3h2.26c11.09 0 18.85 6.67 21.11 13.13zm129.45-50l-100.13.11h-66.55a15.46 15.46 0 01-15.51-16.15c.32-8.4 7.65-14.76 16-14.76h48.24l57.19-97.35-18.52-31.55C217 137 218.85 127.52 226 123a15.57 15.57 0 0121.87 5.17l9.9 16.91h.11l9.91-16.91A15.58 15.58 0 01289.6 123c7.11 4.52 8.94 14 4.74 21.22l-18.52 31.55-18 30.69-39.09 66.66v.11h57.61c7.22 0 16.27 3.88 19.93 10.12l.32.65c3.23 5.49 5.06 9.26 5.06 14.75a13.82 13.82 0 01-1.17 5.17zm77.75.11h-27.11v.11l19.82 33.71a15.8 15.8 0 01-5.17 21.53 15.53 15.53 0 01-8.08 2.27A15.71 15.71 0 01344.2 354l-29.29-49.86-18.2-31L273.23 233a38.35 38.35 0 01-.65-38c4.64-8.19 8.19-10.34 8.19-10.34L333 273h44.91c8.4 0 15.61 6.46 16 14.75A15.65 15.65 0 01378.23 304z'/></svg>\"\nexport const logoAppleAr = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Apple Ar</title><path stroke-linecap='round' stroke-linejoin='round' d='M201.14 64L256 32l54.86 32' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M256 32v80' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M310.86 448L256 480l-54.86-32' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M256 480v-80' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M64 207.51V144l53.15-31.51' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M64 144l67.29 40' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M448 304.49V368l-53.15 31.51' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M448 368l-67.29-40' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M117.15 400L64 368v-63.51' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M64 368l66.64-40' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M394.85 112.49L448 144v63.51' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M448 144l-67.29 40M256 320v-64l54.86-32M256 256l-54.86-32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const logoBehance = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Behance</title><path d='M344.1 233.6c-28.9 0-32.9 28.8-32.9 28.8h61.4s.4-28.8-28.5-28.8zM204.8 262.4h-54.4v50h51.7c7.8-.2 22.4-2.4 22.4-24.3 0-26-19.7-25.7-19.7-25.7z'/><path d='M256 32C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32zm47.2 137.6h77.1v23h-77.1v-23zm-39 120.8c0 57-59.4 55.2-59.4 55.2h-97.2v-187h97.2c29.6 0 52.9 16.3 52.9 49.8S229.2 244 229.2 244c37.6 0 35 46.4 35 46.4zm144.2-3.1h-96.9c0 34.7 32.9 32.5 32.9 32.5 31.1 0 30-20.1 30-20.1h32.9c0 53.4-64 49.7-64 49.7-76.7 0-71.8-71.5-71.8-71.5s-.1-71.8 71.8-71.8c75.7.1 65.1 81.2 65.1 81.2z'/><path d='M218 211.3c0-19.4-13.2-19.4-13.2-19.4h-54.4v41.7h51c8.8 0 16.6-2.9 16.6-22.3z'/></svg>\"\nexport const logoBitbucket = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Bitbucket</title><path d='M483.13 32.23a19.65 19.65 0 00-2.54-.23h-449C23 31.88 16.12 38.88 16 47.75a11.44 11.44 0 00.23 2.8l65.3 411.25a22.52 22.52 0 007 12.95A20 20 0 00102 480h313.18a15.45 15.45 0 0015.34-13.42l38.88-247.91H325.19l-18.46 112H205.21l-25.73-148h295.58l20.76-132c1.27-8.75-4.38-17.04-12.69-18.44z'/></svg>\"\nexport const logoBitcoin = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Bitcoin</title><path d='M410.47 279.2c-5-11.5-12.7-21.6-28.1-30.1a98.15 98.15 0 00-25.4-10 62.22 62.22 0 0016.3-11 56.37 56.37 0 0015.6-23.3 77.11 77.11 0 003.5-28.2c-1.1-16.8-4.4-33.1-13.2-44.8s-21.2-20.7-37.6-27c-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.87c8.7 0 14.6.8 17.6 2.3a13.22 13.22 0 016.5 6c1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4s-2 4.9-5.1 6.3-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5s14-34.9 14.93-51.2c.67-14.5-.03-33.2-4.56-43.4zM224 150h32v74h-32zm0 212v-90h32v90zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8a56.06 56.06 0 01-6.7 1.9v-82.8a40.74 40.74 0 0111.3 3.4c7.8 3.3 15.2 6.9 19.8 13.2a43.82 43.82 0 018 24.7c-.03 10.9-2.83 19.2-10.33 25.8z'/></svg>\"\nexport const logoBuffer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Buffer</title><path d='M39.93 149.25l197.4 95.32c5.14 2.45 12 3.73 18.79 3.73s13.65-1.28 18.78-3.73l197.4-95.32c10.38-5 10.38-13.18 0-18.2L274.9 35.73c-5.13-2.45-12-3.73-18.78-3.73s-13.65 1.28-18.79 3.73l-197.4 95.32c-10.38 5.02-10.38 13.18 0 18.2z'/><path d='M472.3 246.9s-36.05-17.38-40.83-19.72-6.07-2.21-11.09.12-145.6 70.23-145.6 70.23a45.71 45.71 0 01-18.78 3.74c-6.77 0-13.65-1.29-18.78-3.74 0 0-136.85-66-143.27-69.18C87 225 85 225 78.67 228l-39 18.78c-10.38 5-10.38 13.19 0 18.2L237.1 360.3c5.13 2.45 12 3.73 18.78 3.73s13.65-1.28 18.79-3.73l197.4-95.3c10.61-4.92 10.61-13.08.23-18.1z'/><path d='M472.3 362.75s-36.05-17.38-40.83-19.75-6.07-2.21-11.09.12S274.9 413.5 274.9 413.5a45.74 45.74 0 01-18.78 3.73c-6.77 0-13.65-1.28-18.79-3.73 0 0-136.85-66-143.26-69.18-7-3.39-9-3.39-15.29-.35l-39 18.78c-10.39 5-10.39 13.18 0 18.2l197.4 95.32c5.13 2.56 12 3.73 18.78 3.73s13.65-1.28 18.78-3.73L472.18 381c10.5-5.07 10.5-13.23.12-18.25z'/></svg>\"\nexport const logoCapacitor = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Capacitor</title><path d='M480 101.09L372.37 208.72l106.86 107.06-69.3 69.3-283.22-283.23L196 32.54l107.07 106.88L410.67 32zM32.55 196l69.3-69.31 283.22 283.24-69.3 69.3-107-106.87L101.08 480 32 410.67l107.42-107.61z'/></svg>\"\nexport const logoChrome = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Chrome</title><path d='M188.8 255.93a67.2 67.2 0 1067.2-67.18 67.38 67.38 0 00-67.2 67.18z'/><path d='M476.75 217.79v.05a206.63 206.63 0 00-7-28.84h-.11a202.16 202.16 0 017.07 29 203.5 203.5 0 00-7.07-29h-155.4c19.05 17 31.36 40.17 31.36 67.05a86.55 86.55 0 01-12.31 44.73L231 478.45a2.44 2.44 0 010 .27v.28-.26a224 224 0 0025 1.26c6.84 0 13.61-.39 20.3-1a222.91 222.91 0 0029.78-4.74C405.68 451.52 480 362.4 480 255.94a225.25 225.25 0 00-3.25-38.15z'/><path d='M256 345.5c-33.6 0-61.6-17.91-77.29-44.79L76 123.05l-.14-.24A224 224 0 00207.4 474.55v-.05l77.69-134.6a84.13 84.13 0 01-29.09 5.6z'/><path d='M91.29 104.57l77.35 133.25A89.19 89.19 0 01256 166h205.17a246.51 246.51 0 00-25.78-43.94l.12.08A245.26 245.26 0 01461.17 166h.17a245.91 245.91 0 00-25.66-44 2.63 2.63 0 01-.35-.26 223.93 223.93 0 00-344.19-17.4l.14.24z'/></svg>\"\nexport const logoClosedCaptioning = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Closed Captioning</title><path d='M0 80v352h512V80zm464 175.78c0 25.74-1.6 45.32-3.77 77.22s-19.2 54.34-59.09 57.86-95.77 3.85-145.14 3.74c-49 .11-105.14-.11-145.14-3.74s-56.8-26-59.09-57.86S48 281.52 48 255.78s.11-42.46 3.77-77.22 23-54.12 59.09-57.64 98.28-3.52 145.14-3.52 109 0 145.14 3.52 55.43 23 59.09 57.64 3.77 51.59 3.77 77.22z'/><path d='M367.57 282.84v.77c0 17.93-11.11 28.49-25.95 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49s26.49 12.76 26.49 32.12v.55h49.58c0-24.09-6.05-45.76-18.25-59.4S369.76 153 345.8 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.23 7.96-12.86 18.52-16.86 31.83s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.5 4.62 34 4.62c27.47 0 47.26-7 59.13-20.57S418 305.06 418 279.1h-50.65c.22 0 .22 2.75.22 3.74zM197.3 282.84v.77c0 17.93-11.1 28.49-25.94 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49S198.4 213 198.4 232.35v.55H248c0-24.09-6-45.76-18.25-59.4S199.5 153 175.54 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.26 7.92-12.86 18.48-16.93 31.79s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.51 4.62 34 4.62c27.48 0 47.27-7 59.14-20.57s17.81-33.33 17.81-59.29h-50.78c.22.04.22 2.79.22 3.78z'/></svg>\"\nexport const logoCodepen = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Codepen</title><path d='M241.24 303.94c-15.32-10.36-30.74-20.57-46.06-30.93-2-1.38-3.43-1.48-5.5 0l-38.88 26.12C182 319.9 244 361.32 244 361.32v-53.79c0-1.22-1.55-2.78-2.76-3.59zM195.09 240.67q23.19-15.24 46.11-30.86a7.54 7.54 0 002.8-5.34v-51.7s-62 41.12-93.26 61.94c13.7 9.16 26.67 17.91 39.78 26.44 1.02.66 3.4.28 4.57-.48zM269.84 209.35q23.71 16.07 47.63 31.82a4.3 4.3 0 003.83 0l39.76-26.47L268 152.48v53.35a4.79 4.79 0 001.84 3.52zM258.11 230.37a5.27 5.27 0 00-4.74.17c-4.82 3-9.47 6.2-14.17 9.35-8.25 5.53-25.35 17-25.35 17l38.84 25.86a6.18 6.18 0 006.26.11l39-26s-34.07-22.66-39.84-26.49zM141 237.12v39.61l29.62-19.84L141 237.12z'/><path d='M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm139 265c0 5.78-2.65 9.86-7.51 13.09q-61.71 41-123.29 82.19c-5.85 3.92-11.17 3.75-17-.14q-61.17-41-122.63-81.67c-5.11-3.39-7.59-7.56-7.59-13.73V217c0-6.14 2.52-10.34 7.62-13.72 40.91-27.13 81.94-54.36 122.73-81.68 5.82-3.89 11.09-4 16.94-.09q61.54 41.21 123.26 82.19c4.68 3.11 7.45 6.95 7.45 12.66z'/><path d='M316.25 273.23q-22.59 15.34-45.39 30.34c-2.41 1.58-2.89 3.31-2.86 6.19v51.34l93-62-38.53-25.88c-2.3-1.61-3.89-1.57-6.22.01zM370 276.68v-39.62l-29.59 19.87L370 276.68z'/></svg>\"\nexport const logoCss3 = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Css3</title><path d='M64 32l35 403.22L255.77 480 413 435.15 448 32zm290.68 334.9L256.07 395l-98.46-28.24-6.75-77.76h48.26l3.43 39.56 53.59 15.16.13.28 53.47-14.85 5.64-64.15H203l-4-50h120.65l4.35-51H140l-4-49h240.58z'/></svg>\"\nexport const logoDesignernews = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Designernews</title><path d='M295.31 122.8L222.86 64l72.68 122.64-.23-63.84z'/><path d='M339.43 64v195.6h-41.6L225.6 141.28l1.94 118.32h-45.83V131.2L139.09 96c1.14 1.44 2.28 2.88 3.31 4.44 11.43 16.68 17.14 36.6 17.14 60.6 0 59-35 98.52-87.88 98.52H0v.48L228.11 448H512V205.72z'/><path d='M111.89 162.52c0-34.8-16.23-54.12-45.38-54.12H44.57v106.8h21.72c29.71 0 45.6-18.48 45.6-52.68z'/></svg>\"\nexport const logoDeviantart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Deviantart</title><path d='M408 103.28V16h-89.31l-8.9 8.78-42.15 78.48-13.25 8.74H104v119.85h82.68l7.36 8.71L104 408.72V496h89.3l8.91-8.79 42.14-78.48 13.26-8.73H408V280.13h-82.68l-7.36-8.75L408 103.28z'/></svg>\"\nexport const logoDiscord = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Discord</title><path d='M464 66.52A50 50 0 00414.12 17L97.64 16A49.65 49.65 0 0048 65.52V392c0 27.3 22.28 48 49.64 48H368l-13-44 109 100zM324.65 329.81s-8.72-10.39-16-19.32C340.39 301.55 352.5 282 352.5 282a139 139 0 01-27.85 14.25 173.31 173.31 0 01-35.11 10.39 170.05 170.05 0 01-62.72-.24 184.45 184.45 0 01-35.59-10.4 141.46 141.46 0 01-17.68-8.21c-.73-.48-1.45-.72-2.18-1.21-.49-.24-.73-.48-1-.48-4.36-2.42-6.78-4.11-6.78-4.11s11.62 19.09 42.38 28.26c-7.27 9.18-16.23 19.81-16.23 19.81-53.51-1.69-73.85-36.47-73.85-36.47 0-77.06 34.87-139.62 34.87-139.62 34.87-25.85 67.8-25.12 67.8-25.12l2.42 2.9c-43.59 12.32-63.44 31.4-63.44 31.4s5.32-2.9 14.28-6.77c25.91-11.35 46.5-14.25 55-15.21a24 24 0 014.12-.49 205.62 205.62 0 0148.91-.48 201.62 201.62 0 0172.89 22.95s-19.13-18.15-60.3-30.45l3.39-3.86s33.17-.73 67.81 25.16c0 0 34.87 62.56 34.87 139.62 0-.28-20.35 34.5-73.86 36.19z'/><path d='M212.05 218c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.8 0 24.7-11.83 24.7-26.57.25-14.76-10.9-26.57-24.7-26.57zM300.43 218c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.81 0 24.7-11.83 24.7-26.57S314 218 300.43 218z'/></svg>\"\nexport const logoDocker = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Docker</title><path d='M507 211.16c-1.42-1.19-14.25-10.94-41.79-10.94a132.55 132.55 0 00-21.61 1.9c-5.22-36.4-35.38-54-36.57-55l-7.36-4.28-4.75 6.9a101.65 101.65 0 00-13.06 30.45c-5 20.7-1.9 40.2 8.55 56.85-12.59 7.14-33 8.8-37.28 9H15.94A15.93 15.93 0 000 262.07a241.25 241.25 0 0014.75 86.83C26.39 379.35 43.72 402 66 415.74 91.22 431.2 132.3 440 178.6 440a344.23 344.23 0 0062.45-5.71 257.44 257.44 0 0081.69-29.73 223.55 223.55 0 0055.57-45.67c26.83-30.21 42.74-64 54.38-94h4.75c29.21 0 47.26-11.66 57.23-21.65a63.31 63.31 0 0015.2-22.36l2.14-6.18z'/><path d='M47.29 236.37H92.4a4 4 0 004-4v-40.48a4 4 0 00-4-4H47.29a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M109.5 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M172.9 236.37H218a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a3.87 3.87 0 004 4M235.36 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4 4 0 004 4M109.5 178.57h45.12a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.34 4.34 0 004 4M172.9 178.57H218a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a4 4 0 004 4M235.36 178.57h45.12a4.16 4.16 0 004-4v-40.48a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M235.36 120.53h45.12a4 4 0 004-4V76a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.17 4.17 0 004 4M298.28 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4'/></svg>\"\nexport const logoDribbble = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Dribbble</title><path d='M256 32C132.33 32 32 132.33 32 256s100.33 224 224 224 224-100.22 224-224S379.67 32 256 32zm142.22 103.25a186.36 186.36 0 0144 108.38c-40.37-2.1-88.67-2.1-127.4 1.52-4.9-12.37-9.92-24.5-15.4-36.17 44.66-19.36 79.08-44.8 98.8-73.73zM256 69.33a185.81 185.81 0 01119.12 42.94c-20.3 25.66-52.15 48-91.82 64.86C261.6 137 236.63 102.47 210 75.28a187.51 187.51 0 0146-5.95zm-84.47 20.42c26.95 26.83 52.27 61 74.44 101C203.85 203.62 155.55 211 104 211c-9.8 0-19.36-.35-28.81-.94a186.78 186.78 0 0196.34-120.31zM69.68 247.13c10.62.47 21.35.7 32.2.59 58.8-.7 113.52-9.92 160.54-25q6.65 13.83 12.6 28.35a115.43 115.43 0 00-16.69 5c-64.28 27-114.91 70.51-142.33 123.13A186 186 0 0169.33 256c0-3 .12-5.95.35-8.87zM256 442.67a185.57 185.57 0 01-114.45-39.32c24.85-49.23 69.18-90 125.07-115.27 5.25-2.45 12.25-4.43 20.3-6.18q10 27.64 17.85 57.4A678 678 0 01322 430.42a185.06 185.06 0 01-66 12.25zm100.92-29.75a672.61 672.61 0 00-17.39-92.05c-4-15.17-8.51-29.87-13.41-44.22 36.63-3 80.5-2.57 115.38 0a186.5 186.5 0 01-84.58 136.27z'/></svg>\"\nexport const logoDropbox = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Dropbox</title><path d='M256.32 126.24l-120.16 78.25 120.16 78.24L136.16 361 16 282.08l120.16-78.24L16 126.24 136.16 48zm-120.8 259.52l120.16-78.25 120.16 78.25L255.68 464zm120.8-103.68l120.16-78.24-120.16-77.6L375.84 48 496 126.24l-120.16 78.25L496 282.73 375.84 361z'/></svg>\"\nexport const logoEdge = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Edge</title><path d='M255.5 15c-132 0-240 108-240 240s108 240 240 240c85.4 0 160.8-45.2 203.3-112.9a6.87 6.87 0 00-9.1-9.7 108.64 108.64 0 01-18.4 8.6c-36.8 12.6-57.1 13.1-82.1 12-27.9-1.2-61.9-10.8-85.8-25s-43.5-34.6-54.1-52.3-17-39.9-14.1-68.3c2.9-29 29.4-52.6 60.4-52.6 33.5 0 60.8 26.6 60.8 60.1 0 17-8.1 31.7-18.5 43.5-2.3 2.1-7.6 9.7 5.8 20 15.9 12.2 51.6 18 79.9 16.6s59.1-12.6 80.2-34.8c16.8-17.7 31.8-46.1 31.8-77.4C495.5 97.7 379.5 15 255.5 15z'/></svg>\"\nexport const logoElectron = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Electron</title><path d='M86.76 255a9.89 9.89 0 004.87-1.29 9.82 9.82 0 003.65-13.43c-16.46-28.56-17.81-52.12-7.45-70 14.26-24.57 53.61-33.65 105.27-24.29a9.86 9.86 0 0011.45-7.9 9.84 9.84 0 00-7.93-11.44c-29.19-5.28-56-5.18-77.39.3-22.3 5.71-39 17.28-48.45 33.48-14 24.19-12.7 54.73 7.42 89.62a9.85 9.85 0 008.56 4.95zM361.61 143.73c32.24.42 52.61 9.31 62.79 26.86 14.21 24.48 2.52 62.81-31.27 102.52a9.82 9.82 0 007.51 16.18 9.88 9.88 0 007.52-3.46c19.12-22.47 32.35-45.54 38.25-66.71 6.14-22 4.43-42.21-5-58.38-13.8-23.78-40.13-36.15-79.59-36.67h-.14a9.83 9.83 0 00-.12 19.66zM326.47 414.89a9.88 9.88 0 00-13.5 3.35c-16.41 27.15-36.57 42.1-56.77 42.1-28.49 0-56-29.31-73.73-78.42a9.87 9.87 0 00-12.59-5.92 9.83 9.83 0 00-6 12.58c10 27.77 23.47 50.75 39 66.46 16.11 16.34 34.55 25 53.32 25 27.38 0 53.54-18.33 73.65-51.61a9.81 9.81 0 00-3.38-13.5zM431.7 338.54a32.14 32.14 0 00-29.9 44.33c-41.8 19.5-119.8 4.79-191.87-36.62-32.91-18.9-62.16-41.86-84.6-66.39a9.9 9.9 0 00-13.91-.65 9.8 9.8 0 00-.65 13.9c23.79 26 54.68 50.28 89.33 70.18 40.28 23.13 82.27 38.63 121.43 44.81a225.54 225.54 0 0035 2.91c23.12 0 43-4.3 58.51-12.79a32.2 32.2 0 1016.7-59.68zm0 44.66a12.6 12.6 0 01-7.82-2.72 10 10 0 00-2.2-2.21 12.61 12.61 0 1110 4.93z'/><path d='M82.09 338.59c.57-21.26 12.41-47 33.68-73.16 23.19-28.45 56.69-56 94.34-77.65 33.25-19.1 65.2-31.9 98.07-38.91a9.83 9.83 0 10-4.12-19.22c-34.85 7.43-68.78 21-103.79 41.09C116.09 219.09 59.9 289.88 62.46 343.9a32.32 32.32 0 1019.63-5.31zM80.3 383.2a12.5 12.5 0 1112.59-12.5 12.56 12.56 0 01-12.59 12.5z'/><path d='M256.2 96.32a32.23 32.23 0 0026.53-13.81c17.89 11.69 34 35 45.81 66.12 13 34.39 19.84 75.38 19.84 118.54 0 37.18-5.19 72.35-15 103.6a9.72 9.72 0 00.66 7.49 9.82 9.82 0 005.8 4.84 9.89 9.89 0 0012.34-6.44c10.42-33.14 15.93-70.34 15.93-109.49 0-47.17-7.77-91.77-22.47-129-14.41-36.48-34.13-62.4-57.14-75.16a32.3 32.3 0 10-32.3 33.31zm0-44.66a12.5 12.5 0 11-12.59 12.5 12.56 12.56 0 0112.59-12.5zM251 243.36a24.35 24.35 0 005.16 48.16 24.68 24.68 0 005.16-.55A24.36 24.36 0 10251 243.36z'/></svg>\"\nexport const logoEuro = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Euro</title><path d='M231.8 272v-48H376l8-48H231.8v-8.12c0-38.69 16.47-62.56 87.18-62.56 28.89 0 61.45 2.69 102.5 9.42l10.52-70A508.54 508.54 0 00315.46 32C189.26 32 135 76.4 135 158.46V176H80v48h55v48H80v48h55v33.54C135 435.6 189.23 480 315.43 480a507.76 507.76 0 00116.44-12.78l-10.58-70c-41.05 6.73-73.46 9.42-102.35 9.42-70.7 0-87.14-20.18-87.14-67.94V320h128.47l7.87-48z'/></svg>\"\nexport const logoFacebook = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Facebook</title><path d='M480 257.35c0-123.7-100.3-224-224-224s-224 100.3-224 224c0 111.8 81.9 204.47 189 221.29V322.12h-56.89v-64.77H221V208c0-56.13 33.45-87.16 84.61-87.16 24.51 0 50.15 4.38 50.15 4.38v55.13H327.5c-27.81 0-36.51 17.26-36.51 35v42h62.12l-9.92 64.77H291v156.54c107.1-16.81 189-109.48 189-221.31z' fill-rule='evenodd'/></svg>\"\nexport const logoFigma = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Figma</title><path d='M336 176a80 80 0 000-160H176a80 80 0 000 160 80 80 0 000 160 80 80 0 1080 80V176z'/><circle cx='336' cy='256' r='80'/></svg>\"\nexport const logoFirebase = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Firebase</title><path d='M93.19 329.38l47.45-304.07c1.64-10.37 15.55-12.82 20.46-3.55l51 95.45zM432 400l-46.74-276.79a11 11 0 00-18.54-6L80 400l159.36 91.91a33.18 33.18 0 0031.91 0zM302.36 158.93l-36.54-69.54a10.86 10.86 0 00-19.36 0L85.83 375.74z'/></svg>\"\nexport const logoFirefox = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Firefox</title><path d='M471.46 194.62v-.07c-.22-.76-.45-1.52-.68-2.28-.05-.19-.11-.38-.17-.56-.43-1.44-.87-2.88-1.33-4.31l-.06-.2a223.24 223.24 0 00-10-25.56 191.77 191.77 0 00-12.9-23.8 225.15 225.15 0 00-74.74-73.74A222.9 222.9 0 00256 32c-7 0-14 .34-20.82 1-24.12 2.54-64.78 11.21-97.77 40.18C257.5 11.86 417.94 85.7 404.29 223c-4.86 49-46.46 82.67-85.19 88.35a73.73 73.73 0 01-20.8.21c-94.59-13.15-88.8-90.68-60.06-123.83-38-.24-67.47 46.79-53.15 93-32.95-61.18.35-157 70.93-186-82.95-12-160.71 28.2-185.7 98.07A330.23 330.23 0 0188.07 118s-45.22 35.74-54.44 110.9c-.14 1.16-.27 2.32-.39 3.49-.05.4-.09.8-.13 1.21q-.53 5.25-.8 10.57v.81c-.07 1.48-.13 3-.17 4.46v1.25c0 1.76-.07 3.52-.07 5.29 0 123.71 100.29 224 224 224S480 379.71 480 256a224 224 0 00-8.54-61.38z'/></svg>\"\nexport const logoFlickr = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Flickr</title><path d='M256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm-82.16 280A56 56 0 11228 257.84 56 56 0 01173.84 312zm168 0A56 56 0 11396 257.84 56 56 0 01341.84 312z'/></svg>\"\nexport const logoFoursquare = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Foursquare</title><path d='M376.76 32H138.54C105.67 32 96 56.8 96 72.41v379.64c0 17.59 9.42 24.12 14.72 26.27s19.91 4 28.67-6.17c0 0 112.47-130.89 114.4-132.83 2.92-2.93 2.92-2.93 5.84-2.93h72.77c30.58 0 35.49-21.87 38.69-34.75 2.65-10.79 32.48-164 42.45-212.56C421.14 52 411.74 32 376.76 32zm-5.67 269.64c2.65-10.79 32.48-164 42.45-212.56m-50.85 7.59l-10 51.73c-1.19 5.65-8.28 11.6-14.86 11.6h-95.92c-10.44 0-17.91 6.14-17.91 16.6v13.45c0 10.47 7.52 17.89 18 17.89h81.85c7.38 0 14.61 8.11 13 16s-9.09 46.57-10 50.89-5.84 11.72-14.61 11.72H248c-11.7 0-15.24 1.54-23.07 11.3s-78.26 94.59-78.26 94.59c-.71.82-1.41.58-1.41-.31V95.9c0-6.69 5.8-14.53 14.48-14.53h191.14a12.42 12.42 0 0111.81 15.3z'/></svg>\"\nexport const logoGithub = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Github</title><path d='M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.56 17.56 0 003.8.4c8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 01-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0025.6-6c2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8a18.64 18.64 0 015-.5c8.1 0 26.4 3.1 56.6 24.1a208.21 208.21 0 01112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.64 18.64 0 015 .5c12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5a19.35 19.35 0 004-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z'/></svg>\"\nexport const logoGitlab = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Gitlab</title><path d='M494.07 281.6l-25.18-78.08a11 11 0 00-.61-2.1l-50.5-156.94a20.08 20.08 0 00-19.17-13.82 19.77 19.77 0 00-18.95 13.94l-48.14 149.55h-152L131.34 44.59a19.76 19.76 0 00-18.86-13.94h-.11a20.15 20.15 0 00-19.12 14L42.7 201.73c0 .14-.11.26-.16.4l-25.63 79.48a29.15 29.15 0 0010.44 32.46l221.44 162.41a11.25 11.25 0 0013.38-.07l221.48-162.34a29.13 29.13 0 0010.42-32.47m-331-64.51l61.73 191.76L76.63 217.09m209.64 191.8l59.19-183.84 2.55-8h86.52L300.47 390.44M398.8 59.31l43.37 134.83h-86.82M324.16 217l-43 133.58-25.66 79.56L186.94 217M112.27 59.31l43.46 134.83H69M40.68 295.58a6.19 6.19 0 01-2.21-6.9l19-59 139.61 180.59m273.26-114.69L313.92 410.22l.52-.69L453.5 229.64l19 59a6.2 6.2 0 01-2.19 6.92'/></svg>\"\nexport const logoGoogle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Google</title><path d='M473.16 221.48l-2.26-9.59H262.46v88.22H387c-12.93 61.4-72.93 93.72-121.94 93.72-35.66 0-73.25-15-98.13-39.11a140.08 140.08 0 01-41.8-98.88c0-37.16 16.7-74.33 41-98.78s61-38.13 97.49-38.13c41.79 0 71.74 22.19 82.94 32.31l62.69-62.36C390.86 72.72 340.34 32 261.6 32c-60.75 0-119 23.27-161.58 65.71C58 139.5 36.25 199.93 36.25 256s20.58 113.48 61.3 155.6c43.51 44.92 105.13 68.4 168.58 68.4 57.73 0 112.45-22.62 151.45-63.66 38.34-40.4 58.17-96.3 58.17-154.9 0-24.67-2.48-39.32-2.59-39.96z'/></svg>\"\nexport const logoGooglePlaystore = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Google Playstore</title><path d='M48 59.49v393a4.33 4.33 0 007.37 3.07L260 256 55.37 56.42A4.33 4.33 0 0048 59.49zM345.8 174L89.22 32.64l-.16-.09c-4.42-2.4-8.62 3.58-5 7.06l201.13 192.32zM84.08 472.39c-3.64 3.48.56 9.46 5 7.06l.16-.09L345.8 338l-60.61-57.95zM449.38 231l-71.65-39.46L310.36 256l67.37 64.43L449.38 281c19.49-10.77 19.49-39.23 0-50z'/></svg>\"\nexport const logoHackernews = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Hackernews</title><path d='M32 32v448h448V32zm249.67 250.83v84H235v-84l-77-140h55l46.32 97.54 44.33-97.54h52.73z'/></svg>\"\nexport const logoHtml5 = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Html5</title><path d='M64 32l34.94 403.21L255.77 480 413 435.15 448 32zm308 132H188l4 51h176l-13.51 151.39L256 394.48l-98.68-28-6.78-77.48h48.26l3.42 39.29L256 343.07l53.42-14.92L315 264H148l-12.59-149.59H376.2z'/></svg>\"\nexport const logoInstagram = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Instagram</title><path d='M349.33 69.33a93.62 93.62 0 0193.34 93.34v186.66a93.62 93.62 0 01-93.34 93.34H162.67a93.62 93.62 0 01-93.34-93.34V162.67a93.62 93.62 0 0193.34-93.34h186.66m0-37.33H162.67C90.8 32 32 90.8 32 162.67v186.66C32 421.2 90.8 480 162.67 480h186.66C421.2 480 480 421.2 480 349.33V162.67C480 90.8 421.2 32 349.33 32z'/><path d='M377.33 162.67a28 28 0 1128-28 27.94 27.94 0 01-28 28zM256 181.33A74.67 74.67 0 11181.33 256 74.75 74.75 0 01256 181.33m0-37.33a112 112 0 10112 112 112 112 0 00-112-112z'/></svg>\"\nexport const logoIonic = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Ionic</title><path d='M256 153.9A102.1 102.1 0 10358.1 256 102.23 102.23 0 00256 153.9z'/><circle cx='402.59' cy='116.45' r='46.52'/><path d='M459.86 163.2l-1.95-4.28-3.11 3.52a70 70 0 01-28.06 19.32l-3 1.1 1.22 2.93A181.43 181.43 0 01439 256c0 100.92-82.1 183-183 183S73 356.92 73 256 155.08 73 256 73a180.94 180.94 0 0178.43 17.7l2.87 1.3 1.25-2.92A70.19 70.19 0 01359.21 62l3.67-2.93-4.17-2.07A221.61 221.61 0 00256 32C132.49 32 32 132.49 32 256s100.49 224 224 224 224-100.49 224-224a222.19 222.19 0 00-20.14-92.8z'/></svg>\"\nexport const logoIonitron = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Ionitron</title><path d='M468.41 269.19c-2.64-33.39-11.76-58-31.44-57.39a1 1 0 00-.92 1.37c5.11 12.59 9.68 36.9 9.17 58.07a1 1 0 01-2 .08c-2.19-21.21-7.1-41.19-16.22-59.43a186.69 186.69 0 00-348.91 41 4 4 0 01-3.33 3.11l-8.65 1.22c-17.2 2.4-26.9 34.9-21.7 72.5s23.5 66.2 40.7 63.8l13.24-1.85a4 4 0 013.93 1.84 186.71 186.71 0 00339-56.07 4 4 0 013.68-3.08l4.4-.24c15.15-2.53 21.75-31.23 19.05-64.93zM94.5 270.42a1 1 0 011.59-1.19c9.63 10 20.25 27.65 23.32 49.86 3.24 23.05-2.24 45.2-9.13 57.87a1 1 0 01-1.84-.73c4.07-14.44 5.16-33.83 2.27-54.74-2.8-20.32-8.71-38.27-16.21-51.07zm178.77 109.79a15.53 15.53 0 01-15.41-13.83 15.48 15.48 0 1115.41 13.83zm81.84-4.72a15.37 15.37 0 1114.6-16.2 15.43 15.43 0 01-14.6 16.2z'/><path d='M165.51 70a.31.31 0 01.1.2c.1.2.2.3.3.5v.1a5.78 5.78 0 002.3 2.7c2 1.5 5 2.4 8.6 3a63.69 63.69 0 0011.9.5 28.25 28.25 0 002.9-.2c-.4-.4-.8-.9-1.2-1.3h-1.3a52 52 0 01-11.6-.9 19.71 19.71 0 01-8.4-3.4 9.24 9.24 0 01-1.4-1.4 4.48 4.48 0 010-2.3c.5-2.3 2.4-4.8 5.5-7.4a57.25 57.25 0 0110.9-7c.9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2a24.69 24.69 0 00-.2 10.5c2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-3-4-23.3c10.8-4.6 16.3-16.1 14-28a25.8 25.8 0 00-3.9-9.5c-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1a135.27 135.27 0 0121.5-4.2c.6-.1 1.2-.1 1.8-.2l3.5-.3h.6a61.83 61.83 0 0110.8.3 29 29 0 016.1 1.4 5.71 5.71 0 00-.9 3.2 6.12 6.12 0 004.3 5.8 25.53 25.53 0 01-2.1 2.8 26 26 0 01-2.9 2.8c-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5a.35.35 0 00.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4a29.15 29.15 0 003.2-2.8 29.86 29.86 0 002.4-2.8l.3-.6a6.14 6.14 0 005.4-6 6.06 6.06 0 00-6.1-6.1 6.81 6.81 0 00-2.8.7 24.6 24.6 0 00-8.2-2.7 63.48 63.48 0 00-15.5-.6 14.92 14.92 0 00-2.1.2 13.55 13.55 0 01-2 .2 25.15 25.15 0 00-18.7-3.7 25.86 25.86 0 00-17.8 13c-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9a60.75 60.75 0 00-13.9 9.1c-3.1 2.9-4.9 5.7-5.3 8.3a6.14 6.14 0 00.7 4 2.19 2.19 0 01.3.5z'/></svg>\"\nexport const logoJavascript = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Javascript</title><path d='M32 32v448h448V32zm240 348c0 43.61-25.76 64.87-63.05 64.87-33.68 0-53.23-17.44-63.15-38.49l34.28-20.75c6.61 11.73 11.63 21.65 26.06 21.65 12 0 21.86-5.41 21.86-26.46V240h44zm99.35 63.87c-39.09 0-64.35-17.64-76.68-42L329 382c9 14.74 20.75 24.56 41.5 24.56 17.44 0 27.57-7.72 27.57-19.75 0-14.43-10.43-19.54-29.68-28l-10.52-4.52c-30.38-12.92-50.52-29.16-50.52-63.45 0-31.57 24.05-54.63 61.64-54.63 26.77 0 46 8.32 59.85 32.68L396 290c-7.22-12.93-15-18-27.06-18-12.33 0-20.15 7.82-20.15 18 0 12.63 7.82 17.74 25.86 25.56l10.52 4.51c35.79 15.34 55.94 31 55.94 66.16.01 37.9-29.76 57.64-69.76 57.64z'/></svg>\"\nexport const logoLaravel = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Laravel</title><path d='M505.57 234.62c-3.28-3.53-26.82-32.29-39.51-47.79-6.75-8.24-12.08-14.75-14.32-17.45l-.18-.22-.2-.21c-5.22-5.83-12.64-12.51-23.78-12.51a39.78 39.78 0 00-5.41.44c-.37.05-.75.11-1.15.15-2.45.27-10.06 1.5-28.14 4.48-14 2.29-35.11 5.77-38.31 6.07l-.71.06-.69.13c-10 1.78-16.62 6.22-19.56 13.19-1.55 3.68-3.22 11.15 2.94 19.86 1.53 2.22 6.83 9.56 15.94 22.17 6.06 8.4 12.87 17.82 18.75 26L259.9 275 150.66 96.05l-.2-.34-.23-.33-.44-.65C145.32 88.17 139.76 80 123.7 80c-1.13 0-2.31 0-3.63.11-4.6.25-21.42 1.57-40.89 3.11-21.49 1.69-50.9 4-54.72 4.1h-.73l-.79.08c-9.14.89-15.77 4.6-19.7 11-6.55 10.69-1.42 22.69.26 26.63C6.87 133 37.56 197.7 64.63 254.81c18 37.94 36.58 77.17 38.1 80.65a34.85 34.85 0 0032.94 21.59 46.62 46.62 0 009.86-1.1h.21l.2-.05c13.86-3.38 57.83-14.54 89.2-22.59 1.9 3.32 3.9 6.83 6 10.44 21.93 38.5 37.9 66.35 43.16 73.46C287 421 295 432 310.06 432c5.46 0 10.46-1.4 15.74-2.89l1.53-.43h.12c10.53-3 150.69-52.16 157.87-55.35l.22-.1c5.44-2.41 13.66-6.05 16.18-15.4 1.65-6.12.18-12.33-4.38-18.46l-.07-.09-.07-.09c-.85-1.1-4-5.21-8.27-10.9-9.13-12.07-23.88-31.57-36.84-48.54 17.37-4.5 38.8-10.11 43.38-11.55 11.47-3.43 14.94-10.69 16-14.73.79-3.15 1.82-11.2-5.9-18.85zm-320 58.19c-17.81 4.17-30.22 7.08-37.89 8.9-6.67-13.34-19.74-39.65-32.5-65.33-29.74-59.92-45.1-90.77-53.18-106.9l8.15-.7c13.34-1.15 31.61-2.72 41.78-3.57 16.76 28.26 74.32 125.3 96.3 162.3zM427.58 172zM310.06 416.4zm53.67-56.95c-24.21 8-37.33 12.37-44.42 14.74-6.3-10.34-20.16-33.52-32.47-54.19l115.7-29.48c5 6.81 14.57 19.72 33.46 44.93-18.07 6.04-48.2 16.02-72.27 24zm55.87-121.63l-23.76-31.53c13.67-2.39 21.54-3.77 26.15-4.6l12 14.88 11.94 14.82c-8.2 1.99-17.74 4.32-26.33 6.43z'/></svg>\"\nexport const logoLinkedin = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Linkedin</title><path d='M444.17 32H70.28C49.85 32 32 46.7 32 66.89v374.72C32 461.91 49.85 480 70.28 480h373.78c20.54 0 35.94-18.21 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zm-273.3 373.43h-64.18V205.88h64.18zM141 175.54h-.46c-20.54 0-33.84-15.29-33.84-34.43 0-19.49 13.65-34.42 34.65-34.42s33.85 14.82 34.31 34.42c-.01 19.14-13.31 34.43-34.66 34.43zm264.43 229.89h-64.18V296.32c0-26.14-9.34-44-32.56-44-17.74 0-28.24 12-32.91 23.69-1.75 4.2-2.22 9.92-2.22 15.76v113.66h-64.18V205.88h64.18v27.77c9.34-13.3 23.93-32.44 57.88-32.44 42.13 0 74 27.77 74 87.64z'/></svg>\"\nexport const logoMarkdown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Markdown</title><path d='M475 64H37C16.58 64 0 81.38 0 102.77v306.42C0 430.59 16.58 448 37 448h438c20.38 0 37-17.41 37-38.81V102.77C512 81.38 495.42 64 475 64zM288 368h-64V256l-48 64-48-64v112H64V144h64l48 80 48-80h64zm96 0l-80-112h48.05L352 144h64v112h48z'/></svg>\"\nexport const logoMastodon = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Mastodon</title><path d='M480 173.59c0-104.13-68.26-134.65-68.26-134.65C377.3 23.15 318.2 16.5 256.8 16h-1.51c-61.4.5-120.46 7.15-154.88 22.94 0 0-68.27 30.52-68.27 134.65 0 23.85-.46 52.35.29 82.59C34.91 358 51.11 458.37 145.32 483.29c43.43 11.49 80.73 13.89 110.76 12.24 54.47-3 85-19.42 85-19.42l-1.79-39.5s-38.93 12.27-82.64 10.77c-43.31-1.48-89-4.67-96-57.81a108.44 108.44 0 01-1-14.9 558.91 558.91 0 0096.39 12.85c32.95 1.51 63.84-1.93 95.22-5.67 60.18-7.18 112.58-44.24 119.16-78.09 10.42-53.34 9.58-130.17 9.58-130.17zm-80.54 134.16h-50V185.38c0-25.8-10.86-38.89-32.58-38.89-24 0-36.06 15.53-36.06 46.24v67h-49.66v-67c0-30.71-12-46.24-36.06-46.24-21.72 0-32.58 13.09-32.58 38.89v122.37h-50V181.67q0-38.65 19.75-61.39c13.6-15.15 31.4-22.92 53.51-22.92 25.58 0 44.95 9.82 57.75 29.48L256 147.69l12.45-20.85c12.81-19.66 32.17-29.48 57.75-29.48 22.11 0 39.91 7.77 53.51 22.92q19.79 22.72 19.75 61.39z'/></svg>\"\nexport const logoMedium = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Medium</title><path d='M28 28v456h456V28H28zm378.83 108.04l-24.46 23.45a7.162 7.162 0 00-2.72 6.86v172.28c-.44 2.61.61 5.26 2.72 6.86l23.88 23.45v5.15H286.13v-5.15l24.74-24.02c2.43-2.43 2.43-3.15 2.43-6.86V198.81l-68.79 174.71h-9.3l-80.09-174.71v117.1c-.67 4.92.97 9.88 4.43 13.44l32.18 39.03v5.15h-91.24v-5.15l32.18-39.03c3.44-3.57 4.98-8.56 4.15-13.44V180.5c.38-3.76-1.05-7.48-3.86-10.01l-28.6-34.46v-5.15h88.81l68.65 150.55 60.35-150.55h84.66v5.16z'/></svg>\"\nexport const logoMicrosoft = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Microsoft</title><path d='M31.87 30.58H244.7v212.81H31.87zM266.89 30.58H479.7v212.81H266.89zM31.87 265.61H244.7v212.8H31.87zM266.89 265.61H479.7v212.8H266.89z'/></svg>\"\nexport const logoNoSmoking = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo No Smoking</title><path d='M360 256h16v48h-16zM112 304h129.6l-48-48H112v48z'/><path d='M364.5 60.1a8.79 8.79 0 01-1-.6 218.79 218.79 0 00-34.4-14.8l-5.4-1.8A223.2 223.2 0 00256 32C132.3 32 32 132.3 32 256a223.71 223.71 0 00115.4 195.8c.4.2.7.5 1.1.7a218.79 218.79 0 0034.4 14.8l5.4 1.8A222.7 222.7 0 00256 480c123.7 0 224-100.3 224-224A223.76 223.76 0 00364.5 60.1zM256 426.4a161.85 161.85 0 01-27.2-2.4 170.14 170.14 0 01-28.5-7.3c-1.9-.6-3.8-1.2-5.6-1.9a162.39 162.39 0 01-19-8.6 170.33 170.33 0 01-90.1-150.3c0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6a162.79 162.79 0 0127.2 2.4 170.14 170.14 0 0128.5 7.3c1.8.6 3.7 1.2 5.6 1.9a162 162 0 0118 8.1 170.25 170.25 0 0191.2 150.8c-.1 37.2-12.5 71.3-32.7 99.3z'/><path d='M352 256h-34l34 34v-34zM384 256h16v48h-16zM360.1 212.7c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9a8 8 0 00.4-8.2 8.26 8.26 0 00-7-4.3 53.67 53.67 0 01-18.3-3.9c-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38a66.58 66.58 0 0012 3.6c-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z'/><path d='M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3a8 8 0 00.1 7.9 8.06 8.06 0 006.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16z'/></svg>\"\nexport const logoNodejs = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Nodejs</title><path d='M429.76 130.07L274.33 36.85a37 37 0 00-36.65 0L82.24 130.06A38.2 38.2 0 0064 162.83V349a38.26 38.26 0 0018.24 32.8L123 406.14l.23.13c20.58 10.53 28.46 10.53 37.59 10.53 32.14 0 52.11-20.8 52.11-54.29V182a8.51 8.51 0 00-8.42-8.58h-22.38a8.51 8.51 0 00-8.42 8.58v180.51a15 15 0 01-6.85 13.07c-5.9 3.6-14.47 2.84-24.14-2.15l-39.06-23.51a1.1 1.1 0 01-.48-.92V165.46a1.32 1.32 0 01.59-1.06l151.84-93a.82.82 0 01.73 0l151.93 93a1.34 1.34 0 01.55 1.1V349a1.28 1.28 0 01-.45 1l-152.06 90.65a1.22 1.22 0 01-.8 0l-38.83-23.06a7.8 7.8 0 00-7.83-.41l-.34.2c-10.72 6.35-13.6 8-23.54 11.62-1.62.59-5.43 2-5.76 5.77s3.29 6.45 6.51 8.32l51.9 31.87a35.67 35.67 0 0018.3 5.07h.58a35.87 35.87 0 0017.83-5.07l155.43-93.13A38.37 38.37 0 00448 349V162.83a38.21 38.21 0 00-18.24-32.76z'/><path d='M307.88 318.05c-37.29 0-45.24-10.42-47.6-27.24a8.43 8.43 0 00-8.22-7.32h-19.8a8.44 8.44 0 00-8.26 8.58c0 14.58 5.12 62.17 83.92 62.17 24.38 0 44.66-5.7 58.63-16.49S388 311.26 388 292.55c0-37.55-24.5-47.83-72.75-54.55-49.05-6.82-49.05-10.29-49.05-17.89 0-5.47 0-18.28 35.46-18.28 25.23 0 38.74 3.19 43.06 20a8.35 8.35 0 008.06 6.67h19.87a8.24 8.24 0 006.16-2.86 8.91 8.91 0 002.12-6.44c-2.57-35.55-28.56-53.58-79.24-53.58-46.06 0-73.55 20.75-73.55 55.5 0 38.1 28.49 48.87 71.29 53.33 50 5.17 50 12.71 50 19.37.03 10.38-4.28 24.23-41.55 24.23z'/></svg>\"\nexport const logoNpm = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Npm</title><path d='M227.6 213.1H256v57.1h-28.4z'/><path d='M0 156v171.4h142.2V356H256v-28.6h256V156zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8zm142.2 0h-56.9v28.6h-56.9V184.6h113.8zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z'/></svg>\"\nexport const logoOctocat = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Octocat</title><path d='M172.86 290.12c-9.75 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S163 386 172.86 386c9.1 0 17-4.66 23.68-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.54-13.89-23.68-13.89zM340.32 290.12c-9.64 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S330.57 386 340.32 386c9.11 0 17-4.66 23.79-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.57-13.89-23.79-13.89z'/><path d='M459.36 165c-.11 0 2.89-15.49.32-42.47-2.36-27-8-51.78-17.25-74.53 0 0-4.72.87-13.72 3.14S405 58 384.89 67.18c-19.82 9.2-40.71 21.44-62.46 36.29-14.79-4.23-36.86-6.39-66.43-6.39-28.18 0-50.25 2.16-66.43 6.39Q117.9 53.25 69.46 48q-13.81 34.13-17.14 74.75c-2.57 27 .43 42.58.43 42.58C26.71 193.82 16 234.88 16 268.78c0 26.22.75 49.94 6.54 71 6 20.91 13.6 38 22.6 51.14A147.49 147.49 0 0079 425.43c13.39 10.08 25.71 17.34 36.86 21.89 11.25 4.76 24 8.23 38.57 10.72a279.19 279.19 0 0032.68 4.34s30 1.62 69 1.62 68.89-1.62 68.89-1.62a285.25 285.25 0 0032.68-4.38 178.91 178.91 0 0038.46-10.72c11.15-4.66 23.47-11.81 37-21.89a145 145 0 0033.75-34.55c9-13.11 16.6-30.23 22.6-51.14s6.51-44.81 6.51-71.03c0-32.82-10.71-74.42-36.64-103.67zm-70.07 253.07C359.39 432.26 315.46 438 257.18 438h-2.25c-58.29 0-102.22-5.63-131.57-19.93s-44.25-43.45-44.25-87.43c0-26.32 9.21-47.66 27.32-64 7.93-7 17.57-11.92 29.57-14.84s22.93-3 33.21-2.71c10.08.43 24.22 2.38 42.11 3.79s31.39 3.25 44.79 3.25c12.53 0 29.14-2.17 55.82-4.33s46.61-3.25 59.46-1.09c13.18 2.17 24.65 6.72 34.4 15.93q28.44 25.67 28.5 64c-.11 43.98-15.22 73.24-45 87.43z'/></svg>\"\nexport const logoPaypal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Paypal</title><path d='M424.81 148.79c-.43 2.76-.93 5.58-1.49 8.48-19.17 98-84.76 131.8-168.54 131.8h-42.65a20.67 20.67 0 00-20.47 17.46l-21.84 137.84-6.18 39.07a10.86 10.86 0 009.07 12.42 10.72 10.72 0 001.7.13h75.65a18.18 18.18 0 0018-15.27l.74-3.83 14.24-90 .91-4.94a18.16 18.16 0 0118-15.3h11.31c73.3 0 130.67-29.62 147.44-115.32 7-35.8 3.38-65.69-15.16-86.72a72.27 72.27 0 00-20.73-15.82z'/><path d='M385.52 51.09C363.84 26.52 324.71 16 274.63 16H129.25a20.75 20.75 0 00-20.54 17.48l-60.55 382a12.43 12.43 0 0010.39 14.22 12.58 12.58 0 001.94.15h89.76l22.54-142.29-.7 4.46a20.67 20.67 0 0120.47-17.46h42.65c83.77 0 149.36-33.86 168.54-131.8.57-2.9 1.05-5.72 1.49-8.48 5.7-36.22-.05-60.87-19.72-83.19z'/></svg>\"\nexport const logoPinterest = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Pinterest</title><path d='M256.05 32c-123.7 0-224 100.3-224 224 0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48a225.13 225.13 0 0063.5 9.2c123.7 0 224-100.3 224-224S379.75 32 256.05 32z'/></svg>\"\nexport const logoPlaystation = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Playstation</title><path d='M399.77 203c-.8-17.1-3.3-34.5-10.8-50.1a82.45 82.45 0 00-16.5-23.2 105.59 105.59 0 00-21.3-16.3c-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1a47.79 47.79 0 0024-5.7 49.11 49.11 0 0018.4-17.8 78.64 78.64 0 009.9-27.3c1.87-10.8 1.97-22.1 1.57-33.3zM86.67 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8a26.29 26.29 0 00-9.2 10.1 17.36 17.36 0 00-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2a262.42 262.42 0 0088.4 13.3c14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3a104.87 104.87 0 01-21.6 2.2c-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z'/><path d='M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8a94.43 94.43 0 0130.3-4.6c6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3a19.74 19.74 0 005-13.1z'/></svg>\"\nexport const logoPwa = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Pwa</title><path d='M330.7 352l77.72-192H356.9l-53.16 124.07L265.93 160h-39.61l-40.58 124.07-28.63-56.53-25.9 79.46 26.3 45h50.7l36.68-111.27 35 111.27zM48.79 286.09h31.65a93.39 93.39 0 0025.62-3.21l8.18-25.19 22.88-70.39a55.75 55.75 0 00-6-7.82Q113.54 160 79.59 160H0v192h48.79zm41.9-81.92q6.89 6.92 6.88 18.52t-6 18.53q-6.64 7.62-24.44 7.61H48.79v-51.58h18.42q16.59 0 23.48 6.92zm286.16 113.44l14.79-37.25h42.69l-20.26-56.51L439.41 160 512 352h-53.53l-12.4-34.39z'/></svg>\"\nexport const logoPython = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Python</title><path d='M314 36.38c-18.59-3.06-45.8-4.47-64.27-4.38a311.09 311.09 0 00-51.66 4.38c-45.74 8-54.07 24.7-54.07 55.54V128h112v16H107.62C66.06 144 32.33 193.67 32 255.12v.88a162.91 162.91 0 003.13 32c9.29 46.28 38.23 80 72.49 80H128v-54c0-31.3 20.84-59.95 55-66.1l9.87-1.23H314a56.05 56.05 0 0015.06-2A52.48 52.48 0 00368 193.68V91.92c0-28.92-24.68-50.73-54-55.54zM194.93 105.5a20.37 20.37 0 1120.3-20.3 20.29 20.29 0 01-20.3 20.3z'/><path d='M475.28 217c-10.7-42.61-38.41-73-70.9-73h-17.71v47.45c0 39.57-26 68.22-57.74 73.13a63.54 63.54 0 01-9.69.75H198.08a60 60 0 00-15.23 1.95C160.54 273.14 144 291.7 144 315.77v101.77c0 29 29.14 46 57.73 54.31 34.21 9.95 71.48 11.75 112.42 0 27.19-7.77 53.85-23.48 53.85-54.31V384H256v-16h148.38c29.44 0 54.95-24.93 67.45-61.31A156.83 156.83 0 00480 256a160.64 160.64 0 00-4.72-39zM316.51 404a20.37 20.37 0 11-20.3 20.3 20.29 20.29 0 0120.3-20.3z'/></svg>\"\nexport const logoReact = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo React</title><path d='M410.66 180.72q-7.67-2.62-15.45-4.88 1.29-5.25 2.38-10.56c11.7-56.9 4.05-102.74-22.06-117.83-25-14.48-66 .61-107.36 36.69q-6.1 5.34-11.95 11-3.9-3.76-8-7.36c-43.35-38.58-86.8-54.83-112.88-39.69-25 14.51-32.43 57.6-21.9 111.53q1.58 8 3.55 15.93a320.85 320.85 0 00-17.77 5.6C48.46 198.9 16 226.73 16 255.59c0 29.82 34.84 59.72 87.77 77.85q6.44 2.19 13 4.07-2.13 8.49-3.77 17.17c-10 53-2.2 95.07 22.75 109.49 25.77 14.89 69-.41 111.14-37.31q5-4.38 10-9.25 6.32 6.11 13 11.86c40.8 35.18 81.09 49.39 106 34.93 25.75-14.94 34.12-60.14 23.25-115.13q-1.25-6.3-2.88-12.86 4.56-1.35 8.93-2.79c55-18.27 90.83-47.81 90.83-78-.02-29-33.52-57.01-85.36-74.9zm-129-81.08c35.43-30.91 68.55-43.11 83.65-34.39 16.07 9.29 22.32 46.75 12.22 95.88q-1 4.8-2.16 9.57a487.83 487.83 0 00-64.18-10.16 481.27 481.27 0 00-40.57-50.75q5.38-5.22 11.02-10.15zM157.73 280.25q6.51 12.6 13.61 24.89 7.23 12.54 15.07 24.71a435.28 435.28 0 01-44.24-7.13c4.24-13.72 9.46-27.97 15.56-42.47zm0-48.33c-6-14.19-11.08-28.15-15.25-41.63 13.7-3.07 28.3-5.58 43.52-7.48q-7.65 11.94-14.72 24.23t-13.58 24.88zm10.9 24.17q9.48-19.77 20.42-38.78 10.93-19 23.27-37.13c14.28-1.08 28.92-1.65 43.71-1.65s29.52.57 43.79 1.66q12.21 18.09 23.13 37t20.69 38.6Q334 275.63 323 294.73q-10.91 19-23 37.24c-14.25 1-29 1.55-44 1.55s-29.47-.47-43.46-1.38q-12.43-18.19-23.46-37.29t-20.48-38.76zM340.75 305q7.25-12.58 13.92-25.49a440.41 440.41 0 0116.12 42.32 434.44 434.44 0 01-44.79 7.65q7.62-12.09 14.75-24.48zm13.72-73.07q-6.64-12.65-13.81-25-7-12.18-14.59-24.06c15.31 1.94 30 4.52 43.77 7.67a439.89 439.89 0 01-15.37 41.39zm-98.24-107.45a439.75 439.75 0 0128.25 34.18q-28.35-1.35-56.74 0c9.33-12.34 18.88-23.79 28.49-34.18zM145.66 65.86c16.06-9.32 51.57 4 89 37.27 2.39 2.13 4.8 4.36 7.2 6.67A491.37 491.37 0 00201 160.51a499.12 499.12 0 00-64.06 10q-1.83-7.36-3.3-14.82c-9.05-46.23-3.06-81.08 12.02-89.83zm-23.41 251.85q-6-1.71-11.85-3.71c-23.4-8-42.73-18.44-56-29.81-11.88-10.19-17.9-20.36-17.9-28.6 0-17.51 26.06-39.85 69.52-55q8.19-2.85 16.52-5.21a493.54 493.54 0 0023.4 60.75 502.46 502.46 0 00-23.69 61.58zm111.13 93.67c-18.63 16.32-37.29 27.89-53.74 33.72-14.78 5.23-26.55 5.38-33.66 1.27-15.14-8.75-21.44-42.54-12.85-87.86q1.53-8 3.5-16a480.85 480.85 0 0064.69 9.39 501.2 501.2 0 0041.2 51c-2.98 2.93-6.03 5.75-9.14 8.48zm23.42-23.22c-9.72-10.51-19.42-22.14-28.88-34.64q13.79.54 28.08.54c9.78 0 19.46-.21 29-.64a439.33 439.33 0 01-28.2 34.74zm124.52 28.59c-2.86 15.44-8.61 25.74-15.72 29.86-15.13 8.78-47.48-2.63-82.36-32.72-4-3.44-8-7.13-12.07-11a484.54 484.54 0 0040.23-51.2 477.84 477.84 0 0065-10.05q1.47 5.94 2.6 11.64c4.81 24.3 5.5 46.28 2.32 63.47zm17.4-102.64c-2.62.87-5.32 1.71-8.06 2.53a483.26 483.26 0 00-24.31-60.94 481.52 481.52 0 0023.36-60.06c4.91 1.43 9.68 2.93 14.27 4.52 44.42 15.32 71.52 38 71.52 55.43 0 18.6-29.27 42.74-76.78 58.52z'/><path d='M256 298.55a43 43 0 10-42.86-43 42.91 42.91 0 0042.86 43z'/></svg>\"\nexport const logoReddit = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Reddit</title><path d='M324 256a36 36 0 1036 36 36 36 0 00-36-36z'/><circle cx='188' cy='292' r='36' transform='rotate(-22.5 187.997 291.992)'/><path d='M496 253.77c0-31.19-25.14-56.56-56-56.56a55.72 55.72 0 00-35.61 12.86c-35-23.77-80.78-38.32-129.65-41.27l22-79 66.41 13.2c1.9 26.48 24 47.49 50.65 47.49 28 0 50.78-23 50.78-51.21S441 48 413 48c-19.53 0-36.31 11.19-44.85 28.77l-90-17.89-31.1 109.52-4.63.13c-50.63 2.21-98.34 16.93-134.77 41.53A55.38 55.38 0 0072 197.21c-30.89 0-56 25.37-56 56.56a56.43 56.43 0 0028.11 49.06 98.65 98.65 0 00-.89 13.34c.11 39.74 22.49 77 63 105C146.36 448.77 199.51 464 256 464s109.76-15.23 149.83-42.89c40.53-28 62.85-65.27 62.85-105.06a109.32 109.32 0 00-.84-13.3A56.32 56.32 0 00496 253.77zM414 75a24 24 0 11-24 24 24 24 0 0124-24zM42.72 253.77a29.6 29.6 0 0129.42-29.71 29 29 0 0113.62 3.43c-15.5 14.41-26.93 30.41-34.07 47.68a30.23 30.23 0 01-8.97-21.4zM390.82 399c-35.74 24.59-83.6 38.14-134.77 38.14S157 423.61 121.29 399c-33-22.79-51.24-52.26-51.24-83A78.5 78.5 0 0175 288.72c5.68-15.74 16.16-30.48 31.15-43.79a155.17 155.17 0 0114.76-11.53l.3-.21.24-.17c35.72-24.52 83.52-38 134.61-38s98.9 13.51 134.62 38l.23.17.34.25A156.57 156.57 0 01406 244.92c15 13.32 25.48 28.05 31.16 43.81a85.44 85.44 0 014.31 17.67 77.29 77.29 0 01.6 9.65c-.01 30.72-18.21 60.19-51.25 82.95zm69.6-123.92c-7.13-17.28-18.56-33.29-34.07-47.72A29.09 29.09 0 01440 224a29.59 29.59 0 0129.41 29.71 30.07 30.07 0 01-8.99 21.39z'/><path d='M323.23 362.22c-.25.25-25.56 26.07-67.15 26.27-42-.2-66.28-25.23-67.31-26.27a4.14 4.14 0 00-5.83 0l-13.7 13.47a4.15 4.15 0 000 5.89c3.4 3.4 34.7 34.23 86.78 34.45 51.94-.22 83.38-31.05 86.78-34.45a4.16 4.16 0 000-5.9l-13.71-13.47a4.13 4.13 0 00-5.81 0z'/></svg>\"\nexport const logoRss = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Rss</title><path d='M108.56 342.78a60.34 60.34 0 1060.56 60.44 60.63 60.63 0 00-60.56-60.44z'/><path d='M48 186.67v86.55c52 0 101.94 15.39 138.67 52.11s52 86.56 52 138.67h86.66c0-151.56-125.66-277.33-277.33-277.33z'/><path d='M48 48v86.56c185.25 0 329.22 144.08 329.22 329.44H464C464 234.66 277.67 48 48 48z'/></svg>\"\nexport const logoSass = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Sass</title><path d='M511.78 328.07c-1.47-11.92-7.51-22.26-18-30.77a3.58 3.58 0 00-.43-.44l-.53-.38-.17-.12-5.57-4-.19-.14-.71-.5a3.5 3.5 0 00-.83-.35c-17.62-10.49-46.79-17.84-91.42-2.09-10.65-17.92-11.86-32.28-4.73-54.28 1.27-3.83.09-6.36-3.71-8-7.64-3.25-18.1-1.59-25.52.37-3.46.9-5.54 2.86-6.2 5.83-4.7 22-18.36 42.1-31.57 61.5l-.78 1.14c-8.14-17.26-6.45-30.63-.78-47.38 1.13-3.34.24-5.56-2.89-7.22-8.74-4.51-21.85-1.41-27.07.13-6.62 1.93-13.72 19.82-21.65 41.24-2 5.39-3.72 10-4.75 12.15-2.45 5-4.79 10.7-7.27 16.75-5.6 13.69-11.91 29.1-20.93 38.78-3.28-7.25 1.88-18.68 6.89-29.77 5.93-13.11 11.53-25.5 5.08-33.41a11.82 11.82 0 00-8.33-4.32 13.26 13.26 0 00-6.15 1c.67-5.65.7-10.11-.95-15.5-2.36-7.69-8.49-12-16.93-11.77-19.22.56-35.48 14.88-45.75 26.8-6.84 8-22 14.1-35.31 19.45-5.26 2.23-10.26 4.23-14.43 6.23-6.65-5.62-15.1-11.29-24-17.28-25-16.78-53.33-35.81-54.31-61.61-1.4-38.11 42-65.14 79.88-84.43 28.71-14.6 53.67-24.28 76.31-29.57 31.8-7.43 58.66-5.93 79.82 4.44 11.58 5.67 17 18 13.56 30.68-9 32.95-46.29 55.53-78.18 65.69-19.21 6.12-35.56 8.68-50 7.84-18.1-1.05-32.88-10.13-39.2-14a21.18 21.18 0 00-3.2-1.8l-.29-.07a3.21 3.21 0 00-3.19 1c-1.3 1.55-.84 4-.37 5.24 6.15 16.07 18.85 26.22 37.74 30.17a92.09 92.09 0 0018.78 1.79c44.21 0 100.62-25.49 121.34-46.48 14.13-14.3 24.42-29 28.68-54.35 4.45-26.55-13.55-45-31.89-53.5-44.57-20.57-95.19-12.44-129.81-2-40.5 12.21-82.4 34.41-114.94 60.93-40.12 32.67-54.62 63-43.12 90.25 11.81 27.93 40.61 45.4 68.46 62.3 9 5.45 17.56 10.64 25.27 16-2.32 1.13-4.69 2.28-7.1 3.43-23.38 11.33-49.9 24.08-64.61 45.15-10.68 15.35-12.68 30.63-5.94 45.42 3.6 7.87 10 13.21 18.89 15.87A50 50 0 0053 432c17.31 0 36.36-7 46.73-13.47 18.32-11.5 30.19-26.94 35.29-45.89 4.54-16.86 3.45-33.61-3.15-48.56l22.45-11.32c-10.83 36-2.53 57.5 6.59 69.36 3.36 4.37 9.42 7 16.19 7.12s13-2.43 16.52-6.77c6.66-8.25 11.58-17.9 16.11-27.55-.24 6.3.06 12.68 2.21 18.09 1.93 4.87 5.11 8.1 9.21 9.34 4.36 1.33 9.47.21 14.39-3.15 22.17-15.17 37.33-51.58 49.51-80.85 1.73-4.16 3.39-8.16 5-11.9a152.5 152.5 0 0012.5 31.07c1.18 2.14 1.08 3.08-.52 4.84-2.41 2.64-5.77 5.83-9.33 9.21-10.78 10.23-24.2 23-26 34.23-.7 4.5 2.4 8.6 7.21 9.53 14.47 2.88 31.9-1.33 46.64-11.25 13.4-9 18.44-21.55 15-37.19-3.33-15.06 4.27-33.76 22.59-55.62 3 12.53 7 22.66 12.52 31.53l-.15.12c-13.34 11.65-31.62 27.6-28.78 46.95a13.35 13.35 0 005.58 9.22 14.22 14.22 0 0011.2 2.06c17.47-3.67 30.62-11.06 40.18-22.57s6.07-24.27 2.85-34.17c25-6.78 47.26-6.61 68.1.5 11.7 4 20.09 10.57 24.93 19.64 6.09 11.41 2.8 21.94-9.29 29.65-3.71 2.37-5.5 3.82-5.61 5.65a2.65 2.65 0 001 2.23c1.4 1.15 5.72 3.15 15.49-3 9-5.65 14.28-13.34 15.63-23a39 39 0 00-.01-8.01zm-399.73 25.06l-.1 1.28c-1.56 14.64-9 27.4-22.15 38-8.26 6.66-17.23 10.75-25.25 11.53-5.6.54-9.67-.22-12.09-2.27-1.81-1.53-2.78-3.82-3-7-1.64-25.48 38.32-50.8 60.81-59.13a51.39 51.39 0 011.78 17.59zm102.35-71.86c-3.7 21.09-14.49 60.9-31.45 76.35-.81.74-1.49 1-1.8.93s-.55-.44-.8-1c-5.66-13.12-3.57-35.28 5-52.69 6.59-13.42 16-22.31 26.52-25a5.29 5.29 0 011.34-.19 1.58 1.58 0 011 .27 1.64 1.64 0 01.19 1.33zm83.49 76.88c-3.19 3.33-7.56 2.88-6.53 1.66l16.24-17.24c-1.31 5.93-5.18 10.84-9.71 15.58zm67.37-14.91a14.07 14.07 0 01-4.93 1.39c-.46-9.07 8.33-19.28 17-26.09 2.33 9.46-2.44 19.46-12.07 24.7z'/></svg>\"\nexport const logoSkype = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Skype</title><path d='M467.16 303.6a205.69 205.69 0 004.9-45.15c0-116.32-95.69-210.7-213.79-210.7a221.83 221.83 0 00-36.52 3A123.58 123.58 0 00155.93 32C87.55 32 32 86.72 32 154.15A119.56 119.56 0 0049 216a211.16 211.16 0 00-4.32 42.35c0 116.44 95.69 210.7 213.67 210.7a214 214 0 0039.09-3.5A125.45 125.45 0 00356.07 480C424.57 480 480 425.28 480 357.85a118 118 0 00-12.84-54.25zM368 359c-9.92 13.76-24.51 24.73-43.41 32.43S283.36 403 257.69 403c-30.69 0-56.36-5.37-76.55-15.87a101 101 0 01-35.24-30.8c-9.11-12.83-13.66-25.66-13.66-38 0-7.7 3-14.35 8.87-19.95 5.84-5.37 13.42-8.17 22.29-8.17 7.35 0 13.65 2.1 18.79 6.42 4.9 4.08 9.1 10.15 12.48 18.08A108.09 108.09 0 00207 336.15q6.32 8.22 17.86 13.65c7.82 3.62 18.2 5.48 31 5.48 17.62 0 32.09-3.73 42.94-11.08 10.74-7.12 15.88-15.75 15.88-26.25 0-8.28-2.69-14.82-8.29-19.95-5.83-5.37-13.42-9.57-22.87-12.37-9.69-3-22.87-6.18-39.21-9.56-22.17-4.67-41-10.27-56-16.57-15.28-6.42-27.65-15.4-36.76-26.48-9.22-11.32-13.77-25.55-13.77-42.24a67.86 67.86 0 0114.47-42.58c9.57-12.25 23.46-21.82 41.55-28.35 17.74-6.53 38.86-9.8 62.66-9.8 19.14 0 35.83 2.22 49.83 6.42s25.91 10.15 35.36 17.38 16.34 14.93 20.77 23 6.66 16.22 6.66 24c0 7.46-2.92 14.35-8.76 20.3a29.65 29.65 0 01-21.94 9.1c-7.93 0-14.12-1.87-18.43-5.6-4-3.5-8.17-8.87-12.72-16.69-5.37-9.91-11.79-17.85-19.14-23.45-7.24-5.36-19.14-8.16-35.71-8.16-15.29 0-27.77 3-37 9-8.87 5.72-13.19 12.37-13.19 20.18a18.26 18.26 0 004.32 12.25 38.13 38.13 0 0012.72 9.57 90.14 90.14 0 0017.15 6.53c6 1.64 15.87 4.09 29.53 7.12 17.38 3.62 33.25 7.82 47.26 12.13 14.24 4.55 26.49 10 36.52 16.45a72.93 72.93 0 0124.16 25.09c5.72 10 8.64 22.63 8.64 37.1A75.09 75.09 0 01368 359z'/></svg>\"\nexport const logoSlack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Slack</title><path d='M126.12 315.1A47.06 47.06 0 1179.06 268h47.06zM149.84 315.1a47.06 47.06 0 0194.12 0v117.84a47.06 47.06 0 11-94.12 0zM196.9 126.12A47.06 47.06 0 11244 79.06v47.06zM196.9 149.84a47.06 47.06 0 010 94.12H79.06a47.06 47.06 0 010-94.12zM385.88 196.9a47.06 47.06 0 1147.06 47.1h-47.06zM362.16 196.9a47.06 47.06 0 01-94.12 0V79.06a47.06 47.06 0 1194.12 0zM315.1 385.88a47.06 47.06 0 11-47.1 47.06v-47.06zM315.1 362.16a47.06 47.06 0 010-94.12h117.84a47.06 47.06 0 110 94.12z'/></svg>\"\nexport const logoSnapchat = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Snapchat</title><path d='M496 347.21a190.31 190.31 0 01-32.79-5.31c-27.28-6.63-54.84-24.26-68.12-52.43-6.9-14.63-2.64-18.59 11.86-24 14.18-5.27 29.8-7.72 36.86-23 5.89-12.76 1.13-27.76-10.41-35.49-15.71-10.53-30.35-.21-46.62 2.07 3.73-46.66 8.66-88.57-22.67-127.73C338.14 48.86 297.34 32 256.29 32s-81.86 16.86-107.81 49.33c-31.38 39.26-26.4 81.18-22.67 127.92-16.32-2.25-30.81-12.79-46.63-2.18-14.72 9.85-17 29.76-5.44 43s31.64 9.5 43.45 20.6c6.49 6.09 3.49 12.61-.35 20.14-14.48 28.4-39.26 45.74-69.84 51.56-4 .76-22.31 2.87-31 3.65 0 9.28.52 16.78 1.63 21.73 2.94 13.06 12.32 23.58 23.69 30.1 11.18 6.4 35.48 6.43 41.68 15.51 3 4.48 1.76 12.28 5.33 17.38a23.8 23.8 0 0015.37 9.75c18.61 3.61 37.32-7.2 56.42-2.1 14.85 3.95 26.52 15.87 39.26 24 15.51 9.85 32.34 16.42 50.83 17.49 38.1 2.21 59.93-18.91 90.58-36.42 19.5-11.14 38.15-3.86 58.88-2.68 20.1 1.15 23.53-9.25 29.62-24.88a27.37 27.37 0 001.54-4.85 10.52 10.52 0 002.28-1.47c2-1.57 10.55-2.34 12.76-2.86 10.28-2.44 20.34-5.15 29.17-11.2 11.31-7.76 17.65-18.5 19.58-32.64a93.73 93.73 0 001.38-15.67zM208 128c8.84 0 16 10.74 16 24s-7.16 24-16 24-16-10.74-16-24 7.16-24 16-24zm103.62 77.7c-15.25 15-35 23.3-55.62 23.3a78.37 78.37 0 01-55.66-23.34 8 8 0 0111.32-11.32A62.46 62.46 0 00256 213c16.39 0 32.15-6.64 44.39-18.7a8 8 0 0111.23 11.4zM304 176c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z'/></svg>\"\nexport const logoSoundcloud = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Soundcloud</title><path d='M5.8 278a2.11 2.11 0 00-2 2L0 308.64l3.74 28.16a2.12 2.12 0 002.05 2 2.14 2.14 0 002-2l4.44-28.17L7.83 280a2.14 2.14 0 00-2-2zM26.85 262.32a2.13 2.13 0 00-4.26 0l-5 46.32 5 45.3a2.13 2.13 0 004.26 0l5.73-45.31-5.73-46.32zM106.17 219.59a4 4 0 00-3.87 3.87l-4 85.22 4 55.08a3.88 3.88 0 007.75 0l4.53-55.08-4.53-85.22a4 4 0 00-3.88-3.87zM65.12 249.21a3.09 3.09 0 00-3 3l-4.52 56.45 4.51 54.63a3 3 0 006 0l5.13-54.63-5.13-56.48a3.1 3.1 0 00-2.99-2.97zM147.88 367.6a4.83 4.83 0 004.75-4.74l3.93-54.15-3.93-113.46a4.75 4.75 0 00-9.5 0l-3.49 113.45 3.49 54.17a4.81 4.81 0 004.75 4.73zM233.28 367.85a6.6 6.6 0 006.5-6.52l2.74-52.6-2.74-131a6.5 6.5 0 10-13 0l-2.45 131c0 .08 2.45 52.67 2.45 52.67a6.59 6.59 0 006.5 6.45zM190.26 367.65a5.67 5.67 0 005.62-5.64l3.34-53.33-3.34-114.28a5.63 5.63 0 10-11.25 0l-3 114.29 3 53.32a5.66 5.66 0 005.63 5.6zM85.56 367.15a3.53 3.53 0 003.44-3.41l4.83-55.09-4.83-52.4a3.44 3.44 0 00-6.88 0l-4.26 52.38 4.26 55.08a3.5 3.5 0 003.44 3.44zM44.84 364.13a2.67 2.67 0 002.57-2.52l5.43-53-5.42-55a2.57 2.57 0 00-5.14 0l-4.78 55 4.78 53a2.62 2.62 0 002.56 2.53zM211.69 192.53a6.1 6.1 0 00-6.07 6.09l-2.71 110.11 2.71 53a6.07 6.07 0 0012.13 0l3-53-3-110.13a6.1 6.1 0 00-6.06-6.07zM127 367.71a4.41 4.41 0 004.31-4.3l4.23-54.71-4.28-104.7a4.32 4.32 0 00-8.63 0l-3.74 104.7 3.75 54.73a4.38 4.38 0 004.36 4.28zM174.17 362.54l3.63-53.8-3.63-117.28a5.19 5.19 0 10-10.37 0l-3.23 117.28 3.23 53.83a5.18 5.18 0 0010.36 0zM449 241.1a62.42 62.42 0 00-24.33 4.9c-5-57.18-52.61-102-110.66-102a111.92 111.92 0 00-40.28 7.58c-4.75 1.85-6 3.76-6.06 7.46V360.4a7.66 7.66 0 006.8 7.5l174.56.11c34.78 0 63-28.41 63-63.45s-28.2-63.46-63-63.46zM254.79 158.87a7 7 0 00-6.94 7L245 308.75l2.85 51.87a6.94 6.94 0 1013.87-.06v.06l3.09-51.87-3.09-142.93a7 7 0 00-6.93-6.95z'/></svg>\"\nexport const logoStackoverflow = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Stackoverflow</title><path d='M392 440V320h40v160H64V320h40v120z'/><path d='M149.1 308.77l198.57 40.87 8.4-39.32-198.57-40.87zm26.27-93.12L359.22 300 376 263.76l-183.82-84.84zm50.95-89l156 127.78 25.74-30.52-156-127.78zM328 32l-33.39 23.8 120.82 160.37L448 192zM144 400h204v-40H144z'/></svg>\"\nexport const logoSteam = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Steam</title><path d='M478.8 208.2a36 36 0 11-36-36 36 36 0 0136 36zM442.6 139a69.42 69.42 0 00-69.4 68.7l-43.2 62a48.86 48.86 0 00-5.4-.3 51.27 51.27 0 00-26.4 7.3L102.4 198a51.8 51.8 0 10-50.6 62.9 51.27 51.27 0 0026.4-7.3L274 332.2a51.76 51.76 0 00102.1-5.9l66.5-48.6a69.35 69.35 0 100-138.7zm0 22.9a46.45 46.45 0 11-46.5 46.5 46.54 46.54 0 0146.5-46.5zm-390.8 9a38.18 38.18 0 0133.7 20.2l-18.9-7.6v.1a30.21 30.21 0 00-22.6 56v.1l16.1 6.4a36.8 36.8 0 01-8.2.9 38.05 38.05 0 01-.1-76.1zm272.8 112.2a38.1 38.1 0 11-33.7 55.9c6.3 2.5 12.5 5 18.8 7.6a30.27 30.27 0 1022.5-56.2l-15.9-6.4a46.83 46.83 0 018.3-.9z'/></svg>\"\nexport const logoStencil = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Stencil</title><path d='M188.8 334.07h197.33L279.47 448H83.2zM512 199H106.61L0 313h405.39zM232.2 64h196.6L322.62 177.93H125.87z'/></svg>\"\nexport const logoTableau = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Tableau</title><path d='M242.69 340.3h26.62v-72.6h67v-25.82h-67v-72.6h-26.62v72.6h-66.15v25.82h66.15zM119.26 445.18h22.59v-64.54h59.7v-20.17h-59.7v-65.34h-22.59v65.34h-59.7v20.17h59.7zM370.15 212h22.59v-64.5h60.5v-19.37h-60.5V62.79h-22.59v65.34h-59.7v19.37h59.7zM246.72 496h19.36v-46h41.15v-16.92h-41.15v-46h-19.36v46h-40.33V450h40.33zM120.07 212h21v-65.31h60.51v-18.56H141V62.79h-21v65.34H59.56v18.56h60.51zM435.72 308.84h19.36v-45.18H496v-17.74h-40.92v-45.18h-19.36v45.18h-40.33v17.74h40.33z'/><path fill-rule='evenodd' d='M370.15 445.18h22.59v-64.54h60.5v-20.17h-60.5v-65.34h-22.59v65.34h-59.7v20.17h59.7z'/><path d='M307 74.08V60.37h-40.34V16h-14.52v44.37h-40.33v13.71h40.33v44.37h14.52V74.08zM56.11 305.61h14.52v-44.37H111v-13.71H70.63V204H56.11v43.56H16v14.52l40.11-.08z'/></svg>\"\nexport const logoTiktok = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Tiktok</title><path d='M412.19 118.66a109.27 109.27 0 01-9.45-5.5 132.87 132.87 0 01-24.27-20.62c-18.1-20.71-24.86-41.72-27.35-56.43h.1C349.14 23.9 350 16 350.13 16h-82.44v318.78c0 4.28 0 8.51-.18 12.69 0 .52-.05 1-.08 1.56 0 .23 0 .47-.05.71v.18a70 70 0 01-35.22 55.56 68.8 68.8 0 01-34.11 9c-38.41 0-69.54-31.32-69.54-70s31.13-70 69.54-70a68.9 68.9 0 0121.41 3.39l.1-83.94a153.14 153.14 0 00-118 34.52 161.79 161.79 0 00-35.3 43.53c-3.48 6-16.61 30.11-18.2 69.24-1 22.21 5.67 45.22 8.85 54.73v.2c2 5.6 9.75 24.71 22.38 40.82A167.53 167.53 0 00115 470.66v-.2l.2.2c39.91 27.12 84.16 25.34 84.16 25.34 7.66-.31 33.32 0 62.46-13.81 32.32-15.31 50.72-38.12 50.72-38.12a158.46 158.46 0 0027.64-45.93c7.46-19.61 9.95-43.13 9.95-52.53V176.49c1 .6 14.32 9.41 14.32 9.41s19.19 12.3 49.13 20.31c21.48 5.7 50.42 6.9 50.42 6.9v-81.84c-10.14 1.1-30.73-2.1-51.81-12.61z'/></svg>\"\nexport const logoTumblr = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Tumblr</title><path d='M390 32H120c-49.19 0-88 38.81-88 88v270c0 49.19 38.81 90 88 90h270c49.19 0 90-40.81 90-90V120c0-49.19-40.81-88-90-88zm-54 364h-52c-42.51 0-72-23.68-72-76v-80h-36v-48c42.51-11 57.95-48.32 60-80h44v72h52v56h-52l-.39 70.51c0 21.87 11 29.43 28.62 29.43L336 340z'/></svg>\"\nexport const logoTux = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Tux</title><path d='M443.66 405.05c-1.46-.79-2.85-1.54-4-2.2-6.47-3.83-13-10.52-11.85-17.83 2.42-15.94 2.89-23.47-.49-28.79a15.61 15.61 0 00-7.67-6.2v-.06c1.41-2.56 2.26-5.66 2.83-10.12 1.44-11-5-44-13.7-70.7-8.08-24.68-29.24-50-44.7-68.56l-3.61-4.34c-23.88-28.93-24.34-38.19-26.55-82.67-.32-6.47-.69-13.8-1.17-22C329.87 41.43 304 16 256 16c-25.2 0-44.62 7.15-57.72 21.26C187.79 48.55 182 64 182 80.78c0 29.52 2 53 2.15 54.29 1.4 35.7 1 41.22-8.31 57.55-2.23 3.93-8.38 10.87-14.89 18.21-8.48 9.57-18.09 20.41-23.36 29.22-3.77 6.31-5.88 12.63-8.11 19.33-3.4 10.21-7.26 21.78-18.15 36.57-12.57 17.07-15.52 29.61-11 47.45-4.94 6.45-4.83 14.37-4.75 20.23a25.84 25.84 0 01-.3 6.09c-2.29 7.59-12.42 9.4-22 10.18-1.58.12-3.1.21-4.55.29-7.26.39-13.53.74-17.13 6.3-3.47 5.36-1.12 13.8 2.14 25.48.72 2.58 1.46 5.25 2.19 8.06 1.83 7-.16 10.48-2.68 14.84-2.44 4.21-5.21 9-5.21 17.55 0 14.67 20 18 43.05 21.94 7.36 1.24 15 2.53 22.63 4.24a225.58 225.58 0 0134.08 10.68c9.72 3.73 17.4 6.68 26.43 6.68 16.18 0 28.25-9.77 39.92-19.21l2.15-1.75c5.53-4.49 21.5-4 34.34-3.64 3.46.1 6.73.2 9.65.2h6.22c13.48-.08 31.94-.18 42.23 2.5 3.75 1 6.2 3.72 9.29 7.19 5.87 6.56 13.17 14.75 33.39 14.75 19.39 0 29.55-8.71 41.32-18.8 7.16-6.13 14.56-12.48 25.07-17.86 3.92-2 7.62-3.87 11.08-5.61 22.64-11.38 35.11-17.65 35.11-27.82 0-9.91-12.24-16.5-20.34-20.86zM211.11 88.38a13.91 13.91 0 0112.47 9c1.95 5.55 1.81 10.42.21 12.94 0 0-.22-1-.36-1.44a14.85 14.85 0 00-6.44-8.59 11.35 11.35 0 00-8.94-1.47c-4.26 1.13-8.41 5-8.91 18.79-5.16-10.47-2.31-18 .92-23 2.31-3.73 7.47-6.33 11.05-6.23zm-17.5 375C192 479.24 175.2 479 170.09 478.59c-9.81-.82-21.66-4.69-33.13-8.43-4.52-1.47-9.19-3-13.73-4.34-13.2-3.89-30.12-6.74-43.72-9-3.22-.55-6.27-1.06-9.05-1.55s-4.61-1.27-5.2-2.3c-1-1.65.38-5.25 1.93-9.41C69.27 438 72.11 430.34 72 421c0-3.91-1.47-8.3-2.84-12.56-1.62-5-3.28-10.17-1.93-12.62 1.23-2.23 6.75-2.49 11.6-2.49h2.26c3.55 0 6.62.06 8.75-.53 6.51-1.81 14.86-6.92 17.81-13.88.9-2.17 1.37-6.94 2-14 .37-4.12.74-8.37 1.22-10.58a3.55 3.55 0 012.11-2.55c1.65-.77 6.78-1.91 18.63 4.08 11.18 5.65 22.88 25.84 34.2 45.37 3.56 6.14 6.92 11.94 10.3 17.36 14.04 22.54 18.83 31.6 17.5 44.8zm128.84-31.56a68.74 68.74 0 01-4.55 10.9.58.58 0 01-1.08-.42 56.61 56.61 0 002.11-18.43c-.25-4.73-.4-7.59-2.66-8.51s-4.26.83-9.45 5.54c-1.1 1-2.36 2.14-3.78 3.4-10.8 9.47-26.88 20.68-55.61 23.37-16.84 1.59-27.59-4.63-30.92-8.14a2.16 2.16 0 00-3.07-.08 2.23 2.23 0 00-.51 2.29c2.12 6.84 1.2 12.26-.49 16.19-.95 2.2-1.85 2.05-2-.34-.25-4.64-1-9.88-3-14.19-3.11-6.94-7-14.34-8.89-17.88v-.05c3.24-1.49 8.86-4.83 11.37-10.88s4.48-18-9.82-31.74c-6.28-6.05-22.1-17.16-36.06-27-10.9-7.65-22.17-15.56-23.65-17.51-4.49-5.89-6.37-9.3-6.94-19.65.07-2.3.13-4.59.19-6.89l.27-2.49a.58.58 0 011.15 0 63.07 63.07 0 002 9.72c1.08 3.73 2.4 7.58 3.62 9.18 3.19 4.22 7.56 7.39 11.67 8.49a5.48 5.48 0 005-.72c2.93-2.33 2.65-7.6 2.19-16.34-.47-9-1.11-21.34 1.85-34.55 5.62-25 10.91-32.51 17.61-42 .86-1.22 1.75-2.47 2.65-3.79 1.44-2.08 3-4.1 4.67-6.23 7.47-9.61 15.93-20.49 13.92-40.95-.51-5.19-.76-8.83-.86-11.39a1 1 0 011.88-.59l.49.77 1.21 2c4.86 8 13.64 22.57 25.1 22.57a13.62 13.62 0 002.36-.21c23.39-3.93 51.9-30.25 52.17-30.51 3.12-3 2.84-6.14 1.64-7.91a5.18 5.18 0 00-6.45-1.72c-3.29 1.4-7.14 3.15-11.22 5-13.82 6.27-37 16.75-42.25 14.34a23.11 23.11 0 01-6.32-5.13 1 1 0 011.14-1.65c5.59 2.29 9.55 1.45 14.2-.08l1-.34c9.37-3.09 14.2-4.77 30.76-12.08a97.55 97.55 0 0116.26-5.93c4-1 6.42-1.63 7.71-4.34a6.65 6.65 0 00-.5-7.13c-1.53-1.87-4.07-2.57-7-1.9-3.22.75-4.7 3-6.41 4.49-2.4 2.05-5 4.16-17.19 8.65-27 10-34.58 10.61-45.21 3.43-9.84-6.69-15.15-13.23-15.15-16 0-2.13 5.45-5.7 8.71-7.84 1.33-.87 2.59-1.69 3.62-2.46 4.34-3.22 13-11.39 13.38-11.73 5.4-5.41 17.91-2.18 25 2.58a2.23 2.23 0 001.72.41 2.14 2.14 0 001.68-2.58c-4.2-17.46-.13-27.34 4-32.55a22.58 22.58 0 0117.48-8.48c12.81 0 21.76 10 21.76 24.42 0 11-2.82 16.79-5.48 20.3a1.73 1.73 0 01-2.58.18 1.78 1.78 0 01-.24-2.2A24.61 24.61 0 00290 114a16.58 16.58 0 00-16.84-16.67c-3.94 0-13.48 1.5-16.77 15.44a29.81 29.81 0 00-.34 11.07l.08.71c.9 7.38 15.3 12.51 27.23 15.51 11.36 2.85 13 6.22 8.84 19.63s3.11 26.23 5.7 29.57a78.3 78.3 0 018.31 12.47 93.8 93.8 0 016.62 16.48c2.17 6.79 4.05 12.65 10.63 21.22 11.07 14.4 17.66 48.64 15 78-.21 2.41-.53 4.29-.77 5.67-.43 2.53-.72 4.2.66 5.38s3.16.7 7.26-.63l3.43-1.09a109.33 109.33 0 0112.58-2.8 2.15 2.15 0 001.59-1.16c3.43-6.91 3.85-15.22 4-22.47q0-1.31.06-2.79c.19-7.77.45-18.93-2.95-32a1 1 0 011.93-.64 93 93 0 016.66 25.55c2.55 22.58-1.9 32.09-1.94 32.17a1.61 1.61 0 00.95 2.25 17.12 17.12 0 016.95 4.67c1.46 1.66.93 2.4-1.14 1.62a36.26 36.26 0 00-12.77-2.29c-10.4 0-18.09 4.95-21.51 9.19-3.19 3.94-3.7 7.67-3.83 11.27l-.06.05c-7.48-.75-12.94 1.21-17.47 6.21l-.08.09c-6.26 7.75-4 24.63-1.29 38.48 1.28 6.45 5.59 25.52 1.73 37.68zm96.1 10.07c-15.71 6.71-25.43 14.51-34 21.39-5.65 4.53-11 8.81-17.28 12.14-10.12 5.34-24.91 6.53-33.27-7.7-2.37-4-.71-9.86 1.58-17.95 3.05-10.75 7.23-25.46 3.71-44.65-.94-5.12-1.77-9.51-2.49-13.31C334 377 332.9 371.43 334 367c.63-2.45 3.43-3 5.87-3a20.83 20.83 0 012.63.19 29.51 29.51 0 007 12.1c5.7 5.86 13.63 8.83 23.56 8.85 2.1.17 25.94 1.55 36.54-22.4 1.46.18 3.65.7 4.3 2.3 1.28 3.19-.27 8.91-1.52 13.5-.9 3.31-1.68 6.16-1.63 8.37.31 16 11 22.78 25.83 32.16 1.79 1.13 3.66 2.31 5.55 3.54S445 425 445 426c-.52 4.79-20 13.16-26.45 15.91z'/></svg>\"\nexport const logoTwitch = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Twitch</title><path d='M80 32l-32 80v304h96v64h64l64-64h80l112-112V32zm336 256l-64 64h-96l-64 64v-64h-80V80h304z'/><path d='M320 143h48v129h-48zM208 143h48v129h-48z'/></svg>\"\nexport const logoTwitter = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Twitter</title><path d='M496 109.5a201.8 201.8 0 01-56.55 15.3 97.51 97.51 0 0043.33-53.6 197.74 197.74 0 01-62.56 23.5A99.14 99.14 0 00348.31 64c-54.42 0-98.46 43.4-98.46 96.9a93.21 93.21 0 002.54 22.1 280.7 280.7 0 01-203-101.3A95.69 95.69 0 0036 130.4c0 33.6 17.53 63.3 44 80.7A97.5 97.5 0 0135.22 199v1.2c0 47 34 86.1 79 95a100.76 100.76 0 01-25.94 3.4 94.38 94.38 0 01-18.51-1.8c12.51 38.5 48.92 66.5 92.05 67.3A199.59 199.59 0 0139.5 405.6a203 203 0 01-23.5-1.4A278.68 278.68 0 00166.74 448c181.36 0 280.44-147.7 280.44-275.8 0-4.2-.11-8.4-.31-12.5A198.48 198.48 0 00496 109.5z'/></svg>\"\nexport const logoUsd = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Usd</title><path d='M240 480v-36.42C160.53 439 112.25 398.06 112 336h72c1.77 26.34 23.86 46.45 56 50v-98l-26.77-7c-61-14.18-93.64-49.39-93.64-102.08C119.59 116.81 164.08 76.08 240 70V32h32v38c77.39 6.3 119 47.74 120 106h-72c-.76-24.06-15.83-43.39-48-46v92l30.82 7.28C367.61 243.46 400 277 400 332c0 64.34-43.74 105.88-128 111.32V480zm0-264v-86c-27.59 1.52-47.27 18.47-47.27 42.53 0 22.3 16.39 36.88 47.27 43.47zm32 78v92c38.15-1.54 56.38-18.92 56.38-45.77 0-24.58-18.23-41.13-56.38-46.23z'/></svg>\"\nexport const logoVenmo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Venmo</title><path d='M444.17 32H70.28C49.85 32 32 46.7 32 66.89V441.6c0 20.31 17.85 38.4 38.28 38.4h373.78c20.54 0 35.94-18.2 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zM278 387H174.32l-41.57-248.56 90.75-8.62 22 176.87c20.53-33.45 45.88-86 45.88-121.87 0-19.62-3.36-33-8.61-44l82.63-16.72c9.56 15.78 13.86 32 13.86 52.57-.01 65.5-55.92 150.59-101.26 210.33z'/></svg>\"\nexport const logoVercel = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Vercel</title><path fill-rule='evenodd' d='M256 48l240 416H16z'/></svg>\"\nexport const logoVimeo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Vimeo</title><path d='M476.9 114c-5-23.39-17.51-38.78-40.61-46.27s-64.92-4.5-94.12 16.79c-26.79 19.51-46.26 54.42-54 78.28a4 4 0 005.13 5c10.77-3.8 21.72-7.1 34-6.45 15 .8 24.51 12 24.91 25.29.3 9.79-.2 18.69-3.6 27.68-10.74 28.68-27.61 56.46-47.55 80.75a72.49 72.49 0 01-10 9.89c-10.21 8.29-18.81 6.1-25.41-5.2-5.4-9.29-9-18.88-12.2-29.08-12.4-39.67-16.81-80.84-23.81-121.52-3.3-19.48-7-39.77-18-56.86-11.6-17.79-28.61-24.58-50-22-14.7 1.8-36.91 17.49-47.81 26.39 0 0-56 46.87-81.82 71.35l21.2 27s17.91-12.49 27.51-18.29c5.7-3.39 12.4-4.09 17.2.2 4.51 3.9 9.61 9 12.31 14.1 5.7 10.69 11.2 21.88 14.7 33.37 13.2 44.27 25.51 88.64 37.81 133.22 6.3 22.78 13.9 44.17 28 63.55 19.31 26.59 39.61 32.68 70.92 21.49 25.41-9.09 46.61-26.18 66-43.87 33.11-30.18 59.12-65.36 85.52-101.14 20.41-27.67 37.31-55.67 51.41-86.95C478.5 179.74 484 147.26 476.9 114z'/></svg>\"\nexport const logoVk = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Vk</title><path d='M484.7 132c3.56-11.28 0-19.48-15.75-19.48h-52.37c-13.21 0-19.31 7.18-22.87 14.86 0 0-26.94 65.6-64.56 108.13-12.2 12.3-17.79 16.4-24.4 16.4-3.56 0-8.14-4.1-8.14-15.37V131.47c0-13.32-4.06-19.47-15.25-19.47H199c-8.14 0-13.22 6.15-13.22 12.3 0 12.81 18.81 15.89 20.84 51.76V254c0 16.91-3 20-9.66 20-17.79 0-61-66.11-86.92-141.44C105 117.64 99.88 112 86.66 112H33.79C18.54 112 16 119.17 16 126.86c0 13.84 17.79 83.53 82.86 175.77 43.21 63 104.72 96.86 160.13 96.86 33.56 0 37.62-7.69 37.62-20.5v-47.66c0-15.37 3.05-17.93 13.73-17.93 7.62 0 21.35 4.09 52.36 34.33C398.28 383.6 404.38 400 424.21 400h52.36c15.25 0 22.37-7.69 18.3-22.55-4.57-14.86-21.86-36.38-44.23-62-12.2-14.34-30.5-30.23-36.09-37.92-7.62-10.25-5.59-14.35 0-23.57-.51 0 63.55-91.22 70.15-122' fill-rule='evenodd'/></svg>\"\nexport const logoVue = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Vue</title><path d='M256 144.03l-55.49-96.11h-79.43L256 281.61 390.92 47.92h-79.43L256 144.03z'/><path d='M409.4 47.92L256 313.61 102.6 47.92H15.74L256 464.08 496.26 47.92H409.4z'/></svg>\"\nexport const logoWebComponent = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Web Component</title><path d='M179.9 388l-76.16-132 76.16 132zM179.9 388h152.21l76.15-132-76.15-132H179.9l-76.16 132 76.16 132zM103.74 256l76.16-132-76.16 132z' class='ionicon-fill-none'/><path d='M496 256L376 48H239.74l-43.84 76h136.21l76.15 132-76.15 132H195.9l43.84 76H376l120-208z'/><path d='M179.9 388l-76.16-132 76.16-132 43.84-76H136L16 256l120 208h87.74l-43.84-76z'/></svg>\"\nexport const logoWechat = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Wechat</title><path data-name='XMLID 501 -1' d='M408.67 298.53a21 21 0 1120.9-21 20.85 20.85 0 01-20.9 21m-102.17 0a21 21 0 1120.9-21 20.84 20.84 0 01-20.9 21m152.09 118.86C491.1 394.08 512 359.13 512 319.51c0-71.08-68.5-129.35-154.41-129.35s-154.42 58.27-154.42 129.35 68.5 129.34 154.42 129.34c17.41 0 34.83-2.33 49.92-7 2.49-.86 3.48-1.17 4.64-1.17a16.67 16.67 0 018.13 2.34L454 462.83a11.62 11.62 0 003.48 1.17 5 5 0 004.65-4.66 14.27 14.27 0 00-.77-3.86c-.41-1.46-5-16-7.36-25.27a18.94 18.94 0 01-.33-3.47 11.4 11.4 0 015-9.35'/><path data-name='XMLID 505 -7' d='M246.13 178.51a24.47 24.47 0 010-48.94c12.77 0 24.38 11.65 24.38 24.47 1.16 12.82-10.45 24.47-24.38 24.47m-123.06 0A24.47 24.47 0 11147.45 154a24.57 24.57 0 01-24.38 24.47M184.6 48C82.43 48 0 116.75 0 203c0 46.61 24.38 88.56 63.85 116.53C67.34 321.84 68 327 68 329a11.38 11.38 0 01-.66 4.49C63.85 345.14 59.4 364 59.21 365s-1.16 3.5-1.16 4.66a5.49 5.49 0 005.8 5.83 7.15 7.15 0 003.49-1.17L108 351c3.49-2.33 5.81-2.33 9.29-2.33a16.33 16.33 0 015.81 1.16c18.57 5.83 39.47 8.16 60.37 8.16h10.45a133.24 133.24 0 01-5.81-38.45c0-78.08 75.47-141 168.35-141h10.45C354.1 105.1 277.48 48 184.6 48'/></svg>\"\nexport const logoWhatsapp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Whatsapp</title><path d='M414.73 97.1A222.14 222.14 0 00256.94 32C134 32 33.92 131.58 33.87 254a220.61 220.61 0 0029.78 111L32 480l118.25-30.87a223.63 223.63 0 00106.6 27h.09c122.93 0 223-99.59 223.06-222A220.18 220.18 0 00414.73 97.1zM256.94 438.66h-.08a185.75 185.75 0 01-94.36-25.72l-6.77-4-70.17 18.32 18.73-68.09-4.41-7A183.46 183.46 0 0171.53 254c0-101.73 83.21-184.5 185.48-184.5a185 185 0 01185.33 184.64c-.04 101.74-83.21 184.52-185.4 184.52zm101.69-138.19c-5.57-2.78-33-16.2-38.08-18.05s-8.83-2.78-12.54 2.78-14.4 18-17.65 21.75-6.5 4.16-12.07 1.38-23.54-8.63-44.83-27.53c-16.57-14.71-27.75-32.87-31-38.42s-.35-8.56 2.44-11.32c2.51-2.49 5.57-6.48 8.36-9.72s3.72-5.56 5.57-9.26.93-6.94-.46-9.71-12.54-30.08-17.18-41.19c-4.53-10.82-9.12-9.35-12.54-9.52-3.25-.16-7-.2-10.69-.2a20.53 20.53 0 00-14.86 6.94c-5.11 5.56-19.51 19-19.51 46.28s20 53.68 22.76 57.38 39.3 59.73 95.21 83.76a323.11 323.11 0 0031.78 11.68c13.35 4.22 25.5 3.63 35.1 2.2 10.71-1.59 33-13.42 37.63-26.38s4.64-24.06 3.25-26.37-5.11-3.71-10.69-6.48z' fill-rule='evenodd'/></svg>\"\nexport const logoWindows = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Windows</title><path d='M480 265H232v179l248 36V265zM216 265H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z'/></svg>\"\nexport const logoWordpress = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Wordpress</title><path d='M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3a192.51 192.51 0 0049.5 6.5 157 157 0 0024.9-1.8 184.3 184.3 0 0032.5-7.1c2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z'/><path d='M430.2 175.4a188 188 0 00-15.1-26.6c-1.6-2.4-3.4-4.8-5.1-7.2A193 193 0 00325.1 77a189.2 189.2 0 00-69.2-13 191.51 191.51 0 00-149.4 71.7A196 196 0 0089 161.3c14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7a172.07 172.07 0 001.9-26 191.11 191.11 0 00-17.8-80.8z'/><path d='M256 48a208.06 208.06 0 0181 399.66A208.06 208.06 0 01175 64.34 206.7 206.7 0 01256 48m0-16C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32z'/></svg>\"\nexport const logoXbox = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Xbox</title><path d='M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8A224.13 224.13 0 0077.2 391c0-4.4.6-70.3 49.6-142.7zM480 256a223.71 223.71 0 00-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7A222.8 222.8 0 00480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5a224.06 224.06 0 00-253.8 0c7.2-1.8 35.2-7.1 72.1 9.5zM358.7 292.9C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8a224 224 0 00333.6 0l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z'/></svg>\"\nexport const logoXing = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Xing</title><path d='M313.8 303.9L469 32H365L209.4 303.8a1.35 1.35 0 000 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7a1.74 1.74 0 01.1-1.4zM221.9 216.2L163 113a2 2 0 00-2-1H65l58.9 104.4a1.13 1.13 0 01.1.8L43 352h96.8a1.54 1.54 0 001.6-.9l80.5-133.7a2.44 2.44 0 000-1.2z'/></svg>\"\nexport const logoYahoo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Yahoo</title><path d='M410.32 37.13c-13.56 0-27-.93-39.12-5.13L256 218.67 140.8 32c-12.12 4.2-24.84 5.13-38.4 5.13-13.32 0-26.52-1.05-38.4-5.13l153.6 248.15V480c12-4.08 25-5.13 38.4-5.13s26.4 1.05 38.4 5.13V280.5L448 32c-11.88 4-24.36 5.13-37.68 5.13z'/></svg>\"\nexport const logoYen = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Yen</title><path d='M448 32h-80L256 253.13 144 32H64l112.37 208H128v48h73.56L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.89-31H384v-48h-48.29z'/></svg>\"\nexport const logoYoutube = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Logo Youtube</title><path d='M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9zM207 353.89v-196.5l145 98.2z'/></svg>\"\nexport const magnet = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Magnet</title><path stroke-linecap='round' stroke-miterlimit='10' d='M191.98 463.79v-48M90.16 421.61l33.94-33.94M47.98 319.79h48' class='ionicon-stroke-width'/><path d='M267.56 312.32l-31.11 31.11a16 16 0 000 22.63l45.26 45.25a16 16 0 0022.62 0l31.12-31.11a4 4 0 000-5.66l-62.23-62.22a4 4 0 00-5.66 0zM131.8 176.55l-31.11 31.12a16 16 0 000 22.62l45.25 45.26a16 16 0 0022.63 0l31.11-31.11a4 4 0 000-5.66l-62.22-62.23a4 4 0 00-5.66 0zM428.85 83.28a144 144 0 00-203.71-.06l-65.06 65.05a4 4 0 000 5.66l62.23 62.22a4 4 0 005.66 0l65-65.05a48 48 0 0168.46.59c18.3 18.92 17.47 49.24-1.14 67.85L295.85 284a4 4 0 000 5.66l62.22 62.23a4 4 0 005.66 0l64.08-64.08c56.37-56.34 57.37-148.13 1.04-204.53z'/></svg>\"\nexport const magnetOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Magnet</title><path d='M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M192 464v-48M90.18 421.82l33.94-33.94M48 320h48' class='ionicon-stroke-width'/><path d='M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const magnetSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Magnet</title><path stroke-linecap='square' stroke-miterlimit='10' d='M191.98 463.58v-48M90.16 421.4l33.94-33.94M47.98 319.58h48' class='ionicon-stroke-width'/><path d='M422.2 89.82a144 144 0 00-203.71-.07l-67.88 67.88 67.88 67.89 67.88-67.89a48 48 0 0168.46.59c18.3 18.92 17.48 49.24-1.14 67.86l-67.32 67.32 67.88 67.88 66.91-66.91c56.37-56.37 57.37-148.15 1.04-204.55zM82.718 225.517l45.255-45.254 67.883 67.882L150.6 293.4zM218.49 361.27l45.254-45.254 67.882 67.882-45.255 45.255z'/></svg>\"\nexport const mail = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail</title><path d='M424 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zm-14.18 92.63l-144 112a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l134.18-104.36a16 16 0 0119.64 25.26z'/></svg>\"\nexport const mailOpen = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Open</title><path d='M448.67 154.45L274.1 68.2a41.1 41.1 0 00-36.2 0L63.33 154.45A55.6 55.6 0 0032 204.53v184.61c0 30.88 25.42 56 56.67 56h334.66c31.25 0 56.67-25.12 56.67-56V204.53a55.6 55.6 0 00-31.33-50.08zM252.38 96.82a8.22 8.22 0 017.24 0L429 180.48l-172 85a8.22 8.22 0 01-7.24 0L80.35 181.81z'/></svg>\"\nexport const mailOpenOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Open</title><path d='M441.6 171.61L266.87 85.37a24.57 24.57 0 00-21.74 0L70.4 171.61A40 40 0 0048 207.39V392c0 22.09 18.14 40 40.52 40h335c22.38 0 40.52-17.91 40.52-40V207.39a40 40 0 00-22.44-35.78z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M397.33 368L268.07 267.46a24 24 0 00-29.47 0L109.33 368M309.33 295l136-103M61.33 192l139 105' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const mailOpenSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Open</title><path d='M471.05 168.36L263.24 65.69a16.37 16.37 0 00-14.48 0L41 168.36a16 16 0 00-9 14.31V432a16.09 16.09 0 0016.19 16h415.62A16.09 16.09 0 00480 432V182.67a16 16 0 00-8.95-14.31zM256 97.89l173 85.44-175.7 86.78-173-85.44z'/></svg>\"\nexport const mailOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail</title><rect x='48' y='96' width='416' height='320' rx='40' ry='40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M112 160l144 112 144-112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const mailSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail</title><path d='M464 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V96a16 16 0 00-16-16zM265.82 284.63a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l146.81-114.18 19.64 25.26z'/></svg>\"\nexport const mailUnread = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Unread</title><path d='M496 128.05A64 64 0 00389.62 80a64.52 64.52 0 00-12.71 15.3v.06c-.54.9-1.05 1.82-1.55 2.74l-.24.49c-.42.79-.81 1.59-1.19 2.4-.12.25-.23.5-.34.75-.33.73-.65 1.47-.95 2.22-.13.31-.25.62-.37.93-.27.7-.53 1.4-.78 2.11l-.36 1.06c-.22.68-.43 1.37-.63 2.06-.12.39-.23.77-.33 1.16-.19.67-.35 1.35-.51 2-.1.41-.2.82-.29 1.23-.14.68-.27 1.37-.39 2-.08.42-.16.84-.23 1.26-.11.7-.2 1.41-.29 2.12-.05.41-.11.82-.16 1.24-.08.77-.13 1.54-.19 2.32 0 .36-.06.72-.08 1.08-.06 1.14-.1 2.28-.1 3.44 0 1 0 2 .08 2.94v.64q.08 1.41.21 2.82l.06.48c.09.85.19 1.69.32 2.52 0 .17 0 .35.07.52.14.91.31 1.81.49 2.71 0 .22.09.43.13.65.18.86.38 1.72.6 2.57v.19c.23.89.48 1.76.75 2.63l.21.68c.27.85.55 1.68.85 2.51.06.18.13.36.2.54.27.71.55 1.42.84 2.12.08.21.16.41.25.61.34.79.69 1.58 1.06 2.36l.33.67c.35.7.7 1.4 1.07 2.09a64.34 64.34 0 0022.14 23.81 62.22 62.22 0 007.62 4.15l.39.18q2.66 1.2 5.43 2.16l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5 1.73.4 1.15.23 1.83.33.94.15c.9.13 1.81.25 2.72.35l.77.07c.73.06 1.47.12 2.21.16l.86.05c1 0 1.94.08 2.92.08 1.16 0 2.3 0 3.44-.1l1.08-.08c.78-.06 1.55-.11 2.32-.19l1.25-.16c.7-.09 1.41-.18 2.11-.29l1.26-.23c.68-.12 1.37-.25 2-.39l1.23-.29c.68-.16 1.36-.32 2-.51.39-.1.77-.21 1.16-.33.69-.2 1.38-.41 2.06-.63l1.06-.36c.71-.25 1.41-.51 2.11-.78l.93-.37c.75-.3 1.49-.62 2.22-.95l.75-.34c.81-.38 1.61-.77 2.4-1.19l.49-.24c.92-.5 1.84-1 2.74-1.55h.06A64.52 64.52 0 00480 170.38a63.81 63.81 0 0016-42.33z'/><path d='M371.38 202.53l-105.56 82.1a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l94.22-73.28A95.86 95.86 0 01348.81 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V211.19a95.85 95.85 0 01-108.62-8.66z'/></svg>\"\nexport const mailUnreadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Unread</title><path d='M320 96H88a40 40 0 00-40 40v240a40 40 0 0040 40h334.73a40 40 0 0040-40V239' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M112 160l144 112 87-65.67' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='431.95' cy='128.05' r='47.95'/><path d='M432 192a63.95 63.95 0 1163.95-63.95A64 64 0 01432 192zm0-95.9a32 32 0 1031.95 32 32 32 0 00-31.95-32z'/></svg>\"\nexport const mailUnreadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mail Unread</title><path d='M374.09 101c-.11.23-.21.46-.31.7-.34.75-.67 1.5-1 2.26l-.36.9c-.27.71-.54 1.42-.79 2.14-.12.35-.24.7-.35 1-.23.68-.44 1.37-.64 2.07l-.33 1.15q-.27 1-.51 2c-.1.41-.2.82-.28 1.23-.15.67-.28 1.36-.4 2-.08.42-.16.84-.23 1.27-.11.69-.2 1.4-.29 2.1-.05.42-.11.83-.16 1.25-.08.77-.13 1.54-.19 2.31 0 .36-.06.72-.08 1.09-.06 1.13-.09 2.27-.09 3.41 0 1 0 2 .07 2.94v.62c.05.95.12 1.89.21 2.83l.06.46c.09.87.2 1.72.32 2.57 0 .15 0 .31.07.46.14.92.31 1.84.49 2.75l.12.59c.2.92.4 1.84.64 2.75.23.92.5 1.82.77 2.71.06.19.12.38.17.57.28.88.57 1.74.88 2.59.05.15.11.29.16.43.29.78.6 1.55.92 2.32.05.14.11.28.17.42.35.83.73 1.65 1.11 2.47l.27.53c.4.82.81 1.64 1.24 2.44a64.21 64.21 0 0029.56 27.63l.37.17c1.78.8 3.59 1.53 5.45 2.17l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5c.57.14 1.14.27 1.72.39l1.15.24 1.83.32.93.16c.9.13 1.81.24 2.72.34l.77.07c.73.07 1.47.13 2.22.17l.85.05c1 0 1.94.07 2.93.07 1.15 0 2.29 0 3.43-.09l1.09-.09c.77 0 1.54-.11 2.3-.19.42 0 .83-.1 1.25-.16.7-.08 1.41-.17 2.1-.28l1.27-.23c.68-.12 1.36-.25 2-.39l1.24-.29c.67-.16 1.35-.32 2-.51.39-.1.78-.21 1.16-.33.69-.2 1.37-.41 2.05-.63l1.07-.36c.7-.24 1.4-.5 2.1-.77l.94-.37c.74-.3 1.47-.62 2.19-.95l.77-.34c.8-.37 1.58-.77 2.36-1.17.17-.09.35-.17.52-.27.91-.48 1.8-1 2.68-1.5l.12-.07a63.95 63.95 0 10-89.21-84.88l-.21.39c-.3 1.03-.72 1.86-1.11 2.69z'/><path d='M371.51 202.43l-105.69 82.2a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l94.36-73.39A95.81 95.81 0 01349 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V211.13a95.75 95.75 0 01-108.49-8.7z'/></svg>\"\nexport const male = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male</title><path d='M442 48h-90a22 22 0 000 44h36.89l-60.39 60.39c-68.19-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.35 14.57-229.54L420 123.11V160a22 22 0 0044 0V70a22 22 0 00-22-22zM313.92 381.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z'/></svg>\"\nexport const maleFemale = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male Female</title><path d='M426 16h-74a22 22 0 000 44h20.89l-37.1 37.09A157.68 157.68 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-28a22 22 0 000 44h28v36a22 22 0 0044 0v-36h28a22 22 0 000-44h-28v-37.54c76.74-10.74 136-76.8 136-156.46a157.15 157.15 0 00-14-64.92l44-44V112a22 22 0 0044 0V38a22 22 0 00-22-22zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z'/></svg>\"\nexport const maleFemaleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male Female</title><circle cx='216' cy='200' r='136' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M216 352v128M272 416H160M432 112V32h-80M335.28 128.72L432 32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const maleFemaleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male Female</title><path d='M330 16v44h42.89l-37.1 37.09A157.67 157.67 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-50v44h50v58h44v-58h50v-44h-50v-37.54c76.74-10.74 136-76.8 136-156.46a157.23 157.23 0 00-14-64.93l44-44V134h44V16zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z'/></svg>\"\nexport const maleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male</title><circle cx='216' cy='296' r='152' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M448 160V64h-96M324 188L448 64' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const maleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Male</title><path d='M330 48v44h58.89l-60.39 60.39c-68.2-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.34 14.57-229.54L420 123.11V182h44V48zm-16.08 333.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z'/></svg>\"\nexport const man = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Man</title><circle cx='256' cy='56' r='56'/><path d='M304 128h-96a64.19 64.19 0 00-64 64v107.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00184 300v-99.73a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8V489a23 23 0 0023 23 23 23 0 0023-23V346.34a10.24 10.24 0 019.33-10.34A10 10 0 01266 346v143a23 23 0 0023 23 23 23 0 0023-23V200.27a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8v99.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00368 300V192a64.19 64.19 0 00-64-64z'/></svg>\"\nexport const manOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Man</title><path d='M208 208v264a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 336v136a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V208' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M208 192v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88a48 48 0 0148-48h96a48 48 0 0148 48v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='56' r='40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const manSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Man</title><circle cx='256' cy='56' r='56'/><path d='M336 128H176a32 32 0 00-32 32v160h48V192h8v320h52V328h8v184h52V192h8v128h48V160a32 32 0 00-32-32z'/></svg>\"\nexport const map = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Map</title><path d='M48.17 113.34A32 32 0 0032 141.24V438a32 32 0 0047 28.37c.43-.23.85-.47 1.26-.74l84.14-55.05a8 8 0 003.63-6.72V46.45a8 8 0 00-12.51-6.63zM212.36 39.31A8 8 0 00200 46v357.56a8 8 0 003.63 6.72l96 62.42A8 8 0 00312 466V108.67a8 8 0 00-3.64-6.73zM464.53 46.47a31.64 31.64 0 00-31.5-.88 12.07 12.07 0 00-1.25.74l-84.15 55a8 8 0 00-3.63 6.72v357.46a8 8 0 0012.52 6.63l107.07-73.46a32 32 0 0016.41-28v-296a32.76 32.76 0 00-15.47-28.21z'/></svg>\"\nexport const mapOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Map</title><path d='M313.27 124.64L198.73 51.36a32 32 0 00-29.28.35L56.51 127.49A16 16 0 0048 141.63v295.8a16 16 0 0023.49 14.14l97.82-63.79a32 32 0 0129.5-.24l111.86 73a32 32 0 0029.27-.11l115.43-75.94a16 16 0 008.63-14.2V74.57a16 16 0 00-23.49-14.14l-98 63.86a32 32 0 01-29.24.35zM328 128v336M184 48v336' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const mapSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Map</title><path d='M327.71 130.93L184 39 32 144v336l152.29-98.93L328 473l152-105V32zM312 421l-112-72V91l112 72z'/></svg>\"\nexport const medal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medal</title><circle cx='256' cy='352' r='32'/><path d='M99.78 32a48 48 0 00-42.94 26.53l-31 62A48.26 48.26 0 0024.28 160h278.2a4 4 0 003.39-1.87l75.5-120A4 4 0 00378 32z'/><path d='M486.17 120.56l-31-62a47.7 47.7 0 00-32.79-25.46L342.5 160 298 231.08a128 128 0 00-84 0l-23.32-37.2a4 4 0 00-3.39-1.88H51.14a4 4 0 00-3.36 6.16l82.7 128.73a128 128 0 10251 0L483.62 168a48.22 48.22 0 002.55-47.44zm-226 295.31a64 64 0 1159.69-59.69 64.08 64.08 0 01-59.68 59.69z'/></svg>\"\nexport const medalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medal</title><circle cx='256' cy='352' r='112' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='352' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M147 323L41.84 159.32a32 32 0 01-1.7-31.61l31-62A32 32 0 0199.78 48h312.44a32 32 0 0128.62 17.69l31 62a32 32 0 01-1.7 31.61L365 323M371 144H37M428.74 52.6L305 250M140.55 144L207 250' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const medalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medal</title><path d='M80 32L16 160h289.11l80.22-128H80z'/><path d='M496 144L424 32 298 231.08a128 128 0 00-84 0L189.53 192H43.82l86.66 134.89a128 128 0 10251 0zM256 422a70 70 0 1170-70 70.08 70.08 0 01-70 70z'/><circle cx='256' cy='352' r='32'/></svg>\"\nexport const medical = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medical</title><path d='M272 464h-32a32 32 0 01-32-32l.05-85.82a4 4 0 00-6-3.47l-74.34 43.06a31.48 31.48 0 01-43-11.52l-16.5-28.64-.06-.1a31.65 31.65 0 0111.56-42.8l74.61-43.25a4 4 0 000-6.92l-74.54-43.21a31.41 31.41 0 01-11.55-43l16.44-28.55a31.48 31.48 0 0119.27-14.74 31.14 31.14 0 0123.8 3.2l74.31 43a4 4 0 006-3.47L208 80a32 32 0 0132-32h32a32 32 0 0132 32v85.72a4 4 0 006 3.47l74.34-43.06a31.51 31.51 0 0143 11.52l16.49 28.64.06.09a31.52 31.52 0 01-11.64 42.86l-74.53 43.2a4 4 0 000 6.92l74.53 43.2a31.42 31.42 0 0111.56 43l-16.44 28.55a31.48 31.48 0 01-19.27 14.74 31.14 31.14 0 01-23.8-3.2l-74.31-43a4 4 0 00-6 3.46L304 432a32 32 0 01-32 32zm-93.56-197.48zm0-21zm155.1-.08zm0 0z'/></svg>\"\nexport const medicalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medical</title><path d='M429.93 174.27l-16.47-28.59a15.49 15.49 0 00-21.15-5.7l-98.39 57a4 4 0 01-6-3.5L288 80a16 16 0 00-16-16h-32a16 16 0 00-16 16l.07 113.57a4 4 0 01-6 3.5l-98.39-57a15.49 15.49 0 00-21.15 5.7l-16.46 28.6a15.42 15.42 0 005.69 21.1l98.49 57.08a4 4 0 010 6.9l-98.49 57.08a15.54 15.54 0 00-5.69 21.1l16.47 28.59a15.49 15.49 0 0021.15 5.7l98.39-57a4 4 0 016 3.5L224 432a16 16 0 0016 16h32a16 16 0 0016-16l-.07-113.67a4 4 0 016-3.5l98.39 57a15.49 15.49 0 0021.15-5.7l16.47-28.59a15.42 15.42 0 00-5.69-21.1l-98.49-57.08a4 4 0 010-6.9l98.49-57.08a15.51 15.51 0 005.68-21.11z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const medicalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medical</title><path d='M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2L351.9 256z'/></svg>\"\nexport const medkit = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medkit</title><path d='M336 64H176a16 16 0 00-16 16v16h192V80a16 16 0 00-16-16z' class='ionicon-fill-none'/><path d='M432 96h-48V80a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v256a64 64 0 0064 64h352a64 64 0 0064-64V160a64.07 64.07 0 00-64-64zm-96 208h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32zm16-208H160V80a16 16 0 0116-16h160a16 16 0 0116 16z'/></svg>\"\nexport const medkitOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medkit</title><rect x='32' y='112' width='448' height='352' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M144 112V80a32 32 0 0132-32h160a32 32 0 0132 32v32M256 208v160M336 288H176' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const medkitSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Medkit</title><path d='M168 72h176v24H168z' class='ionicon-fill-none'/><path d='M484 96H384V40a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v360a12 12 0 0012 12h456a12 12 0 0012-12V108a12 12 0 00-12-12zM168 72h176v24H168zm184 238h-74v74h-44v-74h-74v-44h74v-74h44v74h74z'/></svg>\"\nexport const megaphone = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Megaphone</title><path d='M48 176v.66a17.38 17.38 0 01-4.2 11.23v.05C38.4 194.32 32 205.74 32 224c0 16.55 5.3 28.23 11.68 35.91A19 19 0 0148 272a32 32 0 0032 32h8a8 8 0 008-8V152a8 8 0 00-8-8h-8a32 32 0 00-32 32zM452.18 186.55l-.93-.17a4 4 0 01-3.25-3.93V62c0-12.64-8.39-24-20.89-28.32-11.92-4.11-24.34-.76-31.68 8.53a431.18 431.18 0 01-51.31 51.69c-23.63 20-46.24 34.25-67 42.31a8 8 0 00-5.15 7.47V299a16 16 0 009.69 14.69c19.34 8.29 40.24 21.83 62 40.28a433.74 433.74 0 0151.68 52.16 26.22 26.22 0 0021.1 9.87 33.07 33.07 0 0010.44-1.74C439.71 410 448 399.05 448 386.4V265.53a4 4 0 013.33-3.94l.85-.14C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM240 320V152a8 8 0 00-8-8h-96a8 8 0 00-8 8v304a24 24 0 0024 24h52.45a32.66 32.66 0 0025.93-12.45 31.65 31.65 0 005.21-29.05c-1.62-5.18-3.63-11-5.77-17.19-7.91-22.9-18.34-37.07-21.12-69.32A32 32 0 00240 320z'/></svg>\"\nexport const megaphoneOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Megaphone</title><path d='M407.94 52.22S321.3 160 240 160H80a16 16 0 00-16 16v96a16 16 0 0016 16h160c81.3 0 167.94 108.23 167.94 108.23 6.06 8 24.06 2.52 24.06-9.83V62c0-12.31-17-18.82-24.06-9.78zM64 256s-16-6-16-32 16-32 16-32M448 246s16-4.33 16-22-16-22-16-22M256 160v128M112 160v128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M144 288v168a8 8 0 008 8h53a16 16 0 0015.29-20.73C211.91 416.39 192 386.08 192 336h16a16 16 0 0016-16v-16a16 16 0 00-16-16h-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const megaphoneSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Megaphone</title><path d='M128 144v332a4 4 0 004 4h100.07a8 8 0 007.82-9.7L208.71 352H232a8 8 0 008-8V144zM452.18 186.55L448 185.5V36a4 4 0 00-4-4h-42.5a4 4 0 00-2.63 1L272 144v160l126.87 111a4 4 0 002.63 1H444a4 4 0 004-4V262.5l4.18-1.05C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM96 144H52a4 4 0 00-4 4v35.59a43 43 0 00-4.24 4.35C38.4 194.32 32 205.74 32 224c0 20.19 7.89 33.13 16 40.42V300a4 4 0 004 4h44z'/></svg>\"\nexport const menu = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path stroke-linecap='round' stroke-miterlimit='10' stroke-width='48' d='M88 152h336M88 256h336M88 360h336' class='ionicon-fill-none'/></svg>\"\nexport const menuOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path stroke-linecap='round' stroke-miterlimit='10' d='M80 160h352M80 256h352M80 352h352' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const menuSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path d='M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z'/></svg>\"\nexport const mic = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic</title><path stroke-linecap='round' stroke-linejoin='round' d='M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z'/></svg>\"\nexport const micCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h16a16 16 0 010 32h-64a16 16 0 010-32h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224.3a16 16 0 0132 0v23.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V224.3a16 16 0 1132 0z'/></svg>\"\nexport const micCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M224 368h64M336 224.3v23.92c0 39.42-40.58 71.48-80 71.48h0c-39.42 0-80-32.06-80-71.48V224.3M256 320v48' class='ionicon-fill-none ionicon-stroke-width'/><rect x='208' y='128' width='96' height='160' rx='48' ry='48'/></svg>\"\nexport const micCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h32v32h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208.3h32v39.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V208.3h32z'/></svg>\"\nexport const micOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off</title><path stroke-linecap='round' stroke-miterlimit='10' d='M432 400L96 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.68 111.68 0 01-2.68 24.38 2 2 0 00.53 1.84l22.59 22.59a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35l-18.4-18.39a3 3 0 00-3.41-.58A111 111 0 01256 352zM257.14 48a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48z'/><path d='M179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35z'/></svg>\"\nexport const micOffCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 80a48.14 48.14 0 0148 48v64a47.84 47.84 0 01-.63 7.71 2 2 0 01-3.46 1l-84.42-92.86a4 4 0 01-.47-4.77A48.08 48.08 0 01256 128zm32 256h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01224 352h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224a15.91 15.91 0 0116.39-16A16.26 16.26 0 01192 224.4v23.82c0 25.66 28 55.48 64 55.48 1.67 0 3.37-.09 5.06-.24a3.94 3.94 0 013.29 1.29l21.07 23.19a2 2 0 01-.89 3.26 100.33 100.33 0 01-12.53 3.06V352h15.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01288 384zm-77.89-138.91l36.46 40.11a1 1 0 01-.95 1.66 48.26 48.26 0 01-37.25-41 1 1 0 011.74-.77zm152.65 119.75a16 16 0 01-22.6-1.08l-192-210a16 16 0 0123.68-21.52l192 210a16 16 0 01-1.08 22.6zM352 248.22a77.12 77.12 0 01-11.93 40.87 2 2 0 01-3.19.3l-19.19-21.1a4 4 0 01-.76-4.16 43.35 43.35 0 003.07-15.91v-23.8a16.3 16.3 0 0113.64-16.24c9.88-1.48 18.36 6.51 18.36 16.12z'/></svg>\"\nexport const micOffCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off Circle</title><path d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z'/><path d='M352 369a15.93 15.93 0 01-11.84-5.24l-192-210a16 16 0 0123.68-21.52l192 210A16 16 0 01352 369zM352 248.22v-23.8a16.3 16.3 0 00-13.64-16.24c-9.88-1.48-18.36 6.51-18.36 16.12v23.92a43.35 43.35 0 01-3.07 15.91 4 4 0 00.76 4.16l19.19 21.1a2 2 0 003.19-.3A77.12 77.12 0 00352 248.22zM304 240v-64a48.14 48.14 0 00-48-48 48.08 48.08 0 00-41 23.1 4 4 0 00.47 4.77l84.42 92.86a2 2 0 003.46-1A47.84 47.84 0 00304 240zM246.57 285.2l-36.46-40.11a1 1 0 00-1.74.8 48.26 48.26 0 0037.25 41 1 1 0 00.95-1.69z'/><path d='M287.55 352H272v-17.74a100.33 100.33 0 0012.53-3.06 2 2 0 00.89-3.26l-21.07-23.19a3.94 3.94 0 00-3.29-1.29c-1.69.15-3.39.24-5.06.24-36 0-64-29.82-64-55.48V224.4a16.26 16.26 0 00-15.61-16.4A15.91 15.91 0 00160 224v24.22c0 23.36 10.94 45.61 30.79 62.66A103.71 103.71 0 00240 334.26V352h-15.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 384h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z'/></svg>\"\nexport const micOffCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm64 200.22V208h32v40.22a77.53 77.53 0 01-13.37 43.11L316 266.4a44.11 44.11 0 004-18.18zM256 128a48.14 48.14 0 0148 48v64a48.07 48.07 0 01-1.44 11.64l-89-97.92A48.13 48.13 0 01256 128zm48 256h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208h32v40.22c0 25.66 28 55.48 64 55.48a56.91 56.91 0 007-.45l24.52 27a99.57 99.57 0 01-15.5 4V352h32zm-95.91-141.13l40.5 44.55a48.2 48.2 0 01-40.5-44.55zm136.07 124.89l-200.5-218.5 23.68-21.52 200.5 218.5z'/></svg>\"\nexport const micOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off</title><path stroke-linecap='round' stroke-miterlimit='10' d='M432 400L96 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.58 111.58 0 01-2.45 23.31 4.05 4.05 0 001.07 3.69l21.82 21.81a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35L307 342.63a4 4 0 00-4.51-.78A110.78 110.78 0 01256 352zM256 80a47.18 47.18 0 0148 48v74.72a4 4 0 001.17 2.82L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5l19.54 19.54a2 2 0 003.25-.63A47.44 47.44 0 01256 80z'/><path d='M207.27 242.9L179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35l-24.91-24.91a4.08 4.08 0 00-2.42-1.15c-21.65-2.52-39.48-20.44-42.37-42.43a4 4 0 00-1.14-2.35z'/></svg>\"\nexport const micOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic Off</title><path stroke-linecap='square' stroke-miterlimit='10' d='M432 400L96 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M368 192v48a111.74 111.74 0 01-2.93 25.45L390.65 291a143.07 143.07 0 009.35-51v-48zM272 432v-48.89a143.11 143.11 0 0056.65-18.83L305 340.65A112.13 112.13 0 01144 240v-48h-32v48c0 74 56.1 135.12 128 143.11V432h-64v32h160v-32zM336 236.37V128c0-44.86-35.14-80-80-80a79.68 79.68 0 00-69 39.34'/><path d='M176 211.63V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0081 20.21z'/></svg>\"\nexport const micOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic</title><path stroke-linecap='round' stroke-linejoin='round' d='M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 64a63.68 63.68 0 00-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const micSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Mic</title><path stroke-linecap='square' stroke-miterlimit='10' d='M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z'/></svg>\"\nexport const moon = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Moon</title><path d='M264 480A232 232 0 0132 248c0-94 54-178.28 137.61-214.67a16 16 0 0121.06 21.06C181.07 76.43 176 104.66 176 136c0 110.28 89.72 200 200 200 31.34 0 59.57-5.07 81.61-14.67a16 16 0 0121.06 21.06C442.28 426 358 480 264 480z'/></svg>\"\nexport const moonOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Moon</title><path d='M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const moonSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Moon</title><path d='M152.62 126.77c0-33 4.85-66.35 17.23-94.77C87.54 67.83 32 151.89 32 247.38 32 375.85 136.15 480 264.62 480c95.49 0 179.55-55.54 215.38-137.85-28.42 12.38-61.8 17.23-94.77 17.23-128.47 0-232.61-104.14-232.61-232.61z'/></svg>\"\nexport const move = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Move</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const moveOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Move</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const moveSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Move</title><path stroke-miterlimit='10' d='M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const musicalNote = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Note</title><path d='M183.83 480a55.2 55.2 0 01-32.36-10.55A56.64 56.64 0 01128 423.58a50.26 50.26 0 0134.14-47.73L213 358.73a16.25 16.25 0 0011-15.49V92a32.1 32.1 0 0124.09-31.15l108.39-28.14A22 22 0 01384 54v57.75a32.09 32.09 0 01-24.2 31.19l-91.65 23.13A16.24 16.24 0 00256 181.91V424a48.22 48.22 0 01-32.78 45.81l-21.47 7.23a56 56 0 01-17.92 2.96z'/></svg>\"\nexport const musicalNoteOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Note</title><path d='M240 343.31V424a32.28 32.28 0 01-21.88 30.65l-21.47 7.23c-25.9 8.71-52.65-10.75-52.65-38.32h0A34.29 34.29 0 01167.25 391l50.87-17.12A32.29 32.29 0 00240 343.24V92a16.13 16.13 0 0112.06-15.66L360.49 48.2A6 6 0 01368 54v57.76a16.13 16.13 0 01-12.12 15.67l-91.64 23.13A32.25 32.25 0 00240 181.91v39.39' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const musicalNoteSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Note</title><path d='M381.55 32.05c-18.13 4.28-126.57 31.07-156 38.19a2 2 0 00-1.55 1.94V353.3a2 2 0 01-1.32 1.88L182 369.88c-29.82 10.66-54 18.94-54 59.06 0 32.47 23.53 47.18 37.95 50a81.77 81.77 0 0015 1.08c8.89 0 31-3.59 47.52-14.24C256 448 256 448 256 415.93V169.16a2 2 0 011.49-1.94l125-33a2 2 0 001.49-1.94V34a2 2 0 00-2.43-1.95z'/></svg>\"\nexport const musicalNotes = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Notes</title><path d='M421.84 37.37a25.86 25.86 0 00-22.6-4.46L199.92 86.49A32.3 32.3 0 00176 118v226c0 6.74-4.36 12.56-11.11 14.83l-.12.05-52 18C92.88 383.53 80 402 80 423.91a55.54 55.54 0 0023.23 45.63A54.78 54.78 0 00135.34 480a55.82 55.82 0 0017.75-2.93l.38-.13 21.84-7.94A47.84 47.84 0 00208 423.91v-212c0-7.29 4.77-13.21 12.16-15.07l.21-.06L395 150.14a4 4 0 015 3.86v141.93c0 6.75-4.25 12.38-11.11 14.68l-.25.09-50.89 18.11A49.09 49.09 0 00304 375.92a55.67 55.67 0 0023.23 45.8 54.63 54.63 0 0049.88 7.35l.36-.12 21.84-7.95A47.83 47.83 0 00432 375.92V58a25.74 25.74 0 00-10.16-20.63z'/></svg>\"\nexport const musicalNotesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Notes</title><path d='M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const musicalNotesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Musical Notes</title><path d='M429.46 32.07c-23.6 6.53-205.55 58.81-250.54 71.43a4 4 0 00-2.92 3.83v247a2 2 0 01-1.33 1.89l-27.85 9.55c-19 7.44-66.82 16.68-66.82 59.19 0 35.54 24.63 51.54 45.86 54.28a52.06 52.06 0 007.81.8c7.37 0 36.38-7.08 53.3-18.08C208 448.25 208 448 208 412V202c0-.9.62-.84 1.48-1.07l188-51.92a2 2 0 012.53 2v155.54a2 2 0 01-1.36 1.89c-8.9 3-19.23 6.5-26.48 9.12C341.39 328.68 304 335.65 304 376c0 38.51 28.26 54.58 46.3 55.83a87.37 87.37 0 0021.33-1c9-1.38 24.09-5.9 38.14-14.86C432 401.79 432 401.51 432 360V34a2 2 0 00-2.54-1.93z'/></svg>\"\nexport const navigate = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate</title><path d='M272 464a16 16 0 01-16-16.42V264.13a8 8 0 00-8-8H64.41a16.31 16.31 0 01-15.49-10.65 16 16 0 018.41-19.87l384-176.15a16 16 0 0121.22 21.19l-176 384A16 16 0 01272 464z'/></svg>\"\nexport const navigateCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate Circle</title><path d='M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM351 175.24l-82.24 186.52c-4.79 10.47-20.78 7-20.78-4.56V268a4 4 0 00-4-4H154.8c-11.52 0-15-15.87-4.57-20.67L336.76 161A10.73 10.73 0 01351 175.24z'/></svg>\"\nexport const navigateCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate Circle</title><path d='M336.76 161l-186.53 82.35c-10.47 4.8-6.95 20.67 4.57 20.67H244a4 4 0 014 4v89.18c0 11.52 16 15 20.78 4.56L351 175.24A10.73 10.73 0 00336.76 161z'/><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const navigateCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate Circle</title><path d='M256 48A208.23 208.23 0 0048 256c0 114.68 93.31 208 208 208a208.23 208.23 0 00208-208c0-114.69-93.31-208-208-208zm-8 361V264H103l259-114.11z'/></svg>\"\nexport const navigateOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate</title><path d='M448 64L64 240.14h200a8 8 0 018 8V448z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const navigateSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Navigate</title><path d='M480 32L32 240h240v240L480 32z'/></svg>\"\nexport const newspaper = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Newspaper</title><path d='M439.91 112h-23.82a.09.09 0 00-.09.09V416a32 32 0 0032 32 32 32 0 0032-32V152.09A40.09 40.09 0 00439.91 112z'/><path d='M384 416V72a40 40 0 00-40-40H72a40 40 0 00-40 40v352a56 56 0 0056 56h342.85a1.14 1.14 0 001.15-1.15 1.14 1.14 0 00-.85-1.1A64.11 64.11 0 01384 416zM96 128a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16h-64a16 16 0 01-16-16zm208 272H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 368h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 400zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 304h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 336zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 240h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 272zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 176h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 208zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 112h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 144z'/></svg>\"\nexport const newspaperOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Newspaper</title><path d='M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192' class='ionicon-fill-none ionicon-stroke-width'/><path d='M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z'/></svg>\"\nexport const newspaperSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Newspaper</title><rect x='96' y='112' width='96' height='96' rx='16' ry='16' class='ionicon-fill-none'/><path d='M468 112h-52v304a32 32 0 0032 32 32 32 0 0032-32V124a12 12 0 00-12-12z'/><path d='M431.15 477.75A64.11 64.11 0 01384 416V44a12 12 0 00-12-12H44a12 12 0 00-12 12v380a56 56 0 0056 56h342.85a1.14 1.14 0 00.3-2.25zM96 208v-96h96v96zm224 192H96v-32h224zm0-64H96v-32h224zm0-64H96v-32h224zm0-64h-96v-32h96zm0-64h-96v-32h96z'/></svg>\"\nexport const notifications = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications</title><path d='M440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65c-56.38 23.21-83.78 67.74-83.78 136.14 0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H410.5c14.94 0 28-8.06 34.19-21a35.17 35.17 0 00-4.61-37.66zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z'/></svg>\"\nexport const notificationsCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-20.9 0-37.52-8.86-39.75-27.58a4 4 0 014-4.42h71.45a4 4 0 014 4.48C293.15 374.85 276.68 384 256 384zm98-48H158c-11.84 0-18-15-11.19-23 16.33-19.34 27.87-27.47 27.87-80.8 0-48.87 25.74-66.21 47-74.67a11.35 11.35 0 006.33-6.68C231.7 138.6 242.14 128 256 128s24.28 10.6 28 22.86a11.39 11.39 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.53 61.46 27.86 80.8 6.74 7.99.57 22.99-11.2 22.99z'/></svg>\"\nexport const notificationsCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-21.24 8.46-47 25.8-47 74.67 0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23H354C365.77 336 371.94 321 365.2 313zM220.24 352a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384c20.67 0 37.14-9.15 39.66-27.52a4 4 0 00-4-4.48z'/></svg>\"\nexport const notificationsCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Circle</title><path d='M295.68 351.43v.57h.32z'/><path d='M256 384c22.28 0 39.36-10.63 39.66-32H216c0 21.75 17.53 32 40 32zM295.67 352h.33l-.32-.57c0 .19-.01.38-.01.57z' class='ionicon-fill-none'/><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-22.48 0-40-10.25-40-32h80c-.3 21.37-17.71 32-40 32zm112-48H144v-28l28-36v-32.3c0-40.41 15.82-75.35 56-84.27l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z'/></svg>\"\nexport const notificationsOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off</title><path d='M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65 157.88 157.88 0 00-21.88 11 8 8 0 00-1.49 12.49l261.78 261.74a8 8 0 0013.6-6.63 35.39 35.39 0 00-7.84-18.5zM112.14 217.35c0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H312.8a8 8 0 005.66-13.66l-192-192a8 8 0 00-13.62 5q-.7 8.69-.7 18.04zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z'/></svg>\"\nexport const notificationsOffCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM146.83 313c16.33-19.34 27.86-27.47 27.86-80.8q0-3.75.2-7.26a4 4 0 017-2.52l98 106.87a4 4 0 01-2.94 6.7H158C146.18 336 140.06 321 146.83 313zm148.93 43.41C293.53 375.14 276.92 384 256 384s-37.51-8.86-39.75-27.58a4 4 0 014-4.42h71.53a4 4 0 013.98 4.42zm67 17.42a16 16 0 01-22.6-1.08l-192-212a16 16 0 0123.68-21.52l192 212a16 16 0 01-1.08 22.61zM361 323.21L216.49 165.53a4 4 0 011.3-6.36c1.31-.58 2.61-1.12 3.89-1.63a11.33 11.33 0 006.32-6.68c3.72-12.26 14.15-22.86 28-22.86s24.29 10.6 28 22.86a11.34 11.34 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.54 61.46 27.87 80.8a12.09 12.09 0 012.76 7.25 4 4 0 01-6.97 2.95z'/></svg>\"\nexport const notificationsOffCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M220.24 352a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384s37.5-8.86 39.73-27.58a4 4 0 00-4-4.42zM352 378a15.93 15.93 0 01-11.84-5.24l-192-212a16 16 0 0123.68-21.52l192 212A16 16 0 01352 378zM174.68 232.21c0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23h118.83a4 4 0 002.95-6.7l-98-106.87a4 4 0 00-6.94 2.52c-.1 2.33-.16 4.75-.16 7.25zM365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-1.28.51-2.57 1.05-3.88 1.63a4 4 0 00-1.3 6.36L361 323.21a4 4 0 006.94-2.95 12 12 0 00-2.74-7.26z'/></svg>\"\nexport const notificationsOffCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM144 308l28-36v-32.3a131.83 131.83 0 012.34-25.42L285.92 336H144zm112.18 76C233.6 384 216 373.75 216 352h80c-.3 21.37-17.45 32-39.82 32zm93.48-3.74l-211-227 23.68-21.52 211 227zM368 330.85l-.32-.38-155.5-169.63a73.4 73.4 0 0115.82-5.41l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z'/></svg>\"\nexport const notificationsOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off</title><path d='M128.51 204.59q-.37 6.15-.37 12.76C128.14 304 110 320 84.33 351.43 73.69 364.45 83 384 101.62 384H320M414.5 335.3c-18.48-23.45-30.62-47.05-30.62-118 0-79.3-40.52-107.57-73.88-121.3-4.43-1.82-8.6-6-9.95-10.55C294.21 65.54 277.82 48 256 48s-38.2 17.55-44 37.47c-1.35 4.6-5.52 8.71-10 10.53a149.57 149.57 0 00-18 8.79M320 384v16a64 64 0 01-128 0v-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M448 448L64 64' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const notificationsOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications Off</title><path d='M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zM256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zM112 227.47V288l-48 64v48h268.12L115.87 183.75a236.75 236.75 0 00-3.87 43.72zM448 352l-48-64v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48a117.45 117.45 0 00-41.95 18.17l282 282z'/></svg>\"\nexport const notificationsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications</title><path d='M427.68 351.43C402 320 383.87 304 383.87 217.35 383.87 138 343.35 109.73 310 96c-4.43-1.82-8.6-6-9.95-10.55C294.2 65.54 277.8 48 256 48s-38.21 17.55-44 37.47c-1.35 4.6-5.52 8.71-9.95 10.53-33.39 13.75-73.87 41.92-73.87 121.35C128.13 304 110 320 84.32 351.43 73.68 364.45 83 384 101.61 384h308.88c18.51 0 27.77-19.61 17.19-32.57zM320 384v16a64 64 0 01-128 0v-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const notificationsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Notifications</title><path d='M256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zM400 288v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48c-68.88 15.61-96 76.76-96 147.47V288l-48 64v48h384v-48z'/></svg>\"\nexport const nuclear = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nuclear</title><path d='M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM429 239.92l-93.08-.1a2 2 0 01-1.95-1.57 80.08 80.08 0 00-27.44-44.17 2 2 0 01-.54-2.43l41.32-83.43a2 2 0 012.87-.81A176.2 176.2 0 01431 237.71a2 2 0 01-2 2.21zm-220.8 20.46a48 48 0 1143.42 43.42 48 48 0 01-43.42-43.42zm-43.55-152.16L206 191.65a2 2 0 01-.54 2.43A80.08 80.08 0 00178 238.25a2 2 0 01-2 1.57l-93.08.1a2 2 0 01-2-2.21 176.2 176.2 0 0180.82-130.3 2 2 0 012.91.81zm-.37 295.34l56.31-74.09a2 2 0 012.43-.6 79.84 79.84 0 0066 0 2 2 0 012.43.6l56.31 74.09a2 2 0 01-.54 2.92 175.65 175.65 0 01-182.36 0 2 2 0 01-.58-2.92z'/></svg>\"\nexport const nuclearOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nuclear</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='64' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M224 192L171 85M288 192l53-107M327.55 255.81l119.41.13M299.09 313.13l72.25 95.06M184.45 255.81l-119.41.13M212.91 313.13l-72.25 95.06' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const nuclearSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nuclear</title><circle cx='256' cy='256' r='48'/><path d='M223.47 335.59l-51.71 68a169.73 169.73 0 00168.48 0l-51.71-68' class='ionicon-fill-none'/><path d='M403.08 108.92a208 208 0 00-294.16 294.16 208 208 0 00294.16-294.16zM342 256a86.13 86.13 0 01-53.47 79.59l51.71 68a169.73 169.73 0 01-168.48 0l51.71-68a86 86 0 01-50.56-101.77l-85.48.09a170.21 170.21 0 0173.83-119l37.94 76.59a85.78 85.78 0 01113.6 0l37.94-76.59a170.21 170.21 0 0173.83 119l-85.48-.09A85.87 85.87 0 01342 256z'/></svg>\"\nexport const nutrition = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nutrition</title><path d='M439 166.29c-18.67-32.57-47.46-50.81-85.57-54.23-20.18-1.8-39 3.37-57.23 8.38-14.15 3.89-27.52 7.56-40.2 7.56s-26-3.68-40.06-7.57c-18.28-5-37.18-10.26-57.43-8.36-36.39 3.41-65.51 22.11-84.31 54.08C56.82 195.76 48 236.76 48 288c0 40.4 15 90.49 40 134 12.82 22.25 47 74 87.16 74 30.77 0 47.15-9.44 59.11-16.33 8.3-4.78 13.31-7.67 21.69-7.67s13.39 2.89 21.69 7.67c12 6.89 28.35 16.33 59.15 16.33 40.17 0 74.34-51.76 87.16-74 25.07-43.5 40-93.59 40-134 .04-52.57-8.14-92.38-24.96-121.71zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z'/><path d='M265.1 111.93c13.16-1.75 37.86-7.83 58.83-28.79a98 98 0 0028-58.2 8 8 0 00-8.55-8.94c-12.71.95-36.76 5.87-58.73 27.85A97.6 97.6 0 00256 103.2a8 8 0 009.1 8.73z'/></svg>\"\nexport const nutritionOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nutrition</title><path d='M352 128c-32.26-2.89-64 16-96 16s-63.75-19-96-16c-64 6-96 64-96 160 0 80 64 192 111.2 192s51.94-24 80.8-24 33.59 24 80.8 24S448 368 448 288c0-96-29-154-96-160z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M323.92 83.14c-21 21-45.66 27-58.82 28.79a8 8 0 01-9.1-8.73 97.6 97.6 0 0128.61-59.33c22-22 46-26.9 58.72-27.85a8 8 0 018.67 8.92 98 98 0 01-28.08 58.2z'/><ellipse cx='216' cy='304' rx='24' ry='48'/><ellipse cx='296' cy='304' rx='24' ry='48'/></svg>\"\nexport const nutritionSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Nutrition</title><path d='M438.71 159.43c-17.6-28.31-45.5-43.8-85.28-47.37-22.82-2-50.23 4.94-72.25 10.55C271.26 125.14 260 128 256 128s-15.18-2.86-25-5.39c-22.08-5.65-49.56-12.69-72.45-10.54-38.53 3.61-66 19.19-84 47.62S48 229 48 288c0 61.28 29.53 114.58 47.13 140.89C116.82 461.34 149.25 496 175.2 496c18.57 0 34.12-7.23 47.82-13.64C243 473 256 472 256 472s11 0 31.94 10.11C301.65 488.73 317.3 496 336.8 496c26.58 0 59.08-34.69 80.63-67.15C434.82 402.65 464 349.52 464 288c0-60-8-100.83-25.29-128.57zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z'/><path d='M323.72 82.76C353.68 52.82 352 16.18 352 16.14s-35.77-3.76-67.23 27.67S256.06 112 256.06 112s37.68.71 67.66-29.24z'/></svg>\"\nexport const open = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Open</title><path d='M224 304a16 16 0 01-11.31-27.31l157.94-157.94A55.7 55.7 0 00344 112H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V168a55.7 55.7 0 00-6.75-26.63L235.31 299.31A15.92 15.92 0 01224 304z'/><path d='M448 48H336a16 16 0 000 32h73.37l-38.74 38.75a56.35 56.35 0 0122.62 22.62L432 102.63V176a16 16 0 0032 0V64a16 16 0 00-16-16z'/></svg>\"\nexport const openOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Open</title><path d='M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48M336 64h112v112M224 288L440 72' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const openSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Open</title><path d='M201.37 288l176-176H48v352h352V134.63l-176 176L201.37 288z'/><path d='M320 48v32h89.37l-32 32L400 134.63l32-32V192h32V48H320z'/></svg>\"\nexport const options = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Options</title><path d='M64 144h226.75a48 48 0 0090.5 0H448a16 16 0 000-32h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32zM448 368h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32h226.75a48 48 0 0090.5 0H448a16 16 0 000-32zM448 240H221.25a48 48 0 00-90.5 0H64a16 16 0 000 32h66.75a48 48 0 0090.5 0H448a16 16 0 000-32z'/></svg>\"\nexport const optionsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Options</title><path stroke-linecap='round' stroke-linejoin='round' d='M368 128h80M64 128h240M368 384h80M64 384h240M208 256h240M64 256h80' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='336' cy='128' r='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='176' cy='256' r='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='336' cy='384' r='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const optionsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Options</title><path d='M381.25 112a48 48 0 00-90.5 0H48v32h242.75a48 48 0 0090.5 0H464v-32zM176 208a48.09 48.09 0 00-45.25 32H48v32h82.75a48 48 0 0090.5 0H464v-32H221.25A48.09 48.09 0 00176 208zM336 336a48.09 48.09 0 00-45.25 32H48v32h242.75a48 48 0 0090.5 0H464v-32h-82.75A48.09 48.09 0 00336 336z'/></svg>\"\nexport const paperPlane = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paper Plane</title><path d='M473 39.05a24 24 0 00-25.5-5.46L47.47 185h-.08a24 24 0 001 45.16l.41.13 137.3 58.63a16 16 0 0015.54-3.59L422 80a7.07 7.07 0 0110 10L226.66 310.26a16 16 0 00-3.59 15.54l58.65 137.38c.06.2.12.38.19.57 3.2 9.27 11.3 15.81 21.09 16.25h1a24.63 24.63 0 0023-15.46L478.39 64.62A24 24 0 00473 39.05z'/></svg>\"\nexport const paperPlaneOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paper Plane</title><path d='M53.12 199.94l400-151.39a8 8 0 0110.33 10.33l-151.39 400a8 8 0 01-15-.34l-67.4-166.09a16 16 0 00-10.11-10.11L53.46 215a8 8 0 01-.34-15.06zM460 52L227 285' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const paperPlaneSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paper Plane</title><path d='M496 16L15.88 208 195 289 448 64 223 317l81 179L496 16z'/></svg>\"\nexport const partlySunny = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Partly Sunny</title><path d='M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.24 142.24 0 0142.19 53.21 16 16 0 0011.19 9c26 5.61 48.4 17.29 65.17 34C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM387.89 221.68a168.8 168.8 0 0134.76 14.71 4 4 0 005.82-2.44 97 97 0 003.53-26.68c-.39-52.43-43.48-95.22-95.91-95.27A95.46 95.46 0 00281 129.33h-.06a3.38 3.38 0 001 6 162.45 162.45 0 0151.28 26.4 173.92 173.92 0 0145.32 52.51 16 16 0 009.35 7.44zM496 224h-32a16 16 0 010-32h32a16 16 0 010 32zM336 96a16 16 0 01-16-16V48a16 16 0 0132 0v32a16 16 0 01-16 16zM245.49 133.49a15.92 15.92 0 01-11.31-4.69l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 01-11.31 27.31zM426.51 133.49a16 16 0 01-11.31-27.31l22.62-22.63a16 16 0 0122.63 22.63l-22.63 22.62a15.92 15.92 0 01-11.31 4.69z'/></svg>\"\nexport const partlySunnyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Partly Sunny</title><path d='M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M384.8 271.4a80 80 0 10-123.55-92M464 208h32M336 48v32M222.86 94.86l22.63 22.63M449.14 94.86l-22.63 22.63' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const partlySunnySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Partly Sunny</title><path d='M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM381.5 219.89a169.23 169.23 0 0145.44 19A96 96 0 00281 129.33q-2.85 2-5.54 4.2a162.47 162.47 0 0157.73 28.23 174.53 174.53 0 0148.31 58.13zM448 192h64v32h-64zM320 32h32v64h-32zM255.35 129.63l12.45-12.45-44.62-44.63-22.63 22.63 33.17 33.17h.6a172 172 0 0121.03 1.28zM404.203 117.17l44.626-44.625 22.627 22.628-44.625 44.625z'/></svg>\"\nexport const pause = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause</title><path d='M208 432h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16zM352 432h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16z'/></svg>\"\nexport const pauseCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 272a16 16 0 01-32 0V192a16 16 0 0132 0zm96 0a16 16 0 01-32 0V192a16 16 0 0132 0z'/></svg>\"\nexport const pauseCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M208 192v128M304 192v128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pauseCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 288h-32V176h32zm96 0h-32V176h32z'/></svg>\"\nexport const pauseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 96h16v320h-16zM320 96h16v320h-16z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pauseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pause</title><path d='M224 432h-80V80h80zM368 432h-80V80h80z'/></svg>\"\nexport const paw = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paw</title><path d='M490.39 182.75c-5.55-13.19-14.77-22.7-26.67-27.49l-.16-.06a46.46 46.46 0 00-17-3.2h-.64c-27.24.41-55.05 23.56-69.19 57.61-10.37 24.9-11.56 51.68-3.18 71.64 5.54 13.2 14.78 22.71 26.73 27.5l.13.05a46.53 46.53 0 0017 3.2c27.5 0 55.6-23.15 70-57.65 10.24-24.87 11.37-51.63 2.98-71.6zM381.55 329.61c-15.71-9.44-30.56-18.37-40.26-34.41C314.53 250.8 298.37 224 256 224s-58.57 26.8-85.39 71.2c-9.72 16.06-24.6 25-40.36 34.48-18.07 10.86-36.74 22.08-44.8 44.16a66.93 66.93 0 00-4.65 25c0 35.95 28 65.2 62.4 65.2 17.75 0 36.64-6.15 56.63-12.66 19.22-6.26 39.09-12.73 56.27-12.73s37 6.47 56.15 12.73C332.2 457.85 351 464 368.8 464c34.35 0 62.3-29.25 62.3-65.2a67 67 0 00-4.75-25c-8.06-22.1-26.74-33.33-44.8-44.19zM150 188.85c11.9 14.93 27 23.15 42.52 23.15a42.88 42.88 0 006.33-.47c32.37-4.76 52.54-44.26 45.92-90C242 102.3 234.6 84.39 224 71.11 212.12 56.21 197 48 181.49 48a42.88 42.88 0 00-6.33.47c-32.37 4.76-52.54 44.26-45.92 90 2.76 19.2 10.16 37.09 20.76 50.38zM313.16 211.53a42.88 42.88 0 006.33.47c15.53 0 30.62-8.22 42.52-23.15 10.59-13.29 17.95-31.18 20.75-50.4 6.62-45.72-13.55-85.22-45.92-90a42.88 42.88 0 00-6.33-.47C315 48 299.88 56.21 288 71.11c-10.6 13.28-18 31.19-20.76 50.44-6.62 45.72 13.55 85.22 45.92 89.98zM111.59 308.8l.14-.05c11.93-4.79 21.16-14.29 26.69-27.48 8.38-20 7.2-46.75-3.15-71.65C120.94 175.16 92.85 152 65.38 152a46.4 46.4 0 00-17 3.2l-.14.05c-11.9 4.75-21.13 14.29-26.66 27.48-8.38 20-7.2 46.75 3.15 71.65C39.06 288.84 67.15 312 94.62 312a46.4 46.4 0 0016.97-3.2z'/></svg>\"\nexport const pawOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paw</title><path d='M457.74 170.1a30.26 30.26 0 00-11.16-2.1h-.4c-20.17.3-42.79 19.19-54.66 47.76-14.23 34.18-7.68 69.15 14.74 78.14a30.21 30.21 0 0011.15 2.1c20.27 0 43.2-19 55.17-47.76 14.13-34.18 7.48-69.15-14.84-78.14zM327.6 303.48C299.8 257.35 287.8 240 256 240s-43.9 17.46-71.7 63.48c-23.8 39.36-71.9 42.64-83.9 76.07a50.91 50.91 0 00-3.6 19.25c0 27.19 20.8 49.2 46.4 49.2 31.8 0 75.1-25.39 112.9-25.39S337 448 368.8 448c25.6 0 46.3-22 46.3-49.2a51 51 0 00-3.7-19.25c-12-33.55-60-36.71-83.8-76.07zM192.51 196a26.53 26.53 0 004-.3c23.21-3.37 37.7-35.53 32.44-71.85C224 89.61 203.22 64 181.49 64a26.53 26.53 0 00-4 .3c-23.21 3.37-37.7 35.53-32.44 71.85C150 170.29 170.78 196 192.51 196zM366.92 136.15c5.26-36.32-9.23-68.48-32.44-71.85a26.53 26.53 0 00-4-.3c-21.73 0-42.47 25.61-47.43 59.85-5.26 36.32 9.23 68.48 32.44 71.85a26.53 26.53 0 004 .3c21.73 0 42.51-25.71 47.43-59.85zM105.77 293.9c22.39-9 28.93-44 14.72-78.14C108.53 187 85.62 168 65.38 168a30.21 30.21 0 00-11.15 2.1c-22.39 9-28.93 44-14.72 78.14C51.47 277 74.38 296 94.62 296a30.21 30.21 0 0011.15-2.1z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pawSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Paw</title><path d='M442.8 361.82c-8.8-25.1-29.31-37.82-49.11-50.12-17.23-10.71-33.5-20.83-44.14-39-29.33-50.33-45.44-80.7-93.49-80.7s-64.21 30.38-93.61 80.69c-10.65 18.21-27 28.35-44.25 39.08-19.8 12.31-40.27 25-49.1 50.05a78.06 78.06 0 00-5.1 28.29C64 430.85 96.45 464 132.4 464s83.31-18.13 123.76-18.13S343.31 464 379.71 464 448 430.85 448 390.11a78.3 78.3 0 00-5.2-28.29z'/><ellipse cx='72' cy='216' rx='56' ry='72'/><ellipse cx='184' cy='120' rx='56' ry='72'/><ellipse cx='328' cy='120' rx='56' ry='72'/><ellipse cx='440' cy='216' rx='56' ry='72'/></svg>\"\nexport const pencil = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pencil</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='44' d='M358.62 129.28L86.49 402.08 70 442l39.92-16.49 272.8-272.13-24.1-24.1zM413.07 74.84l-11.79 11.78 24.1 24.1 11.79-11.79a16.51 16.51 0 000-23.34l-.75-.75a16.51 16.51 0 00-23.35 0z' class='ionicon-fill-none'/></svg>\"\nexport const pencilOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pencil</title><path stroke-linecap='round' stroke-linejoin='round' d='M364.13 125.25L87 403l-23 45 44.99-23 277.76-277.13-22.62-22.62zM420.69 68.69l-22.62 22.62 22.62 22.63 22.62-22.63a16 16 0 000-22.62h0a16 16 0 00-22.62 0z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pencilSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pencil</title><path d='M103 464H48v-55L358.14 98.09l55.77 55.78L103 464zM425.72 142L370 86.28l31.66-30.66C406.55 50.7 414.05 48 421 48a25.91 25.91 0 0118.42 7.62l17 17A25.87 25.87 0 01464 91c0 7-2.71 14.45-7.62 19.36zm-7.52-70.83z'/></svg>\"\nexport const people = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People</title><path d='M336 256c-20.56 0-40.44-9.18-56-25.84-15.13-16.25-24.37-37.92-26-61-1.74-24.62 5.77-47.26 21.14-63.76S312 80 336 80c23.83 0 45.38 9.06 60.7 25.52 15.47 16.62 23 39.22 21.26 63.63-1.67 23.11-10.9 44.77-26 61C376.44 246.82 356.57 256 336 256zm66-88zM467.83 432H204.18a27.71 27.71 0 01-22-10.67 30.22 30.22 0 01-5.26-25.79c8.42-33.81 29.28-61.85 60.32-81.08C264.79 297.4 299.86 288 336 288c36.85 0 71 9 98.71 26.05 31.11 19.13 52 47.33 60.38 81.55a30.27 30.27 0 01-5.32 25.78A27.68 27.68 0 01467.83 432zM147 260c-35.19 0-66.13-32.72-69-72.93-1.42-20.6 5-39.65 18-53.62 12.86-13.83 31-21.45 51-21.45s38 7.66 50.93 21.57c13.1 14.08 19.5 33.09 18 53.52-2.87 40.2-33.8 72.91-68.93 72.91zM212.66 291.45c-17.59-8.6-40.42-12.9-65.65-12.9-29.46 0-58.07 7.68-80.57 21.62-25.51 15.83-42.67 38.88-49.6 66.71a27.39 27.39 0 004.79 23.36A25.32 25.32 0 0041.72 400h111a8 8 0 007.87-6.57c.11-.63.25-1.26.41-1.88 8.48-34.06 28.35-62.84 57.71-83.82a8 8 0 00-.63-13.39c-1.57-.92-3.37-1.89-5.42-2.89z'/></svg>\"\nexport const peopleCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People Circle</title><path d='M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-3.68 152.11c.21-1.2.44-2.4.71-3.59a66.46 66.46 0 0116.29-31.21c12.89-13.73 31.16-21.31 51.45-21.31a74.05 74.05 0 0125.06 4.26 66.69 66.69 0 0126.27 17.2 68.15 68.15 0 0118 42.14 78.46 78.46 0 010 11.4 86.19 86.19 0 01-8.2 31q-.76 1.59-1.59 3.15c-1.11 2.07-2.3 4.1-3.58 6.06a79.47 79.47 0 01-8.63 11c-13.12 14-29.92 21.73-47.31 21.73a59.61 59.61 0 01-19.17-3.18 63.47 63.47 0 01-6.1-2.43 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68a75.62 75.62 0 011.05-11.08zm-149.73 24.34a59.87 59.87 0 015.2-20.64 56.76 56.76 0 012.78-5.3 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82 56.84 56.84 0 018.11-3.64 63.85 63.85 0 0133.35-2.39 57 57 0 0130.78 17 57.86 57.86 0 0115.41 38.62c.05 2.11 0 4.23-.15 6.38a71.58 71.58 0 01-6 23.84 69.49 69.49 0 01-5.73 10.42 65.39 65.39 0 01-15.76 16.57c-1.5 1.07-3.06 2.07-4.67 3.07a54.21 54.21 0 01-10 4.65 49.31 49.31 0 01-16.2 2.76c-.93 0-1.86 0-2.78-.08a47.6 47.6 0 01-5.48-.62 51.19 51.19 0 01-5.35-1.23 53.54 53.54 0 01-7.72-2.89c-.84-.39-1.66-.8-2.48-1.23-18-9.49-31.57-29.16-34.23-52.12-.12-1.05-.22-2.1-.29-3.16a66.59 66.59 0 01.02-9.63zm53.92 178.6a177.27 177.27 0 01-61.94-70.65 4 4 0 011.62-5.26C117.67 316.69 141.4 311 163.82 311c17 0 30.7 2 42.69 5.88a8 8 0 012.59 13.77c-23.35 19-38.4 42.54-45.47 70.75a2.77 2.77 0 01-4.22 1.65zM256 432a175.12 175.12 0 01-65.7-12.72 4 4 0 01-2.4-4.46c.4-2.05.84-3.92 1.23-5.48 7.12-28.43 24.76-52 51-68.18 23.29-14.35 53-22.25 83.52-22.25 31.16 0 60 7.58 83.48 21.91a2.72 2.72 0 01.91 3.67A176.1 176.1 0 01256 432z'/><path d='M161 295.28a47.6 47.6 0 01-5.48-.62 47.6 47.6 0 005.48.62zM134.64 178.13a55.62 55.62 0 00-14 10.82 54.49 54.49 0 00-7.19 9.56 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82zM216.17 257.89a71.58 71.58 0 006-23.84c.15-2.15.2-4.27.15-6.38q.08 3.15-.15 6.38a71.58 71.58 0 01-6 23.84zM134.64 178.13a56.84 56.84 0 018.11-3.64 56.84 56.84 0 00-8.11 3.64zM150.21 293.43a53.54 53.54 0 01-7.72-2.89 53.54 53.54 0 007.72 2.89zM105.78 237.19c2.66 23 16.26 42.63 34.23 52.12-18.01-9.49-31.57-29.16-34.23-52.12zM254.34 219a83.76 83.76 0 0022 51.32 70.76 70.76 0 0022.07 16.12 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68-.09 3.75.18 7.68zM304.5 288.82a63.47 63.47 0 01-6.1-2.43 63.47 63.47 0 006.1 2.43zM255.93 196.54a66.46 66.46 0 0116.29-31.21 66.46 66.46 0 00-16.29 31.21zM375 165.46a68.15 68.15 0 0118 42.14 68.15 68.15 0 00-18-42.14 66.69 66.69 0 00-26.27-17.2 66.69 66.69 0 0126.27 17.2zM393 219a86.19 86.19 0 01-8.2 31 86.19 86.19 0 008.2-31zM254.16 211.27a75.62 75.62 0 011.06-11.14 75.62 75.62 0 00-1.06 11.14zM383.19 253.16zM206.88 189.05a57.86 57.86 0 0115.41 38.62 57.86 57.86 0 00-15.41-38.62 57 57 0 00-30.78-17 57 57 0 0130.78 17zM190 288a54.21 54.21 0 01-10 4.65 54.21 54.21 0 0010-4.65zM105.49 224.45a59.87 59.87 0 015.2-20.64 59.87 59.87 0 00-5.2 20.64zM194.68 284.88C193.17 286 191.61 287 190 288c1.61-1 3.17-2 4.68-3.12zM216.17 257.89a69.49 69.49 0 01-5.73 10.42 69.49 69.49 0 005.73-10.42zM110.69 203.81a56.76 56.76 0 012.78-5.3 56.76 56.76 0 00-2.78 5.3zM194.68 284.88a65.39 65.39 0 0015.76-16.57 65.39 65.39 0 01-15.76 16.57z'/></svg>\"\nexport const peopleCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People Circle</title><path d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z'/><path d='M323.67 292c-17.4 0-34.21-7.72-47.34-21.73a83.76 83.76 0 01-22-51.32c-1.47-20.7 4.88-39.75 17.88-53.62S303.38 144 323.67 144c20.14 0 38.37 7.62 51.33 21.46s19.47 33 18 53.51a84 84 0 01-22 51.3C357.86 284.28 341.06 292 323.67 292zm55.81-74zM163.82 295.36c-29.76 0-55.93-27.51-58.33-61.33-1.23-17.32 4.15-33.33 15.17-45.08s26.22-18 43.15-18 32.12 6.44 43.07 18.14 16.5 27.82 15.25 45c-2.44 33.77-28.6 61.27-58.31 61.27zM420.37 355.28c-1.59-4.7-5.46-9.71-13.22-14.46-23.46-14.33-52.32-21.91-83.48-21.91-30.57 0-60.23 7.9-83.53 22.25-26.25 16.17-43.89 39.75-51 68.18-1.68 6.69-4.13 19.14-1.51 26.11a192.18 192.18 0 00232.75-80.17zM163.63 401.37c7.07-28.21 22.12-51.73 45.47-70.75a8 8 0 00-2.59-13.77c-12-3.83-25.7-5.88-42.69-5.88-23.82 0-49.11 6.45-68.14 18.17-5.4 3.33-10.7 4.61-14.78 5.75a192.84 192.84 0 0077.78 86.64l1.79-.14a102.82 102.82 0 013.16-20.02z'/></svg>\"\nexport const peopleCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm69.3 96.17a72.5 72.5 0 11-72.6 72.5 72.55 72.55 0 0172.6-72.5zm-155.1 26.36a59.32 59.32 0 11-59.4 59.32 59.35 59.35 0 0159.4-59.32zm-75.85 155c24.5-13.29 55.87-19.94 75.85-19.94 15 0 34.32 3 53.33 10.2a133.05 133.05 0 00-34 27.11c-13.19 15-20.76 32.92-20.76 50.83v15a177.06 177.06 0 01-74.42-83.15zM256 432a175.12 175.12 0 01-59.4-10.33v-27.05c0-52.59 85.75-79.09 128.7-79.09 23 0 58.38 7.63 86.21 22.81A176.14 176.14 0 01256 432z'/></svg>\"\nexport const peopleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People</title><path d='M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const peopleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>People</title><circle cx='152' cy='184' r='72'/><path d='M234 296c-28.16-14.3-59.24-20-82-20-44.58 0-136 27.34-136 82v42h150v-16.07c0-19 8-38.05 22-53.93 11.17-12.68 26.81-24.45 46-34z'/><path d='M340 288c-52.07 0-156 32.16-156 96v48h312v-48c0-63.84-103.93-96-156-96z'/><circle cx='340' cy='168' r='88'/></svg>\"\nexport const person = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person</title><path d='M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6zM432 480H80a31 31 0 01-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75 1.94 10.73-.68 21.34-7.18 29.11A31 31 0 01432 480z'/></svg>\"\nexport const personAdd = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Add</title><path d='M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zM495.38 439.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM104 288v-40h40a16 16 0 000-32h-40v-40a16 16 0 00-32 0v40H32a16 16 0 000 32h40v40a16 16 0 0032 0z'/></svg>\"\nexport const personAddOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Add</title><path d='M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M88 176v112M144 232H32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const personAddSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Add</title><path d='M106 304v-54h54v-36h-54v-54H70v54H16v36h54v54h36z'/><circle cx='288' cy='144' r='112'/><path d='M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z'/></svg>\"\nexport const personCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-50.22 116.82C218.45 151.39 236.28 144 256 144s37.39 7.44 50.11 20.94c12.89 13.68 19.16 32.06 17.68 51.82C320.83 256 290.43 288 256 288s-64.89-32-67.79-71.25c-1.47-19.92 4.79-38.36 17.57-51.93zM256 432a175.49 175.49 0 01-126-53.22 122.91 122.91 0 0135.14-33.44C190.63 329 222.89 320 256 320s65.37 9 90.83 25.34A122.87 122.87 0 01382 378.78 175.45 175.45 0 01256 432z'/></svg>\"\nexport const personCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Circle</title><path d='M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm126.42 327.25a4 4 0 01-6.14-.32 124.27 124.27 0 00-32.35-29.59C321.37 329 289.11 320 256 320s-65.37 9-90.83 25.34a124.24 124.24 0 00-32.35 29.58 4 4 0 01-6.14.32A175.32 175.32 0 0180 259c-1.63-97.31 78.22-178.76 175.57-179S432 158.81 432 256a175.32 175.32 0 01-46.68 119.25z'/><path d='M256 144c-19.72 0-37.55 7.39-50.22 20.82s-19 32-17.57 51.93C191.11 256 221.52 288 256 288s64.83-32 67.79-71.24c1.48-19.74-4.8-38.14-17.68-51.82C293.39 151.44 275.59 144 256 144z'/></svg>\"\nexport const personCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm2 96a72 72 0 11-72 72 72 72 0 0172-72zm-2 288a175.55 175.55 0 01-129.18-56.6C135.66 329.62 215.06 320 256 320s120.34 9.62 129.18 55.39A175.52 175.52 0 01256 432z'/></svg>\"\nexport const personOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person</title><path d='M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const personRemove = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Remove</title><path d='M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zM495.38 439.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM144 216H32a16 16 0 000 32h112a16 16 0 000-32z'/></svg>\"\nexport const personRemoveOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Remove</title><path d='M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M144 232H32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const personRemoveSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person Remove</title><path d='M16 214h144v36H16z'/><circle cx='288' cy='144' r='112'/><path d='M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z'/></svg>\"\nexport const personSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Person</title><path d='M256 256a112 112 0 10-112-112 112 112 0 00112 112zm0 32c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z'/></svg>\"\nexport const phoneLandscape = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Landscape</title><path d='M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z'/><path d='M48 176a11.88 11.88 0 004.69 9.53A48 48 0 0172 224v64a48 48 0 01-19.31 38.47A11.88 11.88 0 0048 336a16 16 0 0016 16h384a16 16 0 0016-16V176a16 16 0 00-16-16H64a16 16 0 00-16 16z'/><path d='M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z'/></svg>\"\nexport const phoneLandscapeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Landscape</title><rect x='128' y='16' width='256' height='480' rx='48' ry='48' transform='rotate(-90 256 256)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M16 336v-24a8 8 0 018-8h0a16 16 0 0016-16v-64a16 16 0 00-16-16h0a8 8 0 01-8-8v-24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const phoneLandscapeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Landscape</title><path d='M0 130v252a18 18 0 0018 18h476a18 18 0 0018-18V130a18 18 0 00-18-18H18a18 18 0 00-18 18zm448 234H64V148h384z'/></svg>\"\nexport const phonePortrait = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Portrait</title><path d='M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z'/><path d='M336 48a11.88 11.88 0 00-9.53 4.69A48 48 0 01288 72h-64a48 48 0 01-38.47-19.31A11.88 11.88 0 00176 48a16 16 0 00-16 16v384a16 16 0 0016 16h160a16 16 0 0016-16V64a16 16 0 00-16-16z'/><path d='M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z'/></svg>\"\nexport const phonePortraitOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Portrait</title><rect x='128' y='16' width='256' height='480' rx='48' ry='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M176 16h24a8 8 0 018 8h0a16 16 0 0016 16h64a16 16 0 0016-16h0a8 8 0 018-8h24' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const phonePortraitSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Phone Portrait</title><path d='M382 0H130a18 18 0 00-18 18v476a18 18 0 0018 18h252a18 18 0 0018-18V18a18 18 0 00-18-18zM148 448V64h216v384z'/></svg>\"\nexport const pieChart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pie Chart</title><path d='M66.1 357a16 16 0 01-14.61-9.46A224 224 0 01256 32a16 16 0 0116 16v208a16 16 0 01-9.47 14.61l-189.9 84.95A15.93 15.93 0 0166.1 357z'/><path d='M313.59 68.18A8 8 0 00304 76v180a48.07 48.07 0 01-28.4 43.82L103.13 377a8 8 0 00-3.35 11.81 208.42 208.42 0 0048.46 50.41A206.32 206.32 0 00272 480c114.69 0 208-93.31 208-208 0-100.45-71.58-184.5-166.41-203.82z'/></svg>\"\nexport const pieChartOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pie Chart</title><path d='M256.05 80.65Q263.94 80 272 80c106 0 192 86 192 192s-86 192-192 192A192.09 192.09 0 0189.12 330.65' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48C141.12 48 48 141.12 48 256a207.29 207.29 0 0018.09 85L256 256z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pieChartSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pie Chart</title><path d='M58 362.09l-6.51-14.59A224 224 0 01256 32h16v234.37z'/><path d='M304 66.46v220.65L94.62 380.78A208.31 208.31 0 00272 480c114.69 0 208-93.31 208-208 0-103.81-76.45-190.1-176-205.54z'/></svg>\"\nexport const pin = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pin</title><path d='M336 96a80 80 0 10-96 78.39v283.17a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38V174.39A80.13 80.13 0 00336 96zm-56 0a24 24 0 1124-24 24 24 0 01-24 24z'/></svg>\"\nexport const pinOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pin</title><circle cx='256' cy='96' r='64' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M272 164a9 9 0 00-9-9h-14a9 9 0 00-9 9v293.56a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38z'/><circle cx='280' cy='72' r='24'/></svg>\"\nexport const pinSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pin</title><path d='M339 99a83 83 0 10-102 80.8V464l19 32 19-32V179.8A83.28 83.28 0 00339 99zm-59-6a21 21 0 1121-21 21 21 0 01-21 21z'/></svg>\"\nexport const pint = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pint</title><path d='M399 99.29c-.15-2.13-.3-4.35-.44-6.68L395.69 46a32 32 0 00-31.91-30H148.21a32 32 0 00-31.91 30l-2.91 46.63c-.14 2.31-.29 4.51-.43 6.62-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V472a24 24 0 0024 24h143.74a24 24 0 0024-24v-71.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 5.99-32.51 5.05-46.42 3.72-65.66zm-35-47.54l1.5 24a4 4 0 01-4 4.25h-211a4 4 0 01-4-4.25l1.48-24A4 4 0 01152 48h208a4 4 0 014 3.75z'/></svg>\"\nexport const pintOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pint</title><path d='M132.43 162c-6.24-34-4.49-45.55-3.07-68.39L132.27 47a16 16 0 0115.94-15h215.57a16 16 0 0115.94 15l2.91 46.61c1.43 22.86 3.19 34.39-3.06 68.45-5.93 32.29-43.71 133.27-43.71 238.32V472a8 8 0 01-8 8H184.12a8 8 0 01-8-8v-71.63c.01-92.47-37.46-204.3-43.69-238.37zM135.21 96h241.58' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pintSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pint</title><path d='M399 99.29L394 16H118.45L113 99.26c-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V496h191.68v-95.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 6.01-32.51 5.07-46.42 3.74-65.66zM146.23 80l2-32h215.52l2 32z'/></svg>\"\nexport const pizza = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pizza</title><path d='M441.82 67.83C383.44 44.73 317.3 32 255.56 32 192 32 125.76 44.53 69 67.26 48.7 75.49 45.21 90 48.71 100.82L52.78 111a16 16 0 0021.31 8.69c10.8-4.76 23.93-10.54 27-11.78C145.1 89.64 198.71 80 256 80c57.47 0 108.09 9.24 154.76 28.25 4.42 1.8 14.88 6.42 26.17 11.46a16 16 0 0021.35-8.59L462 102l.34-.9c3.45-10.21.14-25.05-20.52-33.27z'/><path d='M409.18 140.86C363.67 122.53 307.68 112 255.56 112a425 425 0 00-153.74 28.89c-.53.21-2.06.88-4.29 1.88a16 16 0 00-8 21.27c4 8.71 9.42 20.58 15.5 33.89C137.94 270 199.21 404 227.26 462A31.74 31.74 0 00256 480a31.73 31.73 0 0028.76-18.06l.06-.13 137.3-297.57a15.94 15.94 0 00-8.31-21.45c-2.26-.95-3.85-1.61-4.5-1.87zm-215.1 83.07a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64 128a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64-112a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85z'/></svg>\"\nexport const pizzaOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pizza</title><path d='M404.76 123.08C358.37 104.18 309.69 96 256 96s-106.1 9-148.9 26.68c-8.08 3.3-15.26 9-10.07 19.5C101.24 150.71 203 375 241.66 455a15.94 15.94 0 0028.72 0l144.05-312.22c3.19-6.9.9-15.4-9.67-19.7z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M436.38 82.68C384.31 62.08 320.17 48 256 48S128.65 60.78 75.48 82.08C70.79 84 62 88.43 64.41 95.88L74.09 120c4 8.2 8.67 8.2 15.06 8.2 1.79 0 4.29-1 7.28-2.18A442.46 442.46 0 01256 96c56.76 0 114.91 12 159.6 30 3.59 1.4 5.59 2.18 7.28 2.18 6.58 0 10.38 2.19 15-8.1L447.65 96c2.01-6-4.99-10.82-11.27-13.32z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='192' cy='192' r='32'/><circle cx='320' cy='208' r='32'/><circle cx='256' cy='320' r='32'/></svg>\"\nexport const pizzaSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pizza</title><path d='M442.3 67.82C383.92 44.72 317.78 32 256 32c-63.57 0-129.8 12.51-186.56 35.25C49.18 75.48 42 80 42 80l22 44 37.53-16.14C147.58 89.53 199.19 80 256.51 80c57.49 0 108.09 9.23 154.75 28.25L448 124l22-44s-7-4-27.7-12.18z'/><ellipse cx='320.48' cy='207.99' rx='31.97' ry='32.03' transform='rotate(-44.98 320.503 207.996)' class='ionicon-fill-none'/><ellipse cx='192.48' cy='191.99' rx='31.97' ry='32.03' transform='rotate(-44.98 192.49 191.992)' class='ionicon-fill-none'/><ellipse cx='256.48' cy='319.99' rx='31.97' ry='32.03' transform='rotate(-44.98 256.505 320)' class='ionicon-fill-none'/><path d='M409.66 140.85C364.15 122.52 308.16 112 256 112a425 425 0 00-153.7 28.9c-.25.1-9.24 4.23-19 8.71 7.46 16.22 18 39.16 22.2 48.33L256 480l173.74-330.84-19.92-8.24zm-185.25 53.22a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64 128a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64-112a32 32 0 11-34-34 32.12 32.12 0 0134 34z'/></svg>\"\nexport const planet = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Planet</title><path d='M96.85 286.62a8 8 0 00-12.53 8.25C102.07 373.28 172.3 432 256 432a175.31 175.31 0 0052.41-8 8 8 0 00.79-15 1120 1120 0 01-109.48-55.61 1126.24 1126.24 0 01-102.87-66.77zM492.72 339.51c-4.19-5.58-9.11-11.44-14.7-17.53a15.83 15.83 0 00-26.56 5.13c0 .16-.11.31-.17.47a15.75 15.75 0 003.15 16.06c22.74 25 26.42 38.51 25.48 41.36-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2-2.23 15.54-5.87 48.62 1.31A15.82 15.82 0 0096.22 123l.36-.44a15.74 15.74 0 00-8.67-25.43A237.38 237.38 0 0064.13 93c-30.72-3.53-50.83 2.52-59.78 18-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z'/></svg>\"\nexport const planetOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Planet</title><path d='M413.48 284.46c58.87 47.24 91.61 89 80.31 108.55-17.85 30.85-138.78-5.48-270.1-81.15S.37 149.84 18.21 119c11.16-19.28 62.58-12.32 131.64 14.09' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='160' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const planetSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Planet</title><path d='M81 274.71C90.36 363 165.26 432 256 432a174.91 174.91 0 0071.49-15.19c-40.3-16.53-84.05-38.17-127.77-63.36C157 328.86 115.84 301.5 81 274.71zM492.72 339.51c-8.5-11.31-20-23.8-34-37a205.25 205.25 0 01-11 34c28.72 29.5 33.2 45.34 32.17 48.45-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2.16-2.43 18.1-6.54 58.13 3.55a209.88 209.88 0 0124-26.56c-18.86-5.61-35.79-9.35-50.05-11C33.41 89.47 13.3 95.52 4.35 111c-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z'/></svg>\"\nexport const play = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play</title><path d='M133 440a35.37 35.37 0 01-17.5-4.67c-12-6.8-19.46-20-19.46-34.33V111c0-14.37 7.46-27.53 19.46-34.33a35.13 35.13 0 0135.77.45l247.85 148.36a36 36 0 010 61l-247.89 148.4A35.5 35.5 0 01133 440z'/></svg>\"\nexport const playBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back</title><path d='M30.71 229.47l188.87-113a30.54 30.54 0 0131.09-.39 33.74 33.74 0 0116.76 29.47v79.05l180.72-108.16a30.54 30.54 0 0131.09-.39A33.74 33.74 0 01496 145.52v221A33.73 33.73 0 01479.24 396a30.54 30.54 0 01-31.09-.39L267.43 287.4v79.08A33.73 33.73 0 01250.67 396a30.54 30.54 0 01-31.09-.39l-188.87-113a31.27 31.27 0 010-53z'/></svg>\"\nexport const playBackCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back Circle</title><path d='M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm69.23-9.3l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z'/></svg>\"\nexport const playBackCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back Circle</title><path d='M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M117.23 246.7l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z'/></svg>\"\nexport const playBackCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back Circle</title><path d='M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm63.47 0L248 168v72.16l120-72.48v176.45l-120-72.32v71.44z'/></svg>\"\nexport const playBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back</title><path d='M480 145.52v221c0 13.28-13 21.72-23.63 15.35L267.5 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113C467 123.8 480 132.24 480 145.52zM251.43 145.52v221c0 13.28-13 21.72-23.63 15.35L38.93 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113c10.64-6.4 23.63 2.04 23.63 15.32z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const playBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Back</title><path d='M496 400L256 256l240-144v288zM256 400L16 256l240-144v288z'/></svg>\"\nexport const playCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z'/></svg>\"\nexport const playCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M216.32 334.44l114.45-69.14a10.89 10.89 0 000-18.6l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31z'/></svg>\"\nexport const playCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-56 296V168l144 88z'/></svg>\"\nexport const playForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward</title><path d='M481.29 229.47l-188.87-113a30.54 30.54 0 00-31.09-.39 33.74 33.74 0 00-16.76 29.47v79.05L63.85 116.44a30.54 30.54 0 00-31.09-.39A33.74 33.74 0 0016 145.52v221A33.74 33.74 0 0032.76 396a30.54 30.54 0 0031.09-.39L244.57 287.4v79.08A33.74 33.74 0 00261.33 396a30.54 30.54 0 0031.09-.39l188.87-113a31.27 31.27 0 000-53z'/></svg>\"\nexport const playForwardCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm138.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31v-53.32l-103.68 62.63a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L264 240.19v-53.32a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z'/></svg>\"\nexport const playForwardCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M394.77 246.7l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v53.32l-103.68-62.63a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L264 271.81v53.32a10.78 10.78 0 0016.32 9.31l114.45-69.14a10.89 10.89 0 000-18.6z'/></svg>\"\nexport const playForwardCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm8 295.25v-71.44l-120 72.32V167.71l120 72.48V168l136.53 88z'/></svg>\"\nexport const playForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward</title><path d='M32 145.52v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113C45 123.8 32 132.24 32 145.52zM260.57 145.52v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113c-10.64-6.47-23.63 1.97-23.63 15.25z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const playForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Forward</title><path d='M16 400l240-144L16 112v288zM256 400l240-144-240-144v288z'/></svg>\"\nexport const playOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play</title><path d='M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const playSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play</title><path d='M96 448l320-192L96 64v384z'/></svg>\"\nexport const playSkipBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back</title><path d='M112 64a16 16 0 0116 16v136.43L360.77 77.11a35.13 35.13 0 0135.77-.44c12 6.8 19.46 20 19.46 34.33v290c0 14.37-7.46 27.53-19.46 34.33a35.14 35.14 0 01-35.77-.45L128 295.57V432a16 16 0 01-32 0V80a16 16 0 0116-16z'/></svg>\"\nexport const playSkipBackCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back Circle</title><path d='M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-64a16 16 0 0132 0v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0z'/></svg>\"\nexport const playSkipBackCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back Circle</title><path d='M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M192 176a16 16 0 0116 16v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0V192a16 16 0 0116-16z'/></svg>\"\nexport const playSkipBackCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back Circle</title><path d='M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-80h32v69l128-77.53v176.9L208 267v69h-32z'/></svg>\"\nexport const playSkipBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back</title><path d='M400 111v290c0 17.44-17 28.52-31 20.16L121.09 272.79c-12.12-7.25-12.12-26.33 0-33.58L369 90.84c14-8.36 31 2.72 31 20.16z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M112 80v352' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const playSkipBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Back</title><path d='M143.47 64v163.52L416 64v384L143.47 284.48V448H96V64h47.47z'/></svg>\"\nexport const playSkipForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward</title><path d='M400 64a16 16 0 00-16 16v136.43L151.23 77.11a35.13 35.13 0 00-35.77-.44C103.46 83.47 96 96.63 96 111v290c0 14.37 7.46 27.53 19.46 34.33a35.14 35.14 0 0035.77-.45L384 295.57V432a16 16 0 0032 0V80a16 16 0 00-16-16z'/></svg>\"\nexport const playSkipForwardCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 272a16 16 0 01-32 0v-53l-111.68 67.44a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L304 245v-53a16 16 0 0132 0z'/></svg>\"\nexport const playSkipForwardCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M320 176a16 16 0 00-16 16v53l-111.68-67.44a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L304 267v53a16 16 0 0032 0V192a16 16 0 00-16-16z'/></svg>\"\nexport const playSkipForwardCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288h-32v-69l-128 77.37V167.49L304 245v-69h32z'/></svg>\"\nexport const playSkipForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward</title><path d='M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M400 80v352' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const playSkipForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Play Skip Forward</title><path d='M368.53 64v163.52L96 64v384l272.53-163.52V448H416V64h-47.47z'/></svg>\"\nexport const podium = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Podium</title><path d='M320 32H192a32 32 0 00-32 32v412a4 4 0 004 4h184a4 4 0 004-4V64a32 32 0 00-32-32zM464 192h-72a8 8 0 00-8 8v272a8 8 0 008 8h80a24 24 0 0024-24V224a32 32 0 00-32-32zM48 128a32 32 0 00-32 32v296a24 24 0 0024 24h80a8 8 0 008-8V136a8 8 0 00-8-8z'/></svg>\"\nexport const podiumOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Podium</title><path d='M32 160v296a8 8 0 008 8h136V160a16 16 0 00-16-16H48a16 16 0 00-16 16zM320 48H192a16 16 0 00-16 16v400h160V64a16 16 0 00-16-16zM464 208H352a16 16 0 00-16 16v240h136a8 8 0 008-8V224a16 16 0 00-16-16z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const podiumSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Podium</title><path d='M160 32h192v448H160zM384 192h112v288H384zM16 128h112v352H16z'/></svg>\"\nexport const power = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Power</title><path d='M256 464c-114.69 0-208-93.47-208-208.35 0-62.45 27.25-121 74.76-160.55a22 22 0 1128.17 33.8C113.48 160.1 92 206.3 92 255.65 92 346.27 165.57 420 256 420s164-73.73 164-164.35A164 164 0 00360.17 129a22 22 0 1128-33.92A207.88 207.88 0 01464 255.65C464 370.53 370.69 464 256 464z'/><path d='M256 272a22 22 0 01-22-22V70a22 22 0 0144 0v180a22 22 0 01-22 22z'/></svg>\"\nexport const powerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Power</title><path d='M378 108a191.41 191.41 0 0170 148c0 106-86 192-192 192S64 362 64 256a192 192 0 0169-148M256 64v192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const powerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Power</title><path d='M256 464c-114.69 0-208-93.23-208-207.82a207.44 207.44 0 0174.76-160.13l16.9-14 28.17 33.72-16.9 14A163.72 163.72 0 0092 256.18c0 90.39 73.57 163.93 164 163.93s164-73.54 164-163.93a163.38 163.38 0 00-59.83-126.36l-17-14 28-33.82 17 14A207.13 207.13 0 01464 256.18C464 370.77 370.69 464 256 464z'/><path d='M234 48h44v224h-44z'/></svg>\"\nexport const pricetag = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetag</title><path d='M467 45.2A44.45 44.45 0 00435.29 32H312.36a30.63 30.63 0 00-21.52 8.89L45.09 286.59a44.82 44.82 0 000 63.32l117 117a44.83 44.83 0 0063.34 0l245.65-245.6A30.6 30.6 0 00480 199.8v-123a44.24 44.24 0 00-13-31.6zM384 160a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const pricetagOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetag</title><path d='M435.25 48h-122.9a14.46 14.46 0 00-10.2 4.2L56.45 297.9a28.85 28.85 0 000 40.7l117 117a28.85 28.85 0 0040.7 0L459.75 210a14.46 14.46 0 004.2-10.2v-123a28.66 28.66 0 00-28.7-28.8z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M384 160a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const pricetagSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetag</title><path d='M304 32L16 320l176 176 288-288V32zm80 128a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const pricetags = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetags</title><path d='M448 183.8v-123A44.66 44.66 0 00403.29 16H280.36a30.62 30.62 0 00-21.51 8.89L13.09 270.58a44.86 44.86 0 000 63.34l117 117a44.84 44.84 0 0063.33 0l245.69-245.61A30.6 30.6 0 00448 183.8zM352 144a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M496 64a16 16 0 00-16 16v127.37L218.69 468.69a16 16 0 1022.62 22.62l262-262A29.84 29.84 0 00512 208V80a16 16 0 00-16-16z'/></svg>\"\nexport const pricetagsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetags</title><path d='M403.29 32H280.36a14.46 14.46 0 00-10.2 4.2L24.4 281.9a28.85 28.85 0 000 40.7l117 117a28.86 28.86 0 0040.71 0L427.8 194a14.46 14.46 0 004.2-10.2v-123A28.66 28.66 0 00403.29 32z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 144a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M230 480l262-262a13.81 13.81 0 004-10V80' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pricetagsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pricetags</title><path d='M288 16L0 304l176 176 288-288V16zm80 128a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M480 64v144L216.9 471.1 242 496l270-272V64h-32z'/></svg>\"\nexport const print = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Print</title><path d='M408 112H106a58 58 0 00-58 58v158a56 56 0 0056 56h8v39.68A40.32 40.32 0 00152.32 464h207.36A40.32 40.32 0 00400 423.68V384h8a56 56 0 0056-56V168a56 56 0 00-56-56zm-40 311.68a8.35 8.35 0 01-8.32 8.32H152.32a8.35 8.35 0 01-8.32-8.32V264.32a8.35 8.35 0 018.32-8.32h207.36a8.35 8.35 0 018.32 8.32zm26-215.76a24 24 0 1122-22 24 24 0 01-22 22zM344 48H168a56.09 56.09 0 00-55.42 48h286.84A56.09 56.09 0 00344 48z'/></svg>\"\nexport const printOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Print</title><path d='M384 368h24a40.12 40.12 0 0040-40V168a40.12 40.12 0 00-40-40H104a40.12 40.12 0 00-40 40v160a40.12 40.12 0 0040 40h24' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='128' y='240' width='256' height='208' rx='24.32' ry='24.32' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M384 128v-24a40.12 40.12 0 00-40-40H168a40.12 40.12 0 00-40 40v24' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='392' cy='184' r='24'/></svg>\"\nexport const printSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Print</title><path d='M400 96V56a8 8 0 00-8-8H120a8 8 0 00-8 8v40'/><rect x='152' y='264' width='208' height='160' rx='4' ry='4' class='ionicon-fill-none'/><rect x='152' y='264' width='208' height='160' rx='4' ry='4' class='ionicon-fill-none'/><path d='M408 112H104a56 56 0 00-56 56v208a8 8 0 008 8h56v72a8 8 0 008 8h272a8 8 0 008-8v-72h56a8 8 0 008-8V168a56 56 0 00-56-56zm-48 308a4 4 0 01-4 4H156a4 4 0 01-4-4V268a4 4 0 014-4h200a4 4 0 014 4zm34-212.08a24 24 0 1122-22 24 24 0 01-22 22z'/></svg>\"\nexport const prism = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Prism</title><path d='M487.83 319.44L295.63 36.88a48 48 0 00-79.26 0L24.17 319.44a47.1 47.1 0 0016.93 68.13l192.2 102.75a48.05 48.05 0 0045.4 0l192.2-102.75a47.1 47.1 0 0016.93-68.13zm-431.26 41a16.12 16.12 0 01-8-10.38 16.8 16.8 0 012.37-13.62L232.66 69.26c2.18-3.21 7.34-1.72 7.34 2.13v374c0 5.9-6.54 9.63-11.87 6.78z'/></svg>\"\nexport const prismOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Prism</title><path d='M229.73 45.88L37.53 327.79a31.79 31.79 0 0011.31 46L241 476.26a31.77 31.77 0 0029.92 0l192.2-102.51a31.79 31.79 0 0011.31-46L282.27 45.88a31.8 31.8 0 00-52.54 0zM256 32v448' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const prismSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Prism</title><path d='M256 16L16 352l240 144 240-144zm-20 96.82v324.53L73.73 340z'/></svg>\"\nexport const pulse = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pulse</title><path d='M432 272a48.09 48.09 0 00-45.25 32h-39.22l-28.35-85.06a16 16 0 00-30.56.66l-44.51 155.76-52.33-314a16 16 0 00-31.3-1.25L99.51 304H48a16 16 0 000 32h64a16 16 0 0015.52-12.12l45.34-181.37 51.36 308.12A16 16 0 00239.1 464h.91a16 16 0 0015.37-11.6l49.8-174.28 15.64 46.94A16 16 0 00336 336h50.75A48 48 0 10432 272z'/></svg>\"\nexport const pulseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pulse</title><path stroke-linecap='round' stroke-linejoin='round' d='M48 320h64l64-256 64 384 64-224 32 96h64' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='432' cy='320' r='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pulseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Pulse</title><path d='M426 266a54.07 54.07 0 00-49.3 32h-24.84l-27-81a22 22 0 00-42 .92l-37.2 130.2-48-281.74a22 22 0 00-43-1.72L94.82 298H32v44h80a22 22 0 0021.34-16.66L171.69 172l46.61 273.62A22 22 0 00238.76 464H240a22 22 0 0021.15-16l44.47-149.62 9.51 28.62A22 22 0 00336 342h40.7a54 54 0 1049.3-76z'/></svg>\"\nexport const push = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Push</title><path d='M376 352H272V198.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 198.63V352H136a56.06 56.06 0 01-56-56V88a56.06 56.06 0 0156-56h240a56.06 56.06 0 0156 56v208a56.06 56.06 0 01-56 56zM272 464a16 16 0 01-32 0V352h32z'/></svg>\"\nexport const pushOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Push</title><path d='M336 336h40a40 40 0 0040-40V88a40 40 0 00-40-40H136a40 40 0 00-40 40v208a40 40 0 0040 40h40' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M176 240l80-80 80 80M256 464V176' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const pushSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Push</title><path d='M272 352V204.63l64 64L358.63 246 256 143.37 153.37 246 176 268.63l64-64V352H92a12 12 0 01-12-12V44a12 12 0 0112-12h328a12 12 0 0112 12v296a12 12 0 01-12 12zM240 352h32v128h-32z'/></svg>\"\nexport const qrCode = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Qr Code</title><rect x='336' y='336' width='80' height='80' rx='8' ry='8'/><rect x='272' y='272' width='64' height='64' rx='8' ry='8'/><rect x='416' y='416' width='64' height='64' rx='8' ry='8'/><rect x='432' y='272' width='48' height='48' rx='8' ry='8'/><rect x='272' y='432' width='48' height='48' rx='8' ry='8'/><path d='M448 32H304a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zM208 32H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zM208 272H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V304a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8z'/></svg>\"\nexport const qrCodeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Qr Code</title><rect x='336' y='336' width='80' height='80' rx='8' ry='8'/><rect x='272' y='272' width='64' height='64' rx='8' ry='8'/><rect x='416' y='416' width='64' height='64' rx='8' ry='8'/><rect x='432' y='272' width='48' height='48' rx='8' ry='8'/><rect x='272' y='432' width='48' height='48' rx='8' ry='8'/><rect x='336' y='96' width='80' height='80' rx='8' ry='8'/><rect x='288' y='48' width='176' height='176' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='96' width='80' height='80' rx='8' ry='8'/><rect x='48' y='48' width='176' height='176' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='96' y='336' width='80' height='80' rx='8' ry='8'/><rect x='48' y='288' width='176' height='176' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const qrCodeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Qr Code</title><path d='M336 336h80v80h-80zM272 272h64v64h-64zM416 416h64v64h-64zM432 272h48v48h-48zM272 432h48v48h-48zM336 96h80v80h-80z'/><path d='M480 240H272V32h208zm-164-44h120V76H316zM96 96h80v80H96z'/><path d='M240 240H32V32h208zM76 196h120V76H76zM96 336h80v80H96z'/><path d='M240 480H32V272h208zM76 436h120V316H76z'/></svg>\"\nexport const radio = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio</title><circle cx='256' cy='256' r='36'/><path d='M190.24 341.77a22 22 0 01-16.46-7.38 118 118 0 010-156.76 22 22 0 1132.87 29.24 74 74 0 000 98.29 22 22 0 01-16.43 36.61zM321.76 341.77a22 22 0 01-16.43-36.61 74 74 0 000-98.29 22 22 0 1132.87-29.24 118 118 0 010 156.76 22 22 0 01-16.44 7.38z'/><path d='M139.29 392.72a21.92 21.92 0 01-16.08-7 190 190 0 010-259.49 22 22 0 1132.13 30.06 146 146 0 000 199.38 22 22 0 01-16.06 37zM372.71 392.72a22 22 0 01-16.06-37 146 146 0 000-199.38 22 22 0 1132.13-30.06 190 190 0 010 259.49 21.92 21.92 0 01-16.07 6.95z'/><path d='M429 438a22 22 0 01-16.39-36.67 218.34 218.34 0 000-290.66 22 22 0 0132.78-29.34 262.34 262.34 0 010 349.34A22 22 0 01429 438zM83 438a21.94 21.94 0 01-16.41-7.33 262.34 262.34 0 010-349.34 22 22 0 0132.78 29.34 218.34 218.34 0 000 290.66A22 22 0 0183 438z'/></svg>\"\nexport const radioButtonOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button Off</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const radioButtonOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button Off</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const radioButtonOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button Off</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const radioButtonOn = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button On</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='144'/></svg>\"\nexport const radioButtonOnOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button On</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='144'/></svg>\"\nexport const radioButtonOnSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio Button On</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='144'/></svg>\"\nexport const radioOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio</title><circle cx='256' cy='256.02' r='32'/><path d='M184.25 192.25a96 96 0 000 127.52M327.77 319.77a96 96 0 000-127.52M133.28 141.28a168 168 0 000 229.44M378.72 370.72a168 168 0 000-229.44M435 416a240.34 240.34 0 000-320M77 96a240.34 240.34 0 000 320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const radioSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Radio</title><ellipse cx='256' cy='256' rx='36' ry='35.99'/><path d='M188.4 350.8l-14.62-16.44a117.91 117.91 0 010-156.71l14.62-16.43 32.87 29.24-14.62 16.43a73.93 73.93 0 000 98.25l14.62 16.44zM323.6 350.8l-32.89-29.22 14.62-16.44a73.93 73.93 0 000-98.25l-14.62-16.43 32.87-29.24 14.62 16.43a117.91 117.91 0 010 156.71z'/><path d='M138.24 401.76l-15-16.06a189.85 189.85 0 010-259.4l15-16.07 32.14 30.05-15 16.06a145.88 145.88 0 000 199.32l15 16.06zM373.76 401.76l-32.14-30 15-16.06a145.88 145.88 0 000-199.32l-15-16.06 32.14-30 15 16.07a189.85 189.85 0 010 259.4z'/><path d='M430.73 447l-32.79-29.33 14.66-16.39a218.2 218.2 0 000-290.56l-14.67-16.38L430.72 65l14.67 16.39a262.18 262.18 0 010 349.22zM81.27 447L66.6 430.61a262.18 262.18 0 010-349.22L81.28 65l32.79 29.34-14.68 16.38a218.2 218.2 0 000 290.56l14.66 16.39z'/></svg>\"\nexport const rainy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rainy</title><path d='M456.26 139.37c-16.77-16.73-39.17-28.41-65.17-34a16 16 0 01-11.19-9 142.24 142.24 0 00-42.19-53.21C314.48 25.39 286.23 16 256 16a140.24 140.24 0 00-93.5 35.32c-24.2 21.56-40.91 51.34-48.43 85.83a16.05 16.05 0 01-11.72 12.18c-25 6.3-35.71 12.54-49.21 24.56C34 190.93 24 214.14 24 240.8c0 30.55 11.23 55.64 32.47 72.56C75.08 328.17 100.5 336 130 336h234c33.2 0 64.11-11.46 87-32.28 23.84-21.65 37-51.67 37-84.52 0-31.49-11-59.09-31.74-79.83zM112 448a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01112 448zM160 496a16 16 0 01-13.29-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01160 496zM272 448a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01272 448zM320 496a16 16 0 01-13.3-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01320 496z'/></svg>\"\nexport const rainyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rainy</title><path d='M114.61 162.85A16.07 16.07 0 00128 149.6C140.09 76.17 193.63 32 256 32c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H130c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M144 384l-32 48M224 384l-64 96M304 384l-32 48M384 384l-64 96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const rainySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rainy</title><path d='M364 336H130c-29.5 0-54.92-7.83-73.53-22.64C35.23 296.44 24 271.35 24 240.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01256 16c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C477 160.11 488 187.71 488 219.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM93.82 430.422l49.75-74.626 26.626 17.75-49.751 74.627zM141.816 478.429L223.568 355.8l26.625 17.75-81.751 122.628zM253.811 430.424l49.751-74.626 26.626 17.75-49.751 74.627zM301.808 478.43l81.752-122.627 26.625 17.75-81.751 122.628z'/></svg>\"\nexport const reader = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reader</title><path d='M368 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM256 304h-80a16 16 0 010-32h80a16 16 0 010 32zm80-80H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z'/></svg>\"\nexport const readerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reader</title><rect x='96' y='48' width='320' height='416' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M176 128h160M176 208h160M176 288h80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const readerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reader</title><path d='M80 44v424a12 12 0 0012 12h328a12 12 0 0012-12V44a12 12 0 00-12-12H92a12 12 0 00-12 12zm192 260H160v-32h112zm80-80H160v-32h192zm0-80H160v-32h192z'/></svg>\"\nexport const receipt = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Receipt</title><path d='M483.82 32.45a16.28 16.28 0 00-11.23 1.37L448 46.1l-24.8-12.4a16 16 0 00-14.31 0l-25.11 12.41L359 33.7a16 16 0 00-14.36 0L320 46.07l-24.45-12.34a16 16 0 00-14.35-.06L256 46.12l-24.8-12.43a16.05 16.05 0 00-14.33 0L192 46.1l-24.84-12.41a16 16 0 00-19.36 3.94 16.25 16.25 0 00-3.8 10.65V288l.05.05H336a32 32 0 0132 32V424c0 30.93 33.07 56 64 56h12a52 52 0 0052-52V48a16 16 0 00-12.18-15.55zM416 240H288.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01288 208h127.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 240zm0-80H224.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01224 128h191.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 160z'/><path d='M336 424v-88a16 16 0 00-16-16H48a32.1 32.1 0 00-32 32.05c0 50.55 5.78 71.57 14.46 87.57C45.19 466.79 71.86 480 112 480h245.68a4 4 0 002.85-6.81C351.07 463.7 336 451 336 424z'/></svg>\"\nexport const receiptOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Receipt</title><path stroke-linejoin='round' d='M160 336V48l32 16 32-16 31.94 16 32.37-16L320 64l31.79-16 31.93 16L416 48l32.01 16L480 48v224' class='ionicon-fill-none ionicon-stroke-width'/><path d='M480 272v112a80 80 0 01-80 80h0a80 80 0 01-80-80v-48H48a15.86 15.86 0 00-16 16c0 64 6.74 112 80 112h288' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M224 144h192M288 224h128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const receiptSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Receipt</title><path d='M448 48l-32-16-32 16-32-16-32 16-32-16-32 16-32-16-32 16-48-16v256.05h224V424c0 30.93 33.07 56 64 56h12c30.93 0 52-25.07 52-56V32zM272.5 240l-.5-32h159.5l.5 32zm-64-80l-.5-32h223.5l.5 32z'/><path d='M336 424V320H16v32c0 50.55 5.78 71.62 14.46 87.63C45.19 466.8 71.86 480 112 480h256s-32-20-32-56z'/></svg>\"\nexport const recording = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Recording</title><path d='M380.79 144.05c-59.1 1.65-107.12 49.71-108.79 108.81a111.64 111.64 0 0030.36 79.77A2 2 0 01301 336h-90a2 2 0 01-1.44-3.37A111.64 111.64 0 00240 252.86c-1.63-59.1-49.65-107.16-108.75-108.81A112.12 112.12 0 0016 255.53C15.75 317.77 67 368 129.24 368h253.52C445 368 496.25 317.77 496 255.53a112.12 112.12 0 00-115.21-111.48z'/></svg>\"\nexport const recordingOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Recording</title><circle cx='128' cy='256' r='96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='256' r='96' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M128 352h256' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const recordingSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Recording</title><path d='M384 138a117.93 117.93 0 00-91.84 192h-72.32A118 118 0 10128 374h256a118 118 0 000-236zM54 256a74 74 0 1174 74 74.09 74.09 0 01-74-74zm330 74a74 74 0 1174-74 74.09 74.09 0 01-74 74z'/></svg>\"\nexport const refresh = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh</title><path d='M320 146s24.36-12-64-12a160 160 0 10160 160' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 58l80 80-80 80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const refreshCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh Circle</title><path d='M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm0 313a94 94 0 010-188h4.21l-14.11-14.1a14 14 0 0119.8-19.8l40 40a14 14 0 010 19.8l-40 40a14 14 0 01-19.8-19.8l18-18c-2.38-.1-5.1-.1-8.1-.1a66 66 0 1066 66 14 14 0 0128 0 94.11 94.11 0 01-94 94z'/></svg>\"\nexport const refreshCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh Circle</title><path d='M288 193s12.18-6-32-6a80 80 0 1080 80' stroke-linecap='round' stroke-miterlimit='10' stroke-width='28' class='ionicon-fill-none'/><path stroke-linecap='round' stroke-linejoin='round' stroke-width='28' d='M256 149l40 40-40 40' class='ionicon-fill-none'/><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const refreshCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh Circle</title><path d='M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm94 219a94 94 0 11-94-94h4.21l-24-24L256 129.2l59.8 59.8-59.8 59.8-19.8-19.8 27.92-27.92c-2.4-.08-5.12-.08-8.12-.08a66 66 0 1066 66v-14h28z'/></svg>\"\nexport const refreshOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh</title><path d='M320 146s24.36-12-64-12a160 160 0 10160 160' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 58l80 80-80 80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const refreshSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Refresh</title><path d='M320 146s24.36-12-64-12a160 160 0 10160 160' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M256 58l80 80-80 80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const reload = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload</title><path d='M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z'/></svg>\"\nexport const reloadCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 182.15a8.62 8.62 0 01-8.62 8.62h-59.54a8.61 8.61 0 01-6.09-14.71l22.17-22.17-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25A16 16 0 11368 295.8a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5 14.68-14.68a8.44 8.44 0 016-2.54 8.61 8.61 0 018.68 8.63z'/></svg>\"\nexport const reloadCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M341.54 197.85l-11.37-13.23a103.37 103.37 0 1022.71 105.84' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M367.32 162a8.44 8.44 0 00-6 2.54l-59.54 59.54a8.61 8.61 0 006.09 14.71h59.54a8.62 8.62 0 008.62-8.62v-59.56a8.61 8.61 0 00-8.68-8.63z'/></svg>\"\nexport const reloadCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 190.77h-89l36.88-36.88-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25l5.37-15.13 30.17 10.67-5.3 15.13a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5L376 149.81z'/></svg>\"\nexport const reloadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload</title><path d='M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z'/></svg>\"\nexport const reloadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reload</title><path d='M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M464 68.45V220a4 4 0 01-4 4H308.45a4 4 0 01-2.83-6.83L457.17 65.62a4 4 0 016.83 2.83z'/></svg>\"\nexport const remove = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const removeCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224H176a16 16 0 010-32h160a16 16 0 010 32z'/></svg>\"\nexport const removeCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M336 256H176' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const removeCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224H160v-32h192z'/></svg>\"\nexport const removeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const removeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove</title><path stroke-linecap='square' stroke-linejoin='round' d='M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const reorderFour = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Four</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='44' d='M102 304h308M102 208h308M102 112h308M102 400h308' class='ionicon-fill-none'/></svg>\"\nexport const reorderFourOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Four</title><path stroke-linecap='round' stroke-linejoin='round' d='M96 304h320M96 208h320M96 112h320M96 400h320' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const reorderFourSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Four</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='44' d='M102 304h308M102 208h308M102 112h308M102 400h308' class='ionicon-fill-none'/></svg>\"\nexport const reorderThree = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Three</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='44' d='M102 256h308M102 176h308M102 336h308' class='ionicon-fill-none'/></svg>\"\nexport const reorderThreeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Three</title><path stroke-linecap='round' stroke-linejoin='round' d='M96 256h320M96 176h320M96 336h320' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const reorderThreeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Three</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='44' d='M102 256h308M102 176h308M102 336h308' class='ionicon-fill-none'/></svg>\"\nexport const reorderTwo = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Two</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='44' d='M118 304h276M118 208h276' class='ionicon-fill-none'/></svg>\"\nexport const reorderTwoOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Two</title><path stroke-linecap='round' stroke-linejoin='round' d='M112 304h288M112 208h288' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const reorderTwoSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Two</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='44' d='M118 304h276M118 208h276' class='ionicon-fill-none'/></svg>\"\nexport const repeat = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Repeat</title><path stroke-linecap='round' stroke-linejoin='round' d='M320 120l48 48-48 48' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 168H144a80.24 80.24 0 00-80 80v16M192 392l-48-48 48-48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 344h208a80.24 80.24 0 0080-80v-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const repeatOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Repeat</title><path stroke-linecap='round' stroke-linejoin='round' d='M320 120l48 48-48 48' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 168H144a80.24 80.24 0 00-80 80v16M192 392l-48-48 48-48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M160 344h208a80.24 80.24 0 0080-80v-16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const repeatSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Repeat</title><path stroke-linecap='square' stroke-miterlimit='10' d='M320 120l48 48-48 48' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M352 168H64v96M192 392l-48-48 48-48' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M160 344h288v-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const resize = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Resize</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const resizeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Resize</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const resizeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Resize</title><path stroke-linecap='square' stroke-miterlimit='10' d='M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const restaurant = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Restaurant</title><path d='M357.57 223.94a79.48 79.48 0 0056.58-23.44l77-76.95c6.09-6.09 6.65-16 .85-22.39a16 16 0 00-23.17-.56l-68.63 68.58a12.29 12.29 0 01-17.37 0c-4.79-4.78-4.53-12.86.25-17.64l68.33-68.33a16 16 0 00-.56-23.16A15.62 15.62 0 00440.27 56a16.71 16.71 0 00-11.81 4.9l-68.27 68.26a12.29 12.29 0 01-17.37 0c-4.78-4.78-4.53-12.86.25-17.64l68.33-68.31a16 16 0 00-.56-23.16A15.62 15.62 0 00400.26 16a16.73 16.73 0 00-11.81 4.9L311.5 97.85a79.49 79.49 0 00-23.44 56.59v8.23a16 16 0 01-4.69 11.33l-35.61 35.62a4 4 0 01-5.66 0L68.82 36.33a16 16 0 00-22.58-.06C31.09 51.28 23 72.47 23 97.54c-.1 41.4 21.66 89 56.79 124.08l85.45 85.45A64.79 64.79 0 00211 326a64 64 0 0016.21-2.08 16.24 16.24 0 014.07-.53 15.93 15.93 0 0110.83 4.25l11.39 10.52a16.12 16.12 0 014.6 11.23v5.54a47.73 47.73 0 0013.77 33.65l90.05 91.57.09.1a53.29 53.29 0 0075.36-75.37L302.39 269.9a4 4 0 010-5.66L338 228.63a16 16 0 0111.32-4.69z'/><path d='M211 358a97.32 97.32 0 01-68.36-28.25l-13.86-13.86a8 8 0 00-11.3 0l-85 84.56c-15.15 15.15-20.56 37.45-13.06 59.29a30.63 30.63 0 001.49 3.6C31 484 50.58 496 72 496a55.68 55.68 0 0039.64-16.44L225 365.66a4.69 4.69 0 001.32-3.72v-.26a4.63 4.63 0 00-5.15-4.27A97.09 97.09 0 01211 358z'/></svg>\"\nexport const restaurantOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Restaurant</title><path d='M57.49 47.74l368.43 368.43a37.28 37.28 0 010 52.72h0a37.29 37.29 0 01-52.72 0l-90-91.55a32 32 0 01-9.2-22.43v-5.53a32 32 0 00-9.52-22.78l-11.62-10.73a32 32 0 00-29.8-7.44h0a48.53 48.53 0 01-46.56-12.63l-85.43-85.44C40.39 159.68 21.74 83.15 57.49 47.74z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M400 32l-77.25 77.25A64 64 0 00304 154.51v14.86a16 16 0 01-4.69 11.32L288 192M320 224l11.31-11.31a16 16 0 0111.32-4.69h14.86a64 64 0 0045.26-18.75L480 112M440 72l-80 80M200 368l-99.72 100.28a40 40 0 01-56.56 0h0a40 40 0 010-56.56L128 328' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const restaurantSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Restaurant</title><path d='M342.7 223.94h14.87a79.48 79.48 0 0056.58-23.44L496 118l-22.22-22.4-83.58 83.58-17.37-17.37 83.58-83.59-23-22.31-83.27 83.26-17.32-17.37 83.58-83.59L394 16l-82.5 81.85a79.49 79.49 0 00-23.44 56.59v14.86l-43.13 43.13L48 16C3.72 70.87 29.87 171.71 79.72 221.57l85.5 85.5c26.55 26.55 31.82 28.92 61.94 16.8 6.49-2.61 8.85-2.32 14.9 3.72l13 12.13c2.93 3 3 3.88 3 9.62v5.54c0 21.08 13.48 33.2 22.36 42.24L384 496l72-72-156.43-156.93z'/><path d='M227.37 354.59c-29.82 6.11-48.11 11.74-83.08-23.23-.56-.56-1.14-1.1-1.7-1.66l-19.5-19.5L16 416l80 80 144-144z'/></svg>\"\nexport const returnDownBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Back</title><path stroke-linecap='round' stroke-linejoin='round' d='M112 352l-64-64 64-64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 288h294c58.76 0 106-49.33 106-108v-20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnDownBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Back</title><path stroke-linecap='round' stroke-linejoin='round' d='M112 352l-64-64 64-64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 288h294c58.76 0 106-49.33 106-108v-20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnDownBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Back</title><path stroke-linecap='square' stroke-miterlimit='10' d='M112 352l-64-64 64-64' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M64 288h400V160' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnDownForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Forward</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 352l64-64-64-64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 288H154c-58.76 0-106-49.33-106-108v-20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnDownForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Forward</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 352l64-64-64-64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 288H154c-58.76 0-106-49.33-106-108v-20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnDownForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Down Forward</title><path stroke-linecap='square' stroke-miterlimit='10' d='M400 352l64-64-64-64' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M448 288H48V160' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpBack = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Back</title><path stroke-linecap='round' stroke-linejoin='round' d='M112 160l-64 64 64 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 224h294c58.76 0 106 49.33 106 108v20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpBackOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Back</title><path stroke-linecap='round' stroke-linejoin='round' d='M112 160l-64 64 64 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 224h294c58.76 0 106 49.33 106 108v20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpBackSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Back</title><path stroke-linecap='square' stroke-miterlimit='10' d='M112 160l-64 64 64 64' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M64 224h400v128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpForward = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Forward</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 160l64 64-64 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 224H154c-58.76 0-106 49.33-106 108v20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpForwardOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Forward</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 160l64 64-64 64' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 224H154c-58.76 0-106 49.33-106 108v20' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const returnUpForwardSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Return Up Forward</title><path stroke-linecap='square' stroke-miterlimit='10' d='M400 160l64 64-64 64' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M448 224H48v128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ribbon = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ribbon</title><path d='M269 335.61q-6.33.47-12.78.47c-5.23 0-10.4-.24-15.51-.69a176.11 176.11 0 01-127.67-72.94 4 4 0 00-6.77.35l-72 129.4c-2.74 5-3.17 11-.28 15.88A16.78 16.78 0 0048.22 416h78a15.28 15.28 0 0113.62 7.33L178.5 488a16.26 16.26 0 0013.75 8c5.94-.33 12.09-4.19 14.56-9.6l66.11-145.15a4 4 0 00-3.92-5.64zM477.64 391.88l-71.53-129.17a4 4 0 00-6.74-.36 176.5 176.5 0 01-78.31 61.42 16.09 16.09 0 00-8.72 8.25l-36.86 81.1a7.92 7.92 0 000 6.6l30.27 66.59c2.45 5.41 8.59 9.36 14.52 9.69a16.3 16.3 0 0013.7-8.12l38.53-64.58c2.89-4.85 8.13-7.33 13.78-7.3h78.77c6.67 0 11.72-3.48 14-10a16.92 16.92 0 00-1.41-14.12z'/><ellipse cx='256.26' cy='160' rx='48.01' ry='48'/><path d='M256.26 16c-79.42 0-144 64.59-144 144s64.61 144 144 144 144-64.6 144-144-64.59-144-144-144zm0 224a80 80 0 1180-80 80.1 80.1 0 01-80 80z'/></svg>\"\nexport const ribbonOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ribbon</title><circle cx='256' cy='160' r='128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M143.65 227.82L48 400l86.86-.42a16 16 0 0113.82 7.8L192 480l88.33-194.32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M366.54 224L464 400l-86.86-.42a16 16 0 00-13.82 7.8L320 480l-64-140.8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='160' r='64' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ribbonSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ribbon</title><path d='M256 336c-5.22 0-10.4-.24-15.51-.69a176.12 176.12 0 01-131.29-78.37L20 416h115l58 96 82.53-177.09A177.53 177.53 0 01256 336zM403 256.74a176.9 176.9 0 01-88.18 69.14L273.7 415.5 319 512l58-96h115z'/><circle cx='256.02' cy='160' r='48'/><path d='M256 16c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144S335.4 16 256 16zm0 224a80 80 0 1180-80 80.09 80.09 0 01-80 80z'/></svg>\"\nexport const rocket = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rocket</title><path d='M328.85 156.79a26.69 26.69 0 1018.88 7.81 26.6 26.6 0 00-18.88-7.81z'/><path d='M477.44 50.06a.29.29 0 010-.09 20.4 20.4 0 00-15.13-15.3c-29.8-7.27-76.68.48-128.63 21.28-52.36 21-101.42 52-134.58 85.22A320.7 320.7 0 00169.55 175c-22.33-1-42 2.18-58.57 9.41-57.74 25.41-74.23 90.44-78.62 117.14a25 25 0 0027.19 29h.13l64.32-7.02c.08.82.17 1.57.24 2.26a34.36 34.36 0 009.9 20.72l31.39 31.41a34.27 34.27 0 0020.71 9.91l2.15.23-7 64.24v.13A25 25 0 00206 480a25.25 25.25 0 004.15-.34C237 475.34 302 459.05 327.34 401c7.17-16.46 10.34-36.05 9.45-58.34a314.78 314.78 0 0033.95-29.55c33.43-33.26 64.53-81.92 85.31-133.52 20.69-51.36 28.48-98.59 21.39-129.53zM370.38 224.94a58.77 58.77 0 110-83.07 58.3 58.3 0 010 83.07z'/><path d='M161.93 386.44a16 16 0 00-11 2.67c-6.39 4.37-12.81 8.69-19.29 12.9-13.11 8.52-28.79-6.44-21-20l12.15-21a16 16 0 00-15.16-24.91A61.25 61.25 0 0072 353.56c-3.66 3.67-14.79 14.81-20.78 57.26A357.94 357.94 0 0048 447.59 16 16 0 0064 464h.4a359.87 359.87 0 0036.8-3.2c42.47-6 53.61-17.14 57.27-20.8a60.49 60.49 0 0017.39-35.74 16 16 0 00-13.93-17.82z'/></svg>\"\nexport const rocketOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rocket</title><path d='M461.81 53.81a4.4 4.4 0 00-3.3-3.39c-54.38-13.3-180 34.09-248.13 102.17a294.9 294.9 0 00-33.09 39.08c-21-1.9-42-.3-59.88 7.5-50.49 22.2-65.18 80.18-69.28 105.07a9 9 0 009.8 10.4l81.07-8.9a180.29 180.29 0 001.1 18.3 18.15 18.15 0 005.3 11.09l31.39 31.39a18.15 18.15 0 0011.1 5.3 179.91 179.91 0 0018.19 1.1l-8.89 81a9 9 0 0010.39 9.79c24.9-4 83-18.69 105.07-69.17 7.8-17.9 9.4-38.79 7.6-59.69a293.91 293.91 0 0039.19-33.09c68.38-68 115.47-190.86 102.37-247.95zM298.66 213.67a42.7 42.7 0 1160.38 0 42.65 42.65 0 01-60.38 0z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M109.64 352a45.06 45.06 0 00-26.35 12.84C65.67 382.52 64 448 64 448s65.52-1.67 83.15-19.31A44.73 44.73 0 00160 402.32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const rocketSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rocket</title><path d='M477.64 38.26a4.75 4.75 0 00-3.55-3.66c-58.57-14.32-193.9 36.71-267.22 110a317 317 0 00-35.63 42.1c-22.61-2-45.22-.33-64.49 8.07C52.38 218.7 36.55 281.14 32.14 308a9.64 9.64 0 0010.55 11.2l87.31-9.63a194.1 194.1 0 001.19 19.7 19.53 19.53 0 005.7 12L170.7 375a19.59 19.59 0 0012 5.7 193.53 193.53 0 0019.59 1.19l-9.58 87.2a9.65 9.65 0 0011.2 10.55c26.81-4.3 89.36-20.13 113.15-74.5 8.4-19.27 10.12-41.77 8.18-64.27a317.66 317.66 0 0042.21-35.64C441 232.05 491.74 99.74 477.64 38.26zM294.07 217.93a48 48 0 1167.86 0 47.95 47.95 0 01-67.86 0z'/><path d='M168.4 399.43c-5.48 5.49-14.27 7.63-24.85 9.46-23.77 4.05-44.76-16.49-40.49-40.52 1.63-9.11 6.45-21.88 9.45-24.88a4.37 4.37 0 00-3.65-7.45 60 60 0 00-35.13 17.12C50.22 376.69 48 464 48 464s87.36-2.22 110.87-25.75A59.69 59.69 0 00176 403.09c.37-4.18-4.72-6.67-7.6-3.66z'/></svg>\"\nexport const rose = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rose</title><path d='M429.55 119.49a16 16 0 00-17.06-7.1c-18.64 4.19-37.06 9-54.73 14.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.29C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.33 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13a16 16 0 001.01-18.44zM219 119.55C168.46 92.08 101.46 80.69 98.63 80.22A16 16 0 0081 90.55a16.47 16.47 0 003.79 16.84c31.84 33.78 32.86 68.79 28.65 104.63a4.45 4.45 0 002.5 4.54 4.44 4.44 0 005.08-.9c16.39-16.51 36.37-31.52 60.4-45.39l4.48-2.6C208 154.8 216.23 150 236 140.41l2.69-1.3a4 4 0 00.64-6.83A178.59 178.59 0 00219 119.55zM234.26 91.45c3.44 1.87 7.09 4 10.9 6.29a189.31 189.31 0 0129.57 22.39 4 4 0 004.28.76 672 672 0 0169.65-25q7-2.07 14.08-4a4 4 0 002.53-5.62c-8.27-16.83-14.67-28.9-15.15-29.79A16 16 0 00336 48c-1.91 0-33.28.36-76.87 21.3a279 279 0 00-26.39 14.51 4 4 0 00.22 6.94zM209.33 60.79c7.3-4.77 14.74-9.22 22.25-13.31a2 2 0 00.24-3.36c-26-19.57-49.73-27-51.15-27.42a16 16 0 00-17.56 5.82 217.63 217.63 0 00-19.28 32.38 2 2 0 001.29 2.81c13.61 3.57 29.4 8.29 45.61 14.29a2 2 0 001.79-.2z'/></svg>\"\nexport const roseOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rose</title><path d='M416 128c-18.9 4.25-36.8 8.94-53.7 13.95-40.5 12-75.5 27.15-105.4 41.65-19.3 9.37-26.2 13.51-51.5 28.23-58.4 33.69-93.4 77.4-93.4 142.81C112 428.55 167.6 480 256 480s144-55.81 144-129.72S339 225.24 416 128z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M264 180.19c-19.69-27-38.2-38.69-52.7-46.59C162.6 107.1 96 96 96 96c41.5 43.7 37.2 90.1 32 128 0 0-3.87 32.88 1.91 58.41' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M372 139.15C356.55 102.6 336 64 336 64s-63.32 0-135.69 64M253.48 87.57C221.25 45.81 176 32 176 32c-15.3 20.8-28.79 51.58-34.87 74.17' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const roseSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Rose</title><path d='M448 112s-17.62 0-30.51 1.39c-19 2-42.06 8-59.73 13.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.3C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.32 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13C432.75 132.62 448 112 448 112zM219 119.55C168.47 92.08 104.72 80 80 80c0 0 23.23 28.19 29.15 55.4s6.54 48.61 2.91 88.6c17.94-20.48 40.59-37.15 69.32-53.73l4.48-2.6C208 154.8 216.23 150 236 140.41c2.88-1.4 5.74-2.76 8.58-4.11A170.77 170.77 0 00219 119.55zM345.25 48s-42.53.36-86.12 21.3a280.36 280.36 0 00-32.27 18.27q3.73 1.89 7.4 3.88c3.44 1.87 7.09 4 10.9 6.29a189.7 189.7 0 0131.46 24.16c24.57-10.41 73-26.1 90.77-31.28-8-19.15-22.14-42.62-22.14-42.62zM176 16c-16 10.83-33.24 41.1-33.24 41.1a494.22 494.22 0 0148.92 15.25l17.65-11.56c8.18-5.35 16.55-10.29 25-14.77C234.31 46 202.59 24.17 176 16z'/></svg>\"\nexport const sad = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sad</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-23.67 149.83c12-40.3 50.2-69.83 95.62-69.83s83.62 29.53 95.71 69.83a8 8 0 01-7.82 10.17H168.15a8 8 0 01-7.82-10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z'/></svg>\"\nexport const sadOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sad</title><circle cx='184' cy='232' r='24'/><path d='M256 288c45.42 0 83.62 29.53 95.71 69.83a8 8 0 01-7.87 10.17H168.15a8 8 0 01-7.82-10.17C172.32 317.53 210.53 288 256 288z'/><circle cx='328' cy='232' r='24'/><circle cx='256' cy='256' r='208' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const sadSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sad</title><path d='M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72 80c45.42 0 83.75 29.49 95.72 69.83 1 3.52 2.33 10.17 2.33 10.17H158s1.31-6.69 2.33-10.17C172.11 317.47 210.53 288 256 288z'/></svg>\"\nexport const save = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Save</title><path d='M465.94 119.76l-73.7-73.7A47.68 47.68 0 00358.3 32H96a64 64 0 00-64 64v320a64 64 0 0064 64h320a64 64 0 0064-64V153.7a47.68 47.68 0 00-14.06-33.94zM120 112h176a8 8 0 018 8v48a8 8 0 01-8 8H120a8 8 0 01-8-8v-48a8 8 0 018-8zm139.75 319.91a80 80 0 1176.16-76.16 80.06 80.06 0 01-76.16 76.16z'/><circle cx='256' cy='352' r='48'/></svg>\"\nexport const saveOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Save</title><path d='M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const saveSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Save</title><path d='M380.44 32H64a32 32 0 00-32 32v384a32 32 0 0032 32h384a32.09 32.09 0 0032-32V131.56zM112 176v-64h192v64zm223.91 179.76a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z'/></svg>\"\nexport const scale = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scale</title><path d='M368 32H144A112.12 112.12 0 0032 144v224a112.12 112.12 0 00112 112h224a112.12 112.12 0 00112-112V144A112.12 112.12 0 00368 32zm36.21 178l-33.32 39.21A41.76 41.76 0 01339 264.05a42.32 42.32 0 01-22.29-6.38c-14.22-8.78-36.3-19.25-60.69-19.25s-46.47 10.47-60.69 19.25a41.86 41.86 0 01-54.2-8.46L107.79 210a50.48 50.48 0 014.49-70.27c27.84-25.35 75.37-55.57 143.72-55.57s115.88 30.22 143.72 55.57a50.48 50.48 0 014.49 70.27z'/></svg>\"\nexport const scaleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scale</title><rect x='48' y='48' width='416' height='416' rx='96' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M388.94 151.56c-24.46-22.28-68.72-51.4-132.94-51.4s-108.48 29.12-132.94 51.4a34.66 34.66 0 00-3.06 48.08l33.32 39.21a26.07 26.07 0 0033.6 5.21c15.92-9.83 40.91-21.64 69.1-21.64s53.18 11.81 69.1 21.64a26.07 26.07 0 0033.6-5.21L392 199.64a34.66 34.66 0 00-3.06-48.08z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const scaleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scale</title><path d='M432 32H80a48.05 48.05 0 00-48 48v352a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V80a48.05 48.05 0 00-48-48zm-16.71 165l-52.46 61.73a27.83 27.83 0 01-37.65 4.62c-13-9.29-39.27-24.89-69.18-24.89s-56.18 15.6-69.18 24.89a27.84 27.84 0 01-37.65-4.62L96.71 197a32.12 32.12 0 01.42-42c18.93-21.31 72.3-70.87 158.87-70.87S395.94 133.72 414.87 155a32.12 32.12 0 01.42 42z'/></svg>\"\nexport const scan = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan</title><path d='M342 444h46a56 56 0 0056-56v-46M444 170v-46a56 56 0 00-56-56h-46M170 444h-46a56 56 0 01-56-56v-46M68 170v-46a56 56 0 0156-56h46' stroke-linecap='round' stroke-linejoin='round' stroke-width='44' class='ionicon-fill-none'/></svg>\"\nexport const scanCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-40 320h-28a44.05 44.05 0 01-44-44v-28a16 16 0 0132 0v28a12 12 0 0012 12h28a16 16 0 010 32zm0-192h-28a12 12 0 00-12 12v28a16 16 0 01-32 0v-28a44.05 44.05 0 0144-44h28a16 16 0 010 32zm152 148a44.05 44.05 0 01-44 44h-28a16 16 0 010-32h28a12 12 0 0012-12v-28a16 16 0 0132 0zm0-108a16 16 0 01-32 0v-28a12 12 0 00-12-12h-28a16 16 0 010-32h28a44.05 44.05 0 0144 44z'/></svg>\"\nexport const scanCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M296 352h28a28 28 0 0028-28v-28M352 216v-28a28 28 0 00-28-28h-28M216 352h-28a28 28 0 01-28-28v-28M160 216v-28a28 28 0 0128-28h28' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const scanCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-24 320h-44a44.05 44.05 0 01-44-44v-44h32v44a12 12 0 0012 12h44zm0-192h-44a12 12 0 00-12 12v44h-32v-44a44.05 44.05 0 0144-44h44zm136 148a44.05 44.05 0 01-44 44h-44v-32h44a12 12 0 0012-12v-44h32zm0-92h-32v-44a12 12 0 00-12-12h-44v-32h44a44.05 44.05 0 0144 44z'/></svg>\"\nexport const scanOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan</title><path d='M336 448h56a56 56 0 0056-56v-56M448 176v-56a56 56 0 00-56-56h-56M176 448h-56a56 56 0 01-56-56v-56M64 176v-56a56 56 0 0156-56h56' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const scanSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Scan</title><path d='M388 466h-68v-44h68a34 34 0 0034-34v-68h44v68a78.09 78.09 0 01-78 78zM466 192h-44v-68a34 34 0 00-34-34h-68V46h68a78.09 78.09 0 0178 78zM192 466h-68a78.09 78.09 0 01-78-78v-68h44v68a34 34 0 0034 34h68zM90 192H46v-68a78.09 78.09 0 0178-78h68v44h-68a34 34 0 00-34 34z'/></svg>\"\nexport const school = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>School</title><path d='M256 368a16 16 0 01-7.94-2.11L108 285.84a8 8 0 00-12 6.94V368a16 16 0 008.23 14l144 80a16 16 0 0015.54 0l144-80a16 16 0 008.23-14v-75.22a8 8 0 00-12-6.94l-140.06 80.05A16 16 0 01256 368z'/><path d='M495.92 190.5v-.11a16 16 0 00-8-12.28l-224-128a16 16 0 00-15.88 0l-224 128a16 16 0 000 27.78l224 128a16 16 0 0015.88 0L461 221.28a2 2 0 013 1.74v144.53c0 8.61 6.62 16 15.23 16.43A16 16 0 00496 368V192a14.76 14.76 0 00-.08-1.5z'/></svg>\"\nexport const schoolOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>School</title><path stroke-linecap='round' stroke-linejoin='round' d='M32 192L256 64l224 128-224 128L32 192z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M112 240v128l144 80 144-80V240M480 368V192M256 320v128' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const schoolSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>School</title><path d='M256 370.43L96 279v98.42l160 88.88 160-88.88V279l-160 91.43z'/><path d='M512.25 192L256 45.57-.25 192 256 338.43l208-118.86V384h48V192.14l.25-.14z'/></svg>\"\nexport const search = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M456.69 421.39L362.6 327.3a173.81 173.81 0 0034.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 00327.3 362.6l94.09 94.09a25 25 0 0035.3-35.3zM97.92 222.72a124.8 124.8 0 11124.8 124.8 124.95 124.95 0 01-124.8-124.8z'/></svg>\"\nexport const searchCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search Circle</title><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm91.31 283.31a16 16 0 01-22.62 0l-42.84-42.83a88.08 88.08 0 1122.63-22.63l42.83 42.84a16 16 0 010 22.62z'/><circle cx='232' cy='232' r='56'/></svg>\"\nexport const searchCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search Circle</title><path d='M256 80a176 176 0 10176 176A176 176 0 00256 80z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M232 160a72 72 0 1072 72 72 72 0 00-72-72z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M283.64 283.64L336 336' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const searchCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search Circle</title><path d='M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm80 294.63l-54.15-54.15a88.08 88.08 0 1122.63-22.63L358.63 336z'/><circle cx='232' cy='232' r='56'/></svg>\"\nexport const searchOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M338.29 338.29L448 448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const searchSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z'/></svg>\"\nexport const send = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Send</title><path d='M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z'/></svg>\"\nexport const sendOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Send</title><path d='M470.3 271.15L43.16 447.31a7.83 7.83 0 01-11.16-7V327a8 8 0 016.51-7.86l247.62-47c17.36-3.29 17.36-28.15 0-31.44l-247.63-47a8 8 0 01-6.5-7.85V72.59c0-5.74 5.88-10.26 11.16-8L470.3 241.76a16 16 0 010 29.39z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const sendSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Send</title><path d='M16 464l480-208L16 48v160l320 48-320 48z'/></svg>\"\nexport const server = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Server</title><path d='M256 428c-52.35 0-111.39-11.61-157.93-31-17.07-7.19-31.69-18.82-43.64-28a4 4 0 00-6.43 3.18v12.58c0 28.07 23.49 53.22 66.14 70.82C152.29 471.33 202.67 480 256 480s103.7-8.67 141.86-24.42C440.51 438 464 412.83 464 384.76v-12.58a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 28-46.54 19.39-105.57 31-157.92 31zM464 126.51c-.81-27.65-24.18-52.4-66-69.85C359.74 40.76 309.34 32 256 32s-103.74 8.76-141.91 24.66c-41.78 17.41-65.15 42.11-66 69.69L48 144c0 6.41 5.2 16.48 14.63 24.73 11.13 9.73 27.65 19.33 47.78 27.73C153.24 214.36 207.67 225 256 225s102.76-10.68 145.59-28.58c20.13-8.4 36.65-18 47.78-27.73C458.8 160.49 464 150.42 464 144z'/><path d='M413.92 226c-46.53 19.43-105.57 31-157.92 31s-111.39-11.57-157.93-31c-17.07-7.15-31.69-18.79-43.64-28a4 4 0 00-6.43 3.22V232c0 6.41 5.2 14.48 14.63 22.73 11.13 9.74 27.65 19.33 47.78 27.74C153.24 300.34 207.67 311 256 311s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 246.47 464 238.41 464 232v-30.78a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.96z'/><path d='M413.92 312c-46.54 19.41-105.57 31-157.92 31s-111.39-11.59-157.93-31c-17.07-7.17-31.69-18.81-43.64-28a4 4 0 00-6.43 3.2V317c0 6.41 5.2 14.47 14.62 22.71 11.13 9.74 27.66 19.33 47.79 27.74C153.24 385.32 207.66 396 256 396s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 331.44 464 323.37 464 317v-29.8a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.98z'/></svg>\"\nexport const serverOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Server</title><ellipse cx='256' cy='128' rx='192' ry='80' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M448 214c0 44.18-86 80-192 80S64 258.18 64 214M448 300c0 44.18-86 80-192 80S64 344.18 64 300' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 127.24v257.52C64 428.52 150 464 256 464s192-35.48 192-79.24V127.24' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const serverSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Server</title><path d='M409.43 389.87C362 410 305.4 421.05 256 421.05s-105.87-11.3-153.44-31.18S48 353.16 48 353.16v38.2c0 31.15 18 43.64 67.32 64.35C153.13 471.59 203.18 480 256 480s102.87-8.41 140.68-24.29C446 435 464 422.51 464 391.36v-38.2s-7.14 16.59-54.57 36.71zM63.69 173.22c11.23 9.84 27.82 19.49 48 27.92 42.48 17.76 96.45 28.37 144.36 28.37s101.88-10.61 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 6.06-5.31 10.85-10.12 13.47-12.85a8 8 0 002.22-5.54v-26.16c-.84-28.79-24.71-54.41-67.21-72.14C358.83 40.71 308.84 32 256 32s-102.83 8.71-140.74 24.53C72.85 74.22 49 99.78 48.05 128.5v26.33a8 8 0 002.21 5.54c2.58 2.73 7.36 7.54 13.43 12.85z'/><path d='M409.43 221.91C365 241 305.4 253.09 256 253.09s-108.87-12.27-153.43-31.18S48 185.2 48 185.2v47.36c.08 7.52 5.5 16.2 15.69 25.13 11.24 9.84 27.82 19.5 48 27.92C154.12 303.38 208.09 314 256 314s101.88-10.6 144.36-28.37c20.13-8.42 36.72-18.08 47.95-27.92 10.25-9 15.68-17.71 15.69-25.27V185.2s-10.13 17.62-54.57 36.71z'/><path d='M409.43 306.38C362 326 305.4 337.56 256 337.56s-109.87-12.8-153.43-31.18S48 269.67 48 269.67v46.25c0 7.55 5.44 16.28 15.69 25.26 11.23 9.84 27.81 19.5 48 27.92 42.48 17.77 96.44 28.37 144.36 28.37s101.88-10.6 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 10.19-8.93 15.61-17.61 15.69-25.13v-46.38s-7.18 17.09-54.62 36.71z'/></svg>\"\nexport const settings = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Settings</title><circle cx='256' cy='256' r='48'/><path d='M470.39 300l-.47-.38-31.56-24.75a16.11 16.11 0 01-6.1-13.33v-11.56a16 16 0 016.11-13.22L469.92 212l.47-.38a26.68 26.68 0 005.9-34.06l-42.71-73.9a1.59 1.59 0 01-.13-.22A26.86 26.86 0 00401 92.14l-.35.13-37.1 14.93a15.94 15.94 0 01-14.47-1.29q-4.92-3.1-10-5.86a15.94 15.94 0 01-8.19-11.82l-5.59-39.59-.12-.72A27.22 27.22 0 00298.76 26h-85.52a26.92 26.92 0 00-26.45 22.39l-.09.56-5.57 39.67a16 16 0 01-8.13 11.82 175.21 175.21 0 00-10 5.82 15.92 15.92 0 01-14.43 1.27l-37.13-15-.35-.14a26.87 26.87 0 00-32.48 11.34l-.13.22-42.77 73.95a26.71 26.71 0 005.9 34.1l.47.38 31.56 24.75a16.11 16.11 0 016.1 13.33v11.56a16 16 0 01-6.11 13.22L42.08 300l-.47.38a26.68 26.68 0 00-5.9 34.06l42.71 73.9a1.59 1.59 0 01.13.22 26.86 26.86 0 0032.45 11.3l.35-.13 37.07-14.93a15.94 15.94 0 0114.47 1.29q4.92 3.11 10 5.86a15.94 15.94 0 018.19 11.82l5.56 39.59.12.72A27.22 27.22 0 00213.24 486h85.52a26.92 26.92 0 0026.45-22.39l.09-.56 5.57-39.67a16 16 0 018.18-11.82c3.42-1.84 6.76-3.79 10-5.82a15.92 15.92 0 0114.43-1.27l37.13 14.95.35.14a26.85 26.85 0 0032.48-11.34 2.53 2.53 0 01.13-.22l42.71-73.89a26.7 26.7 0 00-5.89-34.11zm-134.48-40.24a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z'/></svg>\"\nexport const settingsOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Settings</title><path d='M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const settingsSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Settings</title><path d='M256 176a80 80 0 1080 80 80.24 80.24 0 00-80-80zm172.72 80a165.53 165.53 0 01-1.64 22.34l48.69 38.12a11.59 11.59 0 012.63 14.78l-46.06 79.52a11.64 11.64 0 01-14.14 4.93l-57.25-23a176.56 176.56 0 01-38.82 22.67l-8.56 60.78a11.93 11.93 0 01-11.51 9.86h-92.12a12 12 0 01-11.51-9.53l-8.56-60.78A169.3 169.3 0 01151.05 393L93.8 416a11.64 11.64 0 01-14.14-4.92L33.6 331.57a11.59 11.59 0 012.63-14.78l48.69-38.12A174.58 174.58 0 0183.28 256a165.53 165.53 0 011.64-22.34l-48.69-38.12a11.59 11.59 0 01-2.63-14.78l46.06-79.52a11.64 11.64 0 0114.14-4.93l57.25 23a176.56 176.56 0 0138.82-22.67l8.56-60.78A11.93 11.93 0 01209.94 26h92.12a12 12 0 0111.51 9.53l8.56 60.78A169.3 169.3 0 01361 119l57.2-23a11.64 11.64 0 0114.14 4.92l46.06 79.52a11.59 11.59 0 01-2.63 14.78l-48.69 38.12a174.58 174.58 0 011.64 22.66z'/></svg>\"\nexport const shapes = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shapes</title><path d='M336 336H32a16 16 0 01-14-23.81l152-272a16 16 0 0127.94 0l152 272A16 16 0 01336 336z'/><path d='M336 160a161.07 161.07 0 00-32.57 3.32l74.47 133.27A48 48 0 01336 368H183.33A160 160 0 10336 160z'/></svg>\"\nexport const shapesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shapes</title><path stroke-linejoin='round' d='M336 320H32L184 48l152 272zM265.32 194.51A144 144 0 11192 320' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shapesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shapes</title><path d='M363.27 336H4.73L184 16z'/><path d='M336 160a160.54 160.54 0 00-32.55 3.36l87.75 157L417.81 368H183.36C203.8 432.85 264.49 480 336 480c88.22 0 160-71.78 160-160s-71.78-160-160-160z'/></svg>\"\nexport const share = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share</title><path d='M376 176H272v145a16 16 0 01-32 0V176H136a56.06 56.06 0 00-56 56v192a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V232a56.06 56.06 0 00-56-56zM272 86.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 86.63V176h32z'/></svg>\"\nexport const shareOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share</title><path d='M336 192h40a40 40 0 0140 40v192a40 40 0 01-40 40H136a40 40 0 01-40-40V232a40 40 0 0140-40h40M336 128l-80-80-80 80M256 321V48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shareSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share</title><path d='M272 176v161h-32V176H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V188a12 12 0 00-12-12zM272 92.63l64 64L358.63 134 256 31.37 153.37 134 176 156.63l64-64V176h32V92.63z'/></svg>\"\nexport const shareSocial = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share Social</title><path d='M384 336a63.78 63.78 0 00-46.12 19.7l-148-83.27a63.85 63.85 0 000-32.86l148-83.27a63.8 63.8 0 10-15.73-27.87l-148 83.27a64 64 0 100 88.6l148 83.27A64 64 0 10384 336z'/></svg>\"\nexport const shareSocialOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share Social</title><circle cx='128' cy='256' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='112' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='384' cy='400' r='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M169.83 279.53l172.34 96.94M342.17 135.53l-172.34 96.94' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shareSocialSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Share Social</title><path d='M378 324a69.78 69.78 0 00-48.83 19.91L202 272.41a69.68 69.68 0 000-32.82l127.13-71.5A69.76 69.76 0 10308.87 129l-130.13 73.2a70 70 0 100 107.56L308.87 383A70 70 0 10378 324z'/></svg>\"\nexport const shield = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield</title><path d='M479.07 111.35a16 16 0 00-13.15-14.75C379.89 81.18 343.69 69.12 266 34.16c-7.76-2.89-12.57-2.84-20 0-77.69 35-113.89 47-199.92 62.44a16 16 0 00-13.15 14.75c-3.85 61.1 4.34 118 24.36 169.15a348.86 348.86 0 0071.43 112.41c44.67 47.43 94.2 75.12 119.74 85.6a20 20 0 0015.11 0c27-10.92 74.69-37.82 119.71-85.62a348.86 348.86 0 0071.43-112.39c20.02-51.14 28.21-108.05 24.36-169.15z'/></svg>\"\nexport const shieldCheckmark = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Checkmark</title><path d='M479.07 111.36a16 16 0 00-13.15-14.74c-86.5-15.52-122.61-26.74-203.33-63.2a16 16 0 00-13.18 0C168.69 69.88 132.58 81.1 46.08 96.62a16 16 0 00-13.15 14.74c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73a16 16 0 0012 0c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-131 75.11l-110.8 128a16 16 0 01-11.41 5.53h-.66a16 16 0 01-11.2-4.57l-49.2-48.2a16 16 0 1122.4-22.86l37 36.29 99.7-115.13a16 16 0 0124.2 20.94z'/></svg>\"\nexport const shieldCheckmarkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Checkmark</title><path stroke-linecap='round' stroke-linejoin='round' d='M336 176L225.2 304 176 255.8' class='ionicon-fill-none ionicon-stroke-width'/><path d='M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shieldCheckmarkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Checkmark</title><path d='M479.07 111.36l-.79-12.53-12.36-2.21c-86.5-15.52-122.61-26.74-203.33-63.2l-6.59-3-6.59 3C168.69 69.88 132.58 81.1 46.08 96.62l-12.36 2.21-.79 12.53c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73l6 2.41 6-2.41c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-252.91 216L153.37 256l22.4-22.86 48.47 47.49 110.13-127.2 24.2 20.94z'/></svg>\"\nexport const shieldHalf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Half</title><path d='M48.9 112.37C138.32 96.33 175.29 84.45 256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464c-15.42-6.21-223.3-94.87-207.1-351.63z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48c80.71 36.45 117.68 48.33 207.1 64.37C479.3 369.13 271.42 457.79 256 464z'/></svg>\"\nexport const shieldHalfOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Half</title><path d='M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464z'/></svg>\"\nexport const shieldHalfSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield Half</title><path d='M256 32C174 69.06 121.38 86.46 32 96c0 77.59 5.27 133.36 25.29 184.51a348.86 348.86 0 0071.43 112.41c49.6 52.66 104.17 80.4 127.28 87.08 23.11-6.68 77.68-34.42 127.28-87.08a348.86 348.86 0 0071.43-112.41C474.73 229.36 480 173.59 480 96c-89.38-9.54-142-26.94-224-64zm161.47 233.93a309.18 309.18 0 01-63.31 99.56C316 406 276.65 428.31 256 437.36V75.8c38.75 17 68.73 28.3 97.93 36.89a613.12 613.12 0 0085.6 18.52c-1.72 60.22-8.36 99.69-22.06 134.72z'/></svg>\"\nexport const shieldOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield</title><path d='M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shieldSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shield</title><path d='M256 32C174 69.06 121.38 86.46 32 96c0 77.59 5.27 133.36 25.29 184.51a348.86 348.86 0 0071.43 112.41c49.6 52.66 104.17 80.4 127.28 87.08 23.11-6.68 77.68-34.42 127.28-87.08a348.86 348.86 0 0071.43-112.41C474.73 229.36 480 173.59 480 96c-89.38-9.54-142-26.94-224-64z'/></svg>\"\nexport const shirt = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shirt</title><path d='M256 96c33.08 0 60.71-25.78 64-58 .3-3-3-6-6-6a13 13 0 00-4.74.9c-.2.08-21.1 8.1-53.26 8.1s-53.1-8-53.26-8.1a16.21 16.21 0 00-5.3-.9h-.06a5.69 5.69 0 00-5.38 6c3.35 32.16 31 58 64 58z'/><path d='M485.29 89.9L356 44.64a4 4 0 00-5.27 3.16 96 96 0 01-189.38 0 4 4 0 00-5.35-3.16L26.71 89.9A16 16 0 0016.28 108l16.63 88a16 16 0 0013.92 12.9l48.88 5.52a8 8 0 017.1 8.19l-7.33 240.9a16 16 0 009.1 14.94A17.49 17.49 0 00112 480h288a17.49 17.49 0 007.42-1.55 16 16 0 009.1-14.94l-7.33-240.9a8 8 0 017.1-8.19l48.88-5.52a16 16 0 0013.92-12.9l16.63-88a16 16 0 00-10.43-18.1z'/></svg>\"\nexport const shirtOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shirt</title><path d='M314.56 48s-22.78 8-58.56 8-58.56-8-58.56-8a31.94 31.94 0 00-10.57 1.8L32 104l16.63 88 48.88 5.52a24 24 0 0121.29 24.58L112 464h288l-6.8-241.9a24 24 0 0121.29-24.58l48.88-5.52L480 104 325.13 49.8a31.94 31.94 0 00-10.57-1.8zM333.31 52.66a80 80 0 01-154.62 0' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shirtSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shirt</title><path d='M256 42c-33.88 0-64-10-64-10v2a64 64 0 00128 0v-2s-30.12 10-64 10z'/><path d='M352 44c-5.49 47.76-46.79 85-96 85s-90.51-37.24-96-85L16 94l18 114 61.71 7.42c7.08.9 7.1.9 7.1 8.19L96 480h320l-6.81-256.39c-.21-7-.21-7 7.1-8.19L478 208l18-114z'/></svg>\"\nexport const shuffle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shuffle</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 304l48 48-48 48M400 112l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416M416 160h-53.19a80 80 0 00-66.56 35.62L288 208' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shuffleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shuffle</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 304l48 48-48 48M400 112l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256' class='ionicon-fill-none ionicon-stroke-width'/><path d='M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416M416 160h-53.19a80 80 0 00-66.56 35.62L288 208' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const shuffleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Shuffle</title><path stroke-linecap='square' stroke-miterlimit='10' d='M400 304l48 48-48 48M400 112l48 48-48 48M64 352h128l60-92' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M64 160h128l128 192h96M416 160h-96l-32 48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const skull = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Skull</title><path d='M402 76.94C362.61 37.63 310.78 16 256 16h-.37A208 208 0 0048 224v100.67A79.62 79.62 0 0098.29 399l23.71 9.42a15.92 15.92 0 019.75 11.72l10 50.13A32.09 32.09 0 00173.12 496H184a8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01224 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01320 448v40a8 8 0 008 8h10.88a32.09 32.09 0 0031.38-25.72l10-50.14a16 16 0 019.74-11.72l23.71-9.42A79.62 79.62 0 00464 324.67v-99c0-56-22-108.81-62-148.73zM171.66 335.88a56 56 0 1152.22-52.22 56 56 0 01-52.22 52.22zM281 397.25a16.37 16.37 0 01-9.3 2.75h-31.4a16.37 16.37 0 01-9.28-2.75 16 16 0 01-6.6-16.9l15.91-47.6C243 326 247.25 321 254 320.13c8.26-1 14 2.87 17.61 12.22l16 48a16 16 0 01-6.61 16.9zm66.68-61.37a56 56 0 1152.22-52.22 56 56 0 01-52.24 52.22z'/></svg>\"\nexport const skullOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Skull</title><path d='M448 225.64v99a64 64 0 01-40.23 59.42l-23.68 9.47A32 32 0 00364.6 417l-10 50.14A16 16 0 01338.88 480H173.12a16 16 0 01-15.69-12.86L147.4 417a32 32 0 00-19.49-23.44l-23.68-9.47A64 64 0 0164 324.67V224c0-105.92 85.77-191.81 191.65-192S448 119.85 448 225.64z' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='168' cy='280' r='40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='344' cy='280' r='40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 336l-16 48h32l-16-48zM256 448v32M208 448v32M304 448v32' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const skullSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Skull</title><path d='M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1156-56 56.06 56.06 0 01-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1156-56 56.06 56.06 0 01-56 56zm104 32z'/></svg>\"\nexport const snow = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Snow</title><path d='M461 349l-34-19.64a89.53 89.53 0 0120.94-16 22 22 0 00-21.28-38.51 133.62 133.62 0 00-38.55 32.1L300 256l88.09-50.86a133.46 133.46 0 0038.55 32.1 22 22 0 1021.28-38.51 89.74 89.74 0 01-20.94-16l34-19.64A22 22 0 10439 125l-34 19.63a89.74 89.74 0 01-3.42-26.15A22 22 0 00380 96h-.41a22 22 0 00-22 21.59 133.61 133.61 0 008.5 49.41L278 217.89V116.18a133.5 133.5 0 0047.07-17.33 22 22 0 00-22.71-37.69A89.56 89.56 0 01278 71.27V38a22 22 0 00-44 0v33.27a89.56 89.56 0 01-24.36-10.11 22 22 0 10-22.71 37.69A133.5 133.5 0 00234 116.18v101.71L145.91 167a133.61 133.61 0 008.52-49.43 22 22 0 00-22-21.59H132a22 22 0 00-21.59 22.41 89.74 89.74 0 01-3.41 26.19L73 125a22 22 0 10-22 38.1l34 19.64a89.74 89.74 0 01-20.94 16 22 22 0 1021.28 38.51 133.62 133.62 0 0038.55-32.1L212 256l-88.09 50.86a133.62 133.62 0 00-38.55-32.1 22 22 0 10-21.28 38.51 89.74 89.74 0 0120.94 16L51 349a22 22 0 1022 38.1l34-19.63a89.74 89.74 0 013.42 26.15A22 22 0 00132 416h.41a22 22 0 0022-21.59 133.61 133.61 0 00-8.5-49.41L234 294.11v101.71a133.5 133.5 0 00-47.07 17.33 22 22 0 1022.71 37.69A89.56 89.56 0 01234 440.73V474a22 22 0 0044 0v-33.27a89.56 89.56 0 0124.36 10.11 22 22 0 0022.71-37.69A133.5 133.5 0 00278 395.82V294.11L366.09 345a133.61 133.61 0 00-8.52 49.43 22 22 0 0022 21.59h.43a22 22 0 0021.59-22.41 89.74 89.74 0 013.41-26.19l34 19.63A22 22 0 10461 349z'/></svg>\"\nexport const snowOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Snow</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 32v448M313.72 80A111.47 111.47 0 01256 96a111.47 111.47 0 01-57.72-16M198.28 432a112.11 112.11 0 01115.44 0M449.99 144L62.01 368M437.27 218a112.09 112.09 0 01-57.71-100M74.73 294a112.09 112.09 0 0157.71 100M62.01 144l387.98 224M74.73 218a112.09 112.09 0 0057.71-100M437.27 294a112.09 112.09 0 00-57.71 100' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const snowSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Snow</title><path d='M447.88 313.27l19.25-10.64-21.28-38.51-19.25 10.64a133.42 133.42 0 00-38.54 32.1L300 256l88.07-50.86a133.42 133.42 0 0038.54 32.1l19.25 10.64 21.28-38.51-19.25-10.64a89.27 89.27 0 01-20.93-16L480 152.05 458 114l-53 30.58a89.07 89.07 0 01-3.42-26.15l.41-22-44-.82-.41 22a133.62 133.62 0 008.49 49.39L278 217.89V116.18a133.52 133.52 0 0047.06-17.33L343.9 87.5l-22.71-37.69-18.84 11.35A89.5 89.5 0 01278 71.27V16h-44v55.27a89.5 89.5 0 01-24.35-10.11l-18.84-11.35L168.1 87.5l18.84 11.35A133.52 133.52 0 00234 116.18v101.71L145.93 167a133.62 133.62 0 008.53-49.43l-.41-22-44 .82.41 22a89.07 89.07 0 01-3.42 26.15L54 114l-22 38.1 53.05 30.64a89.27 89.27 0 01-20.93 16l-19.25 10.63 21.28 38.51 19.25-10.64a133.42 133.42 0 0038.54-32.1L212 256l-88.07 50.86a133.42 133.42 0 00-38.54-32.1l-19.24-10.64-21.28 38.51 19.25 10.64a89.27 89.27 0 0120.93 16L32 360l22 38.1 53.05-30.63a89.07 89.07 0 013.42 26.15l-.41 22 44 .82.41-22a133.62 133.62 0 00-8.54-49.44L234 294.11v101.71a133.52 133.52 0 00-47.06 17.33L168.1 424.5l22.71 37.69 18.84-11.35A89.5 89.5 0 01234 440.73V496h44v-55.27a89.5 89.5 0 0124.35 10.11l18.84 11.35 22.71-37.69-18.84-11.35A133.52 133.52 0 00278 395.82V294.11L366.07 345a133.62 133.62 0 00-8.53 49.43l.41 22 44-.82-.41-22a89.07 89.07 0 013.46-26.19l53 30.63L480 360l-53-30.69a89.27 89.27 0 0120.88-16.04z'/></svg>\"\nexport const sparkles = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sparkles</title><path d='M208 512a24.84 24.84 0 01-23.34-16l-39.84-103.6a16.06 16.06 0 00-9.19-9.19L32 343.34a25 25 0 010-46.68l103.6-39.84a16.06 16.06 0 009.19-9.19L184.66 144a25 25 0 0146.68 0l39.84 103.6a16.06 16.06 0 009.19 9.19l103 39.63a25.49 25.49 0 0116.63 24.1 24.82 24.82 0 01-16 22.82l-103.6 39.84a16.06 16.06 0 00-9.19 9.19L231.34 496A24.84 24.84 0 01208 512zm66.85-254.84zM88 176a14.67 14.67 0 01-13.69-9.4l-16.86-43.84a7.28 7.28 0 00-4.21-4.21L9.4 101.69a14.67 14.67 0 010-27.38l43.84-16.86a7.31 7.31 0 004.21-4.21L74.16 9.79A15 15 0 0186.23.11a14.67 14.67 0 0115.46 9.29l16.86 43.84a7.31 7.31 0 004.21 4.21l43.84 16.86a14.67 14.67 0 010 27.38l-43.84 16.86a7.28 7.28 0 00-4.21 4.21l-16.86 43.84A14.67 14.67 0 0188 176zM400 256a16 16 0 01-14.93-10.26l-22.84-59.37a8 8 0 00-4.6-4.6l-59.37-22.84a16 16 0 010-29.86l59.37-22.84a8 8 0 004.6-4.6l22.67-58.95a16.45 16.45 0 0113.17-10.57 16 16 0 0116.86 10.15l22.84 59.37a8 8 0 004.6 4.6l59.37 22.84a16 16 0 010 29.86l-59.37 22.84a8 8 0 00-4.6 4.6l-22.84 59.37A16 16 0 01400 256z'/></svg>\"\nexport const sparklesOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sparkles</title><path d='M259.92 262.91L216.4 149.77a9 9 0 00-16.8 0l-43.52 113.14a9 9 0 01-5.17 5.17L37.77 311.6a9 9 0 000 16.8l113.14 43.52a9 9 0 015.17 5.17l43.52 113.14a9 9 0 0016.8 0l43.52-113.14a9 9 0 015.17-5.17l113.14-43.52a9 9 0 000-16.8l-113.14-43.52a9 9 0 01-5.17-5.17zM108 68L88 16 68 68 16 88l52 20 20 52 20-52 52-20-52-20zM426.67 117.33L400 48l-26.67 69.33L304 144l69.33 26.67L400 240l26.67-69.33L496 144l-69.33-26.67z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const sparklesSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sparkles</title><path d='M208 512l-52.38-139.62L16 320l139.62-52.38L208 128l52.38 139.62L400 320l-139.62 52.38zM88 176l-23.57-64.43L0 88l64.43-23.57L88 0l23.57 64.43L176 88l-64.43 23.57zM400 256l-31.11-80.89L288 144l80.89-31.11L400 32l31.11 80.89L512 144l-80.89 31.11z'/></svg>\"\nexport const speedometer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Speedometer</title><path d='M425.7 118.25A240 240 0 0076.32 447l.18.2c.33.35.64.71 1 1.05.74.84 1.58 1.79 2.57 2.78a41.17 41.17 0 0060.36-.42 157.13 157.13 0 01231.26 0 41.18 41.18 0 0060.65.06l3.21-3.5.18-.2a239.93 239.93 0 00-10-328.76zM240 128a16 16 0 0132 0v32a16 16 0 01-32 0zM128 304H96a16 16 0 010-32h32a16 16 0 010 32zm48.8-95.2a16 16 0 01-22.62 0l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 010 22.62zm149.3 23.1l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14zm31.72-23.1a16 16 0 01-22.62-22.62l22.62-22.63a16 16 0 0122.63 22.63zm65.88 227.6zM416 304h-32a16 16 0 010-32h32a16 16 0 010 32z'/></svg>\"\nexport const speedometerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Speedometer</title><path d='M326.1 231.9l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14z'/><path d='M256 64C132.3 64 32 164.2 32 287.9a223.18 223.18 0 0056.3 148.5c1.1 1.2 2.1 2.4 3.2 3.5a25.19 25.19 0 0037.1-.1 173.13 173.13 0 01254.8 0 25.19 25.19 0 0037.1.1l3.2-3.5A223.18 223.18 0 00480 287.9C480 164.2 379.7 64 256 64z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M256 128v32M416 288h-32M128 288H96M165.49 197.49l-22.63-22.63M346.51 197.49l22.63-22.63' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const speedometerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Speedometer</title><path d='M256 48C123.46 48 16 156.55 16 290.56a243.3 243.3 0 0060.32 160.87c1.18 1.3 2.25 2.6 3.43 3.79C89.2 464 92.07 464 99.57 464s12.43 0 19.93-8.88C152 416.64 202 400 256 400s104.07 16.71 136.5 55.12C400 464 404.82 464 412.43 464s11.3 0 19.82-8.78c1.22-1.25 2.25-2.49 3.43-3.79A243.3 243.3 0 00496 290.56C496 156.55 388.54 48 256 48zm-16 64h32v64h-32zm-96 192H80v-32h64zm21.49-83.88l-45.25-45.26 22.62-22.62 45.26 45.25zM278.6 307.4a31 31 0 01-7 7 30.11 30.11 0 01-35-49L320 224zm45.28-109.91l45.26-45.25 22.62 22.62-45.25 45.26zM432 304h-64v-32h64z'/></svg>\"\nexport const square = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Square</title><path d='M416 464H96a48.05 48.05 0 01-48-48V96a48.05 48.05 0 0148-48h320a48.05 48.05 0 0148 48v320a48.05 48.05 0 01-48 48z'/></svg>\"\nexport const squareOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Square</title><path d='M416 448H96a32.09 32.09 0 01-32-32V96a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v320a32.09 32.09 0 01-32 32z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const squareSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Square</title><path d='M48 48h416v416H48z'/></svg>\"\nexport const star = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star</title><path d='M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z'/></svg>\"\nexport const starHalf = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star Half</title><path d='M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48v316L118 464l54-160-140-96h172l52-160z'/></svg>\"\nexport const starHalfOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star Half</title><path d='M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 48v316L118 464l54-160-140-96h172l52-160z'/></svg>\"\nexport const starHalfSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star Half</title><path d='M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3zM274.63 347.82L256 334.49v-200.1l26 78.91 7.24 22h105.39l-67.32 47.2-19.69 13.81 7.78 22.75 26.26 76.75z'/></svg>\"\nexport const starOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star</title><path d='M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const starSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Star</title><path d='M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3z'/></svg>\"\nexport const statsChart = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stats Chart</title><path d='M104 496H72a24 24 0 01-24-24V328a24 24 0 0124-24h32a24 24 0 0124 24v144a24 24 0 01-24 24zM328 496h-32a24 24 0 01-24-24V232a24 24 0 0124-24h32a24 24 0 0124 24v240a24 24 0 01-24 24zM440 496h-32a24 24 0 01-24-24V120a24 24 0 0124-24h32a24 24 0 0124 24v352a24 24 0 01-24 24zM216 496h-32a24 24 0 01-24-24V40a24 24 0 0124-24h32a24 24 0 0124 24v432a24 24 0 01-24 24z'/></svg>\"\nexport const statsChartOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stats Chart</title><rect x='64' y='320' width='48' height='160' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='288' y='224' width='48' height='256' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='400' y='112' width='48' height='368' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='176' y='32' width='48' height='448' rx='8' ry='8' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const statsChartSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stats Chart</title><path d='M128 496H48V304h80zM352 496h-80V208h80zM464 496h-80V96h80zM240 496h-80V16h80z'/></svg>\"\nexport const stop = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop</title><path d='M392 432H120a40 40 0 01-40-40V120a40 40 0 0140-40h272a40 40 0 0140 40v272a40 40 0 01-40 40z'/></svg>\"\nexport const stopCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 262.4a25.62 25.62 0 01-25.6 25.6H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6z'/></svg>\"\nexport const stopCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M310.4 336H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6v108.8a25.62 25.62 0 01-25.6 25.6z'/></svg>\"\nexport const stopCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288H176V176h160z'/></svg>\"\nexport const stopOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop</title><rect x='96' y='96' width='320' height='320' rx='24' ry='24' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const stopSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stop</title><path d='M80 80h352v352H80z'/></svg>\"\nexport const stopwatch = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stopwatch</title><circle cx='256' cy='272' r='16'/><path d='M280 81.5V72a24 24 0 00-48 0v9.5a191 191 0 00-84.43 32.13L137 103a24 24 0 00-34 34l8.6 8.6A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V152a16 16 0 0132 0v74.75A48 48 0 01256 320z'/></svg>\"\nexport const stopwatchOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stopwatch</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 232v-80' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M256 88V72M132 132l-12-12' class='ionicon-fill-none'/><circle cx='256' cy='272' r='32' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 96a176 176 0 10176 176A176 176 0 00256 96z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const stopwatchSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Stopwatch</title><path d='M280 81.5V48h-48v33.5a191 191 0 00-84.43 32.13L120 86l-34 34 25.59 25.59A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V136h32v90.75A48 48 0 01256 320z'/></svg>\"\nexport const storefront = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Storefront</title><path d='M480 448h-12a4 4 0 01-4-4V273.51a4 4 0 00-5.24-3.86 104.92 104.92 0 01-28.32 4.78c-1.18 0-2.3.05-3.4.05a108.22 108.22 0 01-52.85-13.64 8.23 8.23 0 00-8 0 108.18 108.18 0 01-52.84 13.64 106.11 106.11 0 01-52.46-13.79 8.21 8.21 0 00-8.09 0 108.14 108.14 0 01-53.16 13.8 106.19 106.19 0 01-52.77-14 8.25 8.25 0 00-8.16 0 106.19 106.19 0 01-52.77 14c-1.09 0-2.19 0-3.37-.05h-.06a104.91 104.91 0 01-29.28-5.09 4 4 0 00-5.23 3.8V444a4 4 0 01-4 4H32.5c-8.64 0-16.1 6.64-16.48 15.28A16 16 0 0032 480h447.5c8.64 0 16.1-6.64 16.48-15.28A16 16 0 00480 448zm-256-68a4 4 0 01-4 4h-88a4 4 0 01-4-4v-64a12 12 0 0112-12h72a12 12 0 0112 12zm156 68h-72a4 4 0 01-4-4V316a12 12 0 0112-12h56a12 12 0 0112 12v128a4 4 0 01-4 4zM492.57 170.28l-42.92-98.49C438.41 47.62 412.74 32 384.25 32H127.7c-28.49 0-54.16 15.62-65.4 39.79l-42.92 98.49c-9 19.41 2.89 39.34 2.9 39.35l.28.45c.49.78 1.36 2 1.89 2.78.05.06.09.13.14.2l5 6.05a7.45 7.45 0 00.6.65l5 4.83.42.36a69.65 69.65 0 009.39 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31l.33-.31a7.94 7.94 0 0110.89 0l.33.31a77.3 77.3 0 00104.46 0 8 8 0 0110.87 0 77.31 77.31 0 00104.21.23 7.88 7.88 0 0110.71 0 76.81 76.81 0 0052.31 20.08h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l1.74-2.63q.26-.4.48-.84c1.66-3.38 10.56-20.76 2.35-38.42z'/></svg>\"\nexport const storefrontOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Storefront</title><path stroke-linecap='round' stroke-linejoin='round' d='M448 448V240M64 240v208M382.47 48H129.53c-21.79 0-41.47 12-49.93 30.46L36.3 173c-14.58 31.81 9.63 67.85 47.19 69h2c31.4 0 56.85-25.18 56.85-52.23 0 27 25.46 52.23 56.86 52.23s56.8-23.38 56.8-52.23c0 27 25.45 52.23 56.85 52.23s56.86-23.38 56.86-52.23c0 28.85 25.45 52.23 56.85 52.23h1.95c37.56-1.17 61.77-37.21 47.19-69l-43.3-94.54C423.94 60 404.26 48 382.47 48zM32 464h448M136 288h80a24 24 0 0124 24v88h0-128 0v-88a24 24 0 0124-24zM288 464V312a24 24 0 0124-24h64a24 24 0 0124 24v152' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const storefrontSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Storefront</title><path d='M464 448V267.85a104.76 104.76 0 01-33.56 6.58c-1.18 0-2.3.05-3.4.05a108 108 0 01-56.86-16 108 108 0 01-56.85 16 106.16 106.16 0 01-56.51-16.2 107.84 107.84 0 01-57.2 16.2 106.14 106.14 0 01-56.85-16.42 106.14 106.14 0 01-56.85 16.42c-1.09 0-2.19 0-3.37-.05h-.06A104.66 104.66 0 0148 267.49V448H16v32h480v-32zm-240-64h-96v-76a4 4 0 014-4h88a4 4 0 014 4zm160 64h-80V308a4 4 0 014-4h72a4 4 0 014 4zM492.57 170.28L445.89 64C432 32 432 32 400 32H112c-32 0-32 0-45.94 32L19.38 170.28c-9 19.41 2.89 39.34 2.9 39.35l.41.66c.42.66 1.13 1.75 1.62 2.37.1.13.19.27.28.4l5.24 6.39 5.31 5.14.42.36a69.65 69.65 0 009.44 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31 72.38 72.38 0 005.77-6 74.18 74.18 0 005.78 6 76.08 76.08 0 0051.89 20.31c23.28 0 44.07-10 57.63-25.56a.11.11 0 01.15 0l5.66 5.26a76.09 76.09 0 0051.9 20.31c23.29 0 44.11-10 57.66-25.61 13.56 15.61 34.37 25.61 57.67 25.61h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l2-3c.9-2.04 11.21-20.3 2.57-38.89z'/></svg>\"\nexport const subway = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Subway</title><path d='M352 16H160a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h192a64.07 64.07 0 0064-64V80a64.07 64.07 0 00-64-64zM208 64h96a16 16 0 010 32h-96a16 16 0 010-32zm-32 288a32 32 0 1132-32 32 32 0 01-32 32zm160 0a32 32 0 1132-32 32 32 0 01-32 32zm48-160a16 16 0 01-16 16H144a16 16 0 01-16-16v-32a16 16 0 0116-16h224a16 16 0 0116 16zM347.31 420.69a16 16 0 00-22.62 22.62l4.68 4.69H182.63l4.68-4.69a16 16 0 00-22.62-22.62l-48 48a16 16 0 1022.62 22.62L150.63 480h210.74l11.32 11.31a16 16 0 0022.62-22.62z'/></svg>\"\nexport const subwayOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Subway</title><rect x='112' y='32' width='288' height='352' rx='48' ry='48' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M208 80h96' class='ionicon-fill-none ionicon-stroke-width'/><rect x='112' y='128' width='288' height='96' rx='32' ry='32' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='176' cy='320' r='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='336' cy='320' r='16' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M144 464h224M336 432l48 48M176 432l-48 48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const subwaySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Subway</title><path d='M392 16H120a24 24 0 00-24 24v336a24 24 0 0024 24h272a24 24 0 0024-24V40a24 24 0 00-24-24zM208 64h95.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 96h-95.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01208 64zm-28.53 287.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zm160 0a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM384 144v64H128v-64zM298 416l31.37 32H182.63L214 416h-44l-80.57 80h45.2l16-16h210.74l16 16h45.3L343 416h-45z'/></svg>\"\nexport const sunny = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sunny</title><path d='M256 118a22 22 0 01-22-22V48a22 22 0 0144 0v48a22 22 0 01-22 22zM256 486a22 22 0 01-22-22v-48a22 22 0 0144 0v48a22 22 0 01-22 22zM369.14 164.86a22 22 0 01-15.56-37.55l33.94-33.94a22 22 0 0131.11 31.11l-33.94 33.94a21.93 21.93 0 01-15.55 6.44zM108.92 425.08a22 22 0 01-15.55-37.56l33.94-33.94a22 22 0 1131.11 31.11l-33.94 33.94a21.94 21.94 0 01-15.56 6.45zM464 278h-48a22 22 0 010-44h48a22 22 0 010 44zM96 278H48a22 22 0 010-44h48a22 22 0 010 44zM403.08 425.08a21.94 21.94 0 01-15.56-6.45l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.55 37.56zM142.86 164.86a21.89 21.89 0 01-15.55-6.44l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.56 37.55zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z'/></svg>\"\nexport const sunnyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sunny</title><path stroke-linecap='round' stroke-miterlimit='10' d='M256 48v48M256 416v48M403.08 108.92l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48M96 256H48M403.08 403.08l-33.94-33.94M142.86 142.86l-33.94-33.94' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='256' r='80' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const sunnySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sunny</title><path d='M234 26h44v92h-44zM234 394h44v92h-44zM338.025 142.857l65.054-65.054 31.113 31.113-65.054 65.054zM77.815 403.074l65.054-65.054 31.113 31.113-65.054 65.054zM394 234h92v44h-92zM26 234h92v44H26zM338.029 369.14l31.112-31.113 65.054 65.054-31.112 31.112zM77.802 108.92l31.113-31.113 65.054 65.054-31.113 31.112zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z'/></svg>\"\nexport const swapHorizontal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Horizontal</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const swapHorizontalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Horizontal</title><path stroke-linecap='round' stroke-linejoin='round' d='M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const swapHorizontalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Horizontal</title><path stroke-linecap='square' stroke-miterlimit='10' d='M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const swapVertical = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Vertical</title><path stroke-linecap='round' stroke-linejoin='round' d='M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const swapVerticalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Vertical</title><path stroke-linecap='round' stroke-linejoin='round' d='M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const swapVerticalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Swap Vertical</title><path stroke-linecap='square' stroke-miterlimit='10' d='M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const sync = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync</title><path d='M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M32 256l44-44 46 44M480 256l-44 44-46-44' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const syncCircle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm83.69 282.65a112.24 112.24 0 01-195-61.29 16 16 0 01-20.13-24.67l23.6-23.6a16 16 0 0122.37-.25l24.67 23.6a16 16 0 01-18 26 80.25 80.25 0 00138.72 38.83 16 16 0 0123.77 21.41zm47.76-63.34l-23.6 23.6a16 16 0 01-22.37.25l-24.67-23.6a16 16 0 0117.68-26.11A80.17 80.17 0 00196 202.64a16 16 0 11-23.82-21.37 112.17 112.17 0 01194.88 61.57 16 16 0 0120.39 24.47z'/></svg>\"\nexport const syncCircleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync Circle</title><path d='M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M351.82 271.87v-16A96.15 96.15 0 00184.09 192m-24.2 48.17v16A96.22 96.22 0 00327.81 320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M135.87 256l23.59-23.6 24.67 23.6M376.13 256l-23.59 23.6-24.67-23.6' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const syncCircleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync Circle</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm0 320a112.19 112.19 0 01-111.27-98.23l-8.86 8.86L113.24 256l46-46 47.55 45.48-22.12 23.12-7.2-6.88a80.26 80.26 0 00138.48 37.5l23.77 21.41A112.82 112.82 0 01256 368zm96.79-66l-47.55-45.5 22.12-23.12 6.86 6.55A80.2 80.2 0 00196 202.64l-23.82-21.37A112.18 112.18 0 01367 242.49l9.11-9.12L398.76 256z'/></svg>\"\nexport const syncOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync</title><path d='M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M32 256l44-44 46 44M480 256l-44 44-46-44' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const syncSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Sync</title><path d='M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M32 256l44-44 46 44M480 256l-44 44-46-44' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const tabletLandscape = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Landscape</title><path d='M512 128v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64zM32 384a32 32 0 0032 32h384a32 32 0 0032-32V128a32 32 0 00-32-32H64a32 32 0 00-32 32z'/><path d='M0 128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128m480 256V128a32 32 0 00-32-32H64a32 32 0 00-32 32v256a32 32 0 0032 32h384a32 32 0 0032-32m-16 0a16 16 0 01-16 16H64a16 16 0 01-16-16V128a16 16 0 0116-16h384a16 16 0 0116 16v256z'/></svg>\"\nexport const tabletLandscapeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Landscape</title><rect x='80' y='16' width='352' height='480' rx='48' ry='48' transform='rotate(-90 256 256)' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const tabletLandscapeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Landscape</title><path d='M0 82v348a18 18 0 0018 18h476a18 18 0 0018-18V82a18 18 0 00-18-18H18A18 18 0 000 82zm448 330H64V100h384z'/></svg>\"\nexport const tabletPortrait = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Portrait</title><path d='M384 512H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64zM128 32a32 32 0 00-32 32v384a32 32 0 0032 32h256a32 32 0 0032-32V64a32 32 0 00-32-32z'/><path d='M384 0a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256M128 480h256a32 32 0 0032-32V64a32 32 0 00-32-32H128a32 32 0 00-32 32v384a32 32 0 0032 32m0-16a16 16 0 01-16-16V64a16 16 0 0116-16h256a16 16 0 0116 16v384a16 16 0 01-16 16z'/></svg>\"\nexport const tabletPortraitOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Portrait</title><rect x='80' y='16' width='352' height='480' rx='48' ry='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const tabletPortraitSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tablet Portrait</title><path d='M430 0H82a18 18 0 00-18 18v476a18 18 0 0018 18h348a18 18 0 0018-18V18a18 18 0 00-18-18zM100 448V64h312v384z'/></svg>\"\nexport const telescope = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Telescope</title><path d='M107.56 250a16 16 0 00-21.85-5.86L36 272.81a39.71 39.71 0 00-18.8 24.91 40.9 40.9 0 004.55 30.35l4.36 7.54a40 40 0 0054.62 14.62l49.67-28.63a16 16 0 005.87-21.86z'/><path d='M382.84 440.8L288.72 254a2 2 0 01.79-2.63l8.3-4.79a16 16 0 005.86-21.86l-47.53-82.33a16 16 0 00-21.86-5.87l-86.38 49.8a39.73 39.73 0 00-18.65 24.28 34.82 34.82 0 00-1.37 9.76c.06 7.6 9.2 22.7 18.12 38.28 9.59 16.75 19.24 33.88 26.34 38.15 4.52 2.72 12.5 4.9 19.21 4.9h.84l-79.32 171.6a16 16 0 1029.05 13.42l93.68-202.65a7.94 7.94 0 013.26-3.57l19.21-11.08a2 2 0 012.78.84l93.21 185a16 16 0 0028.58-14.4zM490.21 115.74L444.09 36a40.08 40.08 0 00-54.63-14.62l-93.34 53.78a39.69 39.69 0 00-18.65 24.28 32.76 32.76 0 00-1.27 13.25c1.74 12.62 13 30.4 26.41 53.89 13.58 23.73 28.91 50.48 36.93 56.27a40.18 40.18 0 0023.18 7.37 39.77 39.77 0 0019.92-5.34L476 171.07a39.72 39.72 0 0018.79-24.84 41 41 0 00-4.58-30.49z'/></svg>\"\nexport const telescopeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Telescope</title><path stroke-linecap='round' stroke-linejoin='round' d='M39.93 327.56l-4.71-8.13A24 24 0 0144 286.64l86.87-50.07a16 16 0 0121.89 5.86l12.71 22a16 16 0 01-5.86 21.85l-86.85 50.07a24.06 24.06 0 01-32.83-8.79z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M170.68 273.72L147.12 233a24 24 0 018.8-32.78l124.46-71.75a16 16 0 0121.89 5.86l31.57 54.59a16 16 0 01-5.84 21.84L203.51 282.5a24 24 0 01-32.83-8.78zM341.85 202.21l-46.51-80.43a24 24 0 018.8-32.78l93.29-53.78A24.07 24.07 0 01430.27 44l46.51 80.43a24 24 0 01-8.8 32.79L374.69 211a24.06 24.06 0 01-32.84-8.79zM127.59 480l96.14-207.99M271.8 256.02L368.55 448' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const telescopeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Telescope</title><path d='M1.41 292.9l44.82 76.97 98.14-56.38-44.73-77.37L1.41 292.9z'/><path d='M287.87 252.34l23.67-13.81-63.42-110-132.92 77C133.75 237.51 176 310 176 310l15.53-8.32c.24-.13.55 0 .83 0L102.65 496h35.16l99.05-214.25 23.24-13.4L358 464h36zM262.08 96c24.81 42.23 60.25 104.25 86.4 148.76L510.79 151 424.07 1.41z'/></svg>\"\nexport const tennisball = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tennisball</title><path d='M448 256a192.55 192.55 0 0032-2.68A224 224 0 00258.68 32 192.55 192.55 0 00256 64c0 105.87 86.13 192 192 192zM253.35 480c.94-5.67 1.65-11.4 2.09-17.18.37-4.88.56-9.86.56-14.79 0-105.87-86.13-192-192-192a192.55 192.55 0 00-32 2.68A224 224 0 00253.35 480z'/><path d='M289.61 222.39A222.53 222.53 0 01224 64a226.07 226.07 0 012-30A224.1 224.1 0 0034 226a226.07 226.07 0 0130-2 222.53 222.53 0 01158.39 65.61A222.53 222.53 0 01288 448c0 5.74-.22 11.53-.65 17.22q-.5 6.42-1.36 12.79A224.12 224.12 0 00478 286a226.07 226.07 0 01-30 2 222.53 222.53 0 01-158.39-65.61z'/></svg>\"\nexport const tennisballOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tennisball</title><circle cx='256' cy='256' r='208' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M461.43 271.44c-5.09.37-8.24.56-13.43.56-114.88 0-208-93.12-208-208 0-5.37.2-8.69.6-14M49.65 240.56S58.84 240 64 240c114.88 0 208 93.12 208 208 0 5.38-.61 14-.61 14' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const tennisballSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tennisball</title><path d='M246.4 480a181 181 0 003.22-22.86c.35-4.61.53-9.31.53-14 0-100-81.34-181.32-181.32-181.32A181.72 181.72 0 0032 265.61 224.2 224.2 0 00246.4 480z'/><path d='M284.63 227.37A222.73 222.73 0 01219 68.83a227.09 227.09 0 012.62-34.42A224.41 224.41 0 0034.41 221.58 227.09 227.09 0 0168.83 219a222.73 222.73 0 01158.54 65.67A222.73 222.73 0 01293 443.17c0 5.74-.22 11.54-.65 17.23s-1.11 11.51-2 17.2a224.42 224.42 0 00187.24-187.18 227.09 227.09 0 01-34.42 2.58 222.73 222.73 0 01-158.54-65.63z'/><path d='M443.17 250.15a181.72 181.72 0 0036.83-3.76A224.2 224.2 0 00265.61 32a181.72 181.72 0 00-3.76 36.83c0 99.98 81.34 181.32 181.32 181.32z'/></svg>\"\nexport const terminal = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Terminal</title><path d='M432 32H80a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h352a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM96 256a16 16 0 01-10-28.49L150.39 176 86 124.49a16 16 0 1120-25l80 64a16 16 0 010 25l-80 64A16 16 0 0196 256zm160 0h-64a16 16 0 010-32h64a16 16 0 010 32z'/></svg>\"\nexport const terminalOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Terminal</title><rect x='32' y='48' width='448' height='416' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M96 112l80 64-80 64M192 240h64' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const terminalSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Terminal</title><path d='M16 44v424a12 12 0 0012 12h456a12 12 0 0012-12V44a12 12 0 00-12-12H28a12 12 0 00-12 12zm57.51 193.5l76.88-61.5-76.88-61.5 20-25 108.1 86.5L93.5 262.49zM272 256h-96v-32h96z'/></svg>\"\nexport const text = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Text</title><path d='M292.6 407.78l-120-320a22 22 0 00-41.2 0l-120 320a22 22 0 0041.2 15.44l36.16-96.42a2 2 0 011.87-1.3h122.74a2 2 0 011.87 1.3l36.16 96.42a22 22 0 0041.2-15.44zm-185.84-129l43.37-115.65a2 2 0 013.74 0l43.37 115.67a2 2 0 01-1.87 2.7h-86.74a2 2 0 01-1.87-2.7zM400.77 169.5c-41.72-.3-79.08 23.87-95 61.4a22 22 0 0040.5 17.2c8.88-20.89 29.77-34.44 53.32-34.6 32.32-.22 58.41 26.5 58.41 58.85a1.5 1.5 0 01-1.45 1.5c-21.92.61-47.92 2.07-71.12 4.8-54.75 6.44-87.43 36.29-87.43 79.85 0 23.19 8.76 44 24.67 58.68C337.6 430.93 358 438.5 380 438.5c31 0 57.69-8 77.94-23.22h.06a22 22 0 1044 .19v-143c0-56.18-45-102.56-101.23-102.97zM380 394.5c-17.53 0-38-9.43-38-36 0-10.67 3.83-18.14 12.43-24.23 8.37-5.93 21.2-10.16 36.14-11.92 21.12-2.49 44.82-3.86 65.14-4.47a2 2 0 012 2.1C455 370.1 429.46 394.5 380 394.5z'/></svg>\"\nexport const textOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Text</title><path stroke-linecap='round' stroke-linejoin='round' d='M32 415.5l120-320 120 320M230 303.5H74M326 239.5c12.19-28.69 41-48 74-48h0c46 0 80 32 80 80v144' class='ionicon-fill-none ionicon-stroke-width'/><path d='M320 358.5c0 36 26.86 58 60 58 54 0 100-27 100-106v-15c-20 0-58 1-92 5-32.77 3.86-68 19-68 58z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const textSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Text</title><path d='M404.42 170c-41.23 0-78.07 24.06-93.85 61.3L304 246.52l40.33 17.18 6.56-15.22c8.9-21 29.91-34.55 53.53-34.55 34.55 0 57.76 23.27 57.76 57.91v2.3c-22.12.59-48.65 2.05-72.27 4.84-54.52 6.43-87.06 36.23-87.06 79.72 0 23.16 8.72 44 24.56 58.59C342.28 431 362.55 438 384.51 438c30.86 0 57.5-7.33 77.67-22.64V438H506V271.84C506 212.83 463.28 170 404.42 170zm-19.91 225.07c-17.46 0-37.85-9.84-37.85-36.37 0-10.65 3.82-18.11 12.38-24.19 8.34-5.92 21.12-10.15 36-11.9 21.78-2.57 46.31-3.95 67-4.52-2.16 51.49-27.57 76.98-77.53 76.98zM93.25 325.87h125.5L260.94 438H308L155 48 4 438h47.06zM156 160.71L202.25 282h-92.5z'/></svg>\"\nexport const thermometer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thermometer</title><path d='M320 287.18V81c0-35.12-27.89-64.42-63-64.95a64.08 64.08 0 00-65 64v207.13a8 8 0 01-3.18 6.37A113.48 113.48 0 00144 384a112 112 0 00224 0 113.48 113.48 0 00-44.82-90.45 8 8 0 01-3.18-6.37zM254.07 432a48 48 0 01-22-89.54 16 16 0 008-13.84V112.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 112v216.58a16.18 16.18 0 008.15 13.94A48 48 0 01254.07 432z'/></svg>\"\nexport const thermometerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thermometer</title><path d='M307.72 302.27a8 8 0 01-3.72-6.75V80a48 48 0 00-48-48h0a48 48 0 00-48 48v215.52a8 8 0 01-3.71 6.74 97.51 97.51 0 00-44.19 86.07A96 96 0 00352 384a97.49 97.49 0 00-44.28-81.73zM256 112v272' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='384' r='48'/></svg>\"\nexport const thermometerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thermometer</title><path d='M320 291.24V80a64 64 0 10-128 0v211.24A113.39 113.39 0 00144 384a112 112 0 00224 0 113.39 113.39 0 00-48-92.76zM256 432a48 48 0 01-16-93.26V96h32v242.74A48 48 0 01256 432z'/></svg>\"\nexport const thumbsDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Down</title><path d='M39.94 178l144.16 6.12c4.61.36 23.9 1.22 23.9 25.88 0 23.8-19.16 25.33-24.14 25.88L39.94 242C27.27 241.87 16 227.56 16 210s11.27-31.87 23.94-32zm141.45 131.66L74.65 318C62 318 48 301.31 48 284.12v-.33c0-16.33 11.14-29.63 24.88-29.79l108.45 1.72C208 259 208 275.16 208 282.12c0 22.88-21.8 27.14-26.61 27.54zM90.15 32l89.37 8.93C204 41.86 208 58.18 208 68.4c0 18.39-13.41 24.6-26.67 24.6l-91 3C75.78 95.78 64 81.51 64 64s11.68-31.66 26.15-32zm-34.36 71.5l126.4 6.22c9.39.63 25.81 3 25.81 26.36 0 12-4.35 25.62-25 27.53L55.79 167.5C42.65 167.35 32 154 32 136.08s10.65-32.43 23.79-32.58z'/><path d='M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zM337.86 343.22l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z' class='ionicon-fill-none'/><path d='M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z'/><path d='M195.94 459.38C205.37 472.67 221 480 240 480a16 16 0 0014.31-8.85c3-6.06 15.25-24 28.19-42.9 18-26.33 40.35-59.08 55.23-84.81l.13-.22c20.48-35.49 30.35-54.94 33.82-62l1-2a16.48 16.48 0 015.79-5.23A15.93 15.93 0 01386 272h25.32A84.7 84.7 0 00496 187.3v-38.6A84.7 84.7 0 00411.31 64h-48.79a17.46 17.46 0 01-9.58-2.89C330 46.13 286.66 32 240 32c-7.45 0-14.19.14-20.27.38a8 8 0 00-6.2 12.68l.1.14C222.2 57.59 224 71 224 80a61.16 61.16 0 01-5.19 24.77 17.38 17.38 0 000 14.06 63.81 63.81 0 010 50.39 17.32 17.32 0 000 14 62.13 62.13 0 010 49.58 18.13 18.13 0 000 14.68A60.41 60.41 0 01224 273c0 8.2-2 21.3-8 31.18a15.66 15.66 0 00-1.14 13.65c.38 1 .76 2.06 1.13 3.17a24.8 24.8 0 01.86 11.57c-3 19.35-9.67 36.3-16.74 54.16-3.08 7.78-6.27 15.82-9.22 24.27-6.14 17.56-4.3 35.2 5.05 48.38z'/></svg>\"\nexport const thumbsDownOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Down</title><path d='M192 53.84S208 48 256 48s74 16 96 32h64a64 64 0 0164 64v48a64 64 0 01-64 64h-30a32.34 32.34 0 00-27.37 15.4S350 290.19 324 335.22 248 448 240 464c-29 0-43-22-34-47.71 10.28-29.39 23.71-54.38 27.46-87.09.54-4.78-3.14-12-8-12L96 307' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M96 241l80 2c20 1.84 32 12.4 32 30h0c0 17.6-14 28.84-32 30l-80 4c-17.6 0-32-16.4-32-34v-.17A32 32 0 0196 241zM64 176l112 2c18 .84 32 12.41 32 30h0c0 17.61-14 28.86-32 30l-112 2a32.1 32.1 0 01-32-32h0a32.1 32.1 0 0132-32zM112 48l64 3c21 1.84 32 11.4 32 29h0c0 17.6-14.4 30-32 30l-64 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32zM80 112l96 2c19 .84 32 12.4 32 30h0c0 17.6-13 28.84-32 30l-96 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const thumbsDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Down</title><path d='M56 320l156.05 12-23 89.4c-6.08 26.6.7 41.87 22.39 48.62l34.69 9.85a4 4 0 004.4-1.72l129-202.34a8 8 0 016.81-3.81H496V64H378.39a48 48 0 01-15.18-2.46l-76.3-25.43a80 80 0 00-25.3-4.11H83.68c-19 0-31.5 13.52-35.23 32.16L16 206.42V280c0 22.06 18 38 40 40z'/><path d='M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zM337.86 343.22l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z' class='ionicon-fill-none'/><path d='M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z'/></svg>\"\nexport const thumbsUp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Up</title><path d='M472.06 334l-144.16-6.13c-4.61-.36-23.9-1.21-23.9-25.87 0-23.81 19.16-25.33 24.14-25.88L472.06 270c12.67.13 23.94 14.43 23.94 32s-11.27 31.87-23.94 32zM330.61 202.33L437.35 194C450 194 464 210.68 464 227.88v.33c0 16.32-11.14 29.62-24.88 29.79l-108.45-1.73C304 253 304 236.83 304 229.88c0-22.88 21.8-27.15 26.61-27.55zM421.85 480l-89.37-8.93C308 470.14 304 453.82 304 443.59c0-18.38 13.41-24.6 26.67-24.6l91-3c14.54.23 26.32 14.5 26.32 32s-11.67 31.67-26.14 32.01zm34.36-71.5l-126.4-6.21c-9.39-.63-25.81-3-25.81-26.37 0-12 4.35-25.61 25-27.53l127.19-3.88c13.16.14 23.81 13.49 23.81 31.4s-10.65 32.43-23.79 32.58z'/><path d='M133.55 238.06A15.85 15.85 0 01126 240a15.82 15.82 0 007.51-1.92zM174.14 168.78l.13-.23-.13.23c-20.5 35.51-30.36 54.95-33.82 62 3.47-7.07 13.34-26.51 33.82-62z' class='ionicon-fill-none'/><path d='M139.34 232.84l1-2a16.27 16.27 0 01-6.77 7.25 16.35 16.35 0 005.77-5.25z'/><path d='M316.06 52.62C306.63 39.32 291 32 272 32a16 16 0 00-14.31 8.84c-3 6.07-15.25 24-28.19 42.91-18 26.33-40.35 59.07-55.23 84.8l-.13.23c-20.48 35.49-30.35 54.93-33.82 62l-1 2a16.35 16.35 0 01-5.79 5.22 15.82 15.82 0 01-7.53 2h-25.31A84.69 84.69 0 0016 324.69v38.61a84.69 84.69 0 0084.69 84.7h48.79a17.55 17.55 0 019.58 2.89C182 465.87 225.34 480 272 480c7.45 0 14.19-.14 20.27-.38a8 8 0 006.2-12.68l-.1-.14C289.8 454.41 288 441 288 432a61.2 61.2 0 015.19-24.77 17.36 17.36 0 000-14.05 63.81 63.81 0 010-50.39 17.32 17.32 0 000-14 62.15 62.15 0 010-49.59 18.13 18.13 0 000-14.68A60.33 60.33 0 01288 239c0-8.2 2-21.3 8-31.19a15.63 15.63 0 001.14-13.64c-.38-1-.76-2.07-1.13-3.17a24.84 24.84 0 01-.86-11.58c3-19.34 9.67-36.29 16.74-54.16 3.08-7.78 6.27-15.82 9.22-24.26 6.14-17.57 4.3-35.2-5.05-48.38z'/></svg>\"\nexport const thumbsUpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Up</title><path d='M320 458.16S304 464 256 464s-74-16-96-32H96a64 64 0 01-64-64v-48a64 64 0 0164-64h30a32.34 32.34 0 0027.37-15.4S162 221.81 188 176.78 264 64 272 48c29 0 43 22 34 47.71-10.28 29.39-23.71 54.38-27.46 87.09-.54 4.78 3.14 12 7.95 12L416 205' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M416 271l-80-2c-20-1.84-32-12.4-32-30h0c0-17.6 14-28.84 32-30l80-4c17.6 0 32 16.4 32 34v.17A32 32 0 01416 271zM448 336l-112-2c-18-.84-32-12.41-32-30h0c0-17.61 14-28.86 32-30l112-2a32.1 32.1 0 0132 32h0a32.1 32.1 0 01-32 32zM400 464l-64-3c-21-1.84-32-11.4-32-29h0c0-17.6 14.4-30 32-30l64-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zM432 400l-96-2c-19-.84-32-12.4-32-30h0c0-17.6 13-28.84 32-30l96-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const thumbsUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thumbs Up</title><path d='M456 192l-156-12 23-89.4c6-26.6-.78-41.87-22.47-48.6l-34.69-9.85a4 4 0 00-4.4 1.72l-129 202.34a8 8 0 01-6.81 3.81H16V448h117.61a48 48 0 0115.18 2.46l76.3 25.43a80 80 0 0025.3 4.11h177.93c19 0 31.5-13.52 35.23-32.16L496 305.58V232c0-22.06-18-38-40-40z'/></svg>\"\nexport const thunderstorm = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thunderstorm</title><path d='M96 416a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 0196 416zM120 480a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01120 480zM376 416a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 01376 416zM400 480a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01400 480z'/><path d='M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h66.31l-12.89 77.37A16 16 0 00192 416h32v64a16 16 0 0029 9.3l80-112a16 16 0 00-13-25.3h-27.51l8-32h103.84a91.56 91.56 0 001.51-183.1z'/></svg>\"\nexport const thunderstormOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thunderstorm</title><path stroke-linecap='round' stroke-linejoin='round' d='M120 352l-24 48M136 432l-16 32M400 352l-24 48M416 432l-16 32M208 304l-16 96h48v80l80-112h-48l16-64M404.33 152.89H392.2C384.71 84.85 326.14 32 256 32a136.39 136.39 0 00-128.63 90.67h-4.57c-49.94 0-90.8 40.8-90.8 90.66h0C32 263.2 72.86 304 122.8 304h281.53C446 304 480 270 480 228.44h0c0-41.55-34-75.55-75.67-75.55z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const thunderstormSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Thunderstorm</title><path d='M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h72.31L176 416h48v80l112-144h-43.51l8-32h103.84a91.56 91.56 0 001.51-183.1z'/><path d='M74.53 407.177l38.32-76.622 28.62 14.313-38.32 76.623zM98.52 471.189l30.318-60.622 28.62 14.313-30.317 60.622zM354.541 407.189l38.32-76.623 28.62 14.314-38.32 76.622zM378.542 471.2l30.317-60.622 28.62 14.314-30.317 60.621z'/></svg>\"\nexport const ticket = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ticket</title><path d='M490.18 181.4l-44.13-44.13a20 20 0 00-27-1 30.81 30.81 0 01-41.68-1.6 30.81 30.81 0 01-1.6-41.67 20 20 0 00-1-27L330.6 21.82a19.91 19.91 0 00-28.13 0l-70.35 70.34a39.87 39.87 0 00-9.57 15.5 7.71 7.71 0 01-4.83 4.83 39.78 39.78 0 00-15.5 9.58l-180.4 180.4a19.91 19.91 0 000 28.13L66 374.73a20 20 0 0027 1 30.69 30.69 0 0143.28 43.28 20 20 0 001 27l44.13 44.13a19.91 19.91 0 0028.13 0l180.4-180.4a39.82 39.82 0 009.58-15.49 7.69 7.69 0 014.84-4.84 39.84 39.84 0 0015.49-9.57l70.34-70.35a19.91 19.91 0 00-.01-28.09zm-228.37-29.65a16 16 0 01-22.63 0l-11.51-11.51a16 16 0 0122.63-22.62l11.51 11.5a16 16 0 010 22.63zm44 44a16 16 0 01-22.62 0l-11-11a16 16 0 1122.63-22.63l11 11a16 16 0 01.01 22.66zm44 44a16 16 0 01-22.63 0l-11-11a16 16 0 0122.63-22.62l11 11a16 16 0 01.05 22.67zm44.43 44.54a16 16 0 01-22.63 0l-11.44-11.5a16 16 0 1122.68-22.57l11.45 11.49a16 16 0 01-.01 22.63z'/></svg>\"\nexport const ticketOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ticket</title><path stroke-miterlimit='10' d='M366.05 146a46.7 46.7 0 01-2.42-63.42 3.87 3.87 0 00-.22-5.26l-44.13-44.18a3.89 3.89 0 00-5.5 0l-70.34 70.34a23.62 23.62 0 00-5.71 9.24h0a23.66 23.66 0 01-14.95 15h0a23.7 23.7 0 00-9.25 5.71L33.14 313.78a3.89 3.89 0 000 5.5l44.13 44.13a3.87 3.87 0 005.26.22 46.69 46.69 0 0165.84 65.84 3.87 3.87 0 00.22 5.26l44.13 44.13a3.89 3.89 0 005.5 0l180.4-180.39a23.7 23.7 0 005.71-9.25h0a23.66 23.66 0 0114.95-15h0a23.62 23.62 0 009.24-5.71l70.34-70.34a3.89 3.89 0 000-5.5l-44.13-44.13a3.87 3.87 0 00-5.26-.22 46.7 46.7 0 01-63.42-2.32z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-miterlimit='10' stroke-linecap='round' d='M250.5 140.44l-16.51-16.51M294.52 184.46l-11.01-11M338.54 228.49l-11-11.01M388.07 278.01l-16.51-16.51' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const ticketSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ticket</title><path d='M426.24 127.72l-10.94 10.94a29.67 29.67 0 01-42-42l10.94-10.94L314.52 16l-88 88-4 12.09-12.09 4L16 314.52l69.76 69.76 10.94-10.94a29.67 29.67 0 0142 42l-10.94 10.94L197.48 496l194.4-194.4 4-12.09 12.09-4 88-88zm-208.56 5.43l21.87-21.87 33 33-21.88 21.87zm43 43l21.88-21.88 32.52 32.52-21.88 21.88zm42.56 42.56l21.88-21.88 32.52 32.52-21.84 21.93zm75.57 75.56l-33-33 21.87-21.88 33 33z'/></svg>\"\nexport const time = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Time</title><path d='M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 240h-96a16 16 0 01-16-16V128a16 16 0 0132 0v128h80a16 16 0 010 32z'/></svg>\"\nexport const timeOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Time</title><path d='M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M256 128v144h96' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const timeSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Time</title><path d='M256 48C141.13 48 48 141.13 48 256c0 114.69 93.32 208 208 208 114.86 0 208-93.14 208-208 0-114.69-93.31-208-208-208zm108 240H244a4 4 0 01-4-4V116a4 4 0 014-4h24a4 4 0 014 4v140h92a4 4 0 014 4v24a4 4 0 01-4 4z'/></svg>\"\nexport const timer = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Timer</title><path d='M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm-82.33 114.34l105 71a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8-8l-71-105a8.13 8.13 0 0111.32-11.32zM256 432c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72 14.15 14.15 0 1119.64 20.37A146.53 146.53 0 00108.3 256c0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55a14.15 14.15 0 11-28.3 0V94.15A14.15 14.15 0 01256 80c97.05 0 176 79 176 176s-78.95 176-176 176z'/></svg>\"\nexport const timerOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Timer</title><path d='M112.91 128A191.85 191.85 0 0064 254c-1.18 106.35 85.65 193.8 192 194 106.2.2 192-85.83 192-192 0-104.54-83.55-189.61-187.5-192a4.36 4.36 0 00-4.5 4.37V152' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M233.38 278.63l-79-113a8.13 8.13 0 0111.32-11.32l113 79a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8.07-7.94z'/></svg>\"\nexport const timerSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Timer</title><path d='M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm0 384c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72L279 233l-19 30-125-91c-13 23-26.7 46-26.7 84 0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55h-28.3V79.89c4.24.07 8.94.11 14.15.11 97.05 0 176 79 176 176s-78.95 176-176 176z'/></svg>\"\nexport const today = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Today</title><path d='M416 64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4v-12a64 64 0 00-64-64zM477 176H35a3 3 0 00-3 3v237a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3zM224 307.43A28.57 28.57 0 01195.43 336h-70.86A28.57 28.57 0 0196 307.43v-70.86A28.57 28.57 0 01124.57 208h70.86A28.57 28.57 0 01224 236.57z'/></svg>\"\nexport const todayOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Today</title><rect stroke-linejoin='round' x='48' y='80' width='416' height='384' rx='48' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' stroke-linecap='round' d='M128 48v32M384 48v32' class='ionicon-fill-none ionicon-stroke-width'/><rect stroke-linejoin='round' stroke-linecap='round' x='112' y='224' width='96' height='96' rx='13' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' stroke-linecap='round' d='M464 160H48' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const todaySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Today</title><path d='M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm80-238.86a9.14 9.14 0 019.14-9.14h109.72a9.14 9.14 0 019.14 9.14v109.72a9.14 9.14 0 01-9.14 9.14H121.14a9.14 9.14 0 01-9.14-9.14zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z'/></svg>\"\nexport const toggle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Toggle</title><path d='M368 112H144C64.6 112 0 176.6 0 256s64.6 144 144 144h224c79.4 0 144-64.6 144-144s-64.6-144-144-144zm0 256a112 112 0 11112-112 112.12 112.12 0 01-112 112z'/></svg>\"\nexport const toggleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Toggle</title><circle cx='368' cy='256' r='128' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='16' y='128' width='480' height='256' rx='128' ry='128' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const toggleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Toggle</title><path d='M368 112H144a144 144 0 000 288h224a144 144 0 000-288zm0 230a86 86 0 1186-86 85.88 85.88 0 01-86 86z'/></svg>\"\nexport const trailSign = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trail Sign</title><path d='M491.31 324.69L432 265.37a31.8 31.8 0 00-22.63-9.37H272v-32h144a32 32 0 0032-32V96a32 32 0 00-32-32H272V48a16 16 0 00-32 0v16H102.63A31.8 31.8 0 0080 73.37l-59.31 59.32a16 16 0 000 22.62L80 214.63a31.8 31.8 0 0022.63 9.37H240v32H96a32 32 0 00-32 32v96a32 32 0 0032 32h144v48a16 16 0 0032 0v-48h137.37a31.8 31.8 0 0022.63-9.37l59.31-59.32a16 16 0 000-22.62z'/></svg>\"\nexport const trailSignOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trail Sign</title><path stroke-linecap='round' stroke-linejoin='round' d='M256 400v64M256 208v64M256 48v32M416 208H102.63a16 16 0 01-11.32-4.69L32 144l59.31-59.31A16 16 0 01102.63 80H416a16 16 0 0116 16v96a16 16 0 01-16 16zM96 400h313.37a16 16 0 0011.32-4.69L480 336l-59.31-59.31a16 16 0 00-11.32-4.69H96a16 16 0 00-16 16v96a16 16 0 0016 16z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trailSignSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trail Sign</title><path d='M502.63 336l-80-80H278v-32h170V64H278V32h-44v32H89.37l-80 80 80 80H234v32H64v160h170v64h44v-64h144.63z'/></svg>\"\nexport const train = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Train</title><ellipse cx='256' cy='304' rx='32.05' ry='31.94' transform='rotate(-45 256.001 304)'/><path d='M352 32h-15a10 10 0 01-7.87-3.78A31.94 31.94 0 00304 16h-96a32 32 0 00-26.11 13.52A6 6 0 01177 32h-17c-36.81 0-64 28.84-64 64v255c0 23.27 25.6 42.06 83 60.94a753 753 0 0073.77 19.73 16 16 0 006.46 0A753 753 0 00333 411.94c57.4-18.88 83-37.67 83-60.94V96a64 64 0 00-64-64zm-168 96h144a8 8 0 018 8v48a8 8 0 01-8 8H184a8 8 0 01-8-8v-48a8 8 0 018-8zm76.18 239.87a64 64 0 1159.69-59.69 64.07 64.07 0 01-59.69 59.69z'/><path d='M395.31 468.69L347.63 421c-6.09-6.1-16-6.66-22.38-.86a16 16 0 00-.56 23.16l4.68 4.69H182.63l4.36-4.37c6.1-6.09 6.66-16 .86-22.38a16 16 0 00-23.16-.56l-48 48a16 16 0 1022.62 22.62l11.32-11.3h210.74l11.32 11.31a16 16 0 0022.62-22.62z'/></svg>\"\nexport const trainOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Train</title><path d='M344 48h-24a16 16 0 00-16-16h-96a16 16 0 00-16 16h-24a56.16 56.16 0 00-56 56v247c0 35.3 144 65 144 65s144-29.7 144-65V104a56 56 0 00-56-56zm-88 304a48 48 0 1148-48 48 48 0 01-48 48zm96-160a16 16 0 01-16 16H176a16 16 0 01-16-16v-64a16 16 0 0116-16h160a16 16 0 0116 16zM144 464h224M336 432l48 48M176 432l-48 48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trainSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Train</title><path d='M384 32h-64a16 16 0 00-16-16h-96a16 16 0 00-16 16h-64c-16 0-32 16-32 32v288c0 23.92 160 80 160 80s160-56.74 160-80V64c0-16-16-32-32-32zM256 352a48 48 0 1148-48 48 48 0 01-48 48zm112-152a8 8 0 01-8 8H152a8 8 0 01-8-8v-80a8 8 0 018-8h208a8 8 0 018 8z'/><path d='M314 432l15.32 16H182.58L198 432l-32-13-76.62 77h45.2l16-16h210.74l16 16h45.3l-76.36-77.75L314 432z'/></svg>\"\nexport const transgender = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Transgender</title><path d='M458 32h-68a22 22 0 000 44h14.89l-59.57 59.57a149.69 149.69 0 00-178.64 0l-7.57-7.57 26.45-26.44a22 22 0 00-31.12-31.12L128 96.89 107.11 76H122a22 22 0 000-44H54a22 22 0 00-22 22v68a22 22 0 0044 0v-14.89L96.89 128l-26.42 26.42a22 22 0 1031.11 31.11L128 159.11l7.57 7.57A149.19 149.19 0 00106 256c0 82.71 67.29 150 150 150a149.2 149.2 0 0089.46-29.67L369 399.9l-26.54 26.54a22 22 0 0031.12 31.12l26.49-26.5 42.37 42.48a22 22 0 0031.16-31.08L431.17 400l26.39-26.39a22 22 0 00-31.12-31.12l-26.35 26.35-23.55-23.62a149.68 149.68 0 00-.11-178.49L436 107.11V122a22 22 0 0044 0V54a22 22 0 00-22-22zM150 256a106 106 0 11106 106 106.12 106.12 0 01-106-106z'/></svg>\"\nexport const transgenderOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Transgender</title><circle cx='256' cy='256' r='128' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M448 352l-96 96M176 80l-95.98 95.98M464 128V48h-80M48 128V48h80M464 48L346.5 165.5M48 48l117.49 117.49M464 464L346.65 346.37' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const transgenderSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Transgender</title><path d='M480 448.94l-48.94-49.08L464 366.92l-31.1-31.11-32.9 32.9-23.55-23.61a149.64 149.64 0 00-.1-178.45l59.55-59.56V144h44V32h-112v44h36.87l-59.55 59.55a149.65 149.65 0 00-178.59 0l-7.55-7.55 33-33L161 63.88l-33 33L107.09 76H144V32H32v112h44v-36.91L96.87 128l-33 33L95 192.05l33-33 7.56 7.57A149.18 149.18 0 00106 255.94c0 82.69 67.27 150 150 150a149.12 149.12 0 0089.44-29.67l23.51 23.58-33.14 33.05 31.11 31.1 33-33 48.9 49zm-330-193a106 106 0 11106 106 106.09 106.09 0 01-106-106z'/></svg>\"\nexport const trash = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash</title><path d='M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z' class='ionicon-fill-none'/><path d='M432 96h-96V72a40 40 0 00-40-40h-80a40 40 0 00-40 40v24H80a16 16 0 000 32h17l19 304.92c1.42 26.85 22 47.08 48 47.08h184c26.13 0 46.3-19.78 48-47l19-305h17a16 16 0 000-32zM192.57 416H192a16 16 0 01-16-15.43l-8-224a16 16 0 1132-1.14l8 224A16 16 0 01192.57 416zM272 400a16 16 0 01-32 0V176a16 16 0 0132 0zm32-304h-96V72a7.91 7.91 0 018-8h80a7.91 7.91 0 018 8zm32 304.57A16 16 0 01320 416h-.58A16 16 0 01304 399.43l8-224a16 16 0 1132 1.14z'/></svg>\"\nexport const trashBin = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash Bin</title><rect x='32' y='48' width='448' height='80' rx='32' ry='32'/><path d='M74.45 160a8 8 0 00-8 8.83l26.31 252.56a1.5 1.5 0 000 .22A48 48 0 00140.45 464h231.09a48 48 0 0047.67-42.39v-.21l26.27-252.57a8 8 0 00-8-8.83zm248.86 180.69a16 16 0 11-22.63 22.62L256 318.63l-44.69 44.68a16 16 0 01-22.63-22.62L233.37 296l-44.69-44.69a16 16 0 0122.63-22.62L256 273.37l44.68-44.68a16 16 0 0122.63 22.62L278.62 296z'/></svg>\"\nexport const trashBinOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash Bin</title><path d='M432 144l-28.67 275.74A32 32 0 01371.55 448H140.46a32 32 0 01-31.78-28.26L80 144' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><rect x='32' y='64' width='448' height='80' rx='16' ry='16' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M312 240L200 352M312 352L200 240' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trashBinSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash Bin</title><path d='M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z' class='ionicon-fill-none'/><path d='M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z' class='ionicon-fill-none'/><path d='M64 160l29.74 282.51A24 24 0 00117.61 464h276.78a24 24 0 0023.87-21.49L448 160zm248 217.46l-56-56-56 56L174.54 352l56-56-56-56L200 214.54l56 56 56-56L337.46 240l-56 56 56 56z'/><rect x='32' y='48' width='448' height='80' rx='12' ry='12'/></svg>\"\nexport const trashOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash</title><path d='M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M80 112h352' class='ionicon-stroke-width'/><path d='M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40M256 176v224M184 176l8 224M328 176l-8 224' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trashSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trash</title><path d='M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z' class='ionicon-fill-none'/><path d='M292 64h-72a4 4 0 00-4 4v28h80V68a4 4 0 00-4-4z' class='ionicon-fill-none'/><path d='M447.55 96H336V48a16 16 0 00-16-16H192a16 16 0 00-16 16v48H64.45L64 136h33l20.09 314A32 32 0 00149 480h214a32 32 0 0031.93-29.95L415 136h33zM176 416l-9-256h33l9 256zm96 0h-32V160h32zm24-320h-80V68a4 4 0 014-4h72a4 4 0 014 4zm40 320h-33l9-256h33z'/></svg>\"\nexport const trendingDown = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Down</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 368h112V256' class='ionicon-fill-none ionicon-stroke-width'/><path d='M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trendingDownOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Down</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 368h112V256' class='ionicon-fill-none ionicon-stroke-width'/><path d='M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trendingDownSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Down</title><path stroke-linecap='square' stroke-miterlimit='10' d='M352 368h112V256' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M48 144l144 144 96-96 160 160' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trendingUp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Up</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 144h112v112' class='ionicon-fill-none ionicon-stroke-width'/><path d='M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trendingUpOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Up</title><path stroke-linecap='round' stroke-linejoin='round' d='M352 144h112v112' class='ionicon-fill-none ionicon-stroke-width'/><path d='M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trendingUpSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trending Up</title><path stroke-linecap='square' stroke-miterlimit='10' d='M352 144h112v112' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='square' stroke-miterlimit='10' d='M48 368l144-144 96 96 160-160' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const triangle = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Triangle</title><path d='M464 464H48a16 16 0 01-14.07-23.62l208-384a16 16 0 0128.14 0l208 384A16 16 0 01464 464z'/></svg>\"\nexport const triangleOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Triangle</title><path stroke-linecap='round' stroke-linejoin='round' d='M48 448L256 64l208 384H48z' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const triangleSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Triangle</title><path d='M256 32L20 464h472L256 32z'/></svg>\"\nexport const trophy = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trophy</title><path d='M464 80h-60.1a4 4 0 01-4-4V63.92a32 32 0 00-32-31.92l-223.79.26a32 32 0 00-31.94 31.93V76a4 4 0 01-4 4H48a16 16 0 00-16 16v16c0 54.53 30 112.45 76.52 125.35a7.82 7.82 0 015.55 5.9c5.77 26.89 23.52 52.5 51.41 73.61 20.91 15.83 45.85 27.5 68.27 32.48a8 8 0 016.25 7.8V444a4 4 0 01-4 4h-59.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 480h159.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 448h-60a4 4 0 01-4-4v-86.86a8 8 0 016.25-7.8c22.42-5 47.36-16.65 68.27-32.48 27.89-21.11 45.64-46.72 51.41-73.61a7.82 7.82 0 015.55-5.9C450 224.45 480 166.53 480 112V96a16 16 0 00-16-16zM112 198.22a4 4 0 01-6 3.45c-10.26-6.11-17.75-15.37-22.14-21.89-11.91-17.69-19-40.67-19.79-63.63a4 4 0 014-4.15h40a4 4 0 014 4c-.02 27.45-.07 58.87-.07 82.22zm316.13-18.44c-4.39 6.52-11.87 15.78-22.13 21.89a4 4 0 01-6-3.46c0-26.51 0-56.63-.05-82.21a4 4 0 014-4h40a4 4 0 014 4.15c-.79 22.96-7.9 45.94-19.81 63.63z'/></svg>\"\nexport const trophyOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trophy</title><path stroke-linecap='round' stroke-linejoin='round' d='M176 464h160M256 464V336M384 224c0-50.64-.08-134.63-.12-160a16 16 0 00-16-16l-223.79.26a16 16 0 00-16 15.95c0 30.58-.13 129.17-.13 159.79 0 64.28 83 112 128 112S384 288.28 384 224z' class='ionicon-fill-none ionicon-stroke-width'/><path d='M128 96H48v16c0 55.22 33.55 112 80 112M384 96h80v16c0 55.22-33.55 112-80 112' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const trophySharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Trophy</title><path d='M399.9 80V32H112v48H32v38c0 32 9.5 62.79 26.76 86.61 13.33 18.4 34.17 31.1 52.91 37.21 5.44 29.29 20.2 57.13 50.19 79.83 22 16.66 48.45 28.87 72.14 33.86V436h-74v44h192v-44h-74v-80.49c23.69-5 50.13-17.2 72.14-33.86 30-22.7 44.75-50.54 50.19-79.83 18.74-6.11 39.58-18.81 52.91-37.21C470.5 180.79 480 150 480 118V80zM94.4 178.8c-10.68-14.68-17.17-34.4-18.24-54.8H112v67.37c-3.94-1.14-12.92-6.12-17.6-12.57zm323.2 0c-4.6 6.61-11.6 12.58-17.6 12.58 0-22.4 0-46.29-.05-67.38h35.9c-1.08 20.4-7.85 39.9-18.25 54.8z'/></svg>\"\nexport const tv = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tv</title><path d='M447.86 384H64.14A48.2 48.2 0 0116 335.86V128.14A48.2 48.2 0 0164.14 80h383.72A48.2 48.2 0 01496 128.14v207.72A48.2 48.2 0 01447.86 384z'/><path stroke-linecap='round' stroke-miterlimit='10' d='M128 416h256' class='ionicon-stroke-width'/></svg>\"\nexport const tvOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tv</title><rect x='32' y='96' width='448' height='272' rx='32.14' ry='32.14' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M128 416h256' class='ionicon-stroke-width'/></svg>\"\nexport const tvSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Tv</title><path d='M488 384H24a8 8 0 01-8-8V88a8 8 0 018-8h464a8 8 0 018 8v288a8 8 0 01-8 8z'/><rect x='112' y='400' width='288' height='32' rx='4' ry='4'/></svg>\"\nexport const umbrella = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Umbrella</title><path d='M414.39 113.61a222.26 222.26 0 00-136.33-64.54 8.09 8.09 0 01-6.88-5.62 15.79 15.79 0 00-30.36 0 8.09 8.09 0 01-6.88 5.62A224 224 0 0032 271.52a16.41 16.41 0 007.24 13.87 16 16 0 0020.07-2.08 51.89 51.89 0 0173.31-.06 15.94 15.94 0 0022.6.15 62.59 62.59 0 0181.49-5.87 8.24 8.24 0 013.29 6.59v147.42c0 8.6-6.6 16-15.19 16.44A16 16 0 01208 432a16 16 0 00-16.29-16c-9 .16-15.9 8.11-15.7 17.1a48.06 48.06 0 0047.37 46.9c26.88.34 48.62-21.93 48.62-48.81V284.12a8.24 8.24 0 013.29-6.59 62.59 62.59 0 0181.4 5.78 16 16 0 0022.62 0 51.91 51.91 0 0173.38 0 16 16 0 0019.54 2.41 16.4 16.4 0 007.77-14.21 222.54 222.54 0 00-65.61-157.9z'/></svg>\"\nexport const umbrellaOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Umbrella</title><path d='M256 272v160a32 32 0 01-32 32h0a32 32 0 01-32-32M464 272c0-114.88-93.12-208-208-208S48 157.12 48 272h0a67.88 67.88 0 0196 0h0a78.28 78.28 0 01102.31-7.27L256 272l9.69-7.27A78.28 78.28 0 01368 272h0a67.88 67.88 0 0196 0zM256 64V48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const umbrellaSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Umbrella</title><path d='M128.93 280l-.26-.3c-.9-.74-1.83-1.43-2.77-2.1zM383.08 280l2.62-2.12c-.79.58-1.57 1.17-2.34 1.79z'/><path d='M463.14 186.44A224.55 224.55 0 00272 48.57V32h-32v16.57A223.58 223.58 0 0032 272v22.52l12.25-11.21a62.63 62.63 0 0181.43-5.88l.22.17c.94.67 1.87 1.36 2.77 2.1q2.09 1.69 4 3.61L144 294.63l11.31-11.32a62.59 62.59 0 0181.4-5.78L240 280v152a16 16 0 01-32 0v-16h-32v16a48 48 0 0096 0V280l3.29-2.47a62.59 62.59 0 0181.4 5.78L368 294.63l11.31-11.32q1.95-1.94 4.05-3.64c.77-.62 1.55-1.21 2.34-1.79l.26-.21c24.63-18.47 60-16.13 81.81 5.64l12.23 11.2V272a223.62 223.62 0 00-16.86-85.56z'/></svg>\"\nexport const unlink = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Unlink</title><path d='M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66' stroke-linecap='round' stroke-linejoin='round' stroke-width='48' class='ionicon-fill-none'/></svg>\"\nexport const unlinkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Unlink</title><path d='M208 352h-64a96 96 0 010-192h64M304 160h64a96 96 0 010 192h-64' stroke-linecap='round' stroke-linejoin='round' stroke-width='36' class='ionicon-fill-none'/></svg>\"\nexport const unlinkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Unlink</title><path d='M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66' stroke-linecap='square' stroke-linejoin='round' stroke-width='48' class='ionicon-fill-none'/></svg>\"\nexport const videocam = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam</title><path d='M464 384.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32zM268 400H84a68.07 68.07 0 01-68-68V180a68.07 68.07 0 0168-68h184.48A67.6 67.6 0 01336 179.52V332a68.07 68.07 0 01-68 68z'/></svg>\"\nexport const videocamOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam Off</title><path d='M336 179.52A67.52 67.52 0 00268.48 112h-79.2a4 4 0 00-2.82 6.83l142.71 142.71a4 4 0 006.83-2.82zM16 180v152a68 68 0 0068 68h184a67.66 67.66 0 0042.84-15.24 4 4 0 00.33-6L54.41 122a4 4 0 00-4.87-.62A68 68 0 0016 180zM464 384.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32z'/><path stroke-linecap='round' stroke-miterlimit='10' d='M416 416L80 80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const videocamOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam Off</title><path stroke-linecap='round' stroke-linejoin='round' d='M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M50.19 140.57A51.94 51.94 0 0032 180v152a52.15 52.15 0 0052 52h184a51.6 51.6 0 0022-4.9M208 128h60.48A51.68 51.68 0 01320 179.52V248M416 416L80 80' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const videocamOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam Off</title><path d='M57.376 79.998l22.627-22.627 358.63 358.63-22.627 22.628zM32 112a16 16 0 00-16 16v256a16 16 0 0016 16h288a15.89 15.89 0 009.34-3l-285-285zM336 208v-80a16 16 0 00-16-16H179.63l245.44 245.44L496 400V112z'/></svg>\"\nexport const videocamOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam</title><path d='M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M268 384H84a52.15 52.15 0 01-52-52V180a52.15 52.15 0 0152-52h184.48A51.68 51.68 0 01320 179.52V332a52.15 52.15 0 01-52 52z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const videocamSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Videocam</title><path d='M336 208v-80a16 16 0 00-16-16H32a16 16 0 00-16 16v256a16 16 0 0016 16h288a16 16 0 0016-16v-80l160 96V112z'/></svg>\"\nexport const volumeHigh = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume High</title><path d='M232 416a23.88 23.88 0 01-14.2-4.68 8.27 8.27 0 01-.66-.51L125.76 336H56a24 24 0 01-24-24V200a24 24 0 0124-24h69.75l91.37-74.81a8.27 8.27 0 01.66-.51A24 24 0 01256 120v272a24 24 0 01-24 24zm-106.18-80zm-.27-159.86zM320 336a16 16 0 01-14.29-23.19c9.49-18.87 14.3-38 14.3-56.81 0-19.38-4.66-37.94-14.25-56.73a16 16 0 0128.5-14.54C346.19 208.12 352 231.44 352 256c0 23.86-6 47.81-17.7 71.19A16 16 0 01320 336z'/><path d='M368 384a16 16 0 01-13.86-24C373.05 327.09 384 299.51 384 256c0-44.17-10.93-71.56-29.82-103.94a16 16 0 0127.64-16.12C402.92 172.11 416 204.81 416 256c0 50.43-13.06 83.29-34.13 120a16 16 0 01-13.87 8z'/><path d='M416 432a16 16 0 01-13.39-24.74C429.85 365.47 448 323.76 448 256c0-66.5-18.18-108.62-45.49-151.39a16 16 0 1127-17.22C459.81 134.89 480 181.74 480 256c0 64.75-14.66 113.63-50.6 168.74A16 16 0 01416 432z'/></svg>\"\nexport const volumeHighOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume High</title><path d='M126 192H56a8 8 0 00-8 8v112a8 8 0 008 8h69.65a15.93 15.93 0 0110.14 3.54l91.47 74.89A8 8 0 00240 392V120a8 8 0 00-12.74-6.43l-91.47 74.89A15 15 0 01126 192zM320 320c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64M368 368c19.48-33.92 32-64.06 32-112s-12-77.74-32-112M416 416c30-46 48-91.43 48-160s-18-113-48-160' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const volumeHighSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume High</title><path d='M320 320c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64M368 368c19.48-33.92 32-64.06 32-112s-12-77.74-32-112M416 416c30-46 48-91.43 48-160s-18-113-48-160' stroke-linecap='square' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M125.65 176.1H32v159.8h93.65L256 440V72L125.65 176.1z'/></svg>\"\nexport const volumeLow = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Low</title><path d='M296 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H120a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01320 119.83v272.34a24 24 0 01-24 24zM384 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01384 336z'/></svg>\"\nexport const volumeLowOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Low</title><path d='M189.65 192H120a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM384 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const volumeLowSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Low</title><path d='M391.12 341.48l-28.6-14.36 7.18-14.3c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73L362.48 185 391 170.48l7.26 14.25C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18zM189.65 176.1H96v159.8h93.65L320 440V72L189.65 176.1z'/></svg>\"\nexport const volumeMedium = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Medium</title><path d='M264 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H88a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01288 119.83v272.34a24 24 0 01-24 24zM352 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C378.2 208.16 384 231.47 384 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01352 336z'/><path d='M400 384a16 16 0 01-13.87-24C405 327.05 416 299.45 416 256c0-44.12-10.94-71.52-29.83-103.95A16 16 0 01413.83 136C434.92 172.16 448 204.88 448 256c0 50.36-13.06 83.24-34.12 120a16 16 0 01-13.88 8z'/></svg>\"\nexport const volumeMediumOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Medium</title><path d='M157.65 192H88a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64M400 368c19.48-34 32-64 32-112s-12-77.7-32-112' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const volumeMediumSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Medium</title><path d='M157.65 176.1H64v159.8h93.65L288 440V72L157.65 176.1z'/><path d='M352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64M400 368c19.48-34 32-64 32-112s-12-77.7-32-112' stroke-linecap='square' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const volumeMute = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Mute</title><path stroke-linecap='round' stroke-miterlimit='10' d='M416 432L64 80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M243.33 98.86a23.89 23.89 0 00-25.55 1.82l-.66.51-28.52 23.35a8 8 0 00-.59 11.85l54.33 54.33a8 8 0 0013.66-5.66v-64.49a24.51 24.51 0 00-12.67-21.71zM251.33 335.29L96.69 180.69A16 16 0 0085.38 176H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l92 75.31a23.9 23.9 0 0025.87 1.69A24.51 24.51 0 00256 391.45v-44.86a16 16 0 00-4.67-11.3zM352 256c0-24.56-5.81-47.87-17.75-71.27a16 16 0 10-28.5 14.55C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l14.36 14.36a8 8 0 0013.55-4.31A146 146 0 00352 256zM416 256c0-51.18-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26L389 337.4a8 8 0 0013.13-2.79C411 311.76 416 287.26 416 256z'/><path d='M480 256c0-74.25-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 46.19-8.43 80.27-22.43 110.53a8 8 0 001.59 9l11.92 11.92a8 8 0 0012.92-2.16C471.6 344.9 480 305 480 256z'/></svg>\"\nexport const volumeMuteOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Mute</title><path stroke-linecap='round' stroke-miterlimit='10' d='M416 432L64 80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M224 136.92v33.8a4 4 0 001.17 2.82l24 24a4 4 0 006.83-2.82v-74.15a24.53 24.53 0 00-12.67-21.72 23.91 23.91 0 00-25.55 1.83 8.27 8.27 0 00-.66.51l-31.94 26.15a4 4 0 00-.29 5.92l17.05 17.06a4 4 0 005.37.26zM224 375.08l-78.07-63.92a32 32 0 00-20.28-7.16H64v-96h50.72a4 4 0 002.82-6.83l-24-24a4 4 0 00-2.82-1.17H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l91.36 74.8a8.27 8.27 0 00.66.51 23.93 23.93 0 0025.85 1.69A24.49 24.49 0 00256 391.45v-50.17a4 4 0 00-1.17-2.82l-24-24a4 4 0 00-6.83 2.82zM125.82 336zM352 256c0-24.56-5.81-47.88-17.75-71.27a16 16 0 00-28.5 14.54C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l19.66 19.67a4 4 0 006.75-2A146.89 146.89 0 00352 256zM416 256c0-51.19-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26l16.77 16.76a4 4 0 006.52-1.27C410.09 315.88 416 289.91 416 256z'/><path d='M480 256c0-74.26-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 47.45-8.9 82.12-23.59 113a4 4 0 00.77 4.55L443 391.39a4 4 0 006.4-1C470.88 348.22 480 307 480 256z'/></svg>\"\nexport const volumeMuteSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Mute</title><path stroke-linecap='square' stroke-miterlimit='10' d='M416 432L64 80' class='ionicon-fill-none ionicon-stroke-width'/><path d='M352 256c0-24.56-5.81-47.88-17.75-71.27L327 170.47 298.48 185l7.27 14.25C315.34 218.06 320 236.62 320 256a112.91 112.91 0 01-.63 11.74l27.32 27.32A148.8 148.8 0 00352 256zM416 256c0-51.19-13.08-83.89-34.18-120.06l-8.06-13.82-27.64 16.12 8.06 13.82C373.07 184.44 384 211.83 384 256c0 25.93-3.89 46.21-11 65.33l24.5 24.51C409.19 319.68 416 292.42 416 256z'/><path d='M480 256c0-74.26-20.19-121.11-50.51-168.61l-8.61-13.49-27 17.22 8.61 13.49C429.82 147.38 448 189.5 448 256c0 48.76-9.4 84-24.82 115.55l23.7 23.7C470.16 351.39 480 309 480 256zM256 72l-73.6 58.78 73.6 73.59V72zM32 176.1v159.8h93.65L256 440V339.63L92.47 176.1H32z'/></svg>\"\nexport const volumeOff = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Off</title><path d='M344 416a23.92 23.92 0 01-14.21-4.69c-.23-.16-.44-.33-.66-.51l-91.46-74.9H168a24 24 0 01-24-24V200.07a24 24 0 0124-24h69.65l91.46-74.9c.22-.18.43-.35.66-.51A24 24 0 01368 120v272a24 24 0 01-24 24z'/></svg>\"\nexport const volumeOffOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Off</title><path d='M237.65 192H168a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const volumeOffSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Volume Off</title><path d='M237.65 176.1H144v159.8h93.65L368 440V72L237.65 176.1z'/></svg>\"\nexport const walk = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Walk</title><path d='M312.55 479.9l-56.42-114-44.62-57a72.37 72.37 0 01-10.06-36.9V143.64H217a40 40 0 0140 40v182.21' stroke-linecap='round' stroke-linejoin='round' class='ionicon-stroke-width'/><path d='M127.38 291.78v-74.07s37-74.07 74.07-74.07' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M368.09 291.78a18.49 18.49 0 01-10.26-3.11L297.7 250a21.18 21.18 0 01-9.7-17.79v-23.7a5.65 5.65 0 018.69-4.77l81.65 54.11a18.52 18.52 0 01-10.29 33.93zM171.91 493.47a18.5 18.5 0 01-14.83-7.41c-6.14-8.18-4-17.18 3.7-25.92l59.95-74.66a7.41 7.41 0 0110.76 2.06c1.56 2.54 3.38 5.65 5.19 9.09 5.24 9.95 6 16.11-1.68 25.7-8 10-52 67.44-52 67.44-2.62 2.98-7.23 3.7-11.09 3.7z'/><circle cx='257' cy='69.56' r='37.04' stroke-linecap='round' stroke-linejoin='round' stroke-width='16'/></svg>\"\nexport const walkOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Walk</title><path d='M314.21 482.32l-56.77-114.74-44.89-57.39a72.82 72.82 0 01-10.13-37.05V144h15.67a40.22 40.22 0 0140.23 40.22v183.36M127.9 293.05v-74.52S165.16 144 202.42 144M370.1 274.42L304 231M170.53 478.36L224 400' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='258.32' cy='69.48' r='37.26' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const walkSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Walk</title><path d='M315.09 481.38l-56.95-115.12-45-57.56a73.11 73.11 0 01-10.16-37.17V142h15.73A40.36 40.36 0 01259 182.32v162.52' stroke-linecap='square' stroke-linejoin='round' class='ionicon-stroke-width'/><path stroke-linecap='square' stroke-linejoin='round' d='M128.18 291.5v-74.77l64.95-65.1' class='ionicon-fill-none ionicon-stroke-width'/><path d='M376.35 295.73l-83.95-56.38v-44.68l104.68 72.95-20.73 28.11zM175.13 498.58l-21.43-26.91 80.33-81.54 15.53 32.07-74.43 76.38z'/><circle cx='259.02' cy='67.21' r='37.38' stroke-linecap='square' stroke-linejoin='round' stroke-width='16'/></svg>\"\nexport const wallet = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wallet</title><path d='M95.5 104h320a87.73 87.73 0 0111.18.71 66 66 0 00-77.51-55.56L86 94.08h-.3a66 66 0 00-41.07 26.13A87.57 87.57 0 0195.5 104zM415.5 128h-320a64.07 64.07 0 00-64 64v192a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V192a64.07 64.07 0 00-64-64zM368 320a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M32 259.5V160c0-21.67 12-58 53.65-65.87C121 87.5 156 87.5 156 87.5s23 16 4 16-18.5 24.5 0 24.5 0 23.5 0 23.5L85.5 236z'/></svg>\"\nexport const walletOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wallet</title><rect x='48' y='144' width='416' height='288' rx='48' ry='48' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M411.36 144v-30A50 50 0 00352 64.9L88.64 109.85A50 50 0 0048 159v49' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M368 320a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const walletSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wallet</title><path d='M47.5 104H432V51.52a16 16 0 00-19.14-15.69l-368 60.48a16 16 0 00-12 10.47A39.69 39.69 0 0147.5 104zM463.5 128h-416a16 16 0 00-16 16v288a16 16 0 0016 16h416a16 16 0 0016-16V144a16 16 0 00-16-16zM368 320a32 32 0 1132-32 32 32 0 01-32 32z'/><path d='M31.33 259.5V116c0-12.33 5.72-18.48 15.42-20 35.2-5.53 108.58-8.5 108.58-8.5s-8.33 16-27.33 16V128c18.5 0 31.33 23.5 31.33 23.5L84.83 236z'/></svg>\"\nexport const warning = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Warning</title><path d='M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z'/></svg>\"\nexport const warningOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Warning</title><path d='M85.57 446.25h340.86a32 32 0 0028.17-47.17L284.18 82.58c-12.09-22.44-44.27-22.44-56.36 0L57.4 399.08a32 32 0 0028.17 47.17z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M250.26 195.39l5.74 122 5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 5.95z' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 397.25a20 20 0 1120-20 20 20 0 01-20 20z'/></svg>\"\nexport const warningSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Warning</title><path d='M479 447.77L268.43 56.64a8 8 0 00-14.09 0L43.73 447.77a8 8 0 007.05 11.79H472a8 8 0 007-11.79zm-197.62-36.29h-40v-40h40zm-4-63.92h-32l-6-160h44z'/></svg>\"\nexport const watch = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Watch</title><rect x='136' y='136' width='240' height='240' rx='56' ry='56'/><path d='M336 96V32a16 16 0 00-16-16H192a16 16 0 00-16 16v64a80.09 80.09 0 00-80 80v160a80.09 80.09 0 0080 80v64a16 16 0 0016 16h128a16 16 0 0016-16v-64a80.09 80.09 0 0080-80V176a80.09 80.09 0 00-80-80zm56 224a72.08 72.08 0 01-72 72H192a72.08 72.08 0 01-72-72V192a72.08 72.08 0 0172-72h128a72.08 72.08 0 0172 72z'/></svg>\"\nexport const watchOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Watch</title><rect x='112' y='112' width='288' height='288' rx='64' ry='64' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M176 112V40a8 8 0 018-8h144a8 8 0 018 8v72M336 400v72a8 8 0 01-8 8H184a8 8 0 01-8-8v-72' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const watchSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Watch</title><rect x='136' y='136' width='240' height='240' rx='8' ry='8'/><path d='M384 96h-48V16H176v80h-48a32 32 0 00-32 32v256a32 32 0 0032 32h48v80h160v-80h48a32 32 0 0032-32V128a32 32 0 00-32-32zm8 272a24 24 0 01-24 24H144a24 24 0 01-24-24V144a24 24 0 0124-24h224a24 24 0 0124 24z'/></svg>\"\nexport const water = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Water</title><path d='M265.12 60.12a12 12 0 00-18.23 0C215.23 97.15 112 225.17 112 320c0 88.37 55.64 144 144 144s144-55.63 144-144c0-94.83-103.23-222.85-134.88-259.88zM272 412a12 12 0 01-11.34-16 11.89 11.89 0 0111.41-8A60.06 60.06 0 00332 328.07a11.89 11.89 0 018-11.41A12 12 0 01356 328a84.09 84.09 0 01-84 84z'/></svg>\"\nexport const waterOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Water</title><path d='M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M344 328a72 72 0 01-72 72' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const waterSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Water</title><path d='M256 43.91s-144 158.3-144 270.3c0 88.36 55.64 144 144 144s144-55.64 144-144c0-112-144-270.3-144-270.3zm16 362.3v-24a60.07 60.07 0 0060-60h24a84.09 84.09 0 01-84 84z'/></svg>\"\nexport const wifi = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wifi</title><path d='M346.65 304.3a136 136 0 00-180.71 0 21 21 0 1027.91 31.38 94 94 0 01124.89 0 21 21 0 0027.91-31.4z'/><path d='M256.28 183.7a221.47 221.47 0 00-151.8 59.92 21 21 0 1028.68 30.67 180.28 180.28 0 01246.24 0 21 21 0 1028.68-30.67 221.47 221.47 0 00-151.8-59.92z'/><path d='M462 175.86a309 309 0 00-411.44 0 21 21 0 1028 31.29 267 267 0 01355.43 0 21 21 0 0028-31.31z'/><circle cx='256.28' cy='393.41' r='32'/></svg>\"\nexport const wifiOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wifi</title><path d='M332.41 310.59a115 115 0 00-152.8 0M393.46 249.54a201.26 201.26 0 00-274.92 0M447.72 182.11a288 288 0 00-383.44 0' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 416a32 32 0 1132-32 32 32 0 01-32 32z'/></svg>\"\nexport const wifiSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wifi</title><path d='M332.69 320a115 115 0 00-152.8 0M393.74 259a201.26 201.26 0 00-274.92 0M448 191.52a288 288 0 00-383.44 0' stroke-linecap='square' stroke-linejoin='round' stroke-width='42' class='ionicon-fill-none'/><path d='M300.67 384L256 433l-44.34-49a56.73 56.73 0 0188.92 0z'/></svg>\"\nexport const wine = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wine</title><path d='M414.56 94.92V80a16 16 0 00-16-16H113.44a16 16 0 00-16 16v14.92c-1.46 11.37-9.65 90.74 36.93 144.69 24.87 28.8 60.36 44.85 105.63 47.86V416h-80a16 16 0 000 32h192a16 16 0 000-32h-80V287.47c45.27-3 80.76-19.06 105.63-47.86 46.58-53.95 38.37-133.32 36.93-144.69zm-285.3 3.41a15.14 15.14 0 00.18-2.33h253.12a15.14 15.14 0 00.18 2.33 201.91 201.91 0 010 45.67H129.32a204.29 204.29 0 01-.06-45.67z'/></svg>\"\nexport const wineOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wine</title><path d='M398.57 80H113.43v16S87.51 272 256 272 398.57 96 398.57 96zM256 272v160' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M352 432H160' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linejoin='round' d='M112 160h288' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const wineSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Wine</title><path d='M453 112V66.33H60.75V112l175.13 176v118H124.75v42H389v-42H277.88V288zm-336.65-3.67h281l-37.81 38H154.16z'/></svg>\"\nexport const woman = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Woman</title><circle cx='255.75' cy='56' r='56'/><path d='M394.63 277.9l-10.33-34.41v-.11l-22.46-74.86h-.05l-2.51-8.45a44.87 44.87 0 00-43-32.08h-120a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-22.46 74.86v.11l-10.37 34.41c-3.12 10.39 2.3 21.66 12.57 25.14a20 20 0 0025.6-13.18l25.58-85.25 2.17-7.23a8 8 0 0115.53 2.62 7.78 7.78 0 01-.17 1.61L155.43 347.4a16 16 0 0015.32 20.6h29v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h16v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h30a16 16 0 0015.33-20.6l-43.74-145.81a7.52 7.52 0 01-.16-1.59 8 8 0 0115.54-2.63l2.17 7.23 25.57 85.25A20 20 0 00382.05 303c10.27-3.44 15.69-14.71 12.58-25.1z'/></svg>\"\nexport const womanOutline = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Woman</title><path d='M208 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path d='M256 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V368M183 274a23.73 23.73 0 01-29.84 16.18h0a23.72 23.72 0 01-16.17-29.84l25-84.28A44.85 44.85 0 01205 144h102a44.85 44.85 0 0143 32.08l25 84.28a23.72 23.72 0 01-16.17 29.84h0a23.73 23.73 0 01-29.78-16.2' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><circle cx='256' cy='56' r='40' stroke-linecap='round' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-linejoin='round' d='M208 192l-48 160h192l-48-160' class='ionicon-fill-none ionicon-stroke-width'/></svg>\"\nexport const womanSharp = \"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Woman</title><circle cx='255.75' cy='56' r='56'/><path d='M310.28 191.4h.05l7.66-2.3 36.79 122.6 46-13.8-16.21-54.16c0-.12 0-.24-.07-.36l-16.84-56.12-4.71-15.74-.9-3H362l-2.51-8.45a44.84 44.84 0 00-43-32.08H195.24a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-.9 3-4.71 15.74-16.84 56.12c0 .12 0 .24-.07.36l-16.21 54.16 46 13.8 36.76-122.6 7.54 2.26L148.25 368h51.5v144h52V368h8v144h52V368h51.51z'/></svg>\"\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport App from './App';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\n\nconst container = document.getElementById('root');\nconst root = createRoot(container!);\nroot.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","animationPrefix","processKeyframes","keyframes","forEach","keyframe","key","hasOwnProperty","value","newKey","convertCamelCaseToHypen","str","replace","toLowerCase","getAnimationPrefix","el","undefined","supportsUnprefixed","style","animationName","supportsWebkitPrefix","webkitAnimationName","setStyleProperty","element","propertyName","prefix","startsWith","setProperty","removeStyleProperty","removeProperty","generateKeyframeRules","map","offset","frameString","property","push","join","keyframeIds","generateKeyframeName","keyframeRules","index","indexOf","createKeyframeStylesheet","keyframeName","_a","styleContainer","rootNode","getRootNode","head","getStyleContainer","keyframePrefix","existingStylesheet","querySelector","stylesheet","ownerDocument","document","createElement","textContent","appendChild","addClassToArray","classes","className","classNameToAppend","Array","isArray","createAnimation","animationId","_delay","_duration","_easing","_iterations","_fill","_direction","parentAnimation","cssAnimationsTimerFallback","forceDirectionValue","forceDurationValue","forceDelayValue","ani","_keyframes","beforeAddClasses","beforeRemoveClasses","initialized","beforeStylesValue","afterAddClasses","afterRemoveClasses","afterStylesValue","numAnimationsRunning","shouldForceLinearEasing","shouldForceSyncPlayback","willComplete","finished","shouldCalculateNumAnimations","paused","onFinishCallbacks","onFinishOneTimeCallbacks","elements","childAnimations","stylesheets","_beforeAddReadFunctions","_beforeAddWriteFunctions","_afterAddReadFunctions","_afterAddWriteFunctions","webAnimations","supportsAnimationEffect","AnimationEffect","win","supportsWebAnimations","Element","prototype","animate","getWebAnimations","cleanUp","clearStyleSheets","cleanUpElements","cleanUpStyleSheets","onFinish","callback","opts","oneTimeCallback","c","o","clearOnFinish","length","animation","cancel","elementsArray","slice","raf","parentNode","removeChild","getFill","getDirection","getEasing","getDuration","getIterations","getDelay","updateKeyframes","keyframeValues","effect","setKeyframes","newEffect","KeyframeEffect","target","getTiming","initializeCSSAnimation","beforeAnimation","addClasses","removeClasses","styles","elementClassList","classList","add","remove","animationFinish","clearCSSAnimationsTimeout","currentStep","onFinishCallback","afterAnimation","toggleAnimationName","processedKeyframes","iterationsCount","Infinity","toString","initializeWebAnimation","delay","duration","easing","iterations","fill","direction","pause","onfinish","initializeAnimation","setAnimationStep","step","Math","min","max","currentTime","getComputedTiming","animationDuration","updateWebAnimation","updateTiming","updateCSSAnimation","update","deep","pauseAnimation","onAnimationEndFallback","clearTimeout","clearCSSAnimationPlayState","play","sync","animationDelay","animationIterations","isFinite","setTimeout","unRegTrans","passive","unregister","onTransitionEnd","ev","addEventListener","removeEventListener","animationEnd","playCSSAnimations","from","firstFrame","to","lastFrame","fromTo","fromValue","toValue","parent","stop","destroy","childAnimation","different","addAnimation","animationToAdd","addElement","nodeType","i","console","error","animationFill","animationDirection","animationEasing","getKeyframes","afterAddRead","readFn","afterAddWrite","writeFn","afterClearStyles","propertyNames","afterStyles","afterRemoveClass","afterAddClass","beforeAddRead","beforeAddWrite","beforeClearStyles","beforeStyles","beforeRemoveClass","beforeAddClass","isRunning","progressStart","forceLinearEasing","progressStep","progressEnd","playTo","dur","isRTL","hostEl","dir","ION_FOCUSED","FOCUS_KEYS","startFocusVisible","rootEl","currentFocus","keyboardMode","ref","shadowRoot","root","body","setFocus","pointerDown","onKeydown","includes","onFocusin","composedPath","toFocus","filter","contains","onFocusout","activeElement","GestureController","this","gestureId","requestedStart","Map","disabledGestures","disabledScroll","Set","config","GestureDelegate","newID","name","priority","disableScroll","BlockerDelegate","disable","gestureName","canStart","set","delete","start","maxPriority","capturedId","clear","event","CustomEvent","detail","dispatchEvent","get","size","BACKDROP_NO_SCROLL","isDisabled","disabled","ctrl","captured","capture","release","enableScroll","gesture","disableGesture","enableGesture","unblock","GESTURE_CONTROLLER","blockHardwareBackButton","startHardwareBackButton","doc","busy","handlers","bubbles","register","handler","executeAction","handlerRegister","result","processHandlers","selectedHandler","Number","MIN_SAFE_INTEGER","OVERLAY_BACK_BUTTON_PRIORITY","MENU_BACK_BUTTON_PRIORITY","transitionEndAsync","expectedDuration","transitionEnd","animationTimeout","ANIMATION_FALLBACK_TIMEOUT","componentOnReady","resolvedEl","inheritAttributes","attributes","attributeObject","attr","hasAttribute","getAttribute","removeAttribute","ariaAttributes","inheritAriaAttributes","ignoreList","attributesToInherit","eventName","window","Ionic","ael","_ael","rel","_rel","getElementRoot","fallback","h","__zone_symbol__requestAnimationFrame","requestAnimationFrame","hasShadowDom","attachShadow","findItemLabel","componentEl","itemEl","closest","focusElement","focus","app","getAriaLabel","inputId","labelText","labelledBy","componentId","labelId","trim","label","getElementById","setAttribute","renderHiddenInput","always","container","input","type","clamp","n","assert","actual","reason","message","now","timeStamp","Date","pointerCoord","changedTouches","touch","x","clientX","y","clientY","pageX","pageY","isEndSide","side","debounceEvent","wait","original","_original","emit","debounce","bind","func","timer","args","shallowEqualStringMap","map1","map2","keys1","Object","k1","_sPassive","listenerOpts","supportsPassive","node","defineProperty","getDocument","Document","createGesture","hasCapturedPan","hasStartedPan","hasFiredStart","isMoveQueued","finalConfig","assign","gesturePriority","maxAngle","threshold","onWillStart","onStart","onEnd","notCaptured","onMove","blurOnStart","startX","startY","startTime","currentX","currentY","velocityX","velocityY","deltaX","deltaY","data","pan","thresh","radians","PI","isDirX","maxCosine","cos","dirty","isPan","detect","distance","hypotenuse","sqrt","cosine","isGesture","createPanRecognizer","fireOnMove","tryToCapturePan","fireOnStart","blur","blurActiveElement","reset","pointerUp","tmpHasCaptured","tmpHasFiredStart","calcGestureData","pointerEvents","pointerMove","options","rmTouchStart","rmTouchMove","rmTouchEnd","rmTouchCancel","rmMouseStart","rmMouseMove","rmMouseUp","lastTouchEvent","handleTouchStart","handleTouchEnd","handleMouseDown","handleMouseUp","stopTouch","stopMouse","enable","createPointerEvents","updateDetail","abortGesture","prevX","prevY","prevT","timeDelta","LIFECYCLE_WILL_LEAVE","LIFECYCLE_DID_LEAVE","LIFECYCLE_WILL_UNLOAD","transition","reject","writeTask","beforeTransition","runTransition","afterTransition","enteringEl","leavingEl","setZIndex","showGoBack","setPageHidden","getAnimationBuilder","animationBuilder","Build","noAnimation","animated","mode","iosTransitionAnimation","mdTransitionAnimation","getAnimation","waitForReady","trans","baseEl","fireWillEvents","playTransition","didComplete","progressCallback","fireDidEvents","hasCompleted","defaultDeep","deepWait","promises","deepReady","shallowReady","all","notifyViewReady","viewIsReady","promise","lifecycle","cancelable","__registerHost","waitForCustomElement","children","hidden","zIndex","getIonPageElement","ionPage","printIonWarning","params","warn","printIonError","printRequiredElementError","targetSelectors","tagName","ION_CONTENT_ELEMENT_SELECTOR","ION_CONTENT_CLASS_SELECTOR","ION_CONTENT_SELECTOR","isIonContent","getScrollElement","findIonContent","customContentHost","findClosestIonContent","scrollToTop","durationMs","scrollTo","top","left","behavior","scrollByPoint","scrollBy","printIonContentErrorMsg","disableContentScrollY","contentEl","ionContent","initialScrollY","scrollY","resetContentScrollY","KEYBOARD_DID_OPEN","KEYBOARD_DID_CLOSE","previousVisualViewport","currentVisualViewport","keyboardOpen","resetKeyboardAssist","startKeyboardAssist","startNativeListeners","visualViewport","copyVisualViewport","onresize","trackViewportChanges","keyboardDidOpen","keyboardDidResize","setKeyboardOpen","keyboardDidClose","setKeyboardClose","fireKeyboardOpenEvent","fireKeyboardCloseEvent","scaledHeightDifference","height","scale","width","innerHeight","nativeEv","keyboardHeight","round","offsetTop","offsetLeft","pageTop","pageLeft","scopeId","contentRef","hostTagName","customError","BUILD","NAMESPACE","useNativeShadowDom","checkSlotFallbackVisibility","checkSlotRelocate","isSvgMode","queueCongestion","queuePending","isDev","isBrowser","isServer","isTesting","Context","getAssetPath","path","assetUrl","URL","plt","$resourcesUrl$","origin","location","href","pathname","createTime","fnName","performance","mark","measure","uniqueTime","measureText","getEntriesByName","HYDRATE_ID","HYDRATED_STYLE_ID","HYDRATE_CHILD_ID","XLINK_NS","EMPTY_OBJ","isComplexType","nodeName","vnodeData","child","slotName","simple","lastSimple","vNodeChildren","walk","String","$flags$","consoleDevError","$text$","newVNode","validateInputProperties","classData","class","k","some","isHost","vdomFnUtils","vnode","$attrs$","$children$","$key$","$name$","tag","text","$tag$","$elm$","Host","cb","convertToPublic","convertToPrivate","vattrs","vchildren","vkey","vname","vtag","vtext","inputElm","props","typeIndex","minIndex","maxIndex","stepIndex","consoleDevWarn","clientHydrate","parentVNode","childRenderNodes","slotNodes","shadowRootNodes","hostElm","hostId","childNodeType","childIdSplt","childVNode","split","$hostId$","$nodeId$","$depth$","$index$","childNodes","nodeValue","nextSibling","insertBefore","initializeDocumentHydrate","orgLocNodes","computeMode","elm","modeResolutionChain","find","m","setMode","getMode","getHostRef","$modeName$","createEvent","flags","$hostElement$","getElement","isConnected","emitEvent","composed","ce","rootAppliedStyles","WeakMap","registerStyle","cssText","allowCS","supportsConstructableStylesheets","CSSStyleSheet","replaceSync","addStyle","styleContainerNode","cmpMeta","getScopeId","styleElm","appliedStyles","has","host","innerHTML","$cssShim$","newScopeId","createHostStyle","adoptedStyleSheets","attachStyles","hostRef","$cmpMeta$","endAttachStyles","$tagName$","supportsShadow","cmp","setAccessor","memberName","oldValue","newValue","isSvg","isProp","isMemberInElement","ln","oldClasses","parseClassList","newClasses","prop","__lookupSetter__","isComplex","xlink","removeAttributeNS","setAttributeNS","parseClassListRegex","updateElement","oldVnode","newVnode","oldVnodeAttrs","newVnodeAttrs","createElm","oldParentVNode","newParentVNode","childIndex","parentElm","childNode","oldVNode","createTextNode","slotReferenceDebugNode","createElementNS","putBackInOriginalLocation","recursive","oldSlotChildNodes","parentReferenceNode","referenceNode","addVnodes","before","vnodes","startIdx","endIdx","containerElm","removeVnodes","callNodeRefs","updateChildren","oldCh","newCh","elmToMove","oldStartIdx","newStartIdx","idxInOld","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","isSameVnode","patch","leftVNode","rightVNode","defaultHolder","oldChildren","newChildren","updateFallbackSlotVisibility","ilen","j","slotNameAttr","relocateNodes","relocateSlotContent","hostContentNodes","relocateNodeData","isNodeLocatedInSlot","r","$nodeToRelocate$","$slotRefNode$","relocateNode","nodeToRelocate","vNode","renderVdom","renderFnResults","$vnode$","rootVnode","$attrsToReflect$","propName","attribute","relocateData","orgLocationNode","parentNodeRef","insertBeforeNode","refNode","originalLocationDebugNode","previousSibling","slotVNode","createComment","localName","attachToAncestor","ancestorComponent","$onRenderResolve$","scheduleUpdate","isInitialLoad","$ancestorComponent$","dispatch","dispatchHooks","endSchedule","instance","$lazyInstance$","$queuedListeners$","methodName","safeCall","emitLifecycleEvent","updateComponent","endUpdate","rc","endRender","callRender","updateHost","$renderCount$","serverSideConnected","consoleError","childrenPromises","postUpdate","postUpdateComponent","allRenderFn","lazyLoad","taskQueue","updatable","render","endPostUpdate","addHydratedFlag","$onReadyResolve$","appDidLoad","$onInstanceResolve$","nextTick","forceUpdate","who","documentElement","namespace","method","arg","thenFn","lifecycleName","ii","childElm","connectedCallback","setValue","newVal","propValue","propType","oldVal","$instanceValues$","$members$","parseFloat","areBothNaN","isNaN","$watchers$","watchMethods","watchMethodName","componentShouldUpdate","proxyComponent","Cstr","watchers","members","entries","memberFlags","configurable","enumerable","$onInstancePromise$","attrNameToPropName","attributeChangedCallback","attrName","_oldValue","jmp","observedAttributes","initializeComponent","hmrVersionId","loadModule","endLoad","isProxied","endNewInstance","fireConnectedCallback","constructor","customElements","whenDefined","endRegisterStyles","scopeCss","schedule","endConnected","addHostEventListeners","$listeners$","endHydrate","$orgLocNodes$","orgLocationId","shadowRootNode","initializeClientHydrate","setContentReference","contentRefElm","firstChild","disconnectedCallback","$rmListeners$","rmListener","removeHost","proxyCustomElement","compactMeta","originalConnectedCallback","originalDisconnectedCallback","registerHost","call","__attachShadow","delegatesFocus","is","listeners","attachParentListeners","getHostListenerTarget","hostListenerProxy","hostListenerOpts","parentElement","supportsListenerOptions","hostRefs","$onReadyPromise$","STENCIL_DEV_MODE","cmpModules","exportName","bundleId","$lazyBundleId$","importedModule","CSS","H","HTMLElement","listener","setPlatformHelpers","helpers","queueDomReads","queueDomWrites","queueDomWritesLow","queueTask","queue","write","flush","consume","consumeTimeout","timeout","ts","splice","ceil","v","readTask","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","concat","targetStatics","sourceStatics","descriptor","b","Symbol","for","d","f","g","l","p","q","t","w","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isarray","pathToRegexp","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","escaped","next","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","obj","encode","pretty","encodeURIComponent","token","segment","TypeError","JSON","stringify","test","attachKeys","re","sensitive","strict","end","route","endsWithDelimiter","groups","source","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","arr","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","bigint","bool","number","object","string","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","getValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","eb","fb","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","valueOf","MSApp","execUnsafeLocalFunction","ob","lastChild","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","charAt","substring","tb","menuitem","area","base","br","col","embed","hr","img","keygen","link","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","apply","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","current","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","B","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","isTrusted","td","ud","view","vd","Ad","screenX","screenY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","fromCharCode","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","time","url","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","D","of","pf","qf","rf","random","sf","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","catch","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","ch","eventTime","lane","payload","dh","K","eh","fh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","state","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","gi","hi","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","create","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","S","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","T","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","src","Wk","mk","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","cache","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","version","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","jsx","jsxs","setState","escape","_status","_result","default","Children","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","pop","sortIndex","setImmediate","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","floor","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","_arrayLikeToArray","len","arr2","_assertThisInitialized","self","ReferenceError","asyncGeneratorStep","gen","_next","_throw","info","_asyncToGenerator","fn","_classCallCheck","Constructor","_defineProperties","writable","_createClass","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","it","s","_e","normalCompletion","didErr","_e2","_getPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","Boolean","Super","NewTarget","possibleConstructorReturn","_defineProperty","_inherits","subClass","superClass","_possibleConstructorReturn","_regeneratorRuntime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","iter","val","reverse","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","_setPrototypeOf","_slicedToArray","_i","_s","_arr","_n","_d","unsupportedIterableToArray","_toConsumableArray","arrayLikeToArray","_typeof","_unsupportedIterableToArray","minLen","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","chunkId","reduce","miniCssF","globalThis","Function","inProgress","dataWebpackPrefix","script","needAttach","scripts","getElementsByTagName","charset","nc","onScriptComplete","onerror","onload","doneFns","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","_inheritsLoose","_extends","isAbsolute","spliceOne","list","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","valueEqual","every","item","aValue","bValue","invariant","condition","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","_len","_key","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","_objectWithoutPropertiesLoose","excluded","sourceKeys","MAX_SIGNED_31_BIT_INT","commonjsGlobal","global","createEventEmitter","on","off","changedBits","React","calculateChangedBits","contextProp","getUniqueId","emitter","_this","nextProps","observedBits","_this2","onUpdate","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","RouterContext","HistoryContext","Lifecycle","onMount","prevProps","onUnmount","cacheCount","generatePath","compilePath","Redirect","computedMatch","matchPath","matched","cacheKey","pathCache","regexp","Route","isEmptyChildren","createURL","staticHandler","noop","defaultMode","Config","configObj","NaN","configFromSession","configStr","sessionStorage","getItem","IONIC_SESSION_KEY","saveConfig","setItem","configFromURL","decodeURIComponent","IONIC_PREFIX","isPlatform","winOrPlatform","platform","setupPlatforms","getPlatforms","platforms","detectPlatforms","customPlatformMethods","PLATFORMS_MAP","customMethod","isIpad","testUserAgent","isMobile","isAndroid","matchMedia","isHybrid","isCordova","isCapacitorNative","capacitor","isNative","expr","query","ipad","iphone","ios","android","phablet","innerWidth","smallest","largest","tablet","isAndroidTablet","cordova","electron","pwa","standalone","mobile","mobileweb","desktop","hybrid","getIonMode","initialize","userConfig","platformHelpers","_ce","persistConfig","getBoolean","isIonicElement","isAllowedIonicModeValue","elmMode","lastId","activeAnimations","createController","createOverlay","dismiss","role","dismissOverlay","getTop","getOverlay","alertController","actionSheetController","popoverController","prepareOverlay","connectListeners","overlayIndex","hasController","getAppRoot","focusableQueryString","focusFirstDescendant","overlay","firstInput","focusLastDescendant","inputs","lastInput","lastOverlay","lastFocus","trapShadowFocus","overlayRoot","overlayWrapper","trapScopedFocus","trapKeyboardFocus","backdropDismiss","BACKDROP","overlayTag","overlays","selector","getOverlays","setRootAriaHidden","viewContainer","present","iosEnterAnimation","mdEnterAnimation","presented","willPresent","willPresentShorthand","enterAnimation","overlayAnimation","didPresent","_b","didPresentShorthand","focusPreviousElementOnDismiss","keyboardClose","overlayEl","previousElement","onDidDismiss","iosLeaveAnimation","mdLeaveAnimation","willDismiss","willDismissShorthand","leaveAnimation","didDismiss","didDismissShorthand","aniRoot","activeAni","eventMethod","onceEvent","isCancel","defaultGate","__rest","propertyIsEnumerable","CACHED_MAP","parser","arrowBackSharp","chevronBack","chevronDown","chevronForward","removeOutline","getNamedUrl","iconName","Ionicons","getIconMap","getName","icon","toLower","isSrc","isStr","getSrc","isValid","ioniconContent","requests","getSvgContent","sanitize","fetch","rsp","svgContent","div","svgElm","firstElementChild","svgClass","validateContent","createColorClasses","accordionIds","Backdrop","ionBackdropTap","blocker","visible","tappable","emitTap","tabindex","defineCustomElement","hostContext","cssClassMap","getClassMap","getClassList","SCHEME","openURL","router","Buttons","collapse","defineCustomElement$1","checkboxIds","RippleEffect","rect","getBoundingClientRect","maxDim","maxRadius","unbounded","PADDING","initialSize","INITIAL_ORIGIN_SCALE","finalScale","posX","posY","styleX","styleY","moveX","moveY","removeRipple","ripple","SIZE_TO_MEDIA","xs","sm","xl","matchBreakpoint","breakpoint","mediaQuery","SUPPORTS_VARS","supports","BREAKPOINTS","Col","getColumns","colSize","amount","calculatePosition","calculateOffset","calculatePull","calculatePush","calculateSize","Content","ionScrollStart","ionScroll","ionScrollEnd","isScrolling","lastScroll","queued","cTop","cBottom","isMainContent","fullscreen","scrollX","scrollEvents","onScrollEnd","resize","forceOverscroll","readDimensions","page","getPageElement","bottom","offsetHeight","shouldStart","onScrollStart","updateScrollDetail","scrollEl","backgroundContentEl","scrollToPoint","scrollHeight","clientHeight","fromY","fromX","linearTime","easedT","pow","watchDog","clearInterval","setInterval","rtl","shouldForceOverscroll","transitionShadow","TagType","overscroll","onScroll","tabs","getParentElement","timestamp","isSameDay","baseParts","compareParts","day","year","isBefore","isAfter","warnIfValueOutOfBounds","valueArray","is24Hour","hourCycle","formatted","Intl","DateTimeFormat","hour","resolvedOptions","formatToParts","getNumDaysInMonth","isLeapYear","isMonthFirstLocale","formatOptions","ISO_8601_REGEXP","TIME_REGEXP","convertToArrayOfNumbers","processedInput","num","parseInt","parseDate","valStr","tzOffset","minute","ampm","parseAmPm","twoDigit","abs","convertDataToISO","rtn","convert12HourTo24Hour","subtractDays","refParts","numDays","workingParts","daysInMonth","addDays","getPreviousMonth","numDaysInMonth","getNextMonth","changeYear","yearDelta","getInternalHourValue","use24Hour","validateParts","minParts","maxParts","partsCopy","findClosestValue","reference","closestValue","rank","valueRank","getLocalizedTime","timeZone","format","addTimePadding","valueToString","getFormattedHour","generateDayAriaLabel","today","labelString","weekday","getMonthAndYear","getMonthDayAndYear","getLocalizedDateTime","getDay","getLocalizedDateTimeParts","getYear","getNormalizedDate","timeString","getDateTimeFormat","getTodayLabel","RelativeTimeFormat","numeric","removeDateTzOffset","getTimezoneOffset","setMinutes","getMinutes","DATE_AM","DATE_PM","getLocalizedDayPeriod","dayPeriod","localizedDayPeriod","getFormattedDayPeriod","getToday","toISOString","minutes","hour12","hour23","generateTime","hourValues","minuteValues","processedHours","processedMinutes","isAMAllowed","isPMAllowed","convertedHour","isPastMinHour","hours","am","pm","generateMonths","getDayColumnData","dayValues","days","maxDay","minDay","processedDays","processedDay","dayString","getAllMonthsInRange","currentParts","getCombinedDateColumnData","todayParts","monthValues","items","months","monthObject","referenceMonth","monthDays","dateParts","dateColumnItems","dayObject","isToday","Button","ionFocus","ionBlur","inItem","inListHeader","inToolbar","inheritedAttributes","buttonType","routerDirection","strong","handleClick","routerAnimation","formEl","findForm","fakeButton","click","onFocus","onBlur","hasIconOnly","HTMLFormElement","expand","finalSize","attrs","download","rippleType","Label","ionColor","ionStyle","inRange","noAnimate","position","emitStyle","emitColor","HapticEngine","getEngine","TapticEngine","Capacitor","isPluginAvailable","Plugins","Haptics","available","getPlatform","vibrate","isCapacitor","impact","engine","notification","selection","gestureSelectionStart","selectionChanged","gestureSelectionChanged","gestureSelectionEnd","hapticAvailable","hapticSelectionStart","hapticSelectionChanged","hapticSelectionEnd","hapticImpact","PICKER_COL_ACTIVE","attachComponent","cssClasses","componentProps","inline","attachViewToDom","detachComponent","removeViewFromDom","CoreDelegate","BaseComponent","Reference","userComponent","userComponentProps","append","getPopoverDimensions","triggerEl","contentDimentions","contentHeight","contentWidth","getIndexOfItem","findIndex","getNextItem","currentItem","getPrevItem","focusItem","getPopoverPosition","arrowWidth","arrowHeight","align","defaultPosition","referenceCoordinates","mouseEv","customEv","actualTriggerEl","ionShadowTarget","triggerBoundingBox","coordinates","calculatePopoverSide","alignedCoordinates","calculatePopoverAlign","calculateArrowPosition","arrowTop","arrowLeft","calculatePopoverOrigin","originX","originY","getOriginXAlignment","getOriginYAlignment","leftPosition","rightPosition","sideLeft","sideRight","calculatePopoverCenterAlign","calculatePopoverEndAlign","calculateWindowAdjustment","coordTop","coordLeft","bodyPadding","bodyWidth","bodyHeight","safeAreaMargin","contentOriginX","contentOriginY","triggerCoordinates","coordArrowTop","coordArrowLeft","checkSafeAreaLeft","checkSafeAreaRight","triggerTop","triggerHeight","addPopoverBottomClass","trigger","arrowEl","referenceSizeEl","getArrowDimensions","results","padding","margin","baseAnimation","backdropAnimation","wrapperAnimation","leftValue","didAdjustBounds","showArrow","shouldShowArrow","contentAnimation","viewportAnimation","LIFECYCLE_MAP","ionPopoverDidPresent","ionPopoverWillPresent","ionPopoverWillDismiss","ionPopoverDidDismiss","popoverIds","isDayDisabled","isMonthDisabled","refYear","isYearDisabled","datetimeIds","createKeyboardController","keyboardChangeCallback","keyboardWillShowHandler","keyboardWillHideHandler","keyboardVisible","init","isKeyboardVisible","handleFooterFade","distanceToStart","Grid","fixed","TRANSITION","getCachedEl","clonedEl","createHeaderIndex","headerEl","toolbars","toolbar","ionTitleEl","background","innerTitleEl","ionButtonsEl","handleContentScroll","scrollHeaderIndex","scaleLargeTitles","setToolbarBackgroundOpacity","handleToolbarIntersection","mainHeaderIndex","isIntersecting","intersectionRatio","handleToolbarBorderIntersection","intersection","intersectionRect","intersectionArea","rootArea","rootBounds","isPageHidden","leftDiff","boundingClientRect","rightDiff","right","setHeaderActive","headerIndex","active","ionTitle","titleDiv","transform","handleHeaderFade","condenseHeader","baseElHeight","fadeStart","Header","translucent","setupFadeHeader","contentScrollCallback","checkCollapsibleHeader","destroyCollapsibleHeader","hasCondense","hasFade","pageEl","setupCondenseHeader","intersectionObserver","disconnect","collapsibleMainHeader","IntersectionObserver","headers","header","toolbarIntersection","observe","roleType","isDraggable","draggable","sanitizeDOMString","untrustedString","IonicSafeString","isSanitizerEnabled","documentFragment","createDocumentFragment","workingDiv","blockedTags","blockedTag","getElementsToRemove","elementIndex","childElements","getElementChildren","sanitizeElement","dfChildren","fragmentDiv","getInnerDiv","allowedAttributes","attributeValue","sanitizerEnabled","SPINNERS","circles","total","angle","sin","circular","elmDuration","cx","cy","viewBox","crescent","dots","_","lines","y1","y2","buildCircle","spinner","buildLine","inputIds","openSlidingItem","swipeShouldReset","isResetDirection","isMovingFast","isOnResetZone","getTimeGivenProgression","p0","p1","p2","p3","progression","solveCubicBezier","tValue","solveCubicParametricEquation","refPoint","solveCubicEquation","discriminant","solveQuadraticEquation","phi","acos","isIos","menuOverlayAnimation","menu","closedX","openedX","menuAnimation","menuInnerEl","backdropEl","menuPushAnimation","contentOpenedX","menuClosedX","menuRevealAnimation","contentOpen","createMenuController","menuAnimations","menus","open","menuEl","close","getOpen","toggle","shouldEnable","swipeGesture","isOpen","isEnabled","waitUntilReady","menuRef","menuId","_getOpenSync","getMenus","getMenusSync","isAnimating","isAnimatingSync","registerAnimation","_setActiveMenu","_setOpen","shouldOpen","openedMenu","setOpen","_isOpen","predicate","openMenu","_createAnimation","menuCmp","_register","_unregister","menuController","computeDelta","checkEdgeSide","maxEdgeStart","SHOW_MENU","SHOW_BACKDROP","MENU_CONTENT_OPEN","updateVisibility","ViewController","nav","convertToView","Nav","ionNavWillLoad","ionNavWillChange","ionNavDidChange","transInstr","animationEnabled","useRouter","isTransitioning","destroyed","views","setRoot","rootParams","rootChanged","createSwipeBackGesture","swipeGestureChanged","_destroy","insert","insertIndex","insertPages","insertComponents","queueTrns","insertStart","insertViews","removeIndex","indexOrViewCtrl","removeStart","removeCount","removeView","startIndex","setPages","getActiveSync","changed","commonOpts","updateURL","markVisible","viewController","popTo","canGoBackSync","getPreviousSync","skipIfBusy","canTransition","nextTrns","fireError","requiresTransition","enteringView","leavingView","navChanged","rejectReason","prepareTI","getEnteringView","postViewInit","enteringRequiresTransition","leavingRequiresTransition","success","failed","_c","viewsLength","viewControllers","removeEnd","destroyQueue","finalNumViews","insertViewAt","destroyView","progressAnimation","sbAni","animationOpts","transitionFinish","activeView","unmountInactiveViews","existingIndex","activeViewIndex","stepValue","shouldComplete","newStepValue","renderIndeterminate","renderProgress","buffer","finalValue","finalBuffer","radioButtonIds","radioGroupIds","renderKnob","knob","ratio","pressed","pin","handleKeyboard","pinFormatter","onKeyDown","knobStyle","ratioToValue","valueToRatio","rangeIds","getRefresherAnimationType","previousElementSibling","createPullingAnimation","pullingSpinner","refresherEl","createScaleAnimation","createTranslateAnimation","createBaseAnimation","pullingRefresherIcon","circle","spinnerArrowContainer","arrowContainer","arrow","spinnerArrowContainerAnimation","circleInnerAnimation","circleOuterAnimation","arrowContainerAnimation","arrowAnimation","spinnerAnimation","createSnapBackAnimation","handleScrollWhilePulling","ticks","numTicks","pullAmount","translateElement","shouldUseNativeRefresher","referenceEl","refresherContent","refreshingSpinner","webkitOverflowScrolling","indexForItem","findReorderItem","AUTO_SCROLL_MARGIN","SCROLL_JUMP","ITEM_REORDER_SELECTED","reorderArray","Row","ids","createButtonActiveGesture","isButton","currentTouchedButton","initialTouchedButton","activateButtonAtPoint","hapticFeedbackFn","elementFromPoint","clearActiveButton","setActiveButton","buttonToModify","dispatchClick","buttonClass","cssClass","inputClass","watchForOptions","containerEl","onChange","MutationObserver","mutation","mutationList","getSelectedOption","childList","subtree","newOption","mut","addedNodes","findCheckedOption","isOptionSelected","currentValue","compareValue","compareWith","compareOptions","getOptionValue","parseValue","generateText","textForValue","opt","selectOpt","selectIds","OPTION_CLASS","selectOptionIds","waitForSlides","SPLIT_PANE_MAIN","SPLIT_PANE_SIDE","QUERY","never","setPaneClass","isMain","toAdd","toRemove","Text","textareaIds","ToolbarTitle","getSize","shouldToggle","toggleIds","Toolbar","childrenStyles","firstButtons","slot","buttonsReversed","lastButtons","updatedStyles","newStyles","childStyles","hasStyleChange","childKey","CELL_TYPE_ITEM","CELL_TYPE_HEADER","CELL_TYPE_FOOTER","createNode","template","getTemplate","importNode","content","findCellIndex","cells","inplaceUpdate","dst","calcCells","itemHeight","headerHeight","footerHeight","headerFn","footerFn","approxHeaderHeight","approxFooterHeight","approxItemHeight","reads","calcHeightIndex","buf","acum","resizeBuffer","Uint32Array","newBuf","subarray","VirtualProxy","utils","dom","IonButton","Card","inheritedAriaAttributes","clickable","isClickable","renderCard","IonCard","wrapperEl","topPosition","PICKER_OPT_SELECTED","DECELERATION_FRICTION","MAX_PICKER_SPEED","TRANSITION_DURATION","buttonWrapperClass","Style","StatusBar","supportsDefaultStatusBarStyle","PluginHeaders","setStyle","getStyle","Default","getInfo","getBackdropValueForSheet","backdropBreakpoint","slope","setCardStatusBarDark","Dark","setCardStatusBarDefault","defaultStyle","handleCanDismiss","canDismiss","calculateSpringStep","SwipeToCloseDefaults","createSwipeToCloseGesture","statusBarStyle","onDismiss","DISMISS_THRESHOLD","canDismissBlocksGesture","lastStep","isAttemptingDismissWithCanDismiss","maxStep","processedStep","clampedStep","velocity","computeDuration","remaining","createSheetEnterAnimation","currentBreakpoint","shouldShowBackdrop","initialBackdrop","createSheetLeaveAnimation","backdropValue","defaultBackdrop","customBackdrop","presentingEl","hasCardModal","presentingElement","presentingElRoot","presentingAnimation","bodyEl","transformOffset","toPresentingScale","finalTransform","borderRadius","shadowAnimation","createLeaveAnimation$1","modalTransform","Modal","ionBreakpointDidChange","modalIndex","modalIds","coreDelegate","isSheetModal","gestureAnimationDismissing","handleBehavior","showBackdrop","swipeToClose","keepContentsMounted","configureTriggerInteraction","destroyTriggerInteraction","trigEl","modalEl","openModal","onHandleClick","sheetTransition","moveToNextBreakpoint","onBackdropTap","onLifecycle","modalEvent","usersElement","initSwipeToClose","breakpoints","sortedBreakpoints","sort","initialBreakpoint","modalId","breakpointsChanged","force","workingDelegate","parentEl","currentTransition","modal","getDelegate","initSheetGesture","keyboardOpenCallback","getCurrentBreakpoint","onBreakpointChange","SheetDefaults","WRAPPER_KEYFRAMES","BACKDROP_KEYFRAMES","canDismissMaxStep","maxBreakpoint","minBreakpoint","enableBackdrop","disableBackdrop","initialStep","secondToLastBreakpoint","diff","moveSheetToBreakpoint","breakpointOffset","shouldPreventDismiss","snapToBreakpoint","shouldRemainOpen","createSheetGesture","sheetOnDismiss","checkCanDismiss","enteringAnimation","dismissed","allowedBreakpoints","currentBreakpointIndex","nextBreakpointIndex","nextBreakpoint","setCurrentBreakpoint","htmlAttributes","showHandle","isCardModal","isHandleCycle","onIonBackdropTap","onIonModalDidPresent","onIonModalWillPresent","onIonModalWillDismiss","onIonModalDidDismiss","tabIndex","ionModalDidPresent","ionModalWillPresent","ionModalWillDismiss","ionModalDidDismiss","defineCustomElement$2","App","rIC","startTapClick","startStatusTap","needInputShims","startInputShims","hardwareBackButtonModule","focusVisible","requestIdleCallback","RouterOutlet","gestureOrAnimationInProgress","swipeHandler","swipeHandlerChanged","lock","unlock","activeEl","activeParams","activeComponent","commit","waitPromise","TabBar","ionTabBarChanged","keyboardCtrl","selectedTab","tab","selectedTabChanged","shouldHide","TabButton","ionTabButtonClick","onKeyUp","selectTab","dispatchedFrom","layout","hasIcon","hasLabel","onKeyup","Icon","isVisible","hasAriaHidden","waitUntilVisible","loadIcon","io","rootMargin","DOMParser","getUrl","svgEl","parseFromString","outerHTML","ariaLabel","flipRtl","IonLifeCycleContext","onIonViewWillEnter","ionViewWillEnter","onIonViewDidEnter","ionViewDidEnter","onIonViewWillLeave","ionViewWillLeave","onIonViewDidLeave","ionViewDidLeave","DefaultIonLifeCycleContext","ionViewWillEnterCallbacks","ionViewDidEnterCallbacks","ionViewWillLeaveCallbacks","ionViewDidLeaveCallbacks","componentCanBeDestroyed","componentCanBeDestroyedCallback","NavContext","getIonRedirect","getIonRoute","getPageManager","getStackManager","back","navigate","hasIonicRouter","routeInfo","setCurrentTab","changeTab","_tab","resetTab","dashToPascalCase","camelToDashCase","attachProps","newProps","oldProps","getClassName","eventNameLc","isCoveredByReact","syncEvent","newClassProp","oldClassProp","currentClasses","arrayToMap","incomingPropClasses","oldPropClasses","finalClassNames","currentClass","eventNameSuffix","isSupported","newEventHandler","eventStore","__events","oldEventHandler","setRef","mergeRefs","createReactComponent","ReactComponentContext","manipulatePropsFunction","ReactComponent","setComponentElRef","forwardedRef","cProps","propsToPass","acc","createForwardRef","IonButtons","defineIonButtons","IonCol","defineIonCol","IonContent","defineIonContent","IonGrid","defineIonGrid","IonHeader","defineIonHeader","IonLabel","defineIonLabel","IonRow","defineIonRow","IonText","defineIonText","IonTitle","defineIonTitle","IonToolbar","defineIonToolbar","getConfig","createRoutingComponent","customElement","routerLink","routerOptions","stableMergedRefs","oldClick","IonButtonCmp","IonCardCmp","createInlineOverlayComponent","wrapperRef","evt","onWillPresent","wrapper","flexDirection","IonModal","IonContext","addOverlay","removeOverlay","IonOverlayManager","onAddOverlay","onRemoveOverlay","setOverlays","overlaysRef","containerElement","newOverlays","overlayKeys","ReactDOM","IonTabButtonInner","defineIonTabButton","IonTabBarInner","defineIonTabBar","IonRouterOutletInner","defineIonRouterOutlet","IonAppInner","defineIonApp","IonIconInner","defineIonIcon","IonApp","ionContext","addOverlayCallback","removeOverlayCallback","StackContext","registerIonPage","isInOutlet","PageManager","ionPageElementRef","ionViewWillEnterHandler","ionViewDidEnterHandler","ionViewWillLeaveHandler","ionViewDidLeaveHandler","ionLifeCycleContext","IonPageInternal","IonPage","IonNavInner","IonTabsContext","restOfProps","setViews","addView","refMap","propsOrDataObj","componentWithProps","hostComponent","_container","ReactDelegate","activeTab","HTMLElementSSR","OutletPageManager","outletIsReady","ionRouterOutlet","StackManager","IonRouterOutletContainer","IonRouterOutlet","IonTabButton","handleIonTabButtonClick","routeOptions","rest","onIonTabButtonClick","IonTabBarUnwrapped","setActiveTabOnContext","isTabButton","originalHref","currentHref","originalRouteOptions","currentRouteOptions","onTabButtonClick","renderTabButton","tabUrl","onClickFn","tappedTab","prevActiveTab","onIonTabsWillChange","onIonTabsDidChange","prevHref","prevRouteOptions","routeAction","onSetCurrentTab","IonTabBarContainer","IonTabBar","IonTabsElement","hostStyles","contain","tabsInner","IonTabs","routerOutletRef","tabBarRef","ionTabContextState","outlet","tabBar","isRouterOutlet","childProps","isTabBar","IonIconContainer","iconToUse","isPlatformCore","IonIcon","IonRoute","IonRouteInner","IonRouterContext","canGoBack","nativeBack","checkConfig","currentProps","reservedProps","fromValues","toValues","fromToValues","onFinishValues","checkProgress","checkPlayback","main","generateId","RouteManagerContext","addViewItem","clearOutlet","createViewItem","findViewItemByPathname","findLeavingViewItemByRouteInfo","findViewItemByRouteInfo","getChildrenToRender","unMountViewItem","ViewLifeCycleManager","onComponentCanBeDestroyed","mount","show","LocationHistory","locationHistory","tabHistory","_add","_pop","_replace","routeDirection","_clear","routeInfos","_getRouteInfosByKey","locationIndex","tabArray","_areRoutesEqual","route1","route2","pushedByRoute","NavManager","ionRouterContextValue","onNativeBack","onChangeTab","onResetTab","handleHardwareBackButton","processNextHandler","nativeGoBack","onNavigateBack","onNavigate","ionRedirect","ionRoute","stackManager","ViewStacks","viewStacks","getViewItemsForOutlet","viewItem","outletId","viewStack","viewItemToRemove","getStackIds","viewItems","ReactRouterViewStack","reactElement","ionPageElement","matchProps","disableIonPageManagement","routeData","matchComponent","clonedChild","updateMatch","findViewItemByPath","mustBeIonRoute","lastPathname","forceExact","matchView","matchDefaultRoute","getAllViewItems","myMatch","clonePageElement","leavingViewHtml","html","newEl","ionBackButton","isViewVisible","stackContextValue","pendingPageTransition","transitionPage","handlePageTransition","skipTransition","clearOutletTimeout","routerOutletElement","setupRouterOutlet","enteringViewItem","leavingViewItem","prevRouteLastPathname","enteringRoute","matchRoute","foundView","oldPageElement","routerOutlet","propsToUse","shouldContinue","runCommit","directionToUse","routeAnimation","routeInfoFallbackDirection","newLeavingElement","components","matchedNode","IonRouterInner","exitViewFromOtherOutletHandlers","routeMangerContextState","handleNavigateBack","handleChangeTab","handleResetTab","handleNativeBack","handleNavigate","registerHistoryListener","handleHistoryChange","handleSetCurrentTab","getCurrentRouteInfoForTab","incomingRouteParams","leavingLocationInfo","previous","currentTab","currentRoute","prevInfo","findLastLocation","isPushed","lastRoute","currentRouteInfo","currentPushedBy","defaultHref","getFirstRouteInfoForTab","newRouteInfo","IonRouter","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","withRouter","IonReactRouter","createHistory","locationValue","actionValue","historyListenHandler","amenazas","intimidacion","abusoEmo","aislamiento","desvalorizar","manipulacion","abusoEco","privMasc","setupIonicReact","hostname","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","serviceWorker","ready","registration","reportWebVitals"],"sourceRoot":""}
|