@ionic/react 7.5.3-dev.11698858201.14165f23 → 7.5.3-dev.11699994454.1cbf1283
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2443 -8
- package/dist/index.js.map +1 -7
- package/dist/types/components/CreateAnimation.d.ts +71 -0
- package/dist/types/components/IonActionSheet.d.ts +3 -0
- package/dist/types/components/IonAlert.d.ts +3 -0
- package/dist/types/components/IonApp.d.ts +41 -0
- package/dist/types/components/IonIcon.d.ts +16 -0
- package/dist/types/components/IonLoading.d.ts +3 -0
- package/dist/types/components/IonModal.d.ts +3 -0
- package/dist/types/components/IonOverlayManager.d.ts +15 -0
- package/dist/types/components/IonPage.d.ts +3 -0
- package/dist/types/components/IonPicker.d.ts +3 -0
- package/dist/types/components/IonPopover.d.ts +3 -0
- package/dist/types/components/IonRedirect.d.ts +16 -0
- package/dist/types/components/IonRoute.d.ts +17 -0
- package/dist/types/components/IonRouterContext.d.ts +42 -0
- package/dist/types/components/IonRouterOutlet.d.ts +8 -0
- package/dist/types/components/IonToast.d.ts +3 -0
- package/dist/types/components/IonicReactProps.d.ts +6 -0
- package/dist/types/components/__tests__/utils.spec.d.ts +1 -0
- package/dist/types/components/createControllerComponent.d.ts +19 -0
- package/dist/types/components/createInlineOverlayComponent.d.ts +2 -0
- package/dist/types/components/createOverlayComponent.d.ts +20 -0
- package/dist/types/components/createRoutingComponent.d.ts +2 -0
- package/dist/types/components/hrefprops.d.ts +9 -0
- package/dist/types/components/index.d.ts +35 -0
- package/dist/types/components/inner-proxies.d.ts +14 -0
- package/dist/types/components/navigation/IonBackButton.d.ts +68 -0
- package/dist/types/components/navigation/IonNav.d.ts +5 -0
- package/dist/types/components/navigation/IonTabBar.d.ts +15 -0
- package/dist/types/components/navigation/IonTabButton.d.ts +40 -0
- package/dist/types/components/navigation/IonTabs.d.ts +49 -0
- package/dist/types/components/navigation/IonTabsContext.d.ts +6 -0
- package/dist/types/components/proxies.d.ts +66 -0
- package/dist/types/components/react-component-lib/createComponent.d.ts +10 -0
- package/dist/types/components/react-component-lib/createOverlayComponent.d.ts +21 -0
- package/dist/types/components/react-component-lib/index.d.ts +2 -0
- package/dist/types/components/react-component-lib/interfaces.d.ts +29 -0
- package/dist/types/components/react-component-lib/utils/attachProps.d.ts +16 -0
- package/dist/types/components/react-component-lib/utils/case.d.ts +2 -0
- package/dist/types/components/react-component-lib/utils/dev.d.ts +2 -0
- package/dist/types/components/react-component-lib/utils/index.d.ts +10 -0
- package/dist/types/components/routing-proxies.d.ts +44 -0
- package/dist/types/components/utils/detachProps.d.ts +8 -0
- package/dist/types/components/utils/index.d.ts +8 -0
- package/dist/types/components/utils/ionRenderToString.d.ts +2 -0
- package/dist/types/contexts/IonContext.d.ts +7 -0
- package/dist/types/contexts/IonLifeCycleContext.d.ts +72 -0
- package/dist/types/contexts/NavContext.d.ts +17 -0
- package/dist/types/framework-delegate.d.ts +2 -0
- package/dist/types/hooks/HookOverlayOptions.d.ts +7 -0
- package/dist/types/hooks/__tests__/hooks.spec.d.ts +0 -0
- package/dist/types/hooks/useController.d.ts +12 -0
- package/dist/types/hooks/useIonActionSheet.d.ts +26 -0
- package/dist/types/hooks/useIonAlert.d.ts +26 -0
- package/dist/types/hooks/useIonLoading.d.ts +27 -0
- package/dist/types/hooks/useIonModal.d.ts +17 -0
- package/dist/types/hooks/useIonPicker.d.ts +26 -0
- package/dist/types/hooks/useIonPopover.d.ts +17 -0
- package/dist/types/hooks/useIonToast.d.ts +26 -0
- package/dist/types/hooks/useOverlay.d.ts +13 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/lifecycle/IonLifeCycleHOC.d.ts +31 -0
- package/dist/types/lifecycle/hooks.d.ts +5 -0
- package/dist/types/lifecycle/index.d.ts +2 -0
- package/dist/types/models/ReactComponentOrElement.d.ts +2 -0
- package/dist/types/models/RouteAction.d.ts +1 -0
- package/dist/types/models/RouteInfo.d.ts +19 -0
- package/dist/types/models/RouterDirection.d.ts +1 -0
- package/dist/types/models/RouterOptions.d.ts +10 -0
- package/dist/types/models/index.d.ts +5 -0
- package/dist/types/routing/LocationHistory.d.ts +20 -0
- package/dist/types/routing/NavManager.d.ts +38 -0
- package/dist/types/routing/OutletPageManager.d.ts +26 -0
- package/dist/types/routing/PageManager.d.ts +25 -0
- package/dist/types/routing/RouteManagerContext.d.ts +16 -0
- package/dist/types/routing/StackContext.d.ts +7 -0
- package/dist/types/routing/ViewItem.d.ts +12 -0
- package/dist/types/routing/ViewLifeCycleManager.d.ts +42 -0
- package/dist/types/routing/ViewStacks.d.ts +19 -0
- package/dist/types/routing/__tests__/LocationHistory.spec.d.ts +1 -0
- package/dist/types/routing/index.d.ts +7 -0
- package/dist/types/utils/HTMLElementSSR.d.ts +4 -0
- package/dist/types/utils/generateId.d.ts +1 -0
- package/package.json +12 -5
- package/dist/components/CreateAnimation.js +0 -107
- package/dist/components/CreateAnimation.js.map +0 -7
- package/dist/components/IonActionSheet.js +0 -8
- package/dist/components/IonActionSheet.js.map +0 -7
- package/dist/components/IonAlert.js +0 -8
- package/dist/components/IonAlert.js.map +0 -7
- package/dist/components/IonApp.js +0 -42
- package/dist/components/IonApp.js.map +0 -7
- package/dist/components/IonIcon.js +0 -39
- package/dist/components/IonIcon.js.map +0 -7
- package/dist/components/IonLoading.js +0 -8
- package/dist/components/IonLoading.js.map +0 -7
- package/dist/components/IonModal.js +0 -9
- package/dist/components/IonModal.js.map +0 -7
- package/dist/components/IonOverlayManager.js +0 -29
- package/dist/components/IonOverlayManager.js.map +0 -7
- package/dist/components/IonPage.js +0 -31
- package/dist/components/IonPage.js.map +0 -7
- package/dist/components/IonPicker.js +0 -8
- package/dist/components/IonPicker.js.map +0 -7
- package/dist/components/IonPopover.js +0 -8
- package/dist/components/IonPopover.js.map +0 -7
- package/dist/components/IonRedirect.js +0 -19
- package/dist/components/IonRedirect.js.map +0 -7
- package/dist/components/IonRoute.js +0 -17
- package/dist/components/IonRoute.js.map +0 -7
- package/dist/components/IonRouterContext.js +0 -32
- package/dist/components/IonRouterContext.js.map +0 -7
- package/dist/components/IonRouterOutlet.js +0 -24
- package/dist/components/IonRouterOutlet.js.map +0 -7
- package/dist/components/IonToast.js +0 -8
- package/dist/components/IonToast.js.map +0 -7
- package/dist/components/IonicReactProps.js +0 -2
- package/dist/components/IonicReactProps.js.map +0 -7
- package/dist/components/__tests__/utils.spec.js +0 -50
- package/dist/components/__tests__/utils.spec.js.map +0 -7
- package/dist/components/createControllerComponent.js +0 -80
- package/dist/components/createControllerComponent.js.map +0 -7
- package/dist/components/createInlineOverlayComponent.js +0 -114
- package/dist/components/createInlineOverlayComponent.js.map +0 -7
- package/dist/components/createOverlayComponent.js +0 -88
- package/dist/components/createOverlayComponent.js.map +0 -7
- package/dist/components/createRoutingComponent.js +0 -79
- package/dist/components/createRoutingComponent.js.map +0 -7
- package/dist/components/hrefprops.js +0 -2
- package/dist/components/hrefprops.js.map +0 -7
- package/dist/components/index.js +0 -126
- package/dist/components/index.js.map +0 -7
- package/dist/components/inner-proxies.js +0 -30
- package/dist/components/inner-proxies.js.map +0 -7
- package/dist/components/navigation/IonBackButton.js +0 -31
- package/dist/components/navigation/IonBackButton.js.map +0 -7
- package/dist/components/navigation/IonNav.js +0 -21
- package/dist/components/navigation/IonNav.js.map +0 -7
- package/dist/components/navigation/IonTabBar.js +0 -173
- package/dist/components/navigation/IonTabBar.js.map +0 -7
- package/dist/components/navigation/IonTabButton.js +0 -30
- package/dist/components/navigation/IonTabButton.js.map +0 -7
- package/dist/components/navigation/IonTabs.js +0 -103
- package/dist/components/navigation/IonTabs.js.map +0 -7
- package/dist/components/navigation/IonTabsContext.js +0 -7
- package/dist/components/navigation/IonTabsContext.js.map +0 -7
- package/dist/components/proxies.js +0 -131
- package/dist/components/proxies.js.map +0 -7
- package/dist/components/react-component-lib/createComponent.js +0 -58
- package/dist/components/react-component-lib/createComponent.js.map +0 -7
- package/dist/components/react-component-lib/createOverlayComponent.js +0 -86
- package/dist/components/react-component-lib/createOverlayComponent.js.map +0 -7
- package/dist/components/react-component-lib/index.js +0 -4
- package/dist/components/react-component-lib/index.js.map +0 -7
- package/dist/components/react-component-lib/interfaces.js +0 -2
- package/dist/components/react-component-lib/interfaces.js.map +0 -7
- package/dist/components/react-component-lib/utils/attachProps.js +0 -92
- package/dist/components/react-component-lib/utils/attachProps.js.map +0 -7
- package/dist/components/react-component-lib/utils/case.js +0 -4
- package/dist/components/react-component-lib/utils/case.js.map +0 -7
- package/dist/components/react-component-lib/utils/dev.js +0 -14
- package/dist/components/react-component-lib/utils/dev.js.map +0 -7
- package/dist/components/react-component-lib/utils/index.js +0 -31
- package/dist/components/react-component-lib/utils/index.js.map +0 -7
- package/dist/components/routing-proxies.js +0 -29
- package/dist/components/routing-proxies.js.map +0 -7
- package/dist/components/utils/detachProps.js +0 -24
- package/dist/components/utils/detachProps.js.map +0 -7
- package/dist/components/utils/index.js +0 -26
- package/dist/components/utils/index.js.map +0 -7
- package/dist/components/utils/ionRenderToString.js +0 -36
- package/dist/components/utils/ionRenderToString.js.map +0 -7
- package/dist/contexts/IonContext.js +0 -11
- package/dist/contexts/IonContext.js.map +0 -7
- package/dist/contexts/IonLifeCycleContext.js +0 -185
- package/dist/contexts/IonLifeCycleContext.js.map +0 -7
- package/dist/contexts/NavContext.js +0 -36
- package/dist/contexts/NavContext.js.map +0 -7
- package/dist/framework-delegate.js +0 -30
- package/dist/framework-delegate.js.map +0 -7
- package/dist/hooks/HookOverlayOptions.js +0 -2
- package/dist/hooks/HookOverlayOptions.js.map +0 -7
- package/dist/hooks/__tests__/hooks.spec.js +0 -6
- package/dist/hooks/__tests__/hooks.spec.js.map +0 -7
- package/dist/hooks/useController.js +0 -45
- package/dist/hooks/useController.js.map +0 -7
- package/dist/hooks/useIonActionSheet.js +0 -27
- package/dist/hooks/useIonActionSheet.js.map +0 -7
- package/dist/hooks/useIonAlert.js +0 -23
- package/dist/hooks/useIonAlert.js.map +0 -7
- package/dist/hooks/useIonLoading.js +0 -28
- package/dist/hooks/useIonLoading.js.map +0 -7
- package/dist/hooks/useIonModal.js +0 -22
- package/dist/hooks/useIonModal.js.map +0 -7
- package/dist/hooks/useIonPicker.js +0 -27
- package/dist/hooks/useIonPicker.js.map +0 -7
- package/dist/hooks/useIonPopover.js +0 -22
- package/dist/hooks/useIonPopover.js.map +0 -7
- package/dist/hooks/useIonToast.js +0 -23
- package/dist/hooks/useIonToast.js.map +0 -7
- package/dist/hooks/useOverlay.js +0 -67
- package/dist/hooks/useOverlay.js.map +0 -7
- package/dist/lifecycle/IonLifeCycleHOC.js +0 -41
- package/dist/lifecycle/IonLifeCycleHOC.js.map +0 -7
- package/dist/lifecycle/hooks.js +0 -52
- package/dist/lifecycle/hooks.js.map +0 -7
- package/dist/lifecycle/index.js +0 -4
- package/dist/lifecycle/index.js.map +0 -7
- package/dist/models/ReactComponentOrElement.js +0 -2
- package/dist/models/ReactComponentOrElement.js.map +0 -7
- package/dist/models/RouteAction.js +0 -2
- package/dist/models/RouteAction.js.map +0 -7
- package/dist/models/RouteInfo.js +0 -2
- package/dist/models/RouteInfo.js.map +0 -7
- package/dist/models/RouterDirection.js +0 -2
- package/dist/models/RouterDirection.js.map +0 -7
- package/dist/models/RouterOptions.js +0 -2
- package/dist/models/RouterOptions.js.map +0 -7
- package/dist/models/index.js +0 -7
- package/dist/models/index.js.map +0 -7
- package/dist/routing/LocationHistory.js +0 -140
- package/dist/routing/LocationHistory.js.map +0 -7
- package/dist/routing/NavManager.js +0 -76
- package/dist/routing/NavManager.js.map +0 -7
- package/dist/routing/OutletPageManager.js +0 -69
- package/dist/routing/OutletPageManager.js.map +0 -7
- package/dist/routing/PageManager.js +0 -60
- package/dist/routing/PageManager.js.map +0 -7
- package/dist/routing/RouteManagerContext.js +0 -15
- package/dist/routing/RouteManagerContext.js.map +0 -7
- package/dist/routing/StackContext.js +0 -7
- package/dist/routing/StackContext.js.map +0 -7
- package/dist/routing/ViewItem.js +0 -2
- package/dist/routing/ViewItem.js.map +0 -7
- package/dist/routing/ViewLifeCycleManager.js +0 -36
- package/dist/routing/ViewLifeCycleManager.js.map +0 -7
- package/dist/routing/ViewStacks.js +0 -49
- package/dist/routing/ViewStacks.js.map +0 -7
- package/dist/routing/__tests__/LocationHistory.spec.js +0 -185
- package/dist/routing/__tests__/LocationHistory.spec.js.map +0 -7
- package/dist/routing/index.js +0 -9
- package/dist/routing/index.js.map +0 -7
- package/dist/utils/HTMLElementSSR.js +0 -4
- package/dist/utils/HTMLElementSSR.js.map +0 -7
- package/dist/utils/generateId.js +0 -8
- package/dist/utils/generateId.js.map +0 -7
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import React, { createElement } from "react";
|
|
3
|
-
import {
|
|
4
|
-
attachProps,
|
|
5
|
-
camelToDashCase,
|
|
6
|
-
dashToPascalCase,
|
|
7
|
-
isCoveredByReact,
|
|
8
|
-
mergeRefs
|
|
9
|
-
} from "./react-component-lib/utils";
|
|
10
|
-
import { createForwardRef } from "./utils";
|
|
11
|
-
import { detachProps } from "./utils/detachProps";
|
|
12
|
-
export const createInlineOverlayComponent = (tagName, defineCustomElement, hasDelegateHost) => {
|
|
13
|
-
if (defineCustomElement) {
|
|
14
|
-
defineCustomElement();
|
|
15
|
-
}
|
|
16
|
-
const displayName = dashToPascalCase(tagName);
|
|
17
|
-
const ReactComponent = class extends React.Component {
|
|
18
|
-
constructor(props) {
|
|
19
|
-
super(props);
|
|
20
|
-
this.handleIonMount = () => {
|
|
21
|
-
this.setState({ isOpen: true });
|
|
22
|
-
};
|
|
23
|
-
this.handleWillPresent = (evt) => {
|
|
24
|
-
this.setState({ isOpen: true });
|
|
25
|
-
this.props.onWillPresent && this.props.onWillPresent(evt);
|
|
26
|
-
};
|
|
27
|
-
this.handleDidDismiss = (evt) => {
|
|
28
|
-
const wrapper = this.wrapperRef.current;
|
|
29
|
-
const el = this.ref.current;
|
|
30
|
-
if (wrapper && el) {
|
|
31
|
-
el.append(wrapper);
|
|
32
|
-
this.setState({ isOpen: false });
|
|
33
|
-
}
|
|
34
|
-
this.props.onDidDismiss && this.props.onDidDismiss(evt);
|
|
35
|
-
};
|
|
36
|
-
this.ref = React.createRef();
|
|
37
|
-
this.stableMergedRefs = mergeRefs(this.ref, this.props.forwardedRef);
|
|
38
|
-
this.state = { isOpen: false };
|
|
39
|
-
this.wrapperRef = React.createRef();
|
|
40
|
-
}
|
|
41
|
-
componentDidMount() {
|
|
42
|
-
this.componentDidUpdate(this.props);
|
|
43
|
-
this.ref.current?.addEventListener("ionMount", this.handleIonMount);
|
|
44
|
-
this.ref.current?.addEventListener("willPresent", this.handleWillPresent);
|
|
45
|
-
this.ref.current?.addEventListener("didDismiss", this.handleDidDismiss);
|
|
46
|
-
}
|
|
47
|
-
componentDidUpdate(prevProps) {
|
|
48
|
-
const node = this.ref.current;
|
|
49
|
-
const { onDidDismiss, onWillPresent, ...cProps } = this.props;
|
|
50
|
-
attachProps(node, cProps, prevProps);
|
|
51
|
-
}
|
|
52
|
-
componentWillUnmount() {
|
|
53
|
-
const node = this.ref.current;
|
|
54
|
-
if (node && this.state.isOpen) {
|
|
55
|
-
node.removeEventListener("didDismiss", this.handleDidDismiss);
|
|
56
|
-
node.remove();
|
|
57
|
-
detachProps(node, this.props);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
render() {
|
|
61
|
-
const { children, forwardedRef, style, className, ref, ...cProps } = this.props;
|
|
62
|
-
const propsToPass = Object.keys(cProps).reduce((acc, name) => {
|
|
63
|
-
if (name.indexOf("on") === 0 && name[2] === name[2].toUpperCase()) {
|
|
64
|
-
const eventName = name.substring(2).toLowerCase();
|
|
65
|
-
if (isCoveredByReact(eventName)) {
|
|
66
|
-
acc[name] = cProps[name];
|
|
67
|
-
}
|
|
68
|
-
} else if (["string", "boolean", "number"].includes(typeof cProps[name])) {
|
|
69
|
-
acc[camelToDashCase(name)] = cProps[name];
|
|
70
|
-
}
|
|
71
|
-
return acc;
|
|
72
|
-
}, {});
|
|
73
|
-
const newProps = {
|
|
74
|
-
...propsToPass,
|
|
75
|
-
ref: this.stableMergedRefs,
|
|
76
|
-
style
|
|
77
|
-
};
|
|
78
|
-
const getWrapperClasses = () => {
|
|
79
|
-
if (hasDelegateHost) {
|
|
80
|
-
return `${DELEGATE_HOST} ion-page`;
|
|
81
|
-
}
|
|
82
|
-
return DELEGATE_HOST;
|
|
83
|
-
};
|
|
84
|
-
return createElement(
|
|
85
|
-
"template",
|
|
86
|
-
{},
|
|
87
|
-
createElement(
|
|
88
|
-
tagName,
|
|
89
|
-
newProps,
|
|
90
|
-
/**
|
|
91
|
-
* We only want the inner component
|
|
92
|
-
* to be mounted if the overlay is open,
|
|
93
|
-
* so conditionally render the component
|
|
94
|
-
* based on the isOpen state.
|
|
95
|
-
*/
|
|
96
|
-
this.state.isOpen || this.props.keepContentsMounted ? createElement(
|
|
97
|
-
"div",
|
|
98
|
-
{
|
|
99
|
-
ref: this.wrapperRef,
|
|
100
|
-
className: getWrapperClasses()
|
|
101
|
-
},
|
|
102
|
-
children
|
|
103
|
-
) : null
|
|
104
|
-
)
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
static get displayName() {
|
|
108
|
-
return displayName;
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
return createForwardRef(ReactComponent, displayName);
|
|
112
|
-
};
|
|
113
|
-
const DELEGATE_HOST = "ion-delegate-host";
|
|
114
|
-
//# sourceMappingURL=createInlineOverlayComponent.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/createInlineOverlayComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { HTMLIonOverlayElement, 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';\nimport { detachProps } from './utils/detachProps';\n\n// TODO(FW-2959): types\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 hasDelegateHost?: boolean\n) => {\n if (defineCustomElement) {\n defineCustomElement();\n }\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component<IonicReactInternalProps<PropType>, InlineOverlayState> {\n ref: React.RefObject<HTMLIonOverlayElement>;\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 this.ref.current?.addEventListener('ionMount', this.handleIonMount);\n this.ref.current?.addEventListener('willPresent', this.handleWillPresent);\n this.ref.current?.addEventListener('didDismiss', this.handleDidDismiss);\n }\n\n componentDidUpdate(prevProps: IonicReactInternalProps<PropType>) {\n const node = this.ref.current! as HTMLElement;\n /**\n * onDidDismiss and onWillPresent have manual implementations that\n * will invoke the original handler. We need to filter those out\n * so they don't get attached twice and called twice.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { onDidDismiss, onWillPresent, ...cProps } = this.props;\n attachProps(node, cProps, prevProps);\n }\n\n componentWillUnmount() {\n const node = this.ref.current;\n /**\n * If the overlay is being unmounted, but is still\n * open, this means the unmount was triggered outside\n * of the overlay being dismissed.\n *\n * This can happen with:\n * - The parent component being unmounted\n * - The overlay being conditionally rendered\n * - A route change (push/pop/replace)\n *\n * Unmounting the overlay at this stage should skip\n * the dismiss lifecycle, including skipping the transition.\n *\n */\n if (node && this.state.isOpen) {\n /**\n * Detach the local event listener that performs the state updates,\n * before dismissing the overlay, to prevent the callback handlers\n * executing after the component has been unmounted. This is to\n * avoid memory leaks.\n */\n node.removeEventListener('didDismiss', this.handleDidDismiss);\n node.remove();\n detachProps(node, this.props);\n }\n }\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 /**\n * Some overlays need `.ion-page` so content\n * takes up the full size of the parent overlay.\n */\n const getWrapperClasses = () => {\n if (hasDelegateHost) {\n return `${DELEGATE_HOST} ion-page`;\n }\n\n return DELEGATE_HOST;\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 ref: this.wrapperRef,\n className: getWrapperClasses(),\n },\n children\n )\n : null\n )\n );\n }\n\n static get displayName() {\n return displayName;\n }\n\n private handleIonMount = () => {\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.setState({ isOpen: true });\n };\n\n private handleWillPresent = (evt: any) => {\n this.setState({ isOpen: true });\n /**\n * 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.props.onWillPresent && this.props.onWillPresent(evt);\n };\n\n private handleDidDismiss = (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 overlay was still open. (For\n * example, if an item contains an inline overlay 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 return createForwardRef<PropType, ElementType>(ReactComponent, displayName);\n};\n\nconst DELEGATE_HOST = 'ion-delegate-host';\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import ReactDOM from "react-dom";
|
|
4
|
-
import { attachProps, dashToPascalCase, setRef } from "./react-component-lib/utils";
|
|
5
|
-
export const createOverlayComponent = (tagName, controller, defineCustomElement) => {
|
|
6
|
-
if (defineCustomElement !== void 0) {
|
|
7
|
-
defineCustomElement();
|
|
8
|
-
}
|
|
9
|
-
const displayName = dashToPascalCase(tagName);
|
|
10
|
-
const didDismissEventName = `on${displayName}DidDismiss`;
|
|
11
|
-
const didPresentEventName = `on${displayName}DidPresent`;
|
|
12
|
-
const willDismissEventName = `on${displayName}WillDismiss`;
|
|
13
|
-
const willPresentEventName = `on${displayName}WillPresent`;
|
|
14
|
-
class Overlay extends React.Component {
|
|
15
|
-
constructor(props) {
|
|
16
|
-
super(props);
|
|
17
|
-
this.isDismissing = false;
|
|
18
|
-
if (typeof document !== "undefined") {
|
|
19
|
-
this.el = document.createElement("div");
|
|
20
|
-
}
|
|
21
|
-
this.handleDismiss = this.handleDismiss.bind(this);
|
|
22
|
-
}
|
|
23
|
-
static get displayName() {
|
|
24
|
-
return displayName;
|
|
25
|
-
}
|
|
26
|
-
componentDidMount() {
|
|
27
|
-
if (this.props.isOpen) {
|
|
28
|
-
this.present();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
componentWillUnmount() {
|
|
32
|
-
if (this.overlay) {
|
|
33
|
-
this.overlay.dismiss();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
handleDismiss(event) {
|
|
37
|
-
if (this.props.onDidDismiss) {
|
|
38
|
-
this.props.onDidDismiss(event);
|
|
39
|
-
}
|
|
40
|
-
setRef(this.props.forwardedRef, null);
|
|
41
|
-
}
|
|
42
|
-
shouldComponentUpdate(nextProps) {
|
|
43
|
-
if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {
|
|
44
|
-
this.isDismissing = true;
|
|
45
|
-
}
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
async componentDidUpdate(prevProps) {
|
|
49
|
-
if (this.overlay) {
|
|
50
|
-
attachProps(this.overlay, this.props, prevProps);
|
|
51
|
-
}
|
|
52
|
-
if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen === true) {
|
|
53
|
-
this.present(prevProps);
|
|
54
|
-
}
|
|
55
|
-
if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {
|
|
56
|
-
await this.overlay.dismiss();
|
|
57
|
-
this.isDismissing = false;
|
|
58
|
-
this.forceUpdate();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
async present(prevProps) {
|
|
62
|
-
const { children, isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent, ...cProps } = this.props;
|
|
63
|
-
const elementProps = {
|
|
64
|
-
...cProps,
|
|
65
|
-
ref: this.props.forwardedRef,
|
|
66
|
-
[didDismissEventName]: this.handleDismiss,
|
|
67
|
-
[didPresentEventName]: (e) => this.props.onDidPresent && this.props.onDidPresent(e),
|
|
68
|
-
[willDismissEventName]: (e) => this.props.onWillDismiss && this.props.onWillDismiss(e),
|
|
69
|
-
[willPresentEventName]: (e) => this.props.onWillPresent && this.props.onWillPresent(e)
|
|
70
|
-
};
|
|
71
|
-
this.overlay = await controller.create({
|
|
72
|
-
...elementProps,
|
|
73
|
-
component: this.el,
|
|
74
|
-
componentProps: {}
|
|
75
|
-
});
|
|
76
|
-
setRef(this.props.forwardedRef, this.overlay);
|
|
77
|
-
attachProps(this.overlay, elementProps, prevProps);
|
|
78
|
-
await this.overlay.present();
|
|
79
|
-
}
|
|
80
|
-
render() {
|
|
81
|
-
return ReactDOM.createPortal(this.props.isOpen || this.isDismissing ? this.props.children : null, this.el);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return React.forwardRef((props, ref) => {
|
|
85
|
-
return /* @__PURE__ */ React.createElement(Overlay, { ...props, forwardedRef: ref });
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=createOverlayComponent.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/createOverlayComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { OverlayEventDetail } from '@ionic/core/components';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { attachProps, dashToPascalCase, setRef } from './react-component-lib/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 tagName: string,\n controller: { create: (options: any) => Promise<OverlayType> },\n defineCustomElement?: () => void\n) => {\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n\n const displayName = dashToPascalCase(tagName);\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 &\n ReactOverlayProps & {\n forwardedRef?: React.ForwardedRef<OverlayType>;\n };\n\n class Overlay extends React.Component<Props> {\n overlay?: OverlayType;\n el!: HTMLDivElement;\n isDismissing = false;\n constructor(props: Props) {\n super(props);\n if (typeof document !== 'undefined') {\n this.el = document.createElement('div');\n }\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) {\n this.overlay.dismiss();\n }\n }\n\n handleDismiss(event: CustomEvent<OverlayEventDetail<any>>) {\n if (this.props.onDidDismiss) {\n this.props.onDidDismiss(event);\n }\n setRef(this.props.forwardedRef, null);\n }\n\n shouldComponentUpdate(nextProps: Props) {\n // Check if the overlay component is about to dismiss\n if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {\n this.isDismissing = true;\n }\n\n return true;\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 this.isDismissing = false;\n\n /**\n * Now that the overlay is dismissed\n * we need to render again so that any\n * inner components will be unmounted\n */\n this.forceUpdate();\n }\n }\n\n async present(prevProps?: Props) {\n /* eslint-disable @typescript-eslint/no-unused-vars */\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 /* eslint-enable @typescript-eslint/no-unused-vars */\n\n this.overlay = await controller.create({\n ...elementProps,\n component: this.el,\n componentProps: {},\n });\n\n setRef(this.props.forwardedRef, this.overlay);\n attachProps(this.overlay, elementProps, prevProps);\n\n await this.overlay.present();\n }\n\n render() {\n /**\n * Continue to render the component even when\n * overlay is dismissing otherwise component\n * will be hidden before animation is done.\n */\n return ReactDOM.createPortal(this.props.isOpen || this.isDismissing ? this.props.children : null, this.el);\n }\n }\n\n return React.forwardRef<OverlayType, Props>((props, ref) => {\n return <Overlay {...props} forwardedRef={ref} />;\n });\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import React, { createElement } from "react";
|
|
3
|
-
import { NavContext } from "../contexts/NavContext";
|
|
4
|
-
import {
|
|
5
|
-
attachProps,
|
|
6
|
-
camelToDashCase,
|
|
7
|
-
dashToPascalCase,
|
|
8
|
-
defineCustomElement,
|
|
9
|
-
isCoveredByReact,
|
|
10
|
-
mergeRefs
|
|
11
|
-
} from "./react-component-lib/utils";
|
|
12
|
-
import { createForwardRef } from "./utils";
|
|
13
|
-
export const createRoutingComponent = (tagName, customElement) => {
|
|
14
|
-
defineCustomElement(tagName, customElement);
|
|
15
|
-
const displayName = dashToPascalCase(tagName);
|
|
16
|
-
const ReactComponent = class extends React.Component {
|
|
17
|
-
constructor(props) {
|
|
18
|
-
super(props);
|
|
19
|
-
this.handleClick = (e) => {
|
|
20
|
-
const { routerLink, routerDirection, routerOptions, routerAnimation } = this.props;
|
|
21
|
-
if (routerLink !== void 0) {
|
|
22
|
-
e.preventDefault();
|
|
23
|
-
this.context.navigate(routerLink, routerDirection, void 0, routerAnimation, routerOptions);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
this.ref = React.createRef();
|
|
27
|
-
this.stableMergedRefs = mergeRefs(this.ref, this.props.forwardedRef);
|
|
28
|
-
}
|
|
29
|
-
componentDidMount() {
|
|
30
|
-
this.componentDidUpdate(this.props);
|
|
31
|
-
}
|
|
32
|
-
componentDidUpdate(prevProps) {
|
|
33
|
-
const node = this.ref.current;
|
|
34
|
-
attachProps(node, this.props, prevProps);
|
|
35
|
-
}
|
|
36
|
-
render() {
|
|
37
|
-
const { children, forwardedRef, style, className, ref, ...cProps } = this.props;
|
|
38
|
-
const propsToPass = Object.keys(cProps).reduce((acc, name) => {
|
|
39
|
-
if (name.indexOf("on") === 0 && name[2] === name[2].toUpperCase()) {
|
|
40
|
-
const eventName = name.substring(2).toLowerCase();
|
|
41
|
-
if (isCoveredByReact(eventName)) {
|
|
42
|
-
acc[name] = cProps[name];
|
|
43
|
-
}
|
|
44
|
-
} else if (["string", "boolean", "number"].includes(typeof cProps[name])) {
|
|
45
|
-
acc[camelToDashCase(name)] = cProps[name];
|
|
46
|
-
}
|
|
47
|
-
return acc;
|
|
48
|
-
}, {});
|
|
49
|
-
const newProps = {
|
|
50
|
-
...propsToPass,
|
|
51
|
-
ref: this.stableMergedRefs,
|
|
52
|
-
style
|
|
53
|
-
};
|
|
54
|
-
if (this.props.routerLink && !this.props.href) {
|
|
55
|
-
newProps.href = this.props.routerLink;
|
|
56
|
-
}
|
|
57
|
-
if (newProps.onClick) {
|
|
58
|
-
const oldClick = newProps.onClick;
|
|
59
|
-
newProps.onClick = (e) => {
|
|
60
|
-
oldClick(e);
|
|
61
|
-
if (!e.defaultPrevented) {
|
|
62
|
-
this.handleClick(e);
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
} else {
|
|
66
|
-
newProps.onClick = this.handleClick;
|
|
67
|
-
}
|
|
68
|
-
return createElement(tagName, newProps, children);
|
|
69
|
-
}
|
|
70
|
-
static get displayName() {
|
|
71
|
-
return displayName;
|
|
72
|
-
}
|
|
73
|
-
static get contextType() {
|
|
74
|
-
return NavContext;
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
return createForwardRef(ReactComponent, displayName);
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=createRoutingComponent.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/createRoutingComponent.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { AnimationBuilder } from '@ionic/core/components';\nimport React, { createElement } from 'react';\n\nimport { NavContext } from '../contexts/NavContext';\nimport type { RouterOptions } from '../models';\nimport type { 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\n// TODO(FW-2959): types\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>(tagName: string, customElement?: any) => {\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(routerLink, routerDirection, undefined, routerAnimation, routerOptions);\n }\n };\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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"],
|
|
5
|
-
"mappings": ";AACA,OAAO,SAAS,qBAAqB;AAErC,SAAS,kBAAkB;AAI3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AAc1B,aAAM,yBAAyB,CAAwB,SAAiB,kBAAwB;AACrG,sBAAoB,SAAS,aAAa;AAE1C,QAAM,cAAc,iBAAiB,OAAO;AAC5C,QAAM,iBAAiB,cAAc,MAAM,UAA6C;AAAA,IAKtF,YAAY,OAA0C;AACpD,YAAM,KAAK;AAgBb,WAAQ,cAAc,CAAC,MAAkC;AACvD,cAAM,EAAE,YAAY,iBAAiB,eAAe,gBAAgB,IAAI,KAAK;AAC7E,YAAI,eAAe,QAAW;AAC5B,YAAE,eAAe;AACjB,eAAK,QAAQ,SAAS,YAAY,iBAAiB,QAAW,iBAAiB,aAAa;AAAA,QAC9F;AAAA,MACF;AApBE,WAAK,MAAM,MAAM,UAAU;AAE3B,WAAK,mBAAmB,UAAU,KAAK,KAAK,KAAK,MAAM,YAAY;AAAA,IACrE;AAAA,IAEA,oBAAoB;AAClB,WAAK,mBAAmB,KAAK,KAAK;AAAA,IACpC;AAAA,IAEA,mBAAmB,WAA8C;AAC/D,YAAM,OAAO,KAAK,IAAI;AACtB,kBAAY,MAAM,KAAK,OAAO,SAAS;AAAA,IACzC;AAAA,IAUA,SAAS;AAEP,YAAM,EAAE,UAAU,cAAc,OAAO,WAAW,KAAK,GAAG,OAAO,IAAI,KAAK;AAE1E,YAAM,cAAc,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS;AAC5D,YAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,YAAY,GAAG;AACjE,gBAAM,YAAY,KAAK,UAAU,CAAC,EAAE,YAAY;AAChD,cAAI,iBAAiB,SAAS,GAAG;AAC/B,YAAC,IAAY,IAAI,IAAK,OAAe,IAAI;AAAA,UAC3C;AAAA,QACF,WAAW,CAAC,UAAU,WAAW,QAAQ,EAAE,SAAS,OAAQ,OAAe,IAAI,CAAC,GAAG;AACjF,UAAC,IAAY,gBAAgB,IAAI,CAAC,IAAK,OAAe,IAAI;AAAA,QAC5D;AACA,eAAO;AAAA,MACT,GAAG,CAAC,CAAC;AAEL,YAAM,WAA8C;AAAA,QAClD,GAAG;AAAA,QACH,KAAK,KAAK;AAAA,QACV;AAAA,MACF;AAEA,UAAI,KAAK,MAAM,cAAc,CAAC,KAAK,MAAM,MAAM;AAC7C,iBAAS,OAAO,KAAK,MAAM;AAAA,MAC7B;AACA,UAAI,SAAS,SAAS;AACpB,cAAM,WAAW,SAAS;AAC1B,iBAAS,UAAU,CAAC,MAAkC;AACpD,mBAAS,CAAC;AACV,cAAI,CAAC,EAAE,kBAAkB;AACvB,iBAAK,YAAY,CAAC;AAAA,UACpB;AAAA,QACF;AAAA,MACF,OAAO;AACL,iBAAS,UAAU,KAAK;AAAA,MAC1B;AAEA,aAAO,cAAc,SAAS,UAAU,QAAQ;AAAA,IAClD;AAAA,IAEA,WAAW,cAAc;AACvB,aAAO;AAAA,IACT;AAAA,IAEA,WAAW,cAAc;AACvB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO,iBAAwC,gBAAgB,WAAW;AAC5E;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/dist/components/index.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import { initialize } from "@ionic/core/components";
|
|
3
|
-
export {
|
|
4
|
-
createAnimation,
|
|
5
|
-
createGesture,
|
|
6
|
-
iosTransitionAnimation,
|
|
7
|
-
mdTransitionAnimation,
|
|
8
|
-
IonicSlides,
|
|
9
|
-
getTimeGivenProgression,
|
|
10
|
-
getIonPageElement,
|
|
11
|
-
openURL,
|
|
12
|
-
Animation,
|
|
13
|
-
AnimationBuilder,
|
|
14
|
-
AnimationCallbackOptions,
|
|
15
|
-
AnimationDirection,
|
|
16
|
-
AnimationFill,
|
|
17
|
-
AnimationKeyFrames,
|
|
18
|
-
AnimationLifecycle,
|
|
19
|
-
Gesture,
|
|
20
|
-
GestureConfig,
|
|
21
|
-
GestureDetail,
|
|
22
|
-
NavComponentWithProps,
|
|
23
|
-
SpinnerTypes,
|
|
24
|
-
AccordionGroupCustomEvent,
|
|
25
|
-
AccordionGroupChangeEventDetail,
|
|
26
|
-
BreadcrumbCustomEvent,
|
|
27
|
-
BreadcrumbCollapsedClickEventDetail,
|
|
28
|
-
ActionSheetOptions,
|
|
29
|
-
ActionSheetButton,
|
|
30
|
-
AlertOptions,
|
|
31
|
-
AlertInput,
|
|
32
|
-
AlertButton,
|
|
33
|
-
BackButtonEvent,
|
|
34
|
-
CheckboxCustomEvent,
|
|
35
|
-
CheckboxChangeEventDetail,
|
|
36
|
-
DatetimeCustomEvent,
|
|
37
|
-
DatetimeChangeEventDetail,
|
|
38
|
-
InfiniteScrollCustomEvent,
|
|
39
|
-
InputCustomEvent,
|
|
40
|
-
InputChangeEventDetail,
|
|
41
|
-
ItemReorderEventDetail,
|
|
42
|
-
ItemReorderCustomEvent,
|
|
43
|
-
ItemSlidingCustomEvent,
|
|
44
|
-
IonicSafeString,
|
|
45
|
-
LoadingOptions,
|
|
46
|
-
MenuCustomEvent,
|
|
47
|
-
ModalOptions,
|
|
48
|
-
NavCustomEvent,
|
|
49
|
-
PickerOptions,
|
|
50
|
-
PickerButton,
|
|
51
|
-
PickerColumn,
|
|
52
|
-
PickerColumnOption,
|
|
53
|
-
PopoverOptions,
|
|
54
|
-
RadioGroupCustomEvent,
|
|
55
|
-
RadioGroupChangeEventDetail,
|
|
56
|
-
RangeCustomEvent,
|
|
57
|
-
RangeChangeEventDetail,
|
|
58
|
-
RangeKnobMoveStartEventDetail,
|
|
59
|
-
RangeKnobMoveEndEventDetail,
|
|
60
|
-
RefresherCustomEvent,
|
|
61
|
-
RefresherEventDetail,
|
|
62
|
-
RouterEventDetail,
|
|
63
|
-
RouterCustomEvent,
|
|
64
|
-
ScrollBaseCustomEvent,
|
|
65
|
-
ScrollBaseDetail,
|
|
66
|
-
ScrollDetail,
|
|
67
|
-
ScrollCustomEvent,
|
|
68
|
-
SearchbarCustomEvent,
|
|
69
|
-
SearchbarChangeEventDetail,
|
|
70
|
-
SearchbarInputEventDetail,
|
|
71
|
-
SegmentChangeEventDetail,
|
|
72
|
-
SegmentCustomEvent,
|
|
73
|
-
SegmentValue,
|
|
74
|
-
SelectChangeEventDetail,
|
|
75
|
-
SelectCustomEvent,
|
|
76
|
-
TabsCustomEvent,
|
|
77
|
-
TextareaChangeEventDetail,
|
|
78
|
-
TextareaCustomEvent,
|
|
79
|
-
ToastOptions,
|
|
80
|
-
ToastButton,
|
|
81
|
-
ToastLayout,
|
|
82
|
-
ToggleChangeEventDetail,
|
|
83
|
-
ToggleCustomEvent,
|
|
84
|
-
TransitionOptions
|
|
85
|
-
} from "@ionic/core/components";
|
|
86
|
-
export * from "./proxies";
|
|
87
|
-
export * from "./routing-proxies";
|
|
88
|
-
export { IonAlert } from "./IonAlert";
|
|
89
|
-
export { IonLoading } from "./IonLoading";
|
|
90
|
-
export * from "./IonToast";
|
|
91
|
-
export { IonPicker } from "./IonPicker";
|
|
92
|
-
export * from "./IonActionSheet";
|
|
93
|
-
export { IonModal } from "./IonModal";
|
|
94
|
-
export { IonPopover } from "./IonPopover";
|
|
95
|
-
export { IonApp } from "./IonApp";
|
|
96
|
-
export { IonPage } from "./IonPage";
|
|
97
|
-
export { IonNav } from "./navigation/IonNav";
|
|
98
|
-
export { IonTabsContext, IonTabsContextState } from "./navigation/IonTabsContext";
|
|
99
|
-
export { IonTabs } from "./navigation/IonTabs";
|
|
100
|
-
export { IonTabBar } from "./navigation/IonTabBar";
|
|
101
|
-
export { IonTabButton } from "./navigation/IonTabButton";
|
|
102
|
-
export { IonBackButton } from "./navigation/IonBackButton";
|
|
103
|
-
export { IonRouterOutlet } from "./IonRouterOutlet";
|
|
104
|
-
export { IonIcon } from "./IonIcon";
|
|
105
|
-
export * from "./IonRoute";
|
|
106
|
-
export * from "./IonRedirect";
|
|
107
|
-
export * from "./IonRouterContext";
|
|
108
|
-
export { isPlatform, getPlatforms, getConfig } from "./utils";
|
|
109
|
-
export * from "./hrefprops";
|
|
110
|
-
export { CreateAnimation } from "./CreateAnimation";
|
|
111
|
-
export { useIonActionSheet, UseIonActionSheetResult } from "../hooks/useIonActionSheet";
|
|
112
|
-
export { useIonAlert, UseIonAlertResult } from "../hooks/useIonAlert";
|
|
113
|
-
export { useIonToast, UseIonToastResult } from "../hooks/useIonToast";
|
|
114
|
-
export { useIonModal, UseIonModalResult } from "../hooks/useIonModal";
|
|
115
|
-
export { useIonPopover, UseIonPopoverResult } from "../hooks/useIonPopover";
|
|
116
|
-
export { useIonPicker, UseIonPickerResult } from "../hooks/useIonPicker";
|
|
117
|
-
export { useIonLoading, UseIonLoadingResult } from "../hooks/useIonLoading";
|
|
118
|
-
export const setupIonicReact = (config = {}) => {
|
|
119
|
-
if (typeof document !== "undefined") {
|
|
120
|
-
document.documentElement.classList.add("ion-ce");
|
|
121
|
-
}
|
|
122
|
-
initialize({
|
|
123
|
-
...config
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type { IonicConfig } from '@ionic/core/components';\nimport { initialize } from '@ionic/core/components';\n\nexport {\n // UTILS\n createAnimation,\n createGesture,\n iosTransitionAnimation,\n mdTransitionAnimation,\n IonicSlides,\n getTimeGivenProgression,\n getIonPageElement,\n openURL,\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 SpinnerTypes,\n AccordionGroupCustomEvent,\n AccordionGroupChangeEventDetail,\n BreadcrumbCustomEvent,\n BreadcrumbCollapsedClickEventDetail,\n ActionSheetOptions,\n ActionSheetButton,\n AlertOptions,\n AlertInput,\n AlertButton,\n BackButtonEvent,\n CheckboxCustomEvent,\n CheckboxChangeEventDetail,\n DatetimeCustomEvent,\n DatetimeChangeEventDetail,\n InfiniteScrollCustomEvent,\n InputCustomEvent,\n InputChangeEventDetail,\n ItemReorderEventDetail,\n ItemReorderCustomEvent,\n ItemSlidingCustomEvent,\n IonicSafeString,\n LoadingOptions,\n MenuCustomEvent,\n ModalOptions,\n NavCustomEvent,\n PickerOptions,\n PickerButton,\n PickerColumn,\n PickerColumnOption,\n PopoverOptions,\n RadioGroupCustomEvent,\n RadioGroupChangeEventDetail,\n RangeCustomEvent,\n RangeChangeEventDetail,\n RangeKnobMoveStartEventDetail,\n RangeKnobMoveEndEventDetail,\n RefresherCustomEvent,\n RefresherEventDetail,\n RouterEventDetail,\n RouterCustomEvent,\n ScrollBaseCustomEvent,\n ScrollBaseDetail,\n ScrollDetail,\n ScrollCustomEvent,\n SearchbarCustomEvent,\n SearchbarChangeEventDetail,\n SearchbarInputEventDetail,\n SegmentChangeEventDetail,\n SegmentCustomEvent,\n SegmentValue,\n SelectChangeEventDetail,\n SelectCustomEvent,\n TabsCustomEvent,\n TextareaChangeEventDetail,\n TextareaCustomEvent,\n ToastOptions,\n ToastButton,\n ToastLayout,\n ToggleChangeEventDetail,\n ToggleCustomEvent,\n TransitionOptions,\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"],
|
|
5
|
-
"mappings": ";AACA,SAAS,kBAAkB;AAE3B;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,cAAc;AACd,cAAc;AAGd,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAC3B,cAAc;AACd,SAAS,iBAAiB;AAG1B,cAAc;AACd,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAG3B,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,gBAAgB,2BAA2B;AACpD,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,eAAe;AACxB,cAAc;AACd,cAAc;AACd,cAAc;AAGd,SAAS,YAAY,cAAc,iBAAiB;AACpD,cAAc;AAGd,SAAS,uBAAuB;AAGhC,SAAS,mBAAmB,+BAA+B;AAC3D,SAAS,aAAa,yBAAyB;AAC/C,SAAS,aAAa,yBAAyB;AAC/C,SAAS,aAAa,yBAAyB;AAC/C,SAAS,eAAe,2BAA2B;AACnD,SAAS,cAAc,0BAA0B;AACjD,SAAS,eAAe,2BAA2B;AAE5C,aAAM,kBAAkB,CAAC,SAAsB,CAAC,MAAM;AAQ3D,MAAI,OAAQ,aAAqB,aAAa;AAC5C,aAAS,gBAAgB,UAAU,IAAI,QAAQ;AAAA,EACjD;AAEA,aAAW;AAAA,IACT,GAAG;AAAA,EACL,CAAC;AACH;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import { defineCustomElement as defineIonApp } from "@ionic/core/components/ion-app.js";
|
|
3
|
-
import { defineCustomElement as defineIonBackButton } from "@ionic/core/components/ion-back-button.js";
|
|
4
|
-
import { defineCustomElement as defineIonRouterOutlet } from "@ionic/core/components/ion-router-outlet.js";
|
|
5
|
-
import { defineCustomElement as defineIonTabBar } from "@ionic/core/components/ion-tab-bar.js";
|
|
6
|
-
import { defineCustomElement as defineIonTabButton } from "@ionic/core/components/ion-tab-button.js";
|
|
7
|
-
import { defineCustomElement as defineIonIcon } from "ionicons/components/ion-icon.js";
|
|
8
|
-
import { createReactComponent } from "./react-component-lib";
|
|
9
|
-
export const IonTabButtonInner = /* @__PURE__ */ createReactComponent("ion-tab-button", void 0, void 0, defineIonTabButton);
|
|
10
|
-
export const IonTabBarInner = /* @__PURE__ */ createReactComponent(
|
|
11
|
-
"ion-tab-bar",
|
|
12
|
-
void 0,
|
|
13
|
-
void 0,
|
|
14
|
-
defineIonTabBar
|
|
15
|
-
);
|
|
16
|
-
export const IonBackButtonInner = /* @__PURE__ */ createReactComponent("ion-back-button", void 0, void 0, defineIonBackButton);
|
|
17
|
-
export const IonRouterOutletInner = /* @__PURE__ */ createReactComponent("ion-router-outlet", void 0, void 0, defineIonRouterOutlet);
|
|
18
|
-
export const IonAppInner = /* @__PURE__ */ createReactComponent(
|
|
19
|
-
"ion-app",
|
|
20
|
-
void 0,
|
|
21
|
-
void 0,
|
|
22
|
-
defineIonApp
|
|
23
|
-
);
|
|
24
|
-
export const IonIconInner = /* @__PURE__ */ createReactComponent(
|
|
25
|
-
"ion-icon",
|
|
26
|
-
void 0,
|
|
27
|
-
void 0,
|
|
28
|
-
defineIonIcon
|
|
29
|
-
);
|
|
30
|
-
//# sourceMappingURL=inner-proxies.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/components/inner-proxies.ts"],
|
|
4
|
-
"sourcesContent": ["import type { 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 type { 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<JSX.IonTabBar, HTMLIonTabBarElement>(\n 'ion-tab-bar',\n undefined,\n undefined,\n defineIonTabBar\n);\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<IoniconsJSX.IonIcon, HTMLIonIconElement>(\n 'ion-icon',\n undefined,\n undefined,\n defineIonIcon\n);\n"],
|
|
5
|
-
"mappings": ";AACA,SAAS,uBAAuB,oBAAoB;AACpD,SAAS,uBAAuB,2BAA2B;AAC3D,SAAS,uBAAuB,6BAA6B;AAC7D,SAAS,uBAAuB,uBAAuB;AACvD,SAAS,uBAAuB,0BAA0B;AAE1D,SAAS,uBAAuB,qBAAqB;AAErD,SAAuB,4BAA4B;AAE5C,aAAM,oBAAkC,qCAG7C,kBAAkB,QAAW,QAAW,kBAAkB;AACrD,aAAM,iBAA+B;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACO,aAAM,qBAAmC,qCAG9C,mBAAmB,QAAW,QAAW,mBAAmB;AACvD,aAAM,uBAAqC,qCAMhD,qBAAqB,QAAW,QAAW,qBAAqB;AAE3D,aAAM,cAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGO,aAAM,eAA6B;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { NavContext } from "../../contexts/NavContext";
|
|
4
|
-
import { IonBackButtonInner } from "../inner-proxies";
|
|
5
|
-
export const IonBackButton = /* @__PURE__ */ (() => class extends React.Component {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this.clickButton = (e) => {
|
|
9
|
-
if (e.target && e.target.closest("ion-nav") !== null) {
|
|
10
|
-
return;
|
|
11
|
-
}
|
|
12
|
-
const { defaultHref, routerAnimation } = this.props;
|
|
13
|
-
if (this.context.hasIonicRouter()) {
|
|
14
|
-
e.stopPropagation();
|
|
15
|
-
this.context.goBack(defaultHref, routerAnimation);
|
|
16
|
-
} else if (defaultHref !== void 0) {
|
|
17
|
-
window.location.href = defaultHref;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
render() {
|
|
22
|
-
return /* @__PURE__ */ React.createElement(IonBackButtonInner, { onClick: this.clickButton, ...this.props });
|
|
23
|
-
}
|
|
24
|
-
static get displayName() {
|
|
25
|
-
return "IonBackButton";
|
|
26
|
-
}
|
|
27
|
-
static get contextType() {
|
|
28
|
-
return NavContext;
|
|
29
|
-
}
|
|
30
|
-
})();
|
|
31
|
-
//# sourceMappingURL=IonBackButton.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/navigation/IonBackButton.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { JSX as LocalJSX } from '@ionic/core/components';\nimport React from 'react';\n\nimport { NavContext } from '../../contexts/NavContext';\nimport type { IonicReactProps } from '../IonicReactProps';\nimport { IonBackButtonInner } from '../inner-proxies';\n\ntype Props = Omit<LocalJSX.IonBackButton, 'icon'> &\n IonicReactProps & {\n icon?:\n | {\n ios: string;\n md: string;\n }\n | string;\n ref?: React.Ref<HTMLIonBackButtonElement>;\n };\n\nexport const IonBackButton = /*@__PURE__*/ (() =>\n class extends React.Component<Props> {\n context!: React.ContextType<typeof NavContext>;\n\n clickButton = (e: React.MouseEvent) => {\n /**\n * If ion-back-button is being used inside\n * of ion-nav then we should not interact with\n * the router.\n */\n if (e.target && (e.target as HTMLElement).closest('ion-nav') !== null) {\n return;\n }\n\n const { defaultHref, routerAnimation } = this.props;\n\n if (this.context.hasIonicRouter()) {\n e.stopPropagation();\n this.context.goBack(defaultHref, routerAnimation);\n } else if (defaultHref !== undefined) {\n window.location.href = defaultHref;\n }\n };\n\n render() {\n return <IonBackButtonInner onClick={this.clickButton} {...this.props}></IonBackButtonInner>;\n }\n\n static get displayName() {\n return 'IonBackButton';\n }\n\n static get contextType() {\n return NavContext;\n }\n })();\n"],
|
|
5
|
-
"mappings": ";AACA,OAAO,WAAW;AAElB,SAAS,kBAAkB;AAE3B,SAAS,0BAA0B;AAa5B,aAAM,gBAA+B,uBAC1C,cAAc,MAAM,UAAiB;AAAA,EAArC;AAAA;AAGE,uBAAc,CAAC,MAAwB;AAMrC,UAAI,EAAE,UAAW,EAAE,OAAuB,QAAQ,SAAS,MAAM,MAAM;AACrE;AAAA,MACF;AAEA,YAAM,EAAE,aAAa,gBAAgB,IAAI,KAAK;AAE9C,UAAI,KAAK,QAAQ,eAAe,GAAG;AACjC,UAAE,gBAAgB;AAClB,aAAK,QAAQ,OAAO,aAAa,eAAe;AAAA,MAClD,WAAW,gBAAgB,QAAW;AACpC,eAAO,SAAS,OAAO;AAAA,MACzB;AAAA,IACF;AAAA;AAAA,EAEA,SAAS;AACP,WAAO,oCAAC,sBAAmB,SAAS,KAAK,aAAc,GAAG,KAAK,OAAO;AAAA,EACxE;AAAA,EAEA,WAAW,cAAc;AACvB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,cAAc;AACvB,WAAO;AAAA,EACT;AACF,GAAG;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
import { defineCustomElement } from "@ionic/core/components/ion-nav.js";
|
|
3
|
-
import React, { useMemo, useState } from "react";
|
|
4
|
-
import { ReactDelegate } from "../../framework-delegate";
|
|
5
|
-
import { createReactComponent } from "../react-component-lib";
|
|
6
|
-
import { createForwardRef } from "../utils";
|
|
7
|
-
const IonNavInner = createReactComponent(
|
|
8
|
-
"ion-nav",
|
|
9
|
-
void 0,
|
|
10
|
-
void 0,
|
|
11
|
-
defineCustomElement
|
|
12
|
-
);
|
|
13
|
-
const IonNavInternal = ({ children, forwardedRef, ...restOfProps }) => {
|
|
14
|
-
const [views, setViews] = useState([]);
|
|
15
|
-
const addView = (view) => setViews((existingViews) => [...existingViews, view]);
|
|
16
|
-
const removeView = (view) => setViews((existingViews) => existingViews.filter((v) => v !== view));
|
|
17
|
-
const delegate = useMemo(() => ReactDelegate(addView, removeView), []);
|
|
18
|
-
return /* @__PURE__ */ React.createElement(IonNavInner, { delegate, ref: forwardedRef, ...restOfProps }, views);
|
|
19
|
-
};
|
|
20
|
-
export const IonNav = createForwardRef(IonNavInternal, "IonNav");
|
|
21
|
-
//# sourceMappingURL=IonNav.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/navigation/IonNav.tsx"],
|
|
4
|
-
"sourcesContent": ["import type { FrameworkDelegate, JSX } from '@ionic/core/components';\nimport { defineCustomElement } from '@ionic/core/components/ion-nav.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { ReactDelegate } from '../../framework-delegate';\nimport { createReactComponent } from '../react-component-lib';\nimport { createForwardRef } from '../utils';\n\nconst IonNavInner = createReactComponent<JSX.IonNav & { delegate: FrameworkDelegate }, HTMLIonNavElement>(\n 'ion-nav',\n undefined,\n undefined,\n defineCustomElement\n);\n\ntype IonNavProps = JSX.IonNav & {\n forwardedRef?: React.ForwardedRef<HTMLIonNavElement>;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\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((existingViews) => [...existingViews, view]);\n const removeView = (view: React.ReactElement) => setViews((existingViews) => existingViews.filter((v) => v !== view));\n\n const delegate = useMemo(() => 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"],
|
|
5
|
-
"mappings": ";AACA,SAAS,2BAA2B;AACpC,OAAO,SAAS,SAAS,gBAAgB;AAEzC,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAEjC,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOA,MAAM,iBAAwC,CAAC,EAAE,UAAU,cAAc,GAAG,YAAY,MAAM;AAC5F,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA+B,CAAC,CAAC;AAM3D,QAAM,UAAU,CAAC,SAA6B,SAAS,CAAC,kBAAkB,CAAC,GAAG,eAAe,IAAI,CAAC;AAClG,QAAM,aAAa,CAAC,SAA6B,SAAS,CAAC,kBAAkB,cAAc,OAAO,CAAC,MAAM,MAAM,IAAI,CAAC;AAEpH,QAAM,WAAW,QAAQ,MAAM,cAAc,SAAS,UAAU,GAAG,CAAC,CAAC;AAErE,SACE,oCAAC,eAAY,UAAoB,KAAK,cAAe,GAAG,eACrD,KACH;AAEJ;AAEO,aAAM,SAAS,iBAAiD,gBAAgB,QAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|