PluginProbe ʕ •ᴥ•ʔ
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel / 1.2.2
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel v1.2.2
trunk 0.9.0 0.9.1 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2.0 1.2.1 1.2.10 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.14 1.4.15 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0
wp-all-export / static / js / jquery / jquery.tipsy.js
wp-all-export / static / js / jquery Last commit date
css 7 years ago chosen.jquery.js 7 years ago chosen.jquery.min.js 7 years ago jquery.ddslick.min.js 7 years ago jquery.mjs.pmxe_nestedSortable.js 7 years ago jquery.timepicker.js 7 years ago jquery.tipsy.js 7 years ago moment.js 7 years ago select2.min.js 7 years ago ui.autocomplete.js 7 years ago ui.datepicker.js 7 years ago
jquery.tipsy.js
199 lines
1 // tipsy, facebook style tooltips for jquery
2 // version 1.0.0a
3 // (c) 2008-2010 jason frame [jason@onehackoranother.com]
4 // releated under the MIT license
5
6 (function($) {
7
8 function fixTitle($ele) {
9 if ($ele.attr('title') || typeof($ele.attr('original-title')) != 'string') {
10 $ele.attr('original-title', $ele.attr('title') || '').removeAttr('title');
11 }
12 }
13
14 function Tipsy(element, options) {
15 this.$element = $(element);
16 this.options = options;
17 this.enabled = true;
18 fixTitle(this.$element);
19 }
20
21 Tipsy.prototype = {
22 show: function() {
23 var title = this.getTitle();
24 if (title && this.enabled) {
25 var $tip = this.tip();
26
27 $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);
28 $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity
29 $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);
30
31 var pos = $.extend({}, this.$element.offset(), {
32 width: this.$element[0].offsetWidth,
33 height: this.$element[0].offsetHeight
34 });
35
36 var actualWidth = $tip[0].offsetWidth, actualHeight = $tip[0].offsetHeight;
37 var gravity = (typeof this.options.gravity == 'function')
38 ? this.options.gravity.call(this.$element[0])
39 : this.options.gravity;
40
41 var tp;
42 switch (gravity.charAt(0)) {
43 case 'n':
44 tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
45 break;
46 case 's':
47 tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
48 break;
49 case 'e':
50 tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};
51 break;
52 case 'w':
53 tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};
54 break;
55 }
56
57 if (gravity.length == 2) {
58 if (gravity.charAt(1) == 'w') {
59 tp.left = pos.left + pos.width / 2 - 15;
60 } else {
61 tp.left = pos.left + pos.width / 2 - actualWidth + 15;
62 }
63 }
64
65 $tip.css(tp).addClass('tipsy-' + gravity);
66
67 if (this.options.fade) {
68 $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});
69 } else {
70 $tip.css({visibility: 'visible', opacity: this.options.opacity});
71 }
72 }
73 },
74
75 hide: function() {
76 if (this.options.fade) {
77 this.tip().stop().fadeOut(function() { $(this).remove(); });
78 } else {
79 this.tip().remove();
80 }
81 },
82
83 getTitle: function() {
84 var title, $e = this.$element, o = this.options;
85 fixTitle($e);
86 var title, o = this.options;
87 if (typeof o.title == 'string') {
88 title = $e.attr(o.title == 'title' ? 'original-title' : o.title);
89 } else if (typeof o.title == 'function') {
90 title = o.title.call($e[0]);
91 }
92 title = ('' + title).replace(/(^\s*|\s*$)/, "");
93 return title || o.fallback;
94 },
95
96 tip: function() {
97 if (!this.$tip) {
98 this.$tip = $('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"/></div>');
99 }
100 return this.$tip;
101 },
102
103 validate: function() {
104 if (!this.$element[0].parentNode) {
105 this.hide();
106 this.$element = null;
107 this.options = null;
108 }
109 },
110
111 enable: function() { this.enabled = true; },
112 disable: function() { this.enabled = false; },
113 toggleEnabled: function() { this.enabled = !this.enabled; }
114 };
115
116 $.fn.tipsy = function(options) {
117
118 if (options === true) {
119 return this.data('tipsy');
120 } else if (typeof options == 'string') {
121 return this.data('tipsy')[options]();
122 }
123
124 options = $.extend({}, $.fn.tipsy.defaults, options);
125
126 function get(ele) {
127 var tipsy = $.data(ele, 'tipsy');
128 if (!tipsy) {
129 tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options));
130 $.data(ele, 'tipsy', tipsy);
131 }
132 return tipsy;
133 }
134
135 function enter() {
136 var tipsy = get(this);
137 tipsy.hoverState = 'in';
138 if (options.delayIn == 0) {
139 tipsy.show();
140 } else {
141 setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);
142 }
143 };
144
145 function leave() {
146 var tipsy = get(this);
147 tipsy.hoverState = 'out';
148 if (options.delayOut == 0) {
149 tipsy.hide();
150 } else {
151 setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut);
152 }
153 };
154
155 if (!options.live) this.each(function() { get(this); });
156
157 if (options.trigger != 'manual') {
158 var binder = options.live ? 'live' : 'bind',
159 eventIn = options.trigger == 'hover' ? 'mouseenter' : 'focus',
160 eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';
161 this[binder](eventIn, enter)[binder](eventOut, leave);
162 }
163
164 return this;
165
166 };
167
168 $.fn.tipsy.defaults = {
169 delayIn: 0,
170 delayOut: 0,
171 fade: false,
172 fallback: '',
173 gravity: 'n',
174 html: false,
175 live: false,
176 offset: 0,
177 opacity: 0.8,
178 title: 'title',
179 trigger: 'hover'
180 };
181
182 // Overwrite this method to provide options on a per-element basis.
183 // For example, you could store the gravity in a 'tipsy-gravity' attribute:
184 // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
185 // (remember - do not modify 'options' in place!)
186 $.fn.tipsy.elementOptions = function(ele, options) {
187 return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
188 };
189
190 $.fn.tipsy.autoNS = function() {
191 return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
192 };
193
194 $.fn.tipsy.autoWE = function() {
195 return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
196 };
197
198 })(jQuery);
199