Skip to content

Commit 178511f

Browse files
authored
fix: add optional swiperElementNodeName param to allow more flexible web component usage (#7284)
1 parent 76355b8 commit 178511f

File tree

6 files changed

+15
-1
lines changed

6 files changed

+15
-1
lines changed

src/components-shared/params-list.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const paramsList = [
77
'init',
88
'_direction',
99
'oneWayMovement',
10+
'swiperElementNodeName',
1011
'touchEventsTarget',
1112
'initialSlide',
1213
'_speed',

src/core/core.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ class Swiper {
504504
}
505505

506506
el.swiper = swiper;
507-
if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === 'SWIPER-CONTAINER') {
507+
if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
508508
swiper.isElement = true;
509509
}
510510

src/core/defaults.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export default {
22
init: true,
33
direction: 'horizontal',
44
oneWayMovement: false,
5+
swiperElementNodeName: 'SWIPER-CONTAINER',
56
touchEventsTarget: 'wrapper',
67
initialSlide: 0,
78
speed: 300,

src/swiper-vue.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ declare const Swiper: DefineComponent<
5151
type: PropType<SwiperOptions['oneWayMovement']>;
5252
default: SwiperOptions['oneWayMovement'];
5353
};
54+
swiperElementNodeName: {
55+
type: PropType<SwiperOptions['swiperElementNodeName']>;
56+
default: SwiperOptions['swiperElementNodeName'];
57+
};
5458
touchEventsTarget: {
5559
type: PropType<SwiperOptions['touchEventsTarget']>;
5660
default: undefined;

src/types/swiper-options.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ export interface SwiperOptions {
100100

101101
oneWayMovement?: boolean;
102102

103+
/**
104+
* The name of the swiper element node name; used for detecting web component rendering
105+
*
106+
* @default 'SWIPER-CONTAINER'
107+
*/
108+
swiperElementNodeName?: string;
109+
103110
/**
104111
* Duration of transition between slides (in ms)
105112
*

src/vue/swiper.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const Swiper = {
3131
init: { type: Boolean, default: undefined },
3232
direction: { type: String, default: undefined },
3333
oneWayMovement: { type: Boolean, default: undefined },
34+
swiperElementNodeName: { type: String, default: 'SWIPER-CONTAINER' },
3435
touchEventsTarget: { type: String, default: undefined },
3536
initialSlide: { type: Number, default: undefined },
3637
speed: { type: Number, default: undefined },

0 commit comments

Comments
 (0)