mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2026-03-13 10:22:08 +08:00
6
core/package-lock.json
generated
6
core/package-lock.json
generated
@@ -1385,9 +1385,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@stencil/vue-output-target": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.1.3.tgz",
|
||||
"integrity": "sha512-+X1/gjiHh88Q+sQ9EWEHb4PIQs0k4pjTYxqsjqF5Yq9oaQGOPoKzOzjiIs2PEcE0fB6yu/dtRNQUUsBo613dpA==",
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.1.8.tgz",
|
||||
"integrity": "sha512-ruZmJuv3T0i1ZHgpOn72k4xj0WVpaerSQvjovCEgDMQ6uZewcWxc41jI0GcxAt/dn2g/feZCsKdz8M8yB9RtfA==",
|
||||
"dev": true
|
||||
},
|
||||
"@stylelint/postcss-css-in-js": {
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"@rollup/plugin-virtual": "^2.0.3",
|
||||
"@stencil/core": "1.17.3",
|
||||
"@stencil/sass": "1.3.2",
|
||||
"@stencil/vue-output-target": "0.1.3",
|
||||
"@stencil/vue-output-target": "0.1.8",
|
||||
"@types/jest": "^26.0.10",
|
||||
"@types/node": "^14.6.0",
|
||||
"@types/puppeteer": "3.0.1",
|
||||
|
||||
@@ -60,32 +60,19 @@ export const defineContainer = <Props>(name: string, componentProps: string[] =
|
||||
}
|
||||
};
|
||||
|
||||
let finalProps: any = { ...props };
|
||||
|
||||
let handleClick: (ev: Event) => void;
|
||||
if (routerLinkComponent) {
|
||||
const navManager: NavManager = inject(NAV_MANAGER);
|
||||
const handleClick = (ev: Event) => {
|
||||
const routerProps = Object.keys(finalProps).filter(p => p.startsWith(ROUTER_PROP_REFIX));
|
||||
handleClick = (ev: Event) => {
|
||||
const routerProps = Object.keys(props).filter(p => p.startsWith(ROUTER_PROP_REFIX));
|
||||
if (routerProps.length === 0) return;
|
||||
|
||||
let navigationPayload: any = { event: ev };
|
||||
routerProps.forEach(prop => {
|
||||
navigationPayload[prop] = finalProps[prop];
|
||||
navigationPayload[prop] = (props as any)[prop];
|
||||
});
|
||||
navManager.navigate(navigationPayload);
|
||||
}
|
||||
|
||||
if (finalProps.onClick) {
|
||||
const oldClick = finalProps.onClick;
|
||||
finalProps.onClick = (ev: Event) => {
|
||||
oldClick(ev);
|
||||
if (!ev.defaultPrevented) {
|
||||
handleClick(ev);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
finalProps.onClick = handleClick;
|
||||
}
|
||||
}
|
||||
|
||||
return () => {
|
||||
@@ -94,16 +81,21 @@ export const defineContainer = <Props>(name: string, componentProps: string[] =
|
||||
});
|
||||
|
||||
let propsToAdd = {
|
||||
...finalProps,
|
||||
...props,
|
||||
ref: containerRef,
|
||||
class: getElementClasses(containerRef, classes)
|
||||
class: getElementClasses(containerRef, classes),
|
||||
onClick: (routerLinkComponent) ? handleClick : (props as any).onClick,
|
||||
onVnodeBeforeMount: (modelUpdateEvent) ? onVnodeBeforeMount : undefined
|
||||
};
|
||||
|
||||
if (modelUpdateEvent) {
|
||||
propsToAdd = {
|
||||
...propsToAdd,
|
||||
onVnodeBeforeMount
|
||||
}
|
||||
if ((props as any).onClick) {
|
||||
const oldClick = (props as any).onClick;
|
||||
propsToAdd.onClick = (ev: Event) => {
|
||||
oldClick(ev);
|
||||
if (!ev.defaultPrevented) {
|
||||
handleClick(ev);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (modelProp) {
|
||||
|
||||
Reference in New Issue
Block a user