1
1
import { isPhone , isDesktop } from "@ui5/webcomponents-base/dist/Device.js" ;
2
+ import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js" ;
2
3
import Popup from "./Popup.js" ;
3
4
import "@ui5/webcomponents-icons/dist/resize-corner.js" ;
4
5
import Icon from "./Icon.js" ;
@@ -152,6 +153,18 @@ const metadata = {
152
153
* @public
153
154
*/
154
155
class Dialog extends Popup {
156
+ constructor ( ) {
157
+ super ( ) ;
158
+
159
+ this . _screenResizeHandler = this . _center . bind ( this ) ;
160
+
161
+ this . _dragMouseMoveHandler = this . _onDragMouseMove . bind ( this ) ;
162
+ this . _dragMouseUpHandler = this . _onDragMouseUp . bind ( this ) ;
163
+
164
+ this . _resizeMouseMoveHandler = this . _onResizeMouseMove . bind ( this ) ;
165
+ this . _resizeMouseUpHandler = this . _onResizeMouseUp . bind ( this ) ;
166
+ }
167
+
155
168
static get metadata ( ) {
156
169
return metadata ;
157
170
}
@@ -197,6 +210,11 @@ class Dialog extends Popup {
197
210
} ;
198
211
}
199
212
213
+ show ( ) {
214
+ super . show ( ) ;
215
+ this . _center ( ) ;
216
+ }
217
+
200
218
_clamp ( val , min , max ) {
201
219
return Math . min ( Math . max ( val , min ) , max ) ;
202
220
}
@@ -208,16 +226,33 @@ class Dialog extends Popup {
208
226
}
209
227
210
228
onEnterDOM ( ) {
211
- this . _dragMouseMoveHandler = this . _onDragMouseMove . bind ( this ) ;
212
- this . _dragMouseUpHandler = this . _onDragMouseUp . bind ( this ) ;
213
-
214
- this . _resizeMouseMoveHandler = this . _onResizeMouseMove . bind ( this ) ;
215
- this . _resizeMouseUpHandler = this . _onResizeMouseUp . bind ( this ) ;
229
+ ResizeHandler . register ( this , this . _screenResizeHandler ) ;
230
+ ResizeHandler . register ( document . body , this . _screenResizeHandler ) ;
216
231
}
217
232
218
233
onExitDOM ( ) {
219
- this . _dragMouseMoveHandler = null ;
220
- this . _dragMouseUpHandler = null ;
234
+ ResizeHandler . deregister ( this , this . _screenResizeHandler ) ;
235
+ ResizeHandler . deregister ( document . body , this . _screenResizeHandler ) ;
236
+ }
237
+
238
+ _center ( ) {
239
+ const height = window . innerHeight - this . offsetHeight ,
240
+ width = window . innerWidth - this . offsetWidth ;
241
+
242
+ Object . assign ( this . style , {
243
+ top : `${ Math . round ( height / 2 ) } px` ,
244
+ left : `${ Math . round ( width / 2 ) } px` ,
245
+ } ) ;
246
+ }
247
+
248
+ _revertSize ( ) {
249
+ Object . assign ( this . style , {
250
+ top : "" ,
251
+ left : "" ,
252
+ width : "" ,
253
+ height : "" ,
254
+ } ) ;
255
+ this . removeEventListener ( "ui5-before-close" , this . _revertSize ) ;
221
256
}
222
257
223
258
/**
@@ -246,7 +281,6 @@ class Dialog extends Popup {
246
281
} = window . getComputedStyle ( this ) ;
247
282
248
283
Object . assign ( this . style , {
249
- transform : "none" ,
250
284
top : `${ top } px` ,
251
285
left : `${ left } px` ,
252
286
width : `${ Math . round ( Number . parseFloat ( width ) * 100 ) / 100 } px` ,
@@ -286,25 +320,18 @@ class Dialog extends Popup {
286
320
}
287
321
288
322
_attachDragHandlers ( ) {
323
+ ResizeHandler . deregister ( this , this . _screenResizeHandler ) ;
324
+ ResizeHandler . deregister ( document . body , this . _screenResizeHandler ) ;
325
+
289
326
window . addEventListener ( "mousemove" , this . _dragMouseMoveHandler ) ;
290
327
window . addEventListener ( "mouseup" , this . _dragMouseUpHandler ) ;
291
- this . addEventListener ( "ui5-before-close" , this . _recenter ) ;
292
328
}
293
329
294
330
_detachDragHandlers ( ) {
295
331
window . removeEventListener ( "mousemove" , this . _dragMouseMoveHandler ) ;
296
332
window . removeEventListener ( "mouseup" , this . _dragMouseUpHandler ) ;
297
333
}
298
334
299
- _recenter ( ) {
300
- Object . assign ( this . style , {
301
- top : "" ,
302
- left : "" ,
303
- transform : "" ,
304
- } ) ;
305
- this . removeEventListener ( "ui5-before-close" , this . _recenter ) ;
306
- }
307
-
308
335
_onResizeMouseDown ( event ) {
309
336
if ( ! ( this . resizable && this . onDesktop ) ) {
310
337
return ;
@@ -333,7 +360,6 @@ class Dialog extends Popup {
333
360
this . _minHeight = Number . parseFloat ( minHeight ) ;
334
361
335
362
Object . assign ( this . style , {
336
- transform : "none" ,
337
363
top : `${ top } px` ,
338
364
left : `${ left } px` ,
339
365
} ) ;
@@ -394,6 +420,9 @@ class Dialog extends Popup {
394
420
}
395
421
396
422
_attachResizeHandlers ( ) {
423
+ ResizeHandler . deregister ( this , this . _screenResizeHandler ) ;
424
+ ResizeHandler . deregister ( document . body , this . _screenResizeHandler ) ;
425
+
397
426
window . addEventListener ( "mousemove" , this . _resizeMouseMoveHandler ) ;
398
427
window . addEventListener ( "mouseup" , this . _resizeMouseUpHandler ) ;
399
428
this . addEventListener ( "ui5-before-close" , this . _revertSize ) ;
@@ -403,17 +432,6 @@ class Dialog extends Popup {
403
432
window . removeEventListener ( "mousemove" , this . _resizeMouseMoveHandler ) ;
404
433
window . removeEventListener ( "mouseup" , this . _resizeMouseUpHandler ) ;
405
434
}
406
-
407
- _revertSize ( ) {
408
- Object . assign ( this . style , {
409
- top : "" ,
410
- left : "" ,
411
- width : "" ,
412
- height : "" ,
413
- transform : "" ,
414
- } ) ;
415
- this . removeEventListener ( "ui5-before-close" , this . _revertSize ) ;
416
- }
417
435
}
418
436
419
437
Dialog . define ( ) ;
0 commit comments