@ms-atlas/datastudio 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @ms-atlas/datastudio might be problematic. Click here for more details.

Files changed (39) hide show
  1. package/ExternalLibraries/Monaco/vs/loader.js +2166 -0
  2. package/ExternalLibraries/URI.min.js +1901 -0
  3. package/ExternalLibraries/crossroads.min.js +453 -0
  4. package/ExternalLibraries/css.js +165 -0
  5. package/ExternalLibraries/d3.min.js +10857 -0
  6. package/ExternalLibraries/es6-promise.min.js +363 -0
  7. package/ExternalLibraries/hammer.js +2224 -0
  8. package/ExternalLibraries/hull.js +444 -0
  9. package/ExternalLibraries/i18n.min.js +115 -0
  10. package/ExternalLibraries/jquery-ui-timepicker-addon.min.css +76 -0
  11. package/ExternalLibraries/jquery-ui-timepicker-addon.min.js +1918 -0
  12. package/ExternalLibraries/jquery-ui.js +17201 -0
  13. package/ExternalLibraries/jquery-ui.min.css +1454 -0
  14. package/ExternalLibraries/jquery.history.js +2173 -0
  15. package/ExternalLibraries/jquery.min.js +5168 -0
  16. package/ExternalLibraries/jquery.mockjax.min.js +445 -0
  17. package/ExternalLibraries/jquery.modal.js +173 -0
  18. package/ExternalLibraries/jstree.js +10086 -0
  19. package/ExternalLibraries/jstree.style.css +1048 -0
  20. package/ExternalLibraries/jwt-decode.min.js +142 -0
  21. package/ExternalLibraries/knockout-latest.debug.js +7375 -0
  22. package/ExternalLibraries/knockout.mapping.min.js +534 -0
  23. package/ExternalLibraries/moment.js +3389 -0
  24. package/ExternalLibraries/q.js +1974 -0
  25. package/ExternalLibraries/require.js +2230 -0
  26. package/ExternalLibraries/signals.min.js +179 -0
  27. package/ExternalLibraries/text.js +445 -0
  28. package/ExternalLibraries/uuid.js +274 -0
  29. package/app-main.js +1 -0
  30. package/datastudio.application.mainpage.js +1502 -0
  31. package/datastudio.application.shared.js +626 -0
  32. package/datastudio.bootstrapper.js +517 -0
  33. package/fonts.css +14 -0
  34. package/nls/resx.js +1 -0
  35. package/nls/root/resx.js +22 -0
  36. package/package.json +22 -0
  37. package/scripts/application/sourceMapper.js +15 -0
  38. package/scripts/libs/adal/adal.js +720 -0
  39. package/stylesheets/main.css +8879 -0
@@ -0,0 +1,445 @@
1
+ /*! jQuery Mockjax
2
+ * A Plugin providing simple and flexible mocking of ajax requests and responses
3
+ *
4
+ * Version: 2.0.0
5
+ * Home: https://github.com/jakerella/jquery-mockjax
6
+ * Copyright (c) 2015 Jordan Kasper, formerly appendTo;
7
+ * NOTE: This repository was taken over by Jordan Kasper (@jakerella) October, 2014
8
+ *
9
+ * Dual licensed under the MIT or GPL licenses.
10
+ * http://opensource.org/licenses/MIT OR http://www.gnu.org/licenses/gpl-2.0.html
11
+ */
12
+ !(function (a, b) {
13
+ "use strict";
14
+ if ("function" == typeof define && define.amd && define.amd.jQuery)
15
+ define(["jquery"], function (c) {
16
+ return b(c, a);
17
+ });
18
+ else {
19
+ if ("object" != typeof exports) return b(a.jQuery || a.$, a);
20
+ module.exports = b;
21
+ }
22
+ })(this, function (a, b) {
23
+ "use strict";
24
+ function c(c) {
25
+ void 0 === b.DOMParser &&
26
+ b.ActiveXObject &&
27
+ ((b.DOMParser = function () {}),
28
+ (DOMParser.prototype.parseFromString = function (a) {
29
+ var b = new ActiveXObject("Microsoft.XMLDOM");
30
+ return (b.async = "false"), b.loadXML(a), b;
31
+ }));
32
+ try {
33
+ var d = new DOMParser().parseFromString(c, "text/xml");
34
+ if (!a.isXMLDoc(d)) throw new Error("Unable to parse XML");
35
+ var e = a("parsererror", d);
36
+ if (1 === e.length) throw new Error("Error: " + a(d).text());
37
+ return d;
38
+ } catch (f) {
39
+ var g = void 0 === f.name ? f : f.name + ": " + f.message;
40
+ return void a(document).trigger("xmlParseError", [g]);
41
+ }
42
+ }
43
+ function d(b, c) {
44
+ var e = !0;
45
+ return "string" == typeof c
46
+ ? a.isFunction(b.test)
47
+ ? b.test(c)
48
+ : b === c
49
+ : (a.each(b, function (f) {
50
+ return void 0 === c[f]
51
+ ? (e = !1)
52
+ : void ("object" == typeof c[f] && null !== c[f]
53
+ ? (e &&
54
+ a.isArray(c[f]) &&
55
+ (e = a.isArray(b[f]) && c[f].length === b[f].length),
56
+ (e = e && d(b[f], c[f])))
57
+ : (e =
58
+ b[f] && a.isFunction(b[f].test)
59
+ ? e && b[f].test(c[f])
60
+ : e && b[f] === c[f]));
61
+ }),
62
+ e);
63
+ }
64
+ function e(b, c) {
65
+ return b[c] === a.mockjaxSettings[c];
66
+ }
67
+ function f(b, c) {
68
+ if (a.isFunction(b)) return b(c);
69
+ if (a.isFunction(b.url.test)) {
70
+ if (!b.url.test(c.url)) return null;
71
+ } else {
72
+ var e = b.url.indexOf("*");
73
+ if (
74
+ (b.url !== c.url && -1 === e) ||
75
+ !new RegExp(
76
+ b.url.replace(/[-[\]{}()+?.,\\^$|#\s]/g, "\\$&").replace(/\*/g, ".+")
77
+ ).test(c.url)
78
+ )
79
+ return null;
80
+ }
81
+ if (b.requestHeaders) {
82
+ if (void 0 === c.headers) return null;
83
+ var f = !1;
84
+ if (
85
+ (a.each(b.requestHeaders, function (a, b) {
86
+ var d = c.headers[a];
87
+ return d !== b ? ((f = !0), !1) : void 0;
88
+ }),
89
+ f)
90
+ )
91
+ return null;
92
+ }
93
+ return !b.data || (c.data && d(b.data, c.data))
94
+ ? b && b.type && b.type.toLowerCase() !== c.type.toLowerCase()
95
+ ? null
96
+ : b
97
+ : null;
98
+ }
99
+ function g(a) {
100
+ return "number" == typeof a && a >= 0;
101
+ }
102
+ function h(b) {
103
+ if (a.isArray(b) && 2 === b.length) {
104
+ var c = b[0],
105
+ d = b[1];
106
+ if (g(c) && g(d)) return Math.floor(Math.random() * (d - c)) + c;
107
+ } else if (g(b)) return b;
108
+ return z;
109
+ }
110
+ function i(b, d, f) {
111
+ var g = (function (e) {
112
+ return function () {
113
+ return function () {
114
+ (this.status = b.status),
115
+ (this.statusText = b.statusText),
116
+ (this.readyState = 1);
117
+ var g = function () {
118
+ this.readyState = 4;
119
+ var e;
120
+ "json" === d.dataType && "object" == typeof b.responseText
121
+ ? (this.responseText = JSON.stringify(b.responseText))
122
+ : "xml" === d.dataType
123
+ ? "string" == typeof b.responseXML
124
+ ? ((this.responseXML = c(b.responseXML)),
125
+ (this.responseText = b.responseXML))
126
+ : (this.responseXML = b.responseXML)
127
+ : "object" == typeof b.responseText && null !== b.responseText
128
+ ? ((b.contentType = "application/json"),
129
+ (this.responseText = JSON.stringify(b.responseText)))
130
+ : (this.responseText = b.responseText),
131
+ ("number" == typeof b.status || "string" == typeof b.status) &&
132
+ (this.status = b.status),
133
+ "string" == typeof b.statusText &&
134
+ (this.statusText = b.statusText),
135
+ (e = this.onreadystatechange || this.onload),
136
+ a.isFunction(e)
137
+ ? (b.isTimeout && (this.status = -1),
138
+ e.call(this, b.isTimeout ? "timeout" : void 0))
139
+ : b.isTimeout && (this.status = -1);
140
+ };
141
+ if (a.isFunction(b.response)) {
142
+ if (2 === b.response.length)
143
+ return void b.response(f, function () {
144
+ g.call(e);
145
+ });
146
+ b.response(f);
147
+ }
148
+ g.call(e);
149
+ }.apply(e);
150
+ };
151
+ })(this);
152
+ b.proxy
153
+ ? t({
154
+ global: !1,
155
+ url: b.proxy,
156
+ type: b.proxyType,
157
+ data: b.data,
158
+ dataType: "script" === d.dataType ? "text/plain" : d.dataType,
159
+ complete: function (a) {
160
+ (b.responseXML = a.responseXML),
161
+ (b.responseText = a.responseText),
162
+ e(b, "status") && (b.status = a.status),
163
+ e(b, "statusText") && (b.statusText = a.statusText),
164
+ (this.responseTimer = setTimeout(g, h(b.responseTime)));
165
+ },
166
+ })
167
+ : d.async === !1
168
+ ? g()
169
+ : (this.responseTimer = setTimeout(g, h(b.responseTime)));
170
+ }
171
+ function j(b, c, d, e) {
172
+ return (
173
+ (b = a.extend(!0, {}, a.mockjaxSettings, b)),
174
+ "undefined" == typeof b.headers && (b.headers = {}),
175
+ "undefined" == typeof c.headers && (c.headers = {}),
176
+ b.contentType && (b.headers["content-type"] = b.contentType),
177
+ {
178
+ status: b.status,
179
+ statusText: b.statusText,
180
+ readyState: 1,
181
+ open: function () {},
182
+ send: function () {
183
+ (e.fired = !0), i.call(this, b, c, d);
184
+ },
185
+ abort: function () {
186
+ clearTimeout(this.responseTimer);
187
+ },
188
+ setRequestHeader: function (a, b) {
189
+ c.headers[a] = b;
190
+ },
191
+ getResponseHeader: function (a) {
192
+ return b.headers && b.headers[a]
193
+ ? b.headers[a]
194
+ : "last-modified" === a.toLowerCase()
195
+ ? b.lastModified || new Date().toString()
196
+ : "etag" === a.toLowerCase()
197
+ ? b.etag || ""
198
+ : "content-type" === a.toLowerCase()
199
+ ? b.contentType || "text/plain"
200
+ : void 0;
201
+ },
202
+ getAllResponseHeaders: function () {
203
+ var c = "";
204
+ return (
205
+ b.contentType && (b.headers["Content-Type"] = b.contentType),
206
+ a.each(b.headers, function (a, b) {
207
+ c += a + ": " + b + "\n";
208
+ }),
209
+ c
210
+ );
211
+ },
212
+ }
213
+ );
214
+ }
215
+ function k(a, b, c) {
216
+ if (
217
+ (l(a), (a.dataType = "json"), (a.data && x.test(a.data)) || x.test(a.url))
218
+ ) {
219
+ o(a, b, c);
220
+ var d = /^(\w+:)?\/\/([^\/?#]+)/,
221
+ e = d.exec(a.url),
222
+ f =
223
+ e && ((e[1] && e[1] !== location.protocol) || e[2] !== location.host);
224
+ if (((a.dataType = "script"), "GET" === a.type.toUpperCase() && f)) {
225
+ var g = m(a, b, c);
226
+ return g ? g : !0;
227
+ }
228
+ }
229
+ return null;
230
+ }
231
+ function l(a) {
232
+ "GET" === a.type.toUpperCase()
233
+ ? x.test(a.url) ||
234
+ (a.url +=
235
+ (/\?/.test(a.url) ? "&" : "?") + (a.jsonp || "callback") + "=?")
236
+ : (a.data && x.test(a.data)) ||
237
+ (a.data =
238
+ (a.data ? a.data + "&" : "") + (a.jsonp || "callback") + "=?");
239
+ }
240
+ function m(b, c, d) {
241
+ var e = (d && d.context) || b,
242
+ f = a.Deferred ? new a.Deferred() : null;
243
+ if (c.response && a.isFunction(c.response)) c.response(d);
244
+ else if ("object" == typeof c.responseText)
245
+ a.globalEval("(" + JSON.stringify(c.responseText) + ")");
246
+ else {
247
+ if (c.proxy)
248
+ return (
249
+ t({
250
+ global: !1,
251
+ url: c.proxy,
252
+ type: c.proxyType,
253
+ data: c.data,
254
+ dataType: "script" === b.dataType ? "text/plain" : b.dataType,
255
+ complete: function (d) {
256
+ a.globalEval("(" + d.responseText + ")"), n(b, c, e, f);
257
+ },
258
+ }),
259
+ f
260
+ );
261
+ a.globalEval("(" + c.responseText + ")");
262
+ }
263
+ return n(b, c, e, f), f;
264
+ }
265
+ function n(b, c, d, e) {
266
+ var f;
267
+ if (
268
+ (setTimeout(function () {
269
+ p(b, d, c), q(b, d);
270
+ }, h(c.responseTime)),
271
+ e)
272
+ ) {
273
+ try {
274
+ f = a.parseJSON(c.responseText);
275
+ } catch (g) {}
276
+ e.resolveWith(d, [f || c.responseText]);
277
+ }
278
+ }
279
+ function o(a, c, d) {
280
+ var e = (d && d.context) || a,
281
+ f = a.jsonpCallback || "jsonp" + y++;
282
+ a.data && (a.data = (a.data + "").replace(x, "=" + f + "$1")),
283
+ (a.url = a.url.replace(x, "=" + f + "$1")),
284
+ (b[f] =
285
+ b[f] ||
286
+ function () {
287
+ p(a, e, c), q(a, e), (b[f] = void 0);
288
+ try {
289
+ delete b[f];
290
+ } catch (d) {}
291
+ });
292
+ }
293
+ function p(b, c, d) {
294
+ b.success && b.success.call(c, d.responseText || "", "success", {}),
295
+ b.global &&
296
+ (b.context ? a(b.context) : a.event).trigger("ajaxSuccess", [{}, b]);
297
+ }
298
+ function q(b, c) {
299
+ b.complete &&
300
+ b.complete.call(c, { statusText: "success", status: 200 }, "success"),
301
+ b.global &&
302
+ (b.context ? a(b.context) : a.event).trigger("ajaxComplete", [{}, b]),
303
+ b.global && !--a.active && a.event.trigger("ajaxStop");
304
+ }
305
+ function r(b, c) {
306
+ var d, e, g, h;
307
+ "object" == typeof b
308
+ ? ((c = b), (b = void 0))
309
+ : ((c = c || {}), (c.url = b)),
310
+ (e = a.ajaxSetup({}, c)),
311
+ (e.type = e.method = e.method || e.type),
312
+ (h = function (b, d) {
313
+ var e = c[b.toLowerCase()];
314
+ return function () {
315
+ a.isFunction(e) && e.apply(this, [].slice.call(arguments)),
316
+ d["onAfter" + b]();
317
+ };
318
+ });
319
+ for (var i = 0; i < u.length; i++)
320
+ if (u[i] && (g = f(u[i], e)))
321
+ return (
322
+ v.push(e),
323
+ a.mockjaxSettings.log(g, e),
324
+ e.dataType && "JSONP" === e.dataType.toUpperCase() && (d = k(e, g, c))
325
+ ? d
326
+ : ((g.cache = e.cache),
327
+ (g.timeout = e.timeout),
328
+ (g.global = e.global),
329
+ g.isTimeout &&
330
+ (g.responseTime > 1
331
+ ? (c.timeout = g.responseTime - 1)
332
+ : ((g.responseTime = 2), (c.timeout = 1))),
333
+ a.isFunction(g.onAfterSuccess) && (c.success = h("Success", g)),
334
+ a.isFunction(g.onAfterError) && (c.error = h("Error", g)),
335
+ a.isFunction(g.onAfterComplete) &&
336
+ (c.complete = h("Complete", g)),
337
+ s(g, c),
338
+ (function (b, c, e, f) {
339
+ d = t.call(
340
+ a,
341
+ a.extend(!0, {}, e, {
342
+ xhr: function () {
343
+ return j(b, c, e, f);
344
+ },
345
+ })
346
+ );
347
+ })(g, e, c, u[i]),
348
+ d)
349
+ );
350
+ if ((w.push(c), a.mockjaxSettings.throwUnmocked === !0))
351
+ throw new Error("AJAX not mocked: " + c.url);
352
+ return t.apply(a, [c]);
353
+ }
354
+ function s(a, b) {
355
+ if (a.url instanceof RegExp && a.hasOwnProperty("urlParams")) {
356
+ var c = a.url.exec(b.url);
357
+ if (1 !== c.length) {
358
+ c.shift();
359
+ var d = 0,
360
+ e = c.length,
361
+ f = a.urlParams.length,
362
+ g = Math.min(e, f),
363
+ h = {};
364
+ for (d; g > d; d++) {
365
+ var i = a.urlParams[d];
366
+ h[i] = c[d];
367
+ }
368
+ b.urlParams = h;
369
+ }
370
+ }
371
+ }
372
+ var t = a.ajax,
373
+ u = [],
374
+ v = [],
375
+ w = [],
376
+ x = /=\?(&|$)/,
377
+ y = new Date().getTime();
378
+ a.extend({ ajax: r });
379
+ var z = 500;
380
+ return (
381
+ (a.mockjaxSettings = {
382
+ log: function (c, d) {
383
+ if (
384
+ c.logging !== !1 &&
385
+ ("undefined" != typeof c.logging ||
386
+ a.mockjaxSettings.logging !== !1) &&
387
+ b.console &&
388
+ console.log
389
+ ) {
390
+ var e = "MOCK " + d.type.toUpperCase() + ": " + d.url,
391
+ f = a.ajaxSetup({}, d);
392
+ if ("function" == typeof console.log) console.log(e, f);
393
+ else
394
+ try {
395
+ console.log(e + " " + JSON.stringify(f));
396
+ } catch (g) {
397
+ console.log(e);
398
+ }
399
+ }
400
+ },
401
+ logging: !0,
402
+ status: 200,
403
+ statusText: "OK",
404
+ responseTime: z,
405
+ isTimeout: !1,
406
+ throwUnmocked: !1,
407
+ contentType: "text/plain",
408
+ response: "",
409
+ responseText: "",
410
+ responseXML: "",
411
+ proxy: "",
412
+ proxyType: "GET",
413
+ lastModified: null,
414
+ etag: "",
415
+ headers: {
416
+ etag: "IJF@H#@923uf8023hFO@I#H#",
417
+ "content-type": "text/plain",
418
+ },
419
+ }),
420
+ (a.mockjax = function (a) {
421
+ var b = u.length;
422
+ return (u[b] = a), b;
423
+ }),
424
+ (a.mockjax.clear = function (a) {
425
+ a || 0 === a ? (u[a] = null) : (u = []), (v = []), (w = []);
426
+ }),
427
+ (a.mockjax.handler = function (a) {
428
+ return 1 === arguments.length ? u[a] : void 0;
429
+ }),
430
+ (a.mockjax.mockedAjaxCalls = function () {
431
+ return v;
432
+ }),
433
+ (a.mockjax.unfiredHandlers = function () {
434
+ for (var a = [], b = 0, c = u.length; c > b; b++) {
435
+ var d = u[b];
436
+ null === d || d.fired || a.push(d);
437
+ }
438
+ return a;
439
+ }),
440
+ (a.mockjax.unmockedAjaxCalls = function () {
441
+ return w;
442
+ }),
443
+ a.mockjax
444
+ );
445
+ });
@@ -0,0 +1,173 @@
1
+ /*! jQuery.modal 0.2.4 Original author Alan Plum <me@pluma.io>. Released into the Public Domain under the UNLICENSE. @preserve */
2
+ (function ($) {
3
+ function _once(init, fn) {
4
+ var result = null;
5
+ return function () {
6
+ if (!result) {
7
+ result = init.apply(this, arguments);
8
+ init = $.noop;
9
+ }
10
+ return fn ? fn.apply(this, arguments) : result;
11
+ };
12
+ }
13
+
14
+ function _getApiMethod(cls, name, length) {
15
+ var i, method, fn;
16
+ length = length || 0;
17
+ for (i = 0; i < cls.api.length; i++) {
18
+ method = cls.api[i];
19
+ if (method[0] !== name) {
20
+ continue;
21
+ }
22
+ fn = method[1] || cls.prototype[name];
23
+ if (fn.length === length) {
24
+ return fn;
25
+ }
26
+ }
27
+ return null;
28
+ }
29
+ var _arraySlice = Array.prototype.slice;
30
+
31
+ var plugin = $.extend(
32
+ function (options) {
33
+ var args = _arraySlice.call(arguments, 1);
34
+ var method = _getApiMethod(Modal, options, args.length);
35
+ var result;
36
+ if (method) {
37
+ result = method.apply(this.data("modal"), args);
38
+ if (result !== undefined) {
39
+ return result;
40
+ }
41
+ } else {
42
+ this.each(function () {
43
+ var $this = $(this);
44
+ if (!$this.data("modal")) {
45
+ $this.data("modal", new Modal(this, options));
46
+ }
47
+ });
48
+ }
49
+ return this;
50
+ },
51
+ {
52
+ overlay: {
53
+ showFn: function (callback) {
54
+ this.css("background", "black");
55
+ this.fadeTo(200, 0.5, callback);
56
+ },
57
+ hideFn: function (callback) {
58
+ this.fadeOut(1, callback);
59
+ },
60
+ },
61
+ defaults: {
62
+ showFn: function (callback) {
63
+ this.fadeIn(200, callback);
64
+ },
65
+ hideFn: function (callback) {
66
+ this.fadeOut(200, callback);
67
+ },
68
+ },
69
+ _overlay: overlay,
70
+ _Modal: Modal,
71
+ }
72
+ );
73
+
74
+ var overlay = {
75
+ $el: $("<div/>")
76
+ .css({
77
+ position: "fixed",
78
+ zIndex: 10000,
79
+ left: 0,
80
+ top: 0,
81
+ width: "100%",
82
+ height: "100%",
83
+ })
84
+ .hide(),
85
+ open: _once(
86
+ function () {
87
+ this.$el.appendTo("body");
88
+ },
89
+ function (callback) {
90
+ var showFn = plugin.overlay.showFn;
91
+ var $el = this.$el;
92
+ showFn.call($el, callback);
93
+ }
94
+ ),
95
+ close: function (callback) {
96
+ var hideFn = plugin.overlay.hideFn;
97
+ var $el = this.$el;
98
+ hideFn.call($el, callback);
99
+ },
100
+ };
101
+
102
+ function Modal(content, options) {
103
+ this._options = $.extend({}, options);
104
+ this.$el = $("<div/>")
105
+ .css({
106
+ position: "fixed",
107
+ zIndex: 11000,
108
+ left: "50%",
109
+ top: 0,
110
+ marginLeft: 0,
111
+ })
112
+ .hide();
113
+ if (typeof content === "string") {
114
+ this.$el.text(content);
115
+ } else {
116
+ $(content).detach().appendTo(this.$el);
117
+ }
118
+ }
119
+
120
+ Modal.api = [
121
+ ["open"],
122
+ ["close"],
123
+ ["center"],
124
+ [
125
+ "option",
126
+ function (name) {
127
+ return this.getOption(name);
128
+ },
129
+ ],
130
+ [
131
+ "option",
132
+ function (name, value) {
133
+ this._options[name] = value;
134
+ return value;
135
+ },
136
+ ],
137
+ ];
138
+
139
+ $.extend(Modal.prototype, {
140
+ getOption: function (name) {
141
+ return this._options.hasOwnProperty(name)
142
+ ? this._options[name]
143
+ : plugin.defaults[name];
144
+ },
145
+ open: function () {
146
+ var showFn = this.getOption("showFn");
147
+ var me = this;
148
+ overlay.open(function () {
149
+ me.$el.appendTo("body");
150
+ me.center();
151
+ showFn.call(me.$el);
152
+ me.$el.trigger("modal:open");
153
+ });
154
+ },
155
+ close: function () {
156
+ var hideFn = this.getOption("hideFn");
157
+ var me = this;
158
+ hideFn.call(this.$el, function () {
159
+ me.$el.detach();
160
+ overlay.close();
161
+ me.$el.trigger("modal:close");
162
+ });
163
+ },
164
+ center: function () {
165
+ this.$el.css({
166
+ marginLeft: -(this.$el.width() / 2) + "px",
167
+ top: $(window).height() / 2 - this.$el.height() / 2 + "px",
168
+ });
169
+ },
170
+ });
171
+
172
+ $.fn.modal = plugin;
173
+ })(jQuery);