2015-08-17 17:00:26 -07:00
/ * *
2018-11-23 12:29:20 +00:00
* DO NOT EDIT THIS FILE .
* See the following change record for more information ,
* https : //www.drupal.org/node/2815083
* @ preserve
* * /
2015-08-17 17:00:26 -07:00
( function ( $ , Drupal , drupalSettings , debounce , displace ) {
2018-11-23 12:29:20 +00:00
drupalSettings . dialog = $ . extend ( { autoResize : true , maxHeight : '95%' } , drupalSettings . dialog ) ;
2015-08-17 17:00:26 -07:00
2018-11-23 12:29:20 +00:00
function resetPosition ( options ) {
var offsets = displace . offsets ;
var left = offsets . left - offsets . right ;
var top = offsets . top - offsets . bottom ;
2015-08-17 17:00:26 -07:00
2018-11-23 12:29:20 +00:00
var leftString = ( left > 0 ? '+' : '-' ) + Math . abs ( Math . round ( left / 2 ) ) + 'px' ;
var topString = ( top > 0 ? '+' : '-' ) + Math . abs ( Math . round ( top / 2 ) ) + 'px' ;
options . position = {
my : 'center' + ( left !== 0 ? leftString : '' ) + ' center' + ( top !== 0 ? topString : '' ) ,
of : window
} ;
return options ;
}
2015-08-17 17:00:26 -07:00
function resetSize ( event ) {
var positionOptions = [ 'width' , 'height' , 'minWidth' , 'minHeight' , 'maxHeight' , 'maxWidth' , 'position' ] ;
var adjustedOptions = { } ;
var windowHeight = $ ( window ) . height ( ) ;
2018-11-23 12:29:20 +00:00
var option = void 0 ;
var optionValue = void 0 ;
var adjustedValue = void 0 ;
2015-08-17 17:00:26 -07:00
for ( var n = 0 ; n < positionOptions . length ; n ++ ) {
option = positionOptions [ n ] ;
optionValue = event . data . settings [ option ] ;
if ( optionValue ) {
if ( typeof optionValue === 'string' && /%$/ . test ( optionValue ) && /height/i . test ( option ) ) {
windowHeight -= displace . offsets . top + displace . offsets . bottom ;
adjustedValue = parseInt ( 0.01 * parseInt ( optionValue , 10 ) * windowHeight , 10 ) ;
2018-11-23 12:29:20 +00:00
2015-08-17 17:00:26 -07:00
if ( option === 'height' && event . data . $element . parent ( ) . outerHeight ( ) < adjustedValue ) {
adjustedValue = 'auto' ;
}
adjustedOptions [ option ] = adjustedValue ;
}
}
}
2018-11-23 12:29:20 +00:00
2016-08-03 13:22:33 -07:00
if ( ! event . data . settings . modal ) {
adjustedOptions = resetPosition ( adjustedOptions ) ;
}
2018-11-23 12:29:20 +00:00
event . data . $element . dialog ( 'option' , adjustedOptions ) . trigger ( 'dialogContentResize' ) ;
2015-08-17 17:00:26 -07:00
}
$ ( window ) . on ( {
2018-11-23 12:29:20 +00:00
'dialog:aftercreate' : function dialogAftercreate ( event , dialog , $element , settings ) {
2015-08-17 17:00:26 -07:00
var autoResize = debounce ( resetSize , 20 ) ;
2018-11-23 12:29:20 +00:00
var eventData = { settings : settings , $element : $element } ;
2015-08-17 17:00:26 -07:00
if ( settings . autoResize === true || settings . autoResize === 'true' ) {
2018-11-23 12:29:20 +00:00
$element . dialog ( 'option' , { resizable : false , draggable : false } ) . dialog ( 'widget' ) . css ( 'position' , 'fixed' ) ;
$ ( window ) . on ( 'resize.dialogResize scroll.dialogResize' , eventData , autoResize ) . trigger ( 'resize.dialogResize' ) ;
2017-02-02 16:28:38 -08:00
$ ( document ) . on ( 'drupalViewportOffsetChange.dialogResize' , eventData , autoResize ) ;
2015-08-17 17:00:26 -07:00
}
} ,
2018-11-23 12:29:20 +00:00
'dialog:beforeclose' : function dialogBeforeclose ( event , dialog , $element ) {
2015-08-17 17:00:26 -07:00
$ ( window ) . off ( '.dialogResize' ) ;
2017-02-02 16:28:38 -08:00
$ ( document ) . off ( '.dialogResize' ) ;
2015-08-17 17:00:26 -07:00
}
} ) ;
2018-11-23 12:29:20 +00:00
} ) ( jQuery , Drupal , drupalSettings , Drupal . debounce , Drupal . displace ) ;