@stencil/vue-output-target
Advanced tools
Comparing version
@@ -112,4 +112,9 @@ 'use strict'; | ||
}; | ||
const getElementClasses = (ref, componentClasses, defaultClasses = []) => { | ||
return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i); | ||
const getElementClasses = (el, componentClasses, defaultClasses = []) => { | ||
const combinedClasses = new Set([ | ||
...Array.from(el?.classList || []), | ||
...Array.from(componentClasses), | ||
...defaultClasses, | ||
]); | ||
return Array.from(combinedClasses); | ||
}; | ||
@@ -176,3 +181,3 @@ /** | ||
created: (el) => { | ||
const eventsNames = (Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]).map((ev) => ev.replace(/-([a-z])/g, (g) => g[1].toUpperCase())); | ||
const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]; | ||
eventsNames.forEach((eventName) => { | ||
@@ -198,2 +203,3 @@ el.addEventListener(eventName, (e) => { | ||
const navManager = hasRouter ? vue.inject(NAV_MANAGER) : undefined; | ||
const elBeforeHydrate = currentInstance?.vnode.el; | ||
const handleRouterLink = (ev) => { | ||
@@ -243,3 +249,3 @@ const { routerLink } = props; | ||
ref: containerRef, | ||
class: getElementClasses(containerRef, classes), | ||
class: getElementClasses(elBeforeHydrate, classes), | ||
onClick: handleClick, | ||
@@ -246,0 +252,0 @@ }; |
@@ -110,4 +110,9 @@ import { defineComponent, useSlots, createSSRApp, compile, ref, onMounted, getCurrentInstance, inject, h, withDirectives } from 'vue'; | ||
}; | ||
const getElementClasses = (ref, componentClasses, defaultClasses = []) => { | ||
return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => !componentClasses.has(c) && self.indexOf(c) === i); | ||
const getElementClasses = (el, componentClasses, defaultClasses = []) => { | ||
const combinedClasses = new Set([ | ||
...Array.from(el?.classList || []), | ||
...Array.from(componentClasses), | ||
...defaultClasses, | ||
]); | ||
return Array.from(combinedClasses); | ||
}; | ||
@@ -174,3 +179,3 @@ /** | ||
created: (el) => { | ||
const eventsNames = (Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]).map((ev) => ev.replace(/-([a-z])/g, (g) => g[1].toUpperCase())); | ||
const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent]; | ||
eventsNames.forEach((eventName) => { | ||
@@ -196,2 +201,3 @@ el.addEventListener(eventName, (e) => { | ||
const navManager = hasRouter ? inject(NAV_MANAGER) : undefined; | ||
const elBeforeHydrate = currentInstance?.vnode.el; | ||
const handleRouterLink = (ev) => { | ||
@@ -241,3 +247,3 @@ const { routerLink } = props; | ||
ref: containerRef, | ||
class: getElementClasses(containerRef, classes), | ||
class: getElementClasses(elBeforeHydrate, classes), | ||
onClick: handleClick, | ||
@@ -244,0 +250,0 @@ }; |
{ | ||
"name": "@stencil/vue-output-target", | ||
"version": "0.0.1-dev.11748358925.19db14a5", | ||
"version": "0.0.1-dev.11751068653.1be22d38", | ||
"description": "Vue output target for @stencil/core components.", | ||
@@ -67,3 +67,3 @@ "author": "Ionic Team", | ||
"@rollup/plugin-typescript": "^12.1.0", | ||
"@stencil/core": "^4.27.2", | ||
"@stencil/core": "^4.35.1", | ||
"@types/node": "^18.0.0", | ||
@@ -77,3 +77,3 @@ "@vue/shared": "^3.5.12", | ||
}, | ||
"gitHead": "9db14a53e42891b0a937d191e06aa19e033accbb" | ||
"gitHead": "be22d38078db1b96d3b380075bd7415f27760b14" | ||
} |
71822
0.12%1356
0.89%