Mini Shell

Direktori : /home/admin/web/mcpv.demarco.ddnsfree.com/public_html/wp-includes/js/
Upload File :
Current File : /home/admin/web/mcpv.demarco.ddnsfree.com/public_html/wp-includes/js/wp-pointer.js

/**
 * @output wp-includes/js/wp-pointer.js
 */

/**
 * Initializes the wp-pointer widget using jQuery UI Widget Factory.
 */
(function($){
	var identifier = 0,
		zindex = 9999;

	$.widget('wp.pointer',/** @lends $.widget.wp.pointer.prototype */{
		options: {
			pointerClass: 'wp-pointer',
			pointerWidth: 320,
			content: function() {
				return $(this).text();
			},
			buttons: function( event, t ) {
				var button = $('<a class="close" href="#"></a>').text( wp.i18n.__( 'Dismiss' ) );

				return button.on( 'click.pointer', function(e) {
					e.preventDefault();
					t.element.pointer('close');
				});
			},
			position: 'top',
			show: function( event, t ) {
				t.pointer.show();
				t.opened();
			},
			hide: function( event, t ) {
				t.pointer.hide();
				t.closed();
			},
			document: document
		},

		/**
		 * A class that represents a WordPress pointer.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @constructs $.widget.wp.pointer
		 */
		_create: function() {
			var positioning,
				family;

			this.content = $('<div class="wp-pointer-content"></div>');
			this.arrow   = $('<div class="wp-pointer-arrow"><div class="wp-pointer-arrow-inner"></div></div>');

			family = this.element.parents().add( this.element );
			positioning = 'absolute';

			if ( family.filter(function(){ return 'fixed' === $(this).css('position'); }).length )
				positioning = 'fixed';

			this.pointer = $('<div />')
				.append( this.content )
				.append( this.arrow )
				.attr('id', 'wp-pointer-' + identifier++)
				.addClass( this.options.pointerClass )
				.css({'position': positioning, 'width': this.options.pointerWidth+'px', 'display': 'none'})
				.appendTo( this.options.document.body );
		},

		/**
		 * Sets an option on the pointer instance.
		 *
		 * There are 4 special values that do something extra:
		 *
		 * - `document`     will transfer the pointer to the body of the new document
		 *                  specified by the value.
		 * - `pointerClass` will change the class of the pointer element.
		 * - `position`     will reposition the pointer.
		 * - `content`      will update the content of the pointer.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @param {string} key   The key of the option to set.
		 * @param {*}      value The value to set the option to.
		 */
		_setOption: function( key, value ) {
			var o   = this.options,
				tip = this.pointer;

			// Handle document transfer.
			if ( key === 'document' && value !== o.document ) {
				tip.detach().appendTo( value.body );

			// Handle class change.
			} else if ( key === 'pointerClass' ) {
				tip.removeClass( o.pointerClass ).addClass( value );
			}

			// Call super method.
			$.Widget.prototype._setOption.apply( this, arguments );

			// Reposition automatically.
			if ( key === 'position' ) {
				this.reposition();

			// Update content automatically if pointer is open.
			} else if ( key === 'content' && this.active ) {
				this.update();
			}
		},

		/**
		 * Removes the pointer element from of the DOM.
		 *
		 * Makes sure that the widget and all associated bindings are destroyed.
		 *
		 * @since 3.3.0
		 */
		destroy: function() {
			this.pointer.remove();
			$.Widget.prototype.destroy.call( this );
		},

		/**
		 * Returns the pointer element.
		 *
		 * @since 3.3.0
		 *
		 * @return {Object} Pointer The pointer object.
		 */
		widget: function() {
			return this.pointer;
		},

		/**
		 * Updates the content of the pointer.
		 *
		 * This function doesn't update the content of the pointer itself. That is done
		 * by the `_update` method. This method will make sure that the `_update` method
		 * is called with the right content.
		 *
		 * The content in the options can either be a string or a callback. If it is a
		 * callback the result of this callback is used as the content.
		 *
		 * @since 3.3.0
		 *
		 * @param {Object} event The event that caused the update.
		 *
		 * @return {Promise} Resolves when the update has been executed.
		 */
		update: function( event ) {
			var self = this,
				o    = this.options,
				dfd  = $.Deferred(),
				content;

			if ( o.disabled )
				return;

			dfd.done( function( content ) {
				self._update( event, content );
			});

			// Either o.content is a string...
			if ( typeof o.content === 'string' ) {
				content = o.content;

			// ...or o.content is a callback.
			} else {
				content = o.content.call( this.element[0], dfd.resolve, event, this._handoff() );
			}

			// If content is set, then complete the update.
			if ( content )
				dfd.resolve( content );

			return dfd.promise();
		},

		/**
		 * Updates the content of the pointer.
		 *
		 * Will make sure that the pointer is correctly positioned.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @param {Object} event   The event that caused the update.
		 * @param {*}      content The content object. Either a string or a jQuery tree.
		 */
		_update: function( event, content ) {
			var buttons,
				o = this.options;

			if ( ! content )
				return;

			// Kill any animations on the pointer.
			this.pointer.stop();
			this.content.html( content );

			buttons = o.buttons.call( this.element[0], event, this._handoff() );
			if ( buttons ) {
				buttons.wrap('<div class="wp-pointer-buttons" />').parent().appendTo( this.content );
			}

			this.reposition();
		},

		/**
		 * Repositions the pointer.
		 *
		 * Makes sure the pointer is the correct size for its content and makes sure it
		 * is positioned to point to the right element.
		 *
		 * @since 3.3.0
		 */
		reposition: function() {
			var position;

			if ( this.options.disabled )
				return;

			position = this._processPosition( this.options.position );

			// Reposition pointer.
			this.pointer.css({
				top: 0,
				left: 0,
				zIndex: zindex++ // Increment the z-index so that it shows above other opened pointers.
			}).show().position($.extend({
				of: this.element,
				collision: 'fit none'
			}, position )); // The object comes before this.options.position so the user can override position.of.

			this.repoint();
		},

		/**
		 * Sets the arrow of the pointer to the correct side of the pointer element.
		 *
		 * @since 3.3.0
		 */
		repoint: function() {
			var o = this.options,
				edge;

			if ( o.disabled )
				return;

			edge = ( typeof o.position == 'string' ) ? o.position : o.position.edge;

			// Remove arrow classes.
			this.pointer[0].className = this.pointer[0].className.replace( /wp-pointer-[^\s'"]*/, '' );

			// Add arrow class.
			this.pointer.addClass( 'wp-pointer-' + edge );
		},

		/**
		 * Calculates the correct position based on a position in the settings.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @param {string|Object} position Either a side of a pointer or an object
		 *                                 containing a pointer.
		 *
		 * @return {Object} result  An object containing position related data.
		 */
		_processPosition: function( position ) {
			var opposite = {
					top: 'bottom',
					bottom: 'top',
					left: 'right',
					right: 'left'
				},
				result;

			// If the position object is a string, it is shorthand for position.edge.
			if ( typeof position == 'string' ) {
				result = {
					edge: position + ''
				};
			} else {
				result = $.extend( {}, position );
			}

			if ( ! result.edge )
				return result;

			if ( result.edge == 'top' || result.edge == 'bottom' ) {
				result.align = result.align || 'left';

				result.at = result.at || result.align + ' ' + opposite[ result.edge ];
				result.my = result.my || result.align + ' ' + result.edge;
			} else {
				result.align = result.align || 'top';

				result.at = result.at || opposite[ result.edge ] + ' ' + result.align;
				result.my = result.my || result.edge + ' ' + result.align;
			}

			return result;
		},

		/**
		 * Opens the pointer.
		 *
		 * Only opens the pointer widget in case it is closed and not disabled, and
		 * calls 'update' before doing so. Calling update makes sure that the pointer
		 * is correctly sized and positioned.
		 *
		 * @since 3.3.0
		 *
		 * @param {Object} event The event that triggered the opening of this pointer.
		 */
		open: function( event ) {
			var self = this,
				o    = this.options;

			if ( this.active || o.disabled || this.element.is(':hidden') )
				return;

			this.update().done( function() {
				self._open( event );
			});
		},

		/**
		 * Opens and shows the pointer element.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @param {Object} event An event object.
		 */
		_open: function( event ) {
			var self = this,
				o    = this.options;

			if ( this.active || o.disabled || this.element.is(':hidden') )
				return;

			this.active = true;

			this._trigger( 'open', event, this._handoff() );

			this._trigger( 'show', event, this._handoff({
				opened: function() {
					self._trigger( 'opened', event, self._handoff() );
				}
			}));
		},

		/**
		 * Closes and hides the pointer element.
		 *
		 * @since 3.3.0
		 *
		 * @param {Object} event An event object.
		 */
		close: function( event ) {
			if ( !this.active || this.options.disabled )
				return;

			var self = this;
			this.active = false;

			this._trigger( 'close', event, this._handoff() );
			this._trigger( 'hide', event, this._handoff({
				closed: function() {
					self._trigger( 'closed', event, self._handoff() );
				}
			}));
		},

		/**
		 * Puts the pointer on top by increasing the z-index.
		 *
		 * @since 3.3.0
		 */
		sendToTop: function() {
			if ( this.active )
				this.pointer.css( 'z-index', zindex++ );
		},

		/**
		 * Toggles the element between shown and hidden.
		 *
		 * @since 3.3.0
		 *
		 * @param {Object} event An event object.
		 */
		toggle: function( event ) {
			if ( this.pointer.is(':hidden') )
				this.open( event );
			else
				this.close( event );
		},

		/**
		 * Extends the pointer and the widget element with the supplied parameter, which
		 * is either an element or a function.
		 *
		 * @since 3.3.0
		 * @private
		 *
		 * @param {Object} extend The object to be merged into the original object.
		 *
		 * @return {Object} The extended object.
		 */
		_handoff: function( extend ) {
			return $.extend({
				pointer: this.pointer,
				element: this.element
			}, extend);
		}
	});
})(jQuery);
Why not start with the appropriately-named Queen G-spot – Base de données MCPV "Prestataires"

Why not start with the appropriately-named Queen G-spot

Adam & Eve: Sex Toys & Sexual Wellness Products

This brand is devoted to making all their merchandise beautiful as well as orgasmic, aiming for an “ornate, eye-catching aesthetic” that features gold plating and real Swarovski crystals. Why not start with the appropriately-named Queen G-spot vibrator set? It makes use of pulses to accentuate your pleasure, with a curved structure designed to hit all the proper nerves — a positively regal expertise. Organic Loven is a Black woman-founded and -owned store for sex toys that makes materials the major target.

In a sea of phallic-shaped intercourse toys, the rose is a welcome sight in my assortment. It’s not going to knock your socks off nevertheless it’s great for foreplay or solo play whenever you’re not looking for something too intense. Made from clean silicone and obtainable in pink, blue, or black colors, the toy has a bulbous head on the end, typical of wand vibrators dildos, with a versatile neck.

So vibrators, whenever you’re within the mood to order adult sex toys on-line, buy along with your wishes and desires in thoughts. If it’s intercourse toys you’re on the lookout for, the XBIZ Award winner for “International Pleasure Products Company of the Year” is an effective place to start. Lovehoney can sell you toys, sure, however you can even discover a podcast on their site that answers customer questions and delivers professional advice, intercourse ideas, and even little-known facts about sex! Lovehoney is clearly committed to sexual health and wellness, making their on-line buying experience easy and cozy. Good Vibrations has shops on each coasts, and their web site goodvibes.com makes their mix of curated merchandise and intercourse data out there everywhere! It was founded forty five years ago by a intercourse therapist and educator to attraction specifically to ladies who did not all the time discover different intercourse toy shops of the time to their liking.

Introducing our Premium Silicone Stretch Rings, designed for ultimate versatility and luxury. Exclusive Heating Gspot Vibrator by Sextoy.comIndulge in luxurious pleasure with the Heating Gspot Vibrator by Sextoy! Experience the right mix of air pressure and vibration with the Clitoral Air Pressure Stimulator by Sextoy.com.Designed to deliver deep, pulsa… Gerek vouches that this toy makes for “explosive climaxes” with its combination of sucking, stroking, and vibration. Yes, there’s even a “climax button” you can deploy when you’re getting near coming, and the toy will suck you in even deeper, mimicking a deep-throating sensation for an intense end.

Featuring eight inches of medical-grade stainless steel, this tapered curved wand is ideal for intense G-spot or P-spot stimulation. The device may also be used heat or cold for a managed intimate therapeutic massage. However, if suction toys are your jam osexlove, you might not get your rocks off with the Fluttering Arouser, because it makes use of a silicone tongue and vibration. In that case, we advocate the Lovehoney X ROMP Switch Clitoral Suction Stimulator adult toys, which has six intensity ranges and is lower than $35. However, it is a small qualm when you consider the multitude of prospects on how—and where—you can use this toy.

Every Lovense toy could be related by way of Bluetooth to the Lovense smartphone app, which presents an easy-to-understand interface for controlling every toy’s varied capabilities. But even should you never use this function sexiitrina, the toys themselves are well-made and extremely stimulating. There might be few better introductions to the world of vibrators, but even for somebody who’s owned their justifiable share of toys, they’re going to love Dame’s cute and cheery vibes.

At Spectrum Boutique, we celebrate the diversity of pleasure and intimacy with a extensive array of non-gendered adult toys dildos, together with harnesses, suction toys, and sleeves. We prioritize body-friendly materials and provide a discreet sextoystoreshopping, secure purchasing experience. Elevate your sexual well-being with our carefully curated products for all genders, designed to empower and enhance your pleasure journey, in our online adult toy store. Our online adult toy store makes it straightforward for you to attain orgasm and fulfill all of your wildest fantasies.

Shag is a space free of judgment on your distinctive sexual id, an setting constructed on mutual respect, where all can really feel welcome to find tools and accessories to assist a variety of fantasies and needs. Shag has what you need for sexual wellness, self-care, and adventurous solo, partner, or group play—intimate toys, clothes, and gifts designed for pleasure of every kind. Since 1996, Fun Factory has created toys for all genders and sexual preferences.

You may be thinking, “My trusty 5-year-old dildo is perfectly nice. I do not need any new intercourse toys!” If you have been meticulous about cleansing it after each use and storing it correctly, congratulations. You undoubtedly know tips on how to care for your sex toys and we gained’t query your choice. But you may be missing out on the possibility to find orgasmic new favorites and expand your current collection. Meet the latest and biggest, the newcomers, the playtime roads much less traveled (so far). Here, you’ll be able to take your decide from an enormous batch of the best new sex toys, tools, equipment and lingerie items, each just ready to be discovered. We’re nicely into the longer term now, why shouldn’t our sexual habits be a part of us?

Adam & Eve: Sex Toys & Sexual Wellness Products This brand is devoted to making all their merchandise beautiful as well as orgasmic, aiming for an “ornate, eye-catching aesthetic” that features gold plating and real Swarovski crystals. Why not start with the appropriately-named Queen G-spot vibrator set? It makes use of pulses to accentuate your…

Leave a Reply

Your email address will not be published. Required fields are marked *