UNPKG

97.7 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.esm.js","sources":["../src/contexts/IonLifeCycleContext.tsx","../src/lifecycle/IonLifeCycleHOC.tsx","../src/lifecycle/hooks.ts","../src/contexts/NavContext.ts","../src/components/utils/case.ts","../src/components/utils/attachProps.ts","../src/components/utils/index.tsx","../src/components/createComponent.tsx","../src/components/proxies.ts","../src/components/createControllerComponent.tsx","../src/components/IonAlert.tsx","../src/components/IonLoading.tsx","../src/components/IonToast.tsx","../src/components/IonPicker.tsx","../src/components/createOverlayComponent.tsx","../src/components/IonActionSheet.tsx","../src/components/IonModal.tsx","../src/components/IonPopover.tsx","../src/components/IonPage.tsx","../src/components/navigation/IonTabsContext.tsx","../src/components/inner-proxies.ts","../src/components/IonRouterOutlet.tsx","../src/components/navigation/IonTabBar.tsx","../src/components/navigation/IonTabs.tsx","../src/components/navigation/IonBackButton.tsx","../src/components/utils/dev.ts","../src/components/IonIcon.tsx","../src/components/CreateAnimation.tsx","../src/components/index.ts"],"sourcesContent":["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: () => { return; },\n ionViewWillEnter: () => { return; },\n onIonViewDidEnter: () => { return; },\n ionViewDidEnter: () => { return; },\n onIonViewWillLeave: () => { return; },\n ionViewWillLeave: () => { return; },\n onIonViewDidLeave: () => { return; },\n ionViewDidLeave: () => { return; },\n});\n\nexport interface LifeCycleCallback { (): void; id?: number; }\n\nexport const DefaultIonLifeCycleContext = class implements IonLifeCycleContextInterface {\n\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 React from 'react';\n\nimport { IonLifeCycleContext } from '../contexts/IonLifeCycleContext';\n\nexport const withIonLifeCycle = (WrappedComponent: React.ComponentType<any>) => {\n return class IonLifeCycle extends React.Component<any, any> {\n context!: React.ContextType<typeof IonLifeCycleContext>;\n componentRef = React.createRef<any>();\n\n constructor(props: any) {\n super(props);\n }\n\n componentDidMount() {\n const element = this.componentRef.current;\n this.context.onIonViewWillEnter(() => {\n if (element && element.ionViewWillEnter) {\n element.ionViewWillEnter();\n }\n });\n\n this.context.onIonViewDidEnter(() => {\n if (element && element.ionViewDidEnter) {\n element.ionViewDidEnter();\n }\n });\n\n this.context.onIonViewWillLeave(() => {\n if (element && element.ionViewWillLeave) {\n element.ionViewWillLeave();\n }\n });\n\n this.context.onIonViewDidLeave(() => {\n if (element && element.ionViewDidLeave) {\n element.ionViewDidLeave();\n }\n });\n }\n\n render() {\n return (\n <IonLifeCycleContext.Consumer>\n {context => {\n this.context = context;\n return (\n <WrappedComponent ref={this.componentRef} {...this.props} />\n );\n }}\n </IonLifeCycleContext.Consumer>\n );\n }\n };\n};\n","import { useContext, useEffect, useRef } from 'react';\n\nimport { IonLifeCycleContext, LifeCycleCallback } from '../contexts/IonLifeCycleContext';\n\nexport const useIonViewWillEnter = (callback: LifeCycleCallback, deps: any[] = []) => {\n const context = useContext(IonLifeCycleContext);\n const id = useRef<number | undefined>();\n id.current = id.current || Math.floor(Math.random() * 1000000);\n useEffect(() => {\n callback.id = id.current!;\n context.onIonViewWillEnter(callback);\n }, deps);\n};\n\nexport const useIonViewDidEnter = (callback: LifeCycleCallback, deps: any[] = []) => {\n const context = useContext(IonLifeCycleContext);\n const id = useRef<number | undefined>();\n id.current = id.current || Math.floor(Math.random() * 1000000);\n useEffect(() => {\n callback.id = id.current!;\n context.onIonViewDidEnter(callback);\n }, deps);\n};\n\nexport const useIonViewWillLeave = (callback: LifeCycleCallback, deps: any[] = []) => {\n const context = useContext(IonLifeCycleContext);\n const id = useRef<number | undefined>();\n id.current = id.current || Math.floor(Math.random() * 1000000);\n useEffect(() => {\n callback.id = id.current!;\n context.onIonViewWillLeave(callback);\n }, deps);\n};\n\nexport const useIonViewDidLeave = (callback: LifeCycleCallback, deps: any[] = []) => {\n const context = useContext(IonLifeCycleContext);\n const id = useRef<number | undefined>();\n id.current = id.current || Math.floor(Math.random() * 1000000);\n useEffect(() => {\n callback.id = id.current!;\n context.onIonViewDidLeave(callback);\n }, deps);\n};\n","import { RouterDirection } from '@ionic/core';\nimport React from 'react';\n\nexport interface NavContextState {\n getPageManager: () => any;\n getStackManager: () => any;\n goBack: (defaultHref?: string) => void;\n navigate: (path: string, direction?: RouterDirection | 'none', ionRouteAction?: 'push' | 'replace' | 'pop') => void;\n hasIonicRouter: () => boolean;\n registerIonPage: (page: HTMLElement) => void;\n currentPath: string | undefined;\n}\n\nexport const NavContext = /*@__PURE__*/React.createContext<NavContextState>({\n getPageManager: () => undefined,\n getStackManager: () => undefined,\n goBack: (defaultHref?: string) => {\n if (defaultHref !== undefined) {\n window.location.pathname = defaultHref;\n } else {\n window.history.back();\n }\n },\n navigate: (path: string) => { window.location.pathname = path; },\n hasIonicRouter: () => false,\n registerIonPage: () => undefined,\n currentPath: undefined\n});\n","export const dashToPascalCase = (str: string) => str.toLowerCase().split('-').map(segment => segment.charAt(0).toUpperCase() + segment.slice(1)).join('');\nexport const camelToDashCase = (str: string) => 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 (name === 'children' || name === 'style' || name === 'ref' || name === 'class' || name === 'className' || name === 'forwardedRef') {\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 } else {\n (node as any)[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, doc: Document = document) => {\n const eventName = 'on' + eventNameSuffix;\n let isSupported = eventName in doc;\n\n if (!isSupported) {\n const element = doc.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof (element as any)[eventName] === 'function';\n }\n\n return isSupported;\n};\n\nexport const syncEvent = (node: Element & { __events?: { [key: string]: ((e: Event) => any) | undefined } }, eventName: string, newEventHandler?: (e: Event) => any) => {\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(eventName, eventStore[eventName] = function handler(e: Event) {\n if (newEventHandler) { newEventHandler.call(this, e); }\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 { Config as CoreConfig, Platforms, getPlatforms as getPlatformsCore, isPlatform as isPlatformCore } from '@ionic/core';\nimport React from 'react';\n\nimport { IonicReactProps } from '../IonicReactProps';\n\nexport type IonicReactExternalProps<PropType, ElementType> = PropType & Omit<React.HTMLAttributes<ElementType>, 'style'> & IonicReactProps;\n\nexport const createForwardRef = <PropType, ElementType>(ReactComponent: any, displayName: string) => {\n const forwardRef = (props: IonicReactExternalProps<PropType, ElementType>, ref: React.Ref<ElementType>) => {\n return <ReactComponent {...props} forwardedRef={ref} />;\n };\n forwardRef.displayName = displayName;\n\n return React.forwardRef(forwardRef);\n};\n\nexport * from './attachProps';\nexport * from './case';\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 React from 'react';\nimport ReactDom from 'react-dom';\n\nimport { NavContext } from '../contexts/NavContext';\n\nimport { RouterDirection } from './hrefprops';\nimport { attachProps, createForwardRef, dashToPascalCase, isCoveredByReact } from './utils';\n\ninterface IonicReactInternalProps<ElementType> extends React.HTMLAttributes<ElementType> {\n forwardedRef?: React.Ref<ElementType>;\n href?: string;\n routerLink?: string;\n ref?: React.Ref<any>;\n routerDirection?: RouterDirection;\n}\n\nexport const createReactComponent = <PropType, ElementType>(\n tagName: string,\n routerLinkComponent = false\n) => {\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component<IonicReactInternalProps<PropType>> {\n context!: React.ContextType<typeof NavContext>;\n\n constructor(props: IonicReactInternalProps<PropType>) {\n super(props);\n }\n\n componentDidMount() {\n this.componentDidUpdate(this.props);\n }\n\n componentDidUpdate(prevProps: IonicReactInternalProps<PropType>) {\n const node = ReactDom.findDOMNode(this) as HTMLElement;\n attachProps(node, this.props, prevProps);\n }\n\n private handleClick = (e: React.MouseEvent<PropType>) => {\n const { routerLink, routerDirection } = this.props;\n if (routerLink !== undefined) {\n e.preventDefault();\n this.context.navigate(routerLink, routerDirection);\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 }\n return acc;\n }, {});\n\n const newProps: IonicReactInternalProps<PropType> = {\n ...propsToPass,\n ref: forwardedRef,\n style\n };\n\n if (routerLinkComponent) {\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\n return React.createElement(\n tagName,\n newProps,\n children\n );\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 { JSX } from '@ionic/core';\n\nimport { createReactComponent } from './createComponent';\nimport { HrefProps } from './hrefprops';\n\n// ionic/core\nexport const IonApp = /*@__PURE__*/createReactComponent<JSX.IonApp, HTMLIonAppElement>('ion-app');\nexport const IonTab = /*@__PURE__*/createReactComponent<JSX.IonTab, HTMLIonTabElement>('ion-tab');\nexport const IonTabButton = /*@__PURE__*/createReactComponent<JSX.IonTabButton, HTMLIonTabButtonElement>('ion-tab-button');\nexport const IonRouterLink = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonRouterLink>, HTMLIonRouterLinkElement>('ion-router-link', true);\nexport const IonAvatar = /*@__PURE__*/createReactComponent<JSX.IonAvatar, HTMLIonAvatarElement>('ion-avatar');\nexport const IonBackdrop = /*@__PURE__*/createReactComponent<JSX.IonBackdrop, HTMLIonBackdropElement>('ion-backdrop');\nexport const IonBadge = /*@__PURE__*/createReactComponent<JSX.IonBadge, HTMLIonBadgeElement>('ion-badge');\nexport const IonButton = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonButton>, HTMLIonButtonElement>('ion-button', true);\nexport const IonButtons = /*@__PURE__*/createReactComponent<JSX.IonButtons, HTMLIonButtonsElement>('ion-buttons');\nexport const IonCard = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonCard>, HTMLIonCardElement>('ion-card', true);\nexport const IonCardContent = /*@__PURE__*/createReactComponent<JSX.IonCardContent, HTMLIonCardContentElement>('ion-card-content');\nexport const IonCardHeader = /*@__PURE__*/createReactComponent<JSX.IonCardHeader, HTMLIonCardHeaderElement>('ion-card-header');\nexport const IonCardSubtitle = /*@__PURE__*/createReactComponent<JSX.IonCardSubtitle, HTMLIonCardSubtitleElement>('ion-card-subtitle');\nexport const IonCardTitle = /*@__PURE__*/createReactComponent<JSX.IonCardTitle, HTMLIonCardTitleElement>('ion-card-title');\nexport const IonCheckbox = /*@__PURE__*/createReactComponent<JSX.IonCheckbox, HTMLIonCheckboxElement>('ion-checkbox');\nexport const IonCol = /*@__PURE__*/createReactComponent<JSX.IonCol, HTMLIonColElement>('ion-col');\nexport const IonContent = /*@__PURE__*/createReactComponent<JSX.IonContent, HTMLIonContentElement>('ion-content');\nexport const IonChip = /*@__PURE__*/createReactComponent<JSX.IonChip, HTMLIonChipElement>('ion-chip');\nexport const IonDatetime = /*@__PURE__*/createReactComponent<JSX.IonDatetime, HTMLIonDatetimeElement>('ion-datetime');\nexport const IonFab = /*@__PURE__*/createReactComponent<JSX.IonFab, HTMLIonFabElement>('ion-fab');\nexport const IonFabButton = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonFabButton>, HTMLIonFabButtonElement>('ion-fab-button', true);\nexport const IonFabList = /*@__PURE__*/createReactComponent<JSX.IonFabList, HTMLIonFabListElement>('ion-fab-list');\nexport const IonFooter = /*@__PURE__*/createReactComponent<JSX.IonFooter, HTMLIonFooterElement>('ion-footer');\nexport const IonGrid = /*@__PURE__*/createReactComponent<JSX.IonGrid, HTMLIonGridElement>('ion-grid');\nexport const IonHeader = /*@__PURE__*/createReactComponent<JSX.IonHeader, HTMLIonHeaderElement>('ion-header');\nexport const IonImg = /*@__PURE__*/createReactComponent<JSX.IonImg, HTMLIonImgElement>('ion-img');\nexport const IonInfiniteScroll = /*@__PURE__*/createReactComponent<JSX.IonInfiniteScroll, HTMLIonInfiniteScrollElement>('ion-infinite-scroll');\nexport const IonInfiniteScrollContent = /*@__PURE__*/createReactComponent<JSX.IonInfiniteScrollContent, HTMLIonInfiniteScrollContentElement>('ion-infinite-scroll-content');\nexport const IonInput = /*@__PURE__*/createReactComponent<JSX.IonInput, HTMLIonInputElement>('ion-input');\nexport const IonItem = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonItem>, HTMLIonItemElement>('ion-item', true);\nexport const IonItemDivider = /*@__PURE__*/createReactComponent<JSX.IonItemDivider, HTMLIonItemDividerElement>('ion-item-divider');\nexport const IonItemGroup = /*@__PURE__*/createReactComponent<JSX.IonItemGroup, HTMLIonItemGroupElement>('ion-item-group');\nexport const IonItemOption = /*@__PURE__*/createReactComponent<HrefProps<JSX.IonItemOption>, HTMLIonItemOptionElement>('ion-item-option', true);\nexport const IonItemOptions = /*@__PURE__*/createReactComponent<JSX.IonItemOptions, HTMLIonItemOptionsElement>('ion-item-options');\nexport const IonItemSliding = /*@__PURE__*/createReactComponent<JSX.IonItemSliding, HTMLIonItemSlidingElement>('ion-item-sliding');\nexport const IonLabel = /*@__PURE__*/createReactComponent<JSX.IonLabel, HTMLIonLabelElement>('ion-label');\nexport const IonList = /*@__PURE__*/createReactComponent<JSX.IonList, HTMLIonListElement>('ion-list');\nexport const IonListHeader = /*@__PURE__*/createReactComponent<JSX.IonListHeader, HTMLIonListHeaderElement>('ion-list-header');\nexport const IonMenu = /*@__PURE__*/createReactComponent<JSX.IonMenu, HTMLIonMenuElement>('ion-menu');\nexport const IonMenuButton = /*@__PURE__*/createReactComponent<JSX.IonMenuButton, HTMLIonMenuButtonElement>('ion-menu-button');\nexport const IonMenuToggle = /*@__PURE__*/createReactComponent<JSX.IonMenuToggle, HTMLIonMenuToggleElement>('ion-menu-toggle');\nexport const IonNote = /*@__PURE__*/createReactComponent<JSX.IonNote, HTMLIonNoteElement>('ion-note');\nexport const IonPickerColumn = /*@__PURE__*/createReactComponent<JSX.IonPickerColumn, HTMLIonPickerColumnElement>('ion-picker-column');\nexport const IonNav = /*@__PURE__*/createReactComponent<JSX.IonNav, HTMLIonNavElement>('ion-nav');\nexport const IonProgressBar = /*@__PURE__*/createReactComponent<JSX.IonProgressBar, HTMLIonProgressBarElement>('ion-progress-bar');\nexport const IonRadio = /*@__PURE__*/createReactComponent<JSX.IonRadio, HTMLIonRadioElement>('ion-radio');\nexport const IonRadioGroup = /*@__PURE__*/createReactComponent<JSX.IonRadioGroup, HTMLIonRadioGroupElement>('ion-radio-group');\nexport const IonRange = /*@__PURE__*/createReactComponent<JSX.IonRange, HTMLIonRangeElement>('ion-range');\nexport const IonRefresher = /*@__PURE__*/createReactComponent<JSX.IonRefresher, HTMLIonRefresherElement>('ion-refresher');\nexport const IonRefresherContent = /*@__PURE__*/createReactComponent<JSX.IonRefresherContent, HTMLIonRefresherContentElement>('ion-refresher-content');\nexport const IonReorder = /*@__PURE__*/createReactComponent<JSX.IonReorder, HTMLIonReorderElement>('ion-reorder');\nexport const IonReorderGroup = /*@__PURE__*/createReactComponent<JSX.IonReorderGroup, HTMLIonReorderGroupElement>('ion-reorder-group');\nexport const IonRippleEffect = /*@__PURE__*/createReactComponent<JSX.IonRippleEffect, HTMLIonRippleEffectElement>('ion-ripple-effect');\nexport const IonRow = /*@__PURE__*/createReactComponent<JSX.IonRow, HTMLIonRowElement>('ion-row');\nexport const IonSearchbar = /*@__PURE__*/createReactComponent<JSX.IonSearchbar, HTMLIonSearchbarElement>('ion-searchbar');\nexport const IonSegment = /*@__PURE__*/createReactComponent<JSX.IonSegment, HTMLIonSegmentElement>('ion-segment');\nexport const IonSegmentButton = /*@__PURE__*/createReactComponent<JSX.IonSegmentButton, HTMLIonSegmentButtonElement>('ion-segment-button');\nexport const IonSelect = /*@__PURE__*/createReactComponent<JSX.IonSelect, HTMLIonSelectElement>('ion-select');\nexport const IonSelectOption = /*@__PURE__*/createReactComponent<JSX.IonSelectOption, HTMLIonSelectOptionElement>('ion-select-option');\nexport const IonSelectPopover = /*@__PURE__*/createReactComponent<JSX.IonSelectPopover, HTMLIonSelectPopoverElement>('ion-select-popover');\nexport const IonSkeletonText = /*@__PURE__*/createReactComponent<JSX.IonSkeletonText, HTMLIonSkeletonTextElement>('ion-skeleton-text');\nexport const IonSlide = /*@__PURE__*/createReactComponent<JSX.IonSlide, HTMLIonSlideElement>('ion-slide');\nexport const IonSlides = /*@__PURE__*/createReactComponent<JSX.IonSlides, HTMLIonSlidesElement>('ion-slides');\nexport const IonSpinner = /*@__PURE__*/createReactComponent<JSX.IonSpinner, HTMLIonSpinnerElement>('ion-spinner');\nexport const IonSplitPane = /*@__PURE__*/createReactComponent<JSX.IonSplitPane, HTMLIonSplitPaneElement>('ion-split-pane');\nexport const IonText = /*@__PURE__*/createReactComponent<JSX.IonText, HTMLIonTextElement>('ion-text');\nexport const IonTextarea = /*@__PURE__*/createReactComponent<JSX.IonTextarea, HTMLIonTextareaElement>('ion-textarea');\nexport const IonThumbnail = /*@__PURE__*/createReactComponent<JSX.IonThumbnail, HTMLIonThumbnailElement>('ion-thumbnail');\nexport const IonTitle = /*@__PURE__*/createReactComponent<JSX.IonTitle, HTMLIonTitleElement>('ion-title');\nexport const IonToggle = /*@__PURE__*/createReactComponent<JSX.IonToggle, HTMLIonToggleElement>('ion-toggle');\nexport const IonToolbar = /*@__PURE__*/createReactComponent<JSX.IonToolbar, HTMLIonToolbarElement>('ion-toolbar');\nexport const IonVirtualScroll = /*@__PURE__*/createReactComponent<JSX.IonVirtualScroll, HTMLIonVirtualScrollElement>('ion-virtual-scroll');\n","import { OverlayEventDetail } from '@ionic/core';\nimport React from 'react';\n\nimport { attachProps } from './utils';\n\ninterface OverlayBase extends HTMLElement {\n present: () => Promise<void>;\n dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;\n}\n\nexport interface ReactControllerProps {\n isOpen: boolean;\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}\n\nexport const createControllerComponent = <OptionsType extends object, OverlayType extends OverlayBase>(\n displayName: string,\n controller: { create: (options: OptionsType) => Promise<OverlayType>; }\n) => {\n const didDismissEventName = `on${displayName}DidDismiss`;\n const didPresentEventName = `on${displayName}DidPresent`;\n const willDismissEventName = `on${displayName}WillDismiss`;\n const willPresentEventName = `on${displayName}WillPresent`;\n\n type Props = OptionsType & ReactControllerProps & {\n forwardedRef?: React.RefObject<OverlayType>;\n };\n\n class Overlay extends React.Component<Props> {\n overlay?: OverlayType;\n isUnmounted = false;\n\n constructor(props: Props) {\n super(props);\n this.handleDismiss = this.handleDismiss.bind(this);\n }\n\n static get displayName() {\n return displayName;\n }\n\n async componentDidMount() {\n const { isOpen } = this.props;\n if (isOpen as boolean) {\n this.present();\n }\n }\n\n componentWillUnmount() {\n this.isUnmounted = true;\n if (this.overlay) { this.overlay.dismiss(); }\n }\n\n async componentDidUpdate(prevProps: Props) {\n if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen === true) {\n this.present(prevProps);\n }\n if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {\n await this.overlay.dismiss();\n }\n }\n\n handleDismiss(event: CustomEvent<OverlayEventDetail<any>>) {\n if (this.props.onDidDismiss) {\n this.props.onDidDismiss(event);\n }\n if (this.props.forwardedRef) {\n (this.props.forwardedRef as any).current = undefined;\n }\n }\n\n async present(prevProps?: Props) {\n const { isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent, ...cProps } = this.props;\n this.overlay = await controller.create({\n ...cProps as any\n });\n attachProps(this.overlay, {\n [didDismissEventName]: this.handleDismiss,\n [didPresentEventName]: (e: CustomEvent) => this.props.onDidPresent && this.props.onDidPresent(e),\n [willDismissEventName]: (e: CustomEvent) => this.props.onWillDismiss && this.props.onWillDismiss(e),\n [willPresentEventName]: (e: CustomEvent) => this.props.onWillPresent && this.props.onWillPresent(e)\n }, prevProps);\n // Check isOpen again since the value could have changed during the async call to controller.create\n // It's also possible for the component to have become unmounted.\n if (this.props.isOpen === true && this.isUnmounted === false) {\n if (this.props.forwardedRef) {\n (this.props.forwardedRef as any).current = this.overlay;\n }\n await this.overlay.present();\n }\n }\n\n render(): null {\n return null;\n }\n }\n\n return React.forwardRef<OverlayType, Props>((props, ref) => {\n return <Overlay {...props} forwardedRef={ref} />;\n });\n};\n","import { AlertOptions, alertController } from '@ionic/core';\n\nimport { createControllerComponent } from './createControllerComponent';\n\nexport const IonAlert = /*@__PURE__*/createControllerComponent<AlertOptions, HTMLIonAlertElement>('IonAlert', alertController);\n","import { LoadingOptions, loadingController } from '@ionic/core';\n\nimport { createControllerComponent } from './createControllerComponent';\n\nexport const IonLoading = /*@__PURE__*/createControllerComponent<LoadingOptions, HTMLIonLoadingElement>('IonLoading', loadingController);\n","import { ToastButton as ToastButtonCore, ToastOptions as ToastOptionsCore, toastController as toastControllerCore } from '@ionic/core';\n\nimport { createControllerComponent } from './createControllerComponent';\n\nexport interface ToastButton extends Omit<ToastButtonCore, 'icon'> {\n icon?: {\n ios: string;\n md: string;\n } | string;\n}\n\nexport interface ToastOptions extends Omit<ToastOptionsCore, 'buttons'> {\n buttons?: (ToastButton | string)[];\n}\n\nconst toastController = {\n create: (options: ToastOptions) => toastControllerCore.create(options as any),\n dismiss: (data?: any, role?: string | undefined, id?: string | undefined) => toastControllerCore.dismiss(data, role, id),\n getTop: () => toastControllerCore.getTop()\n};\n\nexport const IonToast = /*@__PURE__*/createControllerComponent<ToastOptions, HTMLIonToastElement>('IonToast', toastController);\n","import { PickerOptions, pickerController } from '@ionic/core';\n\nimport { createControllerComponent } from './createControllerComponent';\n\nexport const IonPicker = /*@__PURE__*/createControllerComponent<PickerOptions, HTMLIonPickerElement>('IonPicker', pickerController);\n","import { OverlayEventDetail } from '@ionic/core';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { attachProps } from './utils';\n\ninterface OverlayElement extends HTMLElement {\n present: () => Promise<void>;\n dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;\n}\n\nexport interface ReactOverlayProps {\n children?: React.ReactNode;\n isOpen: boolean;\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}\n\nexport const createOverlayComponent = <OverlayComponent extends object, OverlayType extends OverlayElement>(\n displayName: string,\n controller: { create: (options: any) => Promise<OverlayType>; }\n) => {\n const didDismissEventName = `on${displayName}DidDismiss`;\n const didPresentEventName = `on${displayName}DidPresent`;\n const willDismissEventName = `on${displayName}WillDismiss`;\n const willPresentEventName = `on${displayName}WillPresent`;\n\n type Props = OverlayComponent & ReactOverlayProps & {\n forwardedRef?: React.RefObject<OverlayType>;\n };\n\n class Overlay extends React.Component<Props> {\n overlay?: OverlayType;\n el: HTMLDivElement;\n\n constructor(props: Props) {\n super(props);\n this.el = document.createElement('div');\n this.handleDismiss = this.handleDismiss.bind(this);\n }\n\n static get displayName() {\n return displayName;\n }\n\n componentDidMount() {\n if (this.props.isOpen) {\n this.present();\n }\n }\n\n componentWillUnmount() {\n if (this.overlay) { this.overlay.dismiss(); }\n }\n\n handleDismiss(event: CustomEvent<OverlayEventDetail<any>>) {\n if (this.props.onDidDismiss) {\n this.props.onDidDismiss(event);\n }\n if (this.props.forwardedRef) {\n (this.props.forwardedRef as any).current = undefined;\n }\n }\n\n async componentDidUpdate(prevProps: Props) {\n if (this.overlay) {\n attachProps(this.overlay, this.props, prevProps);\n }\n\n if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen === true) {\n this.present(prevProps);\n }\n if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {\n await this.overlay.dismiss();\n }\n }\n\n async present(prevProps?: Props) {\n const { children, isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent, ...cProps } = this.props;\n const elementProps = {\n ...cProps,\n ref: this.props.forwardedRef,\n [didDismissEventName]: this.handleDismiss,\n [didPresentEventName]: (e: CustomEvent) => this.props.onDidPresent && this.props.onDidPresent(e),\n [willDismissEventName]: (e: CustomEvent) => this.props.onWillDismiss && this.props.onWillDismiss(e),\n [willPresentEventName]: (e: CustomEvent) => this.props.onWillPresent && this.props.onWillPresent(e)\n };\n\n this.overlay = await controller.create({\n ...elementProps,\n component: this.el,\n componentProps: {}\n });\n\n if (this.props.forwardedRef) {\n (this.props.forwardedRef as any).current = this.overlay;\n }\n\n attachProps(this.overlay, elementProps, prevProps);\n\n await this.overlay.present();\n }\n\n render() {\n return ReactDOM.createPortal(\n this.props.isOpen ? this.props.children : null,\n this.el\n );\n }\n }\n\n return React.forwardRef<OverlayType, Props>((props, ref) => {\n return <Overlay {...props} forwardedRef={ref} />;\n });\n};\n","import { ActionSheetButton as ActionSheetButtonCore, ActionSheetOptions as ActionSheetOptionsCore, actionSheetController as actionSheetControllerCore } from '@ionic/core';\n\nimport { createOverlayComponent } from './createOverlayComponent';\n\nexport interface ActionSheetButton extends Omit<ActionSheetButtonCore, 'icon'> {\n icon?: {\n ios: string;\n md: string;\n } | string;\n}\n\nexport interface ActionSheetOptions extends Omit<ActionSheetOptionsCore, 'buttons'> {\n buttons?: (ActionSheetButton | string)[];\n}\n\nconst actionSheetController = {\n create: (options: ActionSheetOptions) => actionSheetControllerCore.create(options as any),\n dismiss: (data?: any, role?: string | undefined, id?: string | undefined) => actionSheetControllerCore.dismiss(data, role, id),\n getTop: () => actionSheetControllerCore.getTop()\n};\n\nexport const IonActionSheet = /*@__PURE__*/createOverlayComponent<ActionSheetOptions, HTMLIonActionSheetElement>('IonActionSheet', actionSheetController);\n","import { ModalOptions, modalController } from '@ionic/core';\n\nimport { createOverlayComponent } from './createOverlayComponent';\n\nexport type ReactModalOptions = Omit<ModalOptions, 'component' | 'componentProps'> & {\n children: React.ReactNode;\n};\n\nexport const IonModal = /*@__PURE__*/createOverlayComponent<ReactModalOptions, HTMLIonModalElement>('IonModal', modalController);\n","import { PopoverOptions, popoverController } from '@ionic/core';\n\nimport { createOverlayComponent } from './createOverlayComponent';\n\nexport type ReactPopoverOptions = Omit<PopoverOptions, 'component' | 'componentProps'> & {\n children: React.ReactNode;\n};\n\nexport const IonPopover = /*@__PURE__*/createOverlayComponent<ReactPopoverOptions, HTMLIonPopoverElement>('IonPopover', popoverController);\n","import React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\n\nimport { IonicReactProps } from './IonicReactProps';\nimport { createForwardRef } from './utils';\n\ninterface IonPageProps extends IonicReactProps {\n}\n\ninterface IonPageInternalProps extends IonPageProps {\n forwardedRef?: React.RefObject<HTMLDivElement>;\n}\n\nclass IonPageInternal extends React.Component<IonPageInternalProps> {\n context!: React.ContextType<typeof NavContext>;\n ref: React.RefObject<HTMLDivElement>;\n\n constructor(props: IonPageInternalProps) {\n super(props);\n this.ref = this.props.forwardedRef || React.createRef();\n }\n\n componentDidMount() {\n if (this.context && this.ref && this.ref.current) {\n if (this.context.hasIonicRouter()) {\n this.context.registerIonPage(this.ref.current);\n }\n }\n }\n\n render() {\n const { className, children, forwardedRef, ...props } = this.props;\n\n return (\n <div className={className ? `ion-page ${className}` : 'ion-page'} ref={this.ref} {...props}>\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 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 { JSX } from '@ionic/core';\nimport { JSX as IoniconsJSX } from 'ionicons';\n\nimport { /*@__PURE__*/ createReactComponent } from './createComponent';\n\nexport const IonTabBarInner = /*@__PURE__*/createReactComponent<JSX.IonTabBar, HTMLIonTabBarElement>('ion-tab-bar');\nexport const IonBackButtonInner = /*@__PURE__*/createReactComponent<Omit<JSX.IonBackButton, 'icon'>, HTMLIonBackButtonElement>('ion-back-button');\nexport const IonRouterOutletInner = /*@__PURE__*/createReactComponent<JSX.IonRouterOutlet, HTMLIonRouterOutletElement>('ion-router-outlet');\n\n// ionicons\nexport const IonIconInner = /*@__PURE__*/createReactComponent<IoniconsJSX.IonIcon, HTMLIonIconElement>('ion-icon');\n","\nimport { JSX as LocalJSX } from '@ionic/core';\nimport React from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\n\nimport { IonicReactProps } from './IonicReactProps';\nimport { IonRouterOutletInner } from './inner-proxies';\nimport { createForwardRef } from './utils';\n\ntype Props = LocalJSX.IonRouterOutlet & {\n ref?: React.RefObject<any>;\n};\n\ntype InternalProps = Props & {\n forwardedRef?: React.RefObject<HTMLIonRouterOutletElement>;\n};\n\nconst IonRouterOutletContainer = /*@__PURE__*/(() => class extends React.Component<InternalProps> {\n context!: React.ContextType<typeof NavContext>;\n\n render() {\n\n const StackManager = this.context.getStackManager();\n\n return (\n this.context.hasIonicRouter() ? (\n <StackManager>\n <IonRouterOutletInner ref={this.props.forwardedRef} {...this.props}>\n {this.props.children}\n </IonRouterOutletInner>\n </StackManager>\n ) : (\n <IonRouterOutletInner ref={this.props.forwardedRef} {...this.props}>\n {this.props.children}\n </IonRouterOutletInner>\n )\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n})();\n\nexport const IonRouterOutlet = createForwardRef<Props & IonicReactProps, HTMLIonRouterOutletElement>(IonRouterOutletContainer, 'IonRouterOutlet');\n","import { JSX as LocalJSX } from '@ionic/core';\nimport React, { useContext } from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport { IonicReactProps } from '../IonicReactProps';\nimport { IonTabBarInner } from '../inner-proxies';\nimport { IonTabButton } from '../proxies';\nimport { createForwardRef } from '../utils';\n\ntype IonTabBarProps = LocalJSX.IonTabBar & IonicReactProps & {\n onIonTabsDidChange?: (event: CustomEvent<{ tab: string; }>) => void;\n onIonTabsWillChange?: (event: CustomEvent<{ tab: string; }>) => void;\n currentPath?: string;\n slot?: 'bottom' | 'top';\n};\n\ninterface InternalProps extends IonTabBarProps {\n forwardedRef?: React.RefObject<HTMLIonIconElement>;\n}\n\ninterface TabUrls {\n originalHref: string;\n currentHref: string;\n}\n\ninterface IonTabBarState {\n activeTab: string | undefined;\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\n React.Children.forEach((props as any).children, (child: any) => {\n if (child != null && typeof child === 'object' && child.props && child.type === IonTabButton) {\n tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href\n };\n }\n });\n\n const tabKeys = Object.keys(tabs);\n const activeTab = tabKeys\n .find(key => {\n const href = tabs[key].originalHref;\n return props.currentPath!.startsWith(href);\n }) || tabKeys[0];\n\n this.state = {\n activeTab,\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 setActiveTabOnContext = (_tab: string) => { };\n\n selectTab(tab: string) {\n const tabUrl = this.state.tabs[tab];\n if (tabUrl) {\n this.onTabButtonClick(new CustomEvent('ionTabButtonClick', {\n detail: {\n href: tabUrl.currentHref,\n tab,\n selected: tab === this.state.activeTab\n }\n }));\n return true;\n }\n return false;\n }\n\n static getDerivedStateFromProps(props: IonTabBarProps, state: IonTabBarState) {\n\n const tabs = { ...state.tabs };\n const activeTab = Object.keys(state.tabs)\n .find(key => {\n const href = state.tabs[key].originalHref;\n return props.currentPath!.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 (child != null && typeof child === 'object' && child.props && child.type === IonTabButton) {\n const tab = tabs[child.props.tab];\n if (tab.originalHref !== child.props.href) {\n tabs[child.props.tab] = {\n originalHref: child.props.href,\n currentHref: child.props.href\n };\n }\n }\n });\n\n if (!(activeTab === undefined || (activeTab === state.activeTab && state.tabs[activeTab].currentHref === props.currentPath))) {\n tabs[activeTab] = {\n originalHref: tabs[activeTab].originalHref,\n currentHref: props.currentPath!\n };\n }\n\n return {\n activeTab,\n tabs\n };\n }\n\n private onTabButtonClick(e: CustomEvent<{ href: string, selected: boolean, tab: string; }>) {\n const originalHref = this.state.tabs[e.detail.tab].originalHref;\n const currentHref = e.detail.href;\n const { activeTab: prevActiveTab } = this.state;\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.navigate(originalHref, 'none');\n } else {\n this.context.navigate(originalHref, 'back', 'pop');\n }\n } else {\n if (this.props.onIonTabsWillChange) {\n this.props.onIonTabsWillChange(new CustomEvent('ionTabWillChange', { detail: { tab: e.detail.tab } }));\n }\n if (this.props.onIonTabsDidChange) {\n this.props.onIonTabsDidChange(new CustomEvent('ionTabDidChange', { detail: { tab: e.detail.tab } }));\n }\n this.setActiveTabOnContext(e.detail.tab);\n this.context.navigate(currentHref, 'none');\n }\n }\n\n private renderTabButton(activeTab: string | null | undefined) {\n return (child: (React.ReactElement<LocalJSX.IonTabButton & { onIonTabButtonClick: (e: CustomEvent) => void; }>) | null | undefined) => {\n if (child != null && child.props && child.type === IonTabButton) {\n const href = (child.props.tab === activeTab) ? this.props.currentPath : (this.state.tabs[child.props.tab!].currentHref);\n\n return React.cloneElement(child, {\n href,\n onIonTabButtonClick: this.onTabButtonClick\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>(({ forwardedRef, ...props }) => {\n const context = useContext(NavContext);\n return (\n <IonTabBarUnwrapped\n ref={forwardedRef}\n {...props as any}\n currentPath={props.currentPath || context.currentPath}\n >\n {props.children}\n </IonTabBarUnwrapped>\n );\n});\n\nexport const IonTabBar = createForwardRef<IonTabBarProps, HTMLIonTabBarElement>(IonTabBarContainer, 'IonTabBar');\n","import { JSX as LocalJSX } from '@ionic/core';\nimport React, { Fragment } from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport { IonRouterOutlet } from '../IonRouterOutlet';\n\nimport { IonTabBar } from './IonTabBar';\nimport { IonTabsContext, IonTabsContextState } from './IonTabsContext';\n\ntype ChildFunction = (ionTabContext: IonTabsContextState) => React.ReactNode;\n\ninterface Props extends LocalJSX.IonTabs {\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 class IonTabs 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\n const children = typeof this.props.children === 'function' ?\n (this.props.children as ChildFunction)(this.ionTabContextState) : 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) {\n outlet = child;\n } else if (child.type === Fragment && child.props.children[0].type === IonRouterOutlet) {\n outlet = child.props.children[0];\n }\n if (child.type === IonTabBar) {\n const { onIonTabsDidChange, onIonTabsWillChange } = this.props;\n tabBar = React.cloneElement(child, {\n onIonTabsDidChange,\n onIonTabsWillChange,\n ref: this.tabBarRef\n });\n } else if (child.type === Fragment && child.props.children[1].type === IonTabBar) {\n const { onIonTabsDidChange, onIonTabsWillChange } = this.props;\n tabBar = React.cloneElement(child.props.children[1], {\n onIonTabsDidChange,\n onIonTabsWillChange,\n ref: this.tabBarRef\n });\n }\n });\n\n if (!outlet) {\n throw new Error('IonTabs must contain an IonRouterOutlet');\n }\n if (!tabBar) {\n // TODO, this is not required\n throw new Error('IonTabs needs a IonTabBar');\n }\n\n return (\n <IonTabsContext.Provider\n value={this.ionTabContextState}\n >\n <div 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 </IonTabsContext.Provider >\n );\n }\n\n static get contextType() {\n return NavContext;\n }\n}\n","import { JSX as LocalJSX } from '@ionic/core';\nimport React from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport { IonicReactProps } from '../IonicReactProps';\nimport { IonBackButtonInner } from '../inner-proxies';\n\ntype Props = Omit<LocalJSX.IonBackButton, 'icon'> & IonicReactProps & {\n icon?: {\n ios: string;\n md: string;\n } | string;\n ref?: React.RefObject<HTMLIonBackButtonElement>;\n};\n\nexport const IonBackButton = /*@__PURE__*/(() => class extends React.Component<Props> {\n context!: React.ContextType<typeof NavContext>;\n\n clickButton = (e: React.MouseEvent) => {\n const defaultHref = this.props.defaultHref;\n if (this.context.hasIonicRouter()) {\n e.stopPropagation();\n this.context.goBack(defaultHref);\n } else if (defaultHref !== undefined) {\n window.location.href = defaultHref;\n }\n }\n\n render() {\n return (\n <IonBackButtonInner onClick={this.clickButton} {...this.props}></IonBackButtonInner>\n );\n }\n\n static get displayName() {\n return 'IonBackButton';\n }\n\n static get contextType() {\n return NavContext;\n }\n})();\n","export const isDevMode = () => {\n return process && process.env && process.env.NODE_ENV === 'development';\n};\n\nconst warnings: { [key: string]: boolean } = {};\n\nexport const deprecationWarning = (key: string, message: string) => {\n if (isDevMode()) {\n if (!warnings[key]) {\n console.warn(message);\n warnings[key] = true;\n }\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';\nimport { deprecationWarning } from './utils/dev';\n\ninterface IonIconProps {\n ariaLabel?: string;\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.RefObject<HTMLIonIconElement>;\n};\n\nclass IonIconContainer extends React.PureComponent<InternalProps> {\n\n constructor(props: InternalProps) {\n super(props);\n if (this.props.name) {\n deprecationWarning('icon-name', '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>(IonIconContainer, 'IonIcon');\n","import { Animation, AnimationCallbackOptions, AnimationDirection, AnimationFill, AnimationKeyFrames, AnimationLifecycle, createAnimation } from '@ionic/core';\nimport React from 'react';\n\ninterface PartialPropertyValue { property: string; value: any; }\ninterface PropertyValue { property: string; fromValue: any; toValue: any; }\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<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) => React.cloneElement(child as any, { ref: (el: any) => this.nodes.set(id, el) })))}\n </>\n );\n }\n}\n\nconst checkConfig = (animation: Animation, currentProps: any = {}, prevProps: any = {}) => {\n const reservedProps = ['children', 'progressStart', 'progressStep', 'progressEnd', 'pause', 'stop', 'destroy', 'play', 'from', 'to', 'fromTo', 'onFinish'];\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 (progressStart && (prevProps.progressStart?.forceLinearEasing !== progressStart?.forceLinearEasing || prevProps.progressStart?.step !== progressStart?.step)) {\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 (progressEnd && (prevProps.progressEnd?.playTo !== progressEnd?.playTo || prevProps.progressEnd?.step !== progressEnd?.step || prevProps?.dur !== progressEnd?.dur)) {\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","\nimport { defineCustomElements } from '@ionic/core/loader';\nimport { addIcons } from 'ionicons';\nimport { arrowBackSharp, caretBackSharp, chevronBack, chevronForward, close, closeCircle, closeSharp, menuOutline, menuSharp, reorderThreeOutline, reorderTwoSharp, searchOutline, searchSharp } from 'ionicons/icons';\nexport { createAnimation, createGesture, AlertButton, AlertInput, Gesture, GestureConfig, GestureDetail, iosTransitionAnimation, IonicSafeString, mdTransitionAnimation, setupConfig } from '@ionic/core';\nexport * from './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 { IonPage } from './IonPage';\nexport { IonTabsContext, IonTabsContextState } from './navigation/IonTabsContext';\nexport { IonTabs } from './navigation/IonTabs';\nexport { IonTabBar } from './navigation/IonTabBar';\nexport { IonBackButton } from './navigation/IonBackButton';\nexport { IonRouterOutlet } from './IonRouterOutlet';\nexport { IonIcon } from './IonIcon';\n\n// Utils\nexport { isPlatform, getPlatforms, getConfig } from './utils';\nexport { RouterDirection } from './hrefprops';\n\n// Ionic Animations\nexport { CreateAnimation } from './CreateAnimation';\n\n// Icons that are used by internal components\naddIcons({\n 'arrow-back-sharp': arrowBackSharp,\n 'caret-back-sharp': caretBackSharp,\n 'chevron-back': chevronBack,\n 'chevron-forward': chevronForward,\n 'close': close,\n 'close-circle': closeCircle,\n 'close-sharp': closeSharp,\n 'menu-outline': menuOutline,\n 'menu-sharp': menuSharp,\n 'reorder-two-sharp': reorderTwoSharp,\n 'reorder-three-outline': reorderThreeOutline,\n 'search-outline': searchOutline,\n 'search-sharp': searchSharp,\n});\n\n// TODO: defineCustomElements() is asyncronous\n// We need to use the promise\ndefineCustomElements(window);\n"],"names":["isPlatformCore","getPlatformsCore","toastControllerCore","ReactDOM","actionSheetControllerCore"],"mappings":"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"}
\No newline at end of file