Diff: STRATO-apps/wordpress_03/app/wp-includes/js/jquery/ui/selectable.js
Keine Baseline-Datei – Diff nur gegen leer.
1
-
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
+
37
+
return $.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
+
} );
318
+