@@ -59,7 +59,7 @@ export class DeckdeckgoDeck {
5959 }
6060
6161 async componentDidLoad ( ) {
62- await this . initEmbeddedSlideWidth ( ) ;
62+ await this . initSlideWidth ( ) ;
6363
6464 this . initWindowResize ( ) ;
6565 this . initKeyboardAssist ( ) ;
@@ -79,7 +79,7 @@ export class DeckdeckgoDeck {
7979 private initWindowResize ( ) {
8080 if ( window ) {
8181 window . addEventListener ( 'resize' , DeckdeckgoUtils . debounce ( async ( ) => {
82- await this . initEmbeddedSlideWidth ( ) ;
82+ await this . initSlideWidth ( ) ;
8383 await this . slideTo ( this . activeIndex ) ;
8484
8585 const toggleFullscreen : boolean = DeckdeckgoUtils . isFullscreen ( ) ;
@@ -89,26 +89,57 @@ export class DeckdeckgoDeck {
8989 }
9090 }
9191
92- private initEmbeddedSlideWidth ( ) : Promise < void > {
93- return new Promise < void > ( ( resolve ) => {
94- if ( ! this . embedded ) {
92+ private initSlideWidth ( ) : Promise < void > {
93+ return new Promise < void > ( async ( resolve ) => {
94+ const slider : HTMLElement = this . el . shadowRoot . querySelector ( 'div.deckgo-deck' ) ;
95+
96+ if ( ! slider ) {
9597 resolve ( ) ;
9698 return ;
9799 }
98100
99- const slider : HTMLElement = this . el . shadowRoot . querySelector ( 'div.deckgo-deck' ) ;
101+ if ( ! this . embedded ) {
102+ await this . initSlideWidthStandard ( slider ) ;
103+ } else {
104+ await this . initSlideWidthEmbedded ( slider ) ;
105+ }
106+
107+ resolve ( ) ;
108+ } ) ;
109+ }
100110
101- if ( ! slider || ! slider . offsetParent ) {
111+ private initSlideWidthStandard ( slider : HTMLElement ) : Promise < void > {
112+ return new Promise < void > ( ( resolve ) => {
113+ if ( ! window || ! screen ) {
102114 resolve ( ) ;
103115 return ;
104116 }
105117
106- if ( slider . offsetParent . clientWidth > 0 ) {
107- slider . style . setProperty ( '--slide-width' , '' + slider . offsetParent . clientWidth + 'px' ) ;
118+ if ( DeckdeckgoUtils . isIOS ( ) ) {
119+ slider . style . setProperty ( '--slide-width' , '' + screen . width + 'px' ) ;
120+ } else {
121+ slider . style . setProperty ( '--slide-width' , '' + window . innerWidth + 'px' ) ;
122+ }
123+
124+ resolve ( ) ;
125+ } ) ;
126+ }
127+
128+ private initSlideWidthEmbedded ( slider : HTMLElement ) : Promise < void > {
129+ return new Promise < void > ( ( resolve ) => {
130+ if ( ! slider . offsetParent ) {
131+ resolve ( ) ;
132+ return ;
108133 }
109134
110- if ( slider . offsetParent . clientHeight ) {
111- slider . style . setProperty ( '--slide-height' , '' + slider . offsetParent . clientHeight + 'px' ) ;
135+ if ( slider . offsetParent ) {
136+ if ( slider . offsetParent . clientWidth > 0 ) {
137+ slider . style . setProperty ( '--slide-width' , '' + slider . offsetParent . clientWidth + 'px' ) ;
138+ }
139+
140+ if ( slider . offsetParent . clientHeight ) {
141+ slider . style . setProperty ( '--slide-height' , '' + slider . offsetParent . clientHeight + 'px' ) ;
142+ }
112143 }
113144
114145 resolve ( ) ;
0 commit comments