bk-magic-vue 2.4.4 → 2.4.7

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.
Files changed (56) hide show
  1. package/dist/bk-magic-vue.css +132 -113
  2. package/dist/bk-magic-vue.js +1810 -1052
  3. package/dist/bk-magic-vue.min.css +1 -1
  4. package/dist/bk-magic-vue.min.css.gz +0 -0
  5. package/dist/bk-magic-vue.min.css.map +1 -1
  6. package/dist/bk-magic-vue.min.js +1 -1
  7. package/dist/bk-magic-vue.min.js.gz +0 -0
  8. package/dist/bk-magic-vue.min.js.map +1 -1
  9. package/lib/affix.js +5 -2
  10. package/lib/big-tree.js +9 -1
  11. package/lib/button.js +263 -94
  12. package/lib/card.js +2 -0
  13. package/lib/cascade.js +7 -0
  14. package/lib/dialog.js +278 -109
  15. package/lib/dropdown-menu.js +1936 -1891
  16. package/lib/image-viewer.js +2 -2
  17. package/lib/image.js +2 -2
  18. package/lib/info-box.js +277 -108
  19. package/lib/input.js +2 -0
  20. package/lib/pagination.js +303 -68
  21. package/lib/select.js +255 -20
  22. package/lib/slider.js +2 -0
  23. package/lib/table-setting-content.js +202 -33
  24. package/lib/table.js +88 -8
  25. package/lib/transfer.js +2 -0
  26. package/lib/ui/bk-magic-vue.css +132 -113
  27. package/lib/ui/bk-magic-vue.min.css +1 -1
  28. package/lib/ui/bk-magic-vue.min.css.gz +0 -0
  29. package/lib/ui/bk-magic-vue.min.css.map +1 -1
  30. package/lib/ui/button.css +11 -2
  31. package/lib/ui/button.min.css +1 -1
  32. package/lib/ui/button.min.css.map +1 -1
  33. package/lib/ui/divider.css +0 -17
  34. package/lib/ui/divider.min.css +1 -1
  35. package/lib/ui/divider.min.css.map +1 -1
  36. package/lib/ui/dropdown-menu.css +87 -88
  37. package/lib/ui/dropdown-menu.min.css +1 -1
  38. package/lib/ui/dropdown-menu.min.css.map +1 -1
  39. package/lib/ui/image-viewer.css +14 -8
  40. package/lib/ui/image-viewer.min.css +1 -1
  41. package/lib/ui/image-viewer.min.css.map +1 -1
  42. package/lib/ui/pagination.css +1 -0
  43. package/lib/ui/pagination.min.css +1 -1
  44. package/lib/ui/pagination.min.css.map +1 -1
  45. package/lib/ui/select.css +19 -0
  46. package/lib/ui/select.min.css +1 -1
  47. package/lib/ui/select.min.css.map +1 -1
  48. package/lib/ui/table.css +6 -0
  49. package/lib/ui/table.min.css +1 -1
  50. package/lib/ui/table.min.css.map +1 -1
  51. package/lib/ui/zoom-image.css +1 -0
  52. package/lib/ui/zoom-image.min.css +1 -1
  53. package/lib/ui/zoom-image.min.css.map +1 -1
  54. package/lib/upload.js +1308 -20
  55. package/lib/version-detail.js +238 -69
  56. package/package.json +5 -4
@@ -1,1896 +1,1941 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
- (global = global || self, factory(global.library = {}));
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
+ (global = global || self, factory(global.library = {}));
5
5
  }(this, function (exports) { 'use strict';
6
6
 
7
- var nodeList = [];
8
- var clickctx = '$clickoutsideCtx';
9
- var beginClick;
10
- document.addEventListener('mousedown', function (event) {
11
- return beginClick = event;
12
- });
13
- document.addEventListener('mouseup', function (event) {
14
- nodeList.forEach(function (node) {
15
- node[clickctx].clickoutsideHandler(event, beginClick);
16
- });
17
- });
18
- var bkClickoutside = {
19
- bind: function bind(el, binding, vnode) {
20
- var id = nodeList.push(el) - 1;
21
- var clickoutsideHandler = function clickoutsideHandler() {
22
- var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
- var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
- if (!vnode.context
25
- || !mouseup.target || !mousedown.target || el.contains(mouseup.target)
26
- || el.contains(mousedown.target)
27
- || el === mouseup.target
28
- || vnode.context.popup
29
- && (vnode.context.popup.contains(mouseup.target)
30
- || vnode.context.popup.contains(mousedown.target)
31
- )) {
32
- return;
33
- }
34
- if (binding.expression
35
- && el[clickctx].callbackName
36
- && vnode.context[el[clickctx].callbackName]
37
- ) {
38
- vnode.context[el[clickctx].callbackName](mouseup, mousedown, el);
39
- } else {
40
- el[clickctx].bindingFn && el[clickctx].bindingFn(mouseup, mousedown, el);
41
- }
42
- };
43
- el[clickctx] = {
44
- id: id,
45
- clickoutsideHandler: clickoutsideHandler,
46
- callbackName: binding.expression,
47
- callbackFn: binding.value
48
- };
49
- },
50
- update: function update(el, binding) {
51
- el[clickctx].callbackName = binding.expression;
52
- el[clickctx].callbackFn = binding.value;
53
- },
54
- unbind: function unbind(el) {
55
- for (var i = 0, len = nodeList.length; i < len; i++) {
56
- if (nodeList[i][clickctx].id === el[clickctx].id) {
57
- nodeList.splice(i, 1);
58
- break;
59
- }
60
- }
61
- }
62
- };
63
- bkClickoutside.install = function (Vue) {
64
- Vue.directive('bkClickoutside', bkClickoutside);
65
- };
66
-
67
- var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
68
- var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
69
- var timeoutDuration = 0;
70
- for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
71
- if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
72
- timeoutDuration = 1;
73
- break;
74
- }
75
- }
76
- function microtaskDebounce(fn) {
77
- var called = false;
78
- return function () {
79
- if (called) {
80
- return;
81
- }
82
- called = true;
83
- window.Promise.resolve().then(function () {
84
- called = false;
85
- fn();
86
- });
87
- };
88
- }
89
- function taskDebounce(fn) {
90
- var scheduled = false;
91
- return function () {
92
- if (!scheduled) {
93
- scheduled = true;
94
- setTimeout(function () {
95
- scheduled = false;
96
- fn();
97
- }, timeoutDuration);
98
- }
99
- };
100
- }
101
- var supportsMicroTasks = isBrowser && window.Promise;
102
- var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
103
- function isFunction(functionToCheck) {
104
- var getType = {};
105
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
106
- }
107
- function getStyleComputedProperty(element, property) {
108
- if (element.nodeType !== 1) {
109
- return [];
110
- }
111
- var window = element.ownerDocument.defaultView;
112
- var css = window.getComputedStyle(element, null);
113
- return property ? css[property] : css;
114
- }
115
- function getParentNode(element) {
116
- if (element.nodeName === 'HTML') {
117
- return element;
118
- }
119
- return element.parentNode || element.host;
120
- }
121
- function getScrollParent(element) {
122
- if (!element) {
123
- return document.body;
124
- }
125
- switch (element.nodeName) {
126
- case 'HTML':
127
- case 'BODY':
128
- return element.ownerDocument.body;
129
- case '#document':
130
- return element.body;
131
- }
132
- var _getStyleComputedProp = getStyleComputedProperty(element),
133
- overflow = _getStyleComputedProp.overflow,
134
- overflowX = _getStyleComputedProp.overflowX,
135
- overflowY = _getStyleComputedProp.overflowY;
136
- if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
137
- return element;
138
- }
139
- return getScrollParent(getParentNode(element));
140
- }
141
- var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
142
- var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
143
- function isIE(version) {
144
- if (version === 11) {
145
- return isIE11;
146
- }
147
- if (version === 10) {
148
- return isIE10;
149
- }
150
- return isIE11 || isIE10;
151
- }
152
- function getOffsetParent(element) {
153
- if (!element) {
154
- return document.documentElement;
155
- }
156
- var noOffsetParent = isIE(10) ? document.body : null;
157
- var offsetParent = element.offsetParent || null;
158
- while (offsetParent === noOffsetParent && element.nextElementSibling) {
159
- offsetParent = (element = element.nextElementSibling).offsetParent;
160
- }
161
- var nodeName = offsetParent && offsetParent.nodeName;
162
- if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
163
- return element ? element.ownerDocument.documentElement : document.documentElement;
164
- }
165
- if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
166
- return getOffsetParent(offsetParent);
167
- }
168
- return offsetParent;
169
- }
170
- function isOffsetContainer(element) {
171
- var nodeName = element.nodeName;
172
- if (nodeName === 'BODY') {
173
- return false;
174
- }
175
- return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
176
- }
177
- function getRoot(node) {
178
- if (node.parentNode !== null) {
179
- return getRoot(node.parentNode);
180
- }
181
- return node;
182
- }
183
- function findCommonOffsetParent(element1, element2) {
184
- if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
185
- return document.documentElement;
186
- }
187
- var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
188
- var start = order ? element1 : element2;
189
- var end = order ? element2 : element1;
190
- var range = document.createRange();
191
- range.setStart(start, 0);
192
- range.setEnd(end, 0);
193
- var commonAncestorContainer = range.commonAncestorContainer;
194
- if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
195
- if (isOffsetContainer(commonAncestorContainer)) {
196
- return commonAncestorContainer;
197
- }
198
- return getOffsetParent(commonAncestorContainer);
199
- }
200
- var element1root = getRoot(element1);
201
- if (element1root.host) {
202
- return findCommonOffsetParent(element1root.host, element2);
203
- } else {
204
- return findCommonOffsetParent(element1, getRoot(element2).host);
205
- }
206
- }
207
- function getScroll(element) {
208
- var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
209
- var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
210
- var nodeName = element.nodeName;
211
- if (nodeName === 'BODY' || nodeName === 'HTML') {
212
- var html = element.ownerDocument.documentElement;
213
- var scrollingElement = element.ownerDocument.scrollingElement || html;
214
- return scrollingElement[upperSide];
215
- }
216
- return element[upperSide];
217
- }
218
- function includeScroll(rect, element) {
219
- var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
220
- var scrollTop = getScroll(element, 'top');
221
- var scrollLeft = getScroll(element, 'left');
222
- var modifier = subtract ? -1 : 1;
223
- rect.top += scrollTop * modifier;
224
- rect.bottom += scrollTop * modifier;
225
- rect.left += scrollLeft * modifier;
226
- rect.right += scrollLeft * modifier;
227
- return rect;
228
- }
229
- function getBordersSize(styles, axis) {
230
- var sideA = axis === 'x' ? 'Left' : 'Top';
231
- var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
232
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
233
- }
234
- function getSize(axis, body, html, computedStyle) {
235
- return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
236
- }
237
- function getWindowSizes(document) {
238
- var body = document.body;
239
- var html = document.documentElement;
240
- var computedStyle = isIE(10) && getComputedStyle(html);
241
- return {
242
- height: getSize('Height', body, html, computedStyle),
243
- width: getSize('Width', body, html, computedStyle)
244
- };
245
- }
246
- var classCallCheck = function (instance, Constructor) {
247
- if (!(instance instanceof Constructor)) {
248
- throw new TypeError("Cannot call a class as a function");
249
- }
250
- };
251
- var createClass = function () {
252
- function defineProperties(target, props) {
253
- for (var i = 0; i < props.length; i++) {
254
- var descriptor = props[i];
255
- descriptor.enumerable = descriptor.enumerable || false;
256
- descriptor.configurable = true;
257
- if ("value" in descriptor) descriptor.writable = true;
258
- Object.defineProperty(target, descriptor.key, descriptor);
259
- }
260
- }
261
- return function (Constructor, protoProps, staticProps) {
262
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
263
- if (staticProps) defineProperties(Constructor, staticProps);
264
- return Constructor;
265
- };
266
- }();
267
- var defineProperty = function (obj, key, value) {
268
- if (key in obj) {
269
- Object.defineProperty(obj, key, {
270
- value: value,
271
- enumerable: true,
272
- configurable: true,
273
- writable: true
274
- });
275
- } else {
276
- obj[key] = value;
277
- }
278
- return obj;
279
- };
280
- var _extends = Object.assign || function (target) {
281
- for (var i = 1; i < arguments.length; i++) {
282
- var source = arguments[i];
283
- for (var key in source) {
284
- if (Object.prototype.hasOwnProperty.call(source, key)) {
285
- target[key] = source[key];
286
- }
287
- }
288
- }
289
- return target;
290
- };
291
- function getClientRect(offsets) {
292
- return _extends({}, offsets, {
293
- right: offsets.left + offsets.width,
294
- bottom: offsets.top + offsets.height
295
- });
296
- }
297
- function getBoundingClientRect(element) {
298
- var rect = {};
299
- try {
300
- if (isIE(10)) {
301
- rect = element.getBoundingClientRect();
302
- var scrollTop = getScroll(element, 'top');
303
- var scrollLeft = getScroll(element, 'left');
304
- rect.top += scrollTop;
305
- rect.left += scrollLeft;
306
- rect.bottom += scrollTop;
307
- rect.right += scrollLeft;
308
- } else {
309
- rect = element.getBoundingClientRect();
310
- }
311
- } catch (e) {}
312
- var result = {
313
- left: rect.left,
314
- top: rect.top,
315
- width: rect.right - rect.left,
316
- height: rect.bottom - rect.top
317
- };
318
- var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
319
- var width = sizes.width || element.clientWidth || result.right - result.left;
320
- var height = sizes.height || element.clientHeight || result.bottom - result.top;
321
- var horizScrollbar = element.offsetWidth - width;
322
- var vertScrollbar = element.offsetHeight - height;
323
- if (horizScrollbar || vertScrollbar) {
324
- var styles = getStyleComputedProperty(element);
325
- horizScrollbar -= getBordersSize(styles, 'x');
326
- vertScrollbar -= getBordersSize(styles, 'y');
327
- result.width -= horizScrollbar;
328
- result.height -= vertScrollbar;
329
- }
330
- return getClientRect(result);
331
- }
332
- function getOffsetRectRelativeToArbitraryNode(children, parent) {
333
- var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
334
- var isIE10 = isIE(10);
335
- var isHTML = parent.nodeName === 'HTML';
336
- var childrenRect = getBoundingClientRect(children);
337
- var parentRect = getBoundingClientRect(parent);
338
- var scrollParent = getScrollParent(children);
339
- var styles = getStyleComputedProperty(parent);
340
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
341
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
342
- if (fixedPosition && isHTML) {
343
- parentRect.top = Math.max(parentRect.top, 0);
344
- parentRect.left = Math.max(parentRect.left, 0);
345
- }
346
- var offsets = getClientRect({
347
- top: childrenRect.top - parentRect.top - borderTopWidth,
348
- left: childrenRect.left - parentRect.left - borderLeftWidth,
349
- width: childrenRect.width,
350
- height: childrenRect.height
351
- });
352
- offsets.marginTop = 0;
353
- offsets.marginLeft = 0;
354
- if (!isIE10 && isHTML) {
355
- var marginTop = parseFloat(styles.marginTop, 10);
356
- var marginLeft = parseFloat(styles.marginLeft, 10);
357
- offsets.top -= borderTopWidth - marginTop;
358
- offsets.bottom -= borderTopWidth - marginTop;
359
- offsets.left -= borderLeftWidth - marginLeft;
360
- offsets.right -= borderLeftWidth - marginLeft;
361
- offsets.marginTop = marginTop;
362
- offsets.marginLeft = marginLeft;
363
- }
364
- if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
365
- offsets = includeScroll(offsets, parent);
366
- }
367
- return offsets;
368
- }
369
- function getViewportOffsetRectRelativeToArtbitraryNode(element) {
370
- var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
371
- var html = element.ownerDocument.documentElement;
372
- var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
373
- var width = Math.max(html.clientWidth, window.innerWidth || 0);
374
- var height = Math.max(html.clientHeight, window.innerHeight || 0);
375
- var scrollTop = !excludeScroll ? getScroll(html) : 0;
376
- var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
377
- var offset = {
378
- top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
379
- left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
380
- width: width,
381
- height: height
382
- };
383
- return getClientRect(offset);
384
- }
385
- function isFixed(element) {
386
- var nodeName = element.nodeName;
387
- if (nodeName === 'BODY' || nodeName === 'HTML') {
388
- return false;
389
- }
390
- if (getStyleComputedProperty(element, 'position') === 'fixed') {
391
- return true;
392
- }
393
- var parentNode = getParentNode(element);
394
- if (!parentNode) {
395
- return false;
396
- }
397
- return isFixed(parentNode);
398
- }
399
- function getFixedPositionOffsetParent(element) {
400
- if (!element || !element.parentElement || isIE()) {
401
- return document.documentElement;
402
- }
403
- var el = element.parentElement;
404
- while (el && getStyleComputedProperty(el, 'transform') === 'none') {
405
- el = el.parentElement;
406
- }
407
- return el || document.documentElement;
408
- }
409
- function getBoundaries(popper, reference, padding, boundariesElement) {
410
- var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
411
- var boundaries = { top: 0, left: 0 };
412
- var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
413
- if (boundariesElement === 'viewport') {
414
- boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
415
- } else {
416
- var boundariesNode = void 0;
417
- if (boundariesElement === 'scrollParent') {
418
- boundariesNode = getScrollParent(getParentNode(reference));
419
- if (boundariesNode.nodeName === 'BODY') {
420
- boundariesNode = popper.ownerDocument.documentElement;
421
- }
422
- } else if (boundariesElement === 'window') {
423
- boundariesNode = popper.ownerDocument.documentElement;
424
- } else {
425
- boundariesNode = boundariesElement;
426
- }
427
- var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
428
- if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
429
- var _getWindowSizes = getWindowSizes(popper.ownerDocument),
430
- height = _getWindowSizes.height,
431
- width = _getWindowSizes.width;
432
- boundaries.top += offsets.top - offsets.marginTop;
433
- boundaries.bottom = height + offsets.top;
434
- boundaries.left += offsets.left - offsets.marginLeft;
435
- boundaries.right = width + offsets.left;
436
- } else {
437
- boundaries = offsets;
438
- }
439
- }
440
- padding = padding || 0;
441
- var isPaddingNumber = typeof padding === 'number';
442
- boundaries.left += isPaddingNumber ? padding : padding.left || 0;
443
- boundaries.top += isPaddingNumber ? padding : padding.top || 0;
444
- boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
445
- boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
446
- return boundaries;
447
- }
448
- function getArea(_ref) {
449
- var width = _ref.width,
450
- height = _ref.height;
451
- return width * height;
452
- }
453
- function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
454
- var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
455
- if (placement.indexOf('auto') === -1) {
456
- return placement;
457
- }
458
- var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
459
- var rects = {
460
- top: {
461
- width: boundaries.width,
462
- height: refRect.top - boundaries.top
463
- },
464
- right: {
465
- width: boundaries.right - refRect.right,
466
- height: boundaries.height
467
- },
468
- bottom: {
469
- width: boundaries.width,
470
- height: boundaries.bottom - refRect.bottom
471
- },
472
- left: {
473
- width: refRect.left - boundaries.left,
474
- height: boundaries.height
475
- }
476
- };
477
- var sortedAreas = Object.keys(rects).map(function (key) {
478
- return _extends({
479
- key: key
480
- }, rects[key], {
481
- area: getArea(rects[key])
482
- });
483
- }).sort(function (a, b) {
484
- return b.area - a.area;
485
- });
486
- var filteredAreas = sortedAreas.filter(function (_ref2) {
487
- var width = _ref2.width,
488
- height = _ref2.height;
489
- return width >= popper.clientWidth && height >= popper.clientHeight;
490
- });
491
- var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
492
- var variation = placement.split('-')[1];
493
- return computedPlacement + (variation ? '-' + variation : '');
494
- }
495
- function getReferenceOffsets(state, popper, reference) {
496
- var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
497
- var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
498
- return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
499
- }
500
- function getOuterSizes(element) {
501
- var window = element.ownerDocument.defaultView;
502
- var styles = window.getComputedStyle(element);
503
- var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
504
- var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
505
- var result = {
506
- width: element.offsetWidth + y,
507
- height: element.offsetHeight + x
508
- };
509
- return result;
510
- }
511
- function getOppositePlacement(placement) {
512
- var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
513
- return placement.replace(/left|right|bottom|top/g, function (matched) {
514
- return hash[matched];
515
- });
516
- }
517
- function getPopperOffsets(popper, referenceOffsets, placement) {
518
- placement = placement.split('-')[0];
519
- var popperRect = getOuterSizes(popper);
520
- var popperOffsets = {
521
- width: popperRect.width,
522
- height: popperRect.height
523
- };
524
- var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
525
- var mainSide = isHoriz ? 'top' : 'left';
526
- var secondarySide = isHoriz ? 'left' : 'top';
527
- var measurement = isHoriz ? 'height' : 'width';
528
- var secondaryMeasurement = !isHoriz ? 'height' : 'width';
529
- popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
530
- if (placement === secondarySide) {
531
- popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
532
- } else {
533
- popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
534
- }
535
- return popperOffsets;
536
- }
537
- function find(arr, check) {
538
- if (Array.prototype.find) {
539
- return arr.find(check);
540
- }
541
- return arr.filter(check)[0];
542
- }
543
- function findIndex(arr, prop, value) {
544
- if (Array.prototype.findIndex) {
545
- return arr.findIndex(function (cur) {
546
- return cur[prop] === value;
547
- });
548
- }
549
- var match = find(arr, function (obj) {
550
- return obj[prop] === value;
551
- });
552
- return arr.indexOf(match);
553
- }
554
- function runModifiers(modifiers, data, ends) {
555
- var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
556
- modifiersToRun.forEach(function (modifier) {
557
- if (modifier['function']) {
558
- console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
559
- }
560
- var fn = modifier['function'] || modifier.fn;
561
- if (modifier.enabled && isFunction(fn)) {
562
- data.offsets.popper = getClientRect(data.offsets.popper);
563
- data.offsets.reference = getClientRect(data.offsets.reference);
564
- data = fn(data, modifier);
565
- }
566
- });
567
- return data;
568
- }
569
- function update() {
570
- if (this.state.isDestroyed) {
571
- return;
572
- }
573
- var data = {
574
- instance: this,
575
- styles: {},
576
- arrowStyles: {},
577
- attributes: {},
578
- flipped: false,
579
- offsets: {}
580
- };
581
- data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
582
- data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
583
- data.originalPlacement = data.placement;
584
- data.positionFixed = this.options.positionFixed;
585
- data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
586
- data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
587
- data = runModifiers(this.modifiers, data);
588
- if (!this.state.isCreated) {
589
- this.state.isCreated = true;
590
- this.options.onCreate(data);
591
- } else {
592
- this.options.onUpdate(data);
593
- }
594
- }
595
- function isModifierEnabled(modifiers, modifierName) {
596
- return modifiers.some(function (_ref) {
597
- var name = _ref.name,
598
- enabled = _ref.enabled;
599
- return enabled && name === modifierName;
600
- });
601
- }
602
- function getSupportedPropertyName(property) {
603
- var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
604
- var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
605
- for (var i = 0; i < prefixes.length; i++) {
606
- var prefix = prefixes[i];
607
- var toCheck = prefix ? '' + prefix + upperProp : property;
608
- if (typeof document.body.style[toCheck] !== 'undefined') {
609
- return toCheck;
610
- }
611
- }
612
- return null;
613
- }
614
- function destroy() {
615
- this.state.isDestroyed = true;
616
- if (isModifierEnabled(this.modifiers, 'applyStyle')) {
617
- this.popper.removeAttribute('x-placement');
618
- this.popper.style.position = '';
619
- this.popper.style.top = '';
620
- this.popper.style.left = '';
621
- this.popper.style.right = '';
622
- this.popper.style.bottom = '';
623
- this.popper.style.willChange = '';
624
- this.popper.style[getSupportedPropertyName('transform')] = '';
625
- }
626
- this.disableEventListeners();
627
- if (this.options.removeOnDestroy) {
628
- this.popper.parentNode.removeChild(this.popper);
629
- }
630
- return this;
631
- }
632
- function getWindow(element) {
633
- var ownerDocument = element.ownerDocument;
634
- return ownerDocument ? ownerDocument.defaultView : window;
635
- }
636
- function attachToScrollParents(scrollParent, event, callback, scrollParents) {
637
- var isBody = scrollParent.nodeName === 'BODY';
638
- var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
639
- target.addEventListener(event, callback, { passive: true });
640
- if (!isBody) {
641
- attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
642
- }
643
- scrollParents.push(target);
644
- }
645
- function setupEventListeners(reference, options, state, updateBound) {
646
- state.updateBound = updateBound;
647
- getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
648
- var scrollElement = getScrollParent(reference);
649
- attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
650
- state.scrollElement = scrollElement;
651
- state.eventsEnabled = true;
652
- return state;
653
- }
654
- function enableEventListeners() {
655
- if (!this.state.eventsEnabled) {
656
- this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
657
- }
658
- }
659
- function removeEventListeners(reference, state) {
660
- getWindow(reference).removeEventListener('resize', state.updateBound);
661
- state.scrollParents.forEach(function (target) {
662
- target.removeEventListener('scroll', state.updateBound);
663
- });
664
- state.updateBound = null;
665
- state.scrollParents = [];
666
- state.scrollElement = null;
667
- state.eventsEnabled = false;
668
- return state;
669
- }
670
- function disableEventListeners() {
671
- if (this.state.eventsEnabled) {
672
- cancelAnimationFrame(this.scheduleUpdate);
673
- this.state = removeEventListeners(this.reference, this.state);
674
- }
675
- }
676
- function isNumeric(n) {
677
- return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
678
- }
679
- function setStyles(element, styles) {
680
- Object.keys(styles).forEach(function (prop) {
681
- var unit = '';
682
- if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
683
- unit = 'px';
684
- }
685
- element.style[prop] = styles[prop] + unit;
686
- });
687
- }
688
- function setAttributes(element, attributes) {
689
- Object.keys(attributes).forEach(function (prop) {
690
- var value = attributes[prop];
691
- if (value !== false) {
692
- element.setAttribute(prop, attributes[prop]);
693
- } else {
694
- element.removeAttribute(prop);
695
- }
696
- });
697
- }
698
- function applyStyle(data) {
699
- setStyles(data.instance.popper, data.styles);
700
- setAttributes(data.instance.popper, data.attributes);
701
- if (data.arrowElement && Object.keys(data.arrowStyles).length) {
702
- setStyles(data.arrowElement, data.arrowStyles);
703
- }
704
- return data;
705
- }
706
- function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
707
- var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
708
- var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
709
- popper.setAttribute('x-placement', placement);
710
- setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
711
- return options;
712
- }
713
- function getRoundedOffsets(data, shouldRound) {
714
- var _data$offsets = data.offsets,
715
- popper = _data$offsets.popper,
716
- reference = _data$offsets.reference;
717
- var round = Math.round,
718
- floor = Math.floor;
719
- var noRound = function noRound(v) {
720
- return v;
721
- };
722
- var referenceWidth = round(reference.width);
723
- var popperWidth = round(popper.width);
724
- var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
725
- var isVariation = data.placement.indexOf('-') !== -1;
726
- var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
727
- var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
728
- var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
729
- var verticalToInteger = !shouldRound ? noRound : round;
730
- return {
731
- left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
732
- top: verticalToInteger(popper.top),
733
- bottom: verticalToInteger(popper.bottom),
734
- right: horizontalToInteger(popper.right)
735
- };
736
- }
737
- var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
738
- function computeStyle(data, options) {
739
- var x = options.x,
740
- y = options.y;
741
- var popper = data.offsets.popper;
742
- var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
743
- return modifier.name === 'applyStyle';
744
- }).gpuAcceleration;
745
- if (legacyGpuAccelerationOption !== undefined) {
746
- console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
747
- }
748
- var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
749
- var offsetParent = getOffsetParent(data.instance.popper);
750
- var offsetParentRect = getBoundingClientRect(offsetParent);
751
- var styles = {
752
- position: popper.position
753
- };
754
- var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
755
- var sideA = x === 'bottom' ? 'top' : 'bottom';
756
- var sideB = y === 'right' ? 'left' : 'right';
757
- var prefixedProperty = getSupportedPropertyName('transform');
758
- var left = void 0,
759
- top = void 0;
760
- if (sideA === 'bottom') {
761
- if (offsetParent.nodeName === 'HTML') {
762
- top = -offsetParent.clientHeight + offsets.bottom;
763
- } else {
764
- top = -offsetParentRect.height + offsets.bottom;
765
- }
766
- } else {
767
- top = offsets.top;
768
- }
769
- if (sideB === 'right') {
770
- if (offsetParent.nodeName === 'HTML') {
771
- left = -offsetParent.clientWidth + offsets.right;
772
- } else {
773
- left = -offsetParentRect.width + offsets.right;
774
- }
775
- } else {
776
- left = offsets.left;
777
- }
778
- if (gpuAcceleration && prefixedProperty) {
779
- styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
780
- styles[sideA] = 0;
781
- styles[sideB] = 0;
782
- styles.willChange = 'transform';
783
- } else {
784
- var invertTop = sideA === 'bottom' ? -1 : 1;
785
- var invertLeft = sideB === 'right' ? -1 : 1;
786
- styles[sideA] = top * invertTop;
787
- styles[sideB] = left * invertLeft;
788
- styles.willChange = sideA + ', ' + sideB;
789
- }
790
- var attributes = {
791
- 'x-placement': data.placement
792
- };
793
- data.attributes = _extends({}, attributes, data.attributes);
794
- data.styles = _extends({}, styles, data.styles);
795
- data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
796
- return data;
797
- }
798
- function isModifierRequired(modifiers, requestingName, requestedName) {
799
- var requesting = find(modifiers, function (_ref) {
800
- var name = _ref.name;
801
- return name === requestingName;
802
- });
803
- var isRequired = !!requesting && modifiers.some(function (modifier) {
804
- return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
805
- });
806
- if (!isRequired) {
807
- var _requesting = '`' + requestingName + '`';
808
- var requested = '`' + requestedName + '`';
809
- console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
810
- }
811
- return isRequired;
812
- }
813
- function arrow(data, options) {
814
- var _data$offsets$arrow;
815
- if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
816
- return data;
817
- }
818
- var arrowElement = options.element;
819
- if (typeof arrowElement === 'string') {
820
- arrowElement = data.instance.popper.querySelector(arrowElement);
821
- if (!arrowElement) {
822
- return data;
823
- }
824
- } else {
825
- if (!data.instance.popper.contains(arrowElement)) {
826
- console.warn('WARNING: `arrow.element` must be child of its popper element!');
827
- return data;
828
- }
829
- }
830
- var placement = data.placement.split('-')[0];
831
- var _data$offsets = data.offsets,
832
- popper = _data$offsets.popper,
833
- reference = _data$offsets.reference;
834
- var isVertical = ['left', 'right'].indexOf(placement) !== -1;
835
- var len = isVertical ? 'height' : 'width';
836
- var sideCapitalized = isVertical ? 'Top' : 'Left';
837
- var side = sideCapitalized.toLowerCase();
838
- var altSide = isVertical ? 'left' : 'top';
839
- var opSide = isVertical ? 'bottom' : 'right';
840
- var arrowElementSize = getOuterSizes(arrowElement)[len];
841
- if (reference[opSide] - arrowElementSize < popper[side]) {
842
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
843
- }
844
- if (reference[side] + arrowElementSize > popper[opSide]) {
845
- data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
846
- }
847
- data.offsets.popper = getClientRect(data.offsets.popper);
848
- var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
849
- var css = getStyleComputedProperty(data.instance.popper);
850
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
851
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
852
- var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
853
- sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
854
- data.arrowElement = arrowElement;
855
- data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
856
- return data;
857
- }
858
- function getOppositeVariation(variation) {
859
- if (variation === 'end') {
860
- return 'start';
861
- } else if (variation === 'start') {
862
- return 'end';
863
- }
864
- return variation;
865
- }
866
- var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
867
- var validPlacements = placements.slice(3);
868
- function clockwise(placement) {
869
- var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
870
- var index = validPlacements.indexOf(placement);
871
- var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
872
- return counter ? arr.reverse() : arr;
873
- }
874
- var BEHAVIORS = {
875
- FLIP: 'flip',
876
- CLOCKWISE: 'clockwise',
877
- COUNTERCLOCKWISE: 'counterclockwise'
878
- };
879
- function flip(data, options) {
880
- if (isModifierEnabled(data.instance.modifiers, 'inner')) {
881
- return data;
882
- }
883
- if (data.flipped && data.placement === data.originalPlacement) {
884
- return data;
885
- }
886
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
887
- var placement = data.placement.split('-')[0];
888
- var placementOpposite = getOppositePlacement(placement);
889
- var variation = data.placement.split('-')[1] || '';
890
- var flipOrder = [];
891
- switch (options.behavior) {
892
- case BEHAVIORS.FLIP:
893
- flipOrder = [placement, placementOpposite];
894
- break;
895
- case BEHAVIORS.CLOCKWISE:
896
- flipOrder = clockwise(placement);
897
- break;
898
- case BEHAVIORS.COUNTERCLOCKWISE:
899
- flipOrder = clockwise(placement, true);
900
- break;
901
- default:
902
- flipOrder = options.behavior;
903
- }
904
- flipOrder.forEach(function (step, index) {
905
- if (placement !== step || flipOrder.length === index + 1) {
906
- return data;
907
- }
908
- placement = data.placement.split('-')[0];
909
- placementOpposite = getOppositePlacement(placement);
910
- var popperOffsets = data.offsets.popper;
911
- var refOffsets = data.offsets.reference;
912
- var floor = Math.floor;
913
- var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
914
- var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
915
- var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
916
- var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
917
- var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
918
- var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
919
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
920
- var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
921
- var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
922
- var flippedVariation = flippedVariationByRef || flippedVariationByContent;
923
- if (overlapsRef || overflowsBoundaries || flippedVariation) {
924
- data.flipped = true;
925
- if (overlapsRef || overflowsBoundaries) {
926
- placement = flipOrder[index + 1];
927
- }
928
- if (flippedVariation) {
929
- variation = getOppositeVariation(variation);
930
- }
931
- data.placement = placement + (variation ? '-' + variation : '');
932
- data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
933
- data = runModifiers(data.instance.modifiers, data, 'flip');
934
- }
935
- });
936
- return data;
937
- }
938
- function keepTogether(data) {
939
- var _data$offsets = data.offsets,
940
- popper = _data$offsets.popper,
941
- reference = _data$offsets.reference;
942
- var placement = data.placement.split('-')[0];
943
- var floor = Math.floor;
944
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
945
- var side = isVertical ? 'right' : 'bottom';
946
- var opSide = isVertical ? 'left' : 'top';
947
- var measurement = isVertical ? 'width' : 'height';
948
- if (popper[side] < floor(reference[opSide])) {
949
- data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
950
- }
951
- if (popper[opSide] > floor(reference[side])) {
952
- data.offsets.popper[opSide] = floor(reference[side]);
953
- }
954
- return data;
955
- }
956
- function toValue(str, measurement, popperOffsets, referenceOffsets) {
957
- var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
958
- var value = +split[1];
959
- var unit = split[2];
960
- if (!value) {
961
- return str;
962
- }
963
- if (unit.indexOf('%') === 0) {
964
- var element = void 0;
965
- switch (unit) {
966
- case '%p':
967
- element = popperOffsets;
968
- break;
969
- case '%':
970
- case '%r':
971
- default:
972
- element = referenceOffsets;
973
- }
974
- var rect = getClientRect(element);
975
- return rect[measurement] / 100 * value;
976
- } else if (unit === 'vh' || unit === 'vw') {
977
- var size = void 0;
978
- if (unit === 'vh') {
979
- size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
980
- } else {
981
- size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
982
- }
983
- return size / 100 * value;
984
- } else {
985
- return value;
986
- }
987
- }
988
- function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
989
- var offsets = [0, 0];
990
- var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
991
- var fragments = offset.split(/(\+|\-)/).map(function (frag) {
992
- return frag.trim();
993
- });
994
- var divider = fragments.indexOf(find(fragments, function (frag) {
995
- return frag.search(/,|\s/) !== -1;
996
- }));
997
- if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
998
- console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
999
- }
1000
- var splitRegex = /\s*,\s*|\s+/;
1001
- var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
1002
- ops = ops.map(function (op, index) {
1003
- var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
1004
- var mergeWithPrevious = false;
1005
- return op
1006
- .reduce(function (a, b) {
1007
- if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
1008
- a[a.length - 1] = b;
1009
- mergeWithPrevious = true;
1010
- return a;
1011
- } else if (mergeWithPrevious) {
1012
- a[a.length - 1] += b;
1013
- mergeWithPrevious = false;
1014
- return a;
1015
- } else {
1016
- return a.concat(b);
1017
- }
1018
- }, [])
1019
- .map(function (str) {
1020
- return toValue(str, measurement, popperOffsets, referenceOffsets);
1021
- });
1022
- });
1023
- ops.forEach(function (op, index) {
1024
- op.forEach(function (frag, index2) {
1025
- if (isNumeric(frag)) {
1026
- offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
1027
- }
1028
- });
1029
- });
1030
- return offsets;
1031
- }
1032
- function offset(data, _ref) {
1033
- var offset = _ref.offset;
1034
- var placement = data.placement,
1035
- _data$offsets = data.offsets,
1036
- popper = _data$offsets.popper,
1037
- reference = _data$offsets.reference;
1038
- var basePlacement = placement.split('-')[0];
1039
- var offsets = void 0;
1040
- if (isNumeric(+offset)) {
1041
- offsets = [+offset, 0];
1042
- } else {
1043
- offsets = parseOffset(offset, popper, reference, basePlacement);
1044
- }
1045
- if (basePlacement === 'left') {
1046
- popper.top += offsets[0];
1047
- popper.left -= offsets[1];
1048
- } else if (basePlacement === 'right') {
1049
- popper.top += offsets[0];
1050
- popper.left += offsets[1];
1051
- } else if (basePlacement === 'top') {
1052
- popper.left += offsets[0];
1053
- popper.top -= offsets[1];
1054
- } else if (basePlacement === 'bottom') {
1055
- popper.left += offsets[0];
1056
- popper.top += offsets[1];
1057
- }
1058
- data.popper = popper;
1059
- return data;
1060
- }
1061
- function preventOverflow(data, options) {
1062
- var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
1063
- if (data.instance.reference === boundariesElement) {
1064
- boundariesElement = getOffsetParent(boundariesElement);
1065
- }
1066
- var transformProp = getSupportedPropertyName('transform');
1067
- var popperStyles = data.instance.popper.style;
1068
- var top = popperStyles.top,
1069
- left = popperStyles.left,
1070
- transform = popperStyles[transformProp];
1071
- popperStyles.top = '';
1072
- popperStyles.left = '';
1073
- popperStyles[transformProp] = '';
1074
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
1075
- popperStyles.top = top;
1076
- popperStyles.left = left;
1077
- popperStyles[transformProp] = transform;
1078
- options.boundaries = boundaries;
1079
- var order = options.priority;
1080
- var popper = data.offsets.popper;
1081
- var check = {
1082
- primary: function primary(placement) {
1083
- var value = popper[placement];
1084
- if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
1085
- value = Math.max(popper[placement], boundaries[placement]);
1086
- }
1087
- return defineProperty({}, placement, value);
1088
- },
1089
- secondary: function secondary(placement) {
1090
- var mainSide = placement === 'right' ? 'left' : 'top';
1091
- var value = popper[mainSide];
1092
- if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
1093
- value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
1094
- }
1095
- return defineProperty({}, mainSide, value);
1096
- }
1097
- };
1098
- order.forEach(function (placement) {
1099
- var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
1100
- popper = _extends({}, popper, check[side](placement));
1101
- });
1102
- data.offsets.popper = popper;
1103
- return data;
1104
- }
1105
- function shift(data) {
1106
- var placement = data.placement;
1107
- var basePlacement = placement.split('-')[0];
1108
- var shiftvariation = placement.split('-')[1];
1109
- if (shiftvariation) {
1110
- var _data$offsets = data.offsets,
1111
- reference = _data$offsets.reference,
1112
- popper = _data$offsets.popper;
1113
- var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
1114
- var side = isVertical ? 'left' : 'top';
1115
- var measurement = isVertical ? 'width' : 'height';
1116
- var shiftOffsets = {
1117
- start: defineProperty({}, side, reference[side]),
1118
- end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
1119
- };
1120
- data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
1121
- }
1122
- return data;
1123
- }
1124
- function hide(data) {
1125
- if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
1126
- return data;
1127
- }
1128
- var refRect = data.offsets.reference;
1129
- var bound = find(data.instance.modifiers, function (modifier) {
1130
- return modifier.name === 'preventOverflow';
1131
- }).boundaries;
1132
- if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
1133
- if (data.hide === true) {
1134
- return data;
1135
- }
1136
- data.hide = true;
1137
- data.attributes['x-out-of-boundaries'] = '';
1138
- } else {
1139
- if (data.hide === false) {
1140
- return data;
1141
- }
1142
- data.hide = false;
1143
- data.attributes['x-out-of-boundaries'] = false;
1144
- }
1145
- return data;
1146
- }
1147
- function inner(data) {
1148
- var placement = data.placement;
1149
- var basePlacement = placement.split('-')[0];
1150
- var _data$offsets = data.offsets,
1151
- popper = _data$offsets.popper,
1152
- reference = _data$offsets.reference;
1153
- var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
1154
- var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
1155
- popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
1156
- data.placement = getOppositePlacement(placement);
1157
- data.offsets.popper = getClientRect(popper);
1158
- return data;
1159
- }
1160
- var modifiers = {
1161
- shift: {
1162
- order: 100,
1163
- enabled: true,
1164
- fn: shift
1165
- },
1166
- offset: {
1167
- order: 200,
1168
- enabled: true,
1169
- fn: offset,
1170
- offset: 0
1171
- },
1172
- preventOverflow: {
1173
- order: 300,
1174
- enabled: true,
1175
- fn: preventOverflow,
1176
- priority: ['left', 'right', 'top', 'bottom'],
1177
- padding: 5,
1178
- boundariesElement: 'scrollParent'
1179
- },
1180
- keepTogether: {
1181
- order: 400,
1182
- enabled: true,
1183
- fn: keepTogether
1184
- },
1185
- arrow: {
1186
- order: 500,
1187
- enabled: true,
1188
- fn: arrow,
1189
- element: '[x-arrow]'
1190
- },
1191
- flip: {
1192
- order: 600,
1193
- enabled: true,
1194
- fn: flip,
1195
- behavior: 'flip',
1196
- padding: 5,
1197
- boundariesElement: 'viewport',
1198
- flipVariations: false,
1199
- flipVariationsByContent: false
1200
- },
1201
- inner: {
1202
- order: 700,
1203
- enabled: false,
1204
- fn: inner
1205
- },
1206
- hide: {
1207
- order: 800,
1208
- enabled: true,
1209
- fn: hide
1210
- },
1211
- computeStyle: {
1212
- order: 850,
1213
- enabled: true,
1214
- fn: computeStyle,
1215
- gpuAcceleration: true,
1216
- x: 'bottom',
1217
- y: 'right'
1218
- },
1219
- applyStyle: {
1220
- order: 900,
1221
- enabled: true,
1222
- fn: applyStyle,
1223
- onLoad: applyStyleOnLoad,
1224
- gpuAcceleration: undefined
1225
- }
1226
- };
1227
- var Defaults = {
1228
- placement: 'bottom',
1229
- positionFixed: false,
1230
- eventsEnabled: true,
1231
- removeOnDestroy: false,
1232
- onCreate: function onCreate() {},
1233
- onUpdate: function onUpdate() {},
1234
- modifiers: modifiers
1235
- };
1236
- var Popper = function () {
1237
- function Popper(reference, popper) {
1238
- var _this = this;
1239
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1240
- classCallCheck(this, Popper);
1241
- this.scheduleUpdate = function () {
1242
- return requestAnimationFrame(_this.update);
1243
- };
1244
- this.update = debounce(this.update.bind(this));
1245
- this.options = _extends({}, Popper.Defaults, options);
1246
- this.state = {
1247
- isDestroyed: false,
1248
- isCreated: false,
1249
- scrollParents: []
1250
- };
1251
- this.reference = reference && reference.jquery ? reference[0] : reference;
1252
- this.popper = popper && popper.jquery ? popper[0] : popper;
1253
- this.options.modifiers = {};
1254
- Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
1255
- _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
1256
- });
1257
- this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
1258
- return _extends({
1259
- name: name
1260
- }, _this.options.modifiers[name]);
1261
- })
1262
- .sort(function (a, b) {
1263
- return a.order - b.order;
1264
- });
1265
- this.modifiers.forEach(function (modifierOptions) {
1266
- if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
1267
- modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
1268
- }
1269
- });
1270
- this.update();
1271
- var eventsEnabled = this.options.eventsEnabled;
1272
- if (eventsEnabled) {
1273
- this.enableEventListeners();
1274
- }
1275
- this.state.eventsEnabled = eventsEnabled;
1276
- }
1277
- createClass(Popper, [{
1278
- key: 'update',
1279
- value: function update$$1() {
1280
- return update.call(this);
1281
- }
1282
- }, {
1283
- key: 'destroy',
1284
- value: function destroy$$1() {
1285
- return destroy.call(this);
1286
- }
1287
- }, {
1288
- key: 'enableEventListeners',
1289
- value: function enableEventListeners$$1() {
1290
- return enableEventListeners.call(this);
1291
- }
1292
- }, {
1293
- key: 'disableEventListeners',
1294
- value: function disableEventListeners$$1() {
1295
- return disableEventListeners.call(this);
1296
- }
1297
- }]);
1298
- return Popper;
1299
- }();
1300
- Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
1301
- Popper.placements = placements;
1302
- Popper.Defaults = Defaults;
1303
-
1304
- var variable = {
1305
- dropdownMarginBottom: '4px'
1306
- };
1307
- var variable_1 = variable.dropdownMarginBottom;
1308
-
1309
- var script = {
1310
- name: 'bk-dropdown-menu',
1311
- directives: {
1312
- clickoutside: bkClickoutside
1313
- },
1314
- props: {
1315
- trigger: {
1316
- type: String,
1317
- default: 'mouseover',
1318
- validator: function validator(event) {
1319
- return ['click', 'mouseover'].includes(event);
1320
- }
1321
- },
1322
- align: {
1323
- type: String,
1324
- default: 'left'
1325
- },
1326
- disabled: {
1327
- type: Boolean,
1328
- default: false
1329
- },
1330
- positionFixed: {
1331
- type: Boolean,
1332
- default: false
1333
- },
1334
- fontSize: {
1335
- type: String,
1336
- default: 'normal'
1337
- },
1338
- extCls: {
1339
- type: String,
1340
- default: ''
1341
- },
1342
- openDelay: {
1343
- type: Number,
1344
- default: 0
1345
- },
1346
- closeDelay: {
1347
- type: Number,
1348
- default: 100
1349
- }
1350
- },
1351
- data: function data() {
1352
- return {
1353
- menuStyle: null,
1354
- timer: 0,
1355
- isShow: false,
1356
- popInstance: null
1357
- };
1358
- },
1359
- computed: {
1360
- fontSizeCls: function fontSizeCls() {
1361
- var cls = '';
1362
- if (this.fontSize === 'medium') {
1363
- cls = 'medium-font';
1364
- } else if (this.fontSize === 'large') {
1365
- cls = 'large-font';
1366
- }
1367
- return cls;
1368
- }
1369
- },
1370
- mounted: function mounted() {
1371
- var placement = "bottom".concat(this.getPlacementFix());
1372
- this.popInstance = new Popper(this.$refs.refDropTrigger, this.$refs.refDropContent, {
1373
- placement: placement,
1374
- positionFixed: this.positionFixed,
1375
- modifiers: {
1376
- offset: {
1377
- offset: "0, ".concat(variable_1)
1378
- },
1379
- keepTogether: {}
1380
- }
1381
- });
1382
- },
1383
- beforeDestroy: function beforeDestroy() {
1384
- if (this.popInstance) {
1385
- this.popInstance.destroy();
1386
- this.popInstance = null;
1387
- }
1388
- },
1389
- methods: {
1390
- getPlacementFix: function getPlacementFix() {
1391
- var placementFix = {
1392
- 'left': '-start',
1393
- 'right': '-end',
1394
- 'center': ''
1395
- };
1396
- var fixAppend = placementFix[this.align];
1397
- if (fixAppend !== undefined) {
1398
- return fixAppend;
1399
- }
1400
- return '';
1401
- },
1402
- handleClick: function handleClick() {
1403
- if (this.disabled || this.trigger !== 'click') {
1404
- return;
1405
- }
1406
- this.isShow ? this.hide() : this.show();
1407
- },
1408
- handleMouseover: function handleMouseover() {
1409
- if (this.trigger === 'mouseover' && !this.disabled) {
1410
- this.show();
1411
- }
1412
- },
1413
- handleMouseout: function handleMouseout() {
1414
- if (this.trigger === 'mouseover' && !this.disabled) {
1415
- this.hide();
1416
- }
1417
- },
1418
- handleClickoutside: function handleClickoutside() {
1419
- if (this.isShow) {
1420
- this.hide();
1421
- }
1422
- },
1423
- show: function show() {
1424
- var _this = this;
1425
- clearTimeout(this.openTimer);
1426
- clearTimeout(this.closeTimer);
1427
- this.openTimer = setTimeout(function () {
1428
- _this.isShow = true;
1429
- }, this.openDelay);
1430
- this.popInstance.scheduleUpdate();
1431
- },
1432
- hide: function hide() {
1433
- var _this2 = this;
1434
- clearTimeout(this.closeTimer);
1435
- clearTimeout(this.openTimer);
1436
- this.closeTimer = setTimeout(function () {
1437
- _this2.isShow = false;
1438
- }, this.closeDelay);
1439
- this.popInstance.scheduleUpdate();
1440
- }
1441
- }
1442
- };
1443
-
1444
- function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
1445
- , shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
1446
- if (typeof shadowMode !== 'boolean') {
1447
- createInjectorSSR = createInjector;
1448
- createInjector = shadowMode;
1449
- shadowMode = false;
1450
- }
1451
- var options = typeof script === 'function' ? script.options : script;
1452
- if (template && template.render) {
1453
- options.render = template.render;
1454
- options.staticRenderFns = template.staticRenderFns;
1455
- options._compiled = true;
1456
- if (isFunctionalTemplate) {
1457
- options.functional = true;
1458
- }
1459
- }
1460
- if (scopeId) {
1461
- options._scopeId = scopeId;
1462
- }
1463
- var hook;
1464
- if (moduleIdentifier) {
1465
- hook = function hook(context) {
1466
- context = context ||
1467
- this.$vnode && this.$vnode.ssrContext ||
1468
- this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
1469
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
1470
- context = __VUE_SSR_CONTEXT__;
1471
- }
1472
- if (style) {
1473
- style.call(this, createInjectorSSR(context));
1474
- }
1475
- if (context && context._registeredComponents) {
1476
- context._registeredComponents.add(moduleIdentifier);
1477
- }
1478
- };
1479
- options._ssrRegister = hook;
1480
- } else if (style) {
1481
- hook = shadowMode ? function () {
1482
- style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));
1483
- } : function (context) {
1484
- style.call(this, createInjector(context));
1485
- };
1486
- }
1487
- if (hook) {
1488
- if (options.functional) {
1489
- var originalRender = options.render;
1490
- options.render = function renderWithStyleInjection(h, context) {
1491
- hook.call(context);
1492
- return originalRender(h, context);
1493
- };
1494
- } else {
1495
- var existing = options.beforeCreate;
1496
- options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
1497
- }
1498
- }
1499
- return script;
1500
- }
1501
- var normalizeComponent_1 = normalizeComponent;
1502
-
1503
- /* script */
1504
- var __vue_script__ = script;
1505
- /* template */
1506
-
1507
- var __vue_render__ = function __vue_render__() {
1508
- var _vm = this;
1509
-
1510
- var _h = _vm.$createElement;
1511
-
1512
- var _c = _vm._self._c || _h;
1513
-
1514
- return _c('div', {
1515
- directives: [{
1516
- name: "clickoutside",
1517
- rawName: "v-clickoutside",
1518
- value: _vm.handleClickoutside,
1519
- expression: "handleClickoutside"
1520
- }],
1521
- staticClass: "bk-dropdown-menu",
1522
- class: [_vm.disabled ? 'disabled' : '', _vm.positionFixed ? '' : 'bk-dropdown-full-width', _vm.fontSizeCls, _vm.extCls],
1523
- attrs: {
1524
- "tabindex": "0"
1525
- },
1526
- on: {
1527
- "keydown": [function ($event) {
1528
- if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) {
1529
- return null;
1530
- }
1531
-
1532
- $event.preventDefault();
1533
- return _vm.handleMouseover($event);
1534
- }, function ($event) {
1535
- if (!('button' in $event) && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) {
1536
- return null;
1537
- }
1538
-
1539
- $event.stopPropagation();
1540
- $event.preventDefault();
1541
- return _vm.handleMouseout($event);
1542
- }],
1543
- "click": _vm.handleClick,
1544
- "mouseover": _vm.handleMouseover,
1545
- "mouseout": _vm.handleMouseout
1546
- }
1547
- }, [_c('div', {
1548
- ref: "refDropTrigger",
1549
- staticClass: "bk-dropdown-trigger"
1550
- }, [_vm._t("dropdown-trigger")], 2), _c('div', {
1551
- ref: "refDropContent",
1552
- class: ['bk-dropdown-content', {
1553
- 'is-show': _vm.isShow,
1554
- 'right-align': _vm.align === 'right',
1555
- 'center-align': _vm.align === 'center',
1556
- 'left-align': _vm.align === 'left'
1557
- }]
1558
- }, [_vm._t("dropdown-content")], 2)]);
1559
- };
1560
-
1561
- var __vue_staticRenderFns__ = [];
1562
- /* style */
1563
-
1564
- var __vue_inject_styles__ = undefined;
1565
- /* scoped */
1566
-
1567
- var __vue_scope_id__ = undefined;
1568
- /* module identifier */
1569
-
1570
- var __vue_module_identifier__ = undefined;
1571
- /* functional template */
1572
-
1573
- var __vue_is_functional_template__ = false;
1574
- /* style inject */
1575
-
1576
- /* style inject SSR */
1577
-
1578
- /* style inject shadow dom */
1579
-
1580
- var __vue_component__ = /*#__PURE__*/normalizeComponent_1({
1581
- render: __vue_render__,
1582
- staticRenderFns: __vue_staticRenderFns__
1583
- }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
1584
-
1585
- var _defined = function (it) {
1586
- if (it == undefined) throw TypeError("Can't call method on " + it);
1587
- return it;
1588
- };
1589
-
1590
- var _toObject = function (it) {
1591
- return Object(_defined(it));
1592
- };
1593
-
1594
- var hasOwnProperty = {}.hasOwnProperty;
1595
- var _has = function (it, key) {
1596
- return hasOwnProperty.call(it, key);
1597
- };
1598
-
1599
- var toString = {}.toString;
1600
- var _cof = function (it) {
1601
- return toString.call(it).slice(8, -1);
1602
- };
1603
-
1604
- var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
1605
- return _cof(it) == 'String' ? it.split('') : Object(it);
1606
- };
1607
-
1608
- var _toIobject = function (it) {
1609
- return _iobject(_defined(it));
1610
- };
1611
-
1612
- var ceil = Math.ceil;
1613
- var floor = Math.floor;
1614
- var _toInteger = function (it) {
1615
- return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1616
- };
1617
-
1618
- var min = Math.min;
1619
- var _toLength = function (it) {
1620
- return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0;
1621
- };
1622
-
1623
- var max = Math.max;
1624
- var min$1 = Math.min;
1625
- var _toAbsoluteIndex = function (index, length) {
1626
- index = _toInteger(index);
1627
- return index < 0 ? max(index + length, 0) : min$1(index, length);
1628
- };
1629
-
1630
- var _arrayIncludes = function (IS_INCLUDES) {
1631
- return function ($this, el, fromIndex) {
1632
- var O = _toIobject($this);
1633
- var length = _toLength(O.length);
1634
- var index = _toAbsoluteIndex(fromIndex, length);
1635
- var value;
1636
- if (IS_INCLUDES && el != el) while (length > index) {
1637
- value = O[index++];
1638
- if (value != value) return true;
1639
- } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
1640
- if (O[index] === el) return IS_INCLUDES || index || 0;
1641
- } return !IS_INCLUDES && -1;
1642
- };
1643
- };
1644
-
1645
- function createCommonjsModule(fn, module) {
1646
- return module = { exports: {} }, fn(module, module.exports), module.exports;
1647
- }
1648
-
1649
- var _core = createCommonjsModule(function (module) {
1650
- var core = module.exports = { version: '2.6.12' };
1651
- if (typeof __e == 'number') __e = core;
1652
- });
1653
- var _core_1 = _core.version;
1654
-
1655
- var _global = createCommonjsModule(function (module) {
1656
- var global = module.exports = typeof window != 'undefined' && window.Math == Math
1657
- ? window : typeof self != 'undefined' && self.Math == Math ? self
1658
- : Function('return this')();
1659
- if (typeof __g == 'number') __g = global;
1660
- });
1661
-
1662
- var _shared = createCommonjsModule(function (module) {
1663
- var SHARED = '__core-js_shared__';
1664
- var store = _global[SHARED] || (_global[SHARED] = {});
1665
- (module.exports = function (key, value) {
1666
- return store[key] || (store[key] = value !== undefined ? value : {});
1667
- })('versions', []).push({
1668
- version: _core.version,
1669
- mode: 'pure' ,
1670
- copyright: 2020 Denis Pushkarev (zloirock.ru)'
1671
- });
1672
- });
1673
-
1674
- var id = 0;
1675
- var px = Math.random();
1676
- var _uid = function (key) {
1677
- return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1678
- };
1679
-
1680
- var shared = _shared('keys');
1681
- var _sharedKey = function (key) {
1682
- return shared[key] || (shared[key] = _uid(key));
1683
- };
1684
-
1685
- var arrayIndexOf = _arrayIncludes(false);
1686
- var IE_PROTO = _sharedKey('IE_PROTO');
1687
- var _objectKeysInternal = function (object, names) {
1688
- var O = _toIobject(object);
1689
- var i = 0;
1690
- var result = [];
1691
- var key;
1692
- for (key in O) if (key != IE_PROTO) _has(O, key) && result.push(key);
1693
- while (names.length > i) if (_has(O, key = names[i++])) {
1694
- ~arrayIndexOf(result, key) || result.push(key);
1695
- }
1696
- return result;
1697
- };
1698
-
1699
- var _enumBugKeys = (
1700
- 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
1701
- ).split(',');
1702
-
1703
- var _objectKeys = Object.keys || function keys(O) {
1704
- return _objectKeysInternal(O, _enumBugKeys);
1705
- };
1706
-
1707
- var _aFunction = function (it) {
1708
- if (typeof it != 'function') throw TypeError(it + ' is not a function!');
1709
- return it;
1710
- };
1711
-
1712
- var _ctx = function (fn, that, length) {
1713
- _aFunction(fn);
1714
- if (that === undefined) return fn;
1715
- switch (length) {
1716
- case 1: return function (a) {
1717
- return fn.call(that, a);
1718
- };
1719
- case 2: return function (a, b) {
1720
- return fn.call(that, a, b);
1721
- };
1722
- case 3: return function (a, b, c) {
1723
- return fn.call(that, a, b, c);
1724
- };
1725
- }
1726
- return function () {
1727
- return fn.apply(that, arguments);
1728
- };
1729
- };
1730
-
1731
- var _isObject = function (it) {
1732
- return typeof it === 'object' ? it !== null : typeof it === 'function';
1733
- };
1734
-
1735
- var _anObject = function (it) {
1736
- if (!_isObject(it)) throw TypeError(it + ' is not an object!');
1737
- return it;
1738
- };
1739
-
1740
- var _fails = function (exec) {
1741
- try {
1742
- return !!exec();
1743
- } catch (e) {
1744
- return true;
1745
- }
1746
- };
1747
-
1748
- var _descriptors = !_fails(function () {
1749
- return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
1750
- });
1751
-
1752
- var document$1 = _global.document;
1753
- var is = _isObject(document$1) && _isObject(document$1.createElement);
1754
- var _domCreate = function (it) {
1755
- return is ? document$1.createElement(it) : {};
1756
- };
1757
-
1758
- var _ie8DomDefine = !_descriptors && !_fails(function () {
1759
- return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
1760
- });
1761
-
1762
- var _toPrimitive = function (it, S) {
1763
- if (!_isObject(it)) return it;
1764
- var fn, val;
1765
- if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
1766
- if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
1767
- if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
1768
- throw TypeError("Can't convert object to primitive value");
1769
- };
1770
-
1771
- var dP = Object.defineProperty;
1772
- var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1773
- _anObject(O);
1774
- P = _toPrimitive(P, true);
1775
- _anObject(Attributes);
1776
- if (_ie8DomDefine) try {
1777
- return dP(O, P, Attributes);
1778
- } catch (e) { }
1779
- if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1780
- if ('value' in Attributes) O[P] = Attributes.value;
1781
- return O;
1782
- };
1783
- var _objectDp = {
1784
- f: f
1785
- };
1786
-
1787
- var _propertyDesc = function (bitmap, value) {
1788
- return {
1789
- enumerable: !(bitmap & 1),
1790
- configurable: !(bitmap & 2),
1791
- writable: !(bitmap & 4),
1792
- value: value
1793
- };
1794
- };
1795
-
1796
- var _hide = _descriptors ? function (object, key, value) {
1797
- return _objectDp.f(object, key, _propertyDesc(1, value));
1798
- } : function (object, key, value) {
1799
- object[key] = value;
1800
- return object;
1801
- };
1802
-
1803
- var PROTOTYPE = 'prototype';
1804
- var $export = function (type, name, source) {
1805
- var IS_FORCED = type & $export.F;
1806
- var IS_GLOBAL = type & $export.G;
1807
- var IS_STATIC = type & $export.S;
1808
- var IS_PROTO = type & $export.P;
1809
- var IS_BIND = type & $export.B;
1810
- var IS_WRAP = type & $export.W;
1811
- var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
1812
- var expProto = exports[PROTOTYPE];
1813
- var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] : (_global[name] || {})[PROTOTYPE];
1814
- var key, own, out;
1815
- if (IS_GLOBAL) source = name;
1816
- for (key in source) {
1817
- own = !IS_FORCED && target && target[key] !== undefined;
1818
- if (own && _has(exports, key)) continue;
1819
- out = own ? target[key] : source[key];
1820
- exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
1821
- : IS_BIND && own ? _ctx(out, _global)
1822
- : IS_WRAP && target[key] == out ? (function (C) {
1823
- var F = function (a, b, c) {
1824
- if (this instanceof C) {
1825
- switch (arguments.length) {
1826
- case 0: return new C();
1827
- case 1: return new C(a);
1828
- case 2: return new C(a, b);
1829
- } return new C(a, b, c);
1830
- } return C.apply(this, arguments);
1831
- };
1832
- F[PROTOTYPE] = C[PROTOTYPE];
1833
- return F;
1834
- })(out) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
1835
- if (IS_PROTO) {
1836
- (exports.virtual || (exports.virtual = {}))[key] = out;
1837
- if (type & $export.R && expProto && !expProto[key]) _hide(expProto, key, out);
1838
- }
1839
- }
1840
- };
1841
- $export.F = 1;
1842
- $export.G = 2;
1843
- $export.S = 4;
1844
- $export.P = 8;
1845
- $export.B = 16;
1846
- $export.W = 32;
1847
- $export.U = 64;
1848
- $export.R = 128;
1849
- var _export = $export;
1850
-
1851
- var _objectSap = function (KEY, exec) {
1852
- var fn = (_core.Object || {})[KEY] || Object[KEY];
1853
- var exp = {};
1854
- exp[KEY] = exec(fn);
1855
- _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
1856
- };
1857
-
1858
- _objectSap('keys', function () {
1859
- return function keys(it) {
1860
- return _objectKeys(_toObject(it));
1861
- };
1862
- });
1863
-
1864
- var keys = _core.Object.keys;
1865
-
1866
- var keys$1 = keys;
1867
-
1868
- function setInstaller (component, afterInstall) {
1869
- component.install = function (Vue) {
1870
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1871
- var props = component.props || {};
1872
- keys$1(options).forEach(function (key) {
1873
- if (props.hasOwnProperty(key)) {
1874
- if (typeof props[key] === 'function' || props[key] instanceof Array) {
1875
- props[key] = {
1876
- type: props[key],
1877
- default: options[key]
1878
- };
1879
- } else {
1880
- props[key].default = options[key];
1881
- }
1882
- }
1883
- });
1884
- component.name = options.namespace ? component.name.replace('bk', options.namespace) : component.name;
1885
- Vue.component(component.name, component);
1886
- typeof afterInstall === 'function' && afterInstall(Vue, options);
1887
- };
1888
- }
1889
-
1890
- setInstaller(__vue_component__);
1891
-
1892
- exports.default = __vue_component__;
1893
-
1894
- Object.defineProperty(exports, '__esModule', { value: true });
7
+ function createCommonjsModule(fn, module) {
8
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
9
+ }
10
+
11
+ var _global = createCommonjsModule(function (module) {
12
+ var global = module.exports = typeof window != 'undefined' && window.Math == Math
13
+ ? window : typeof self != 'undefined' && self.Math == Math ? self
14
+ : Function('return this')();
15
+ if (typeof __g == 'number') __g = global;
16
+ });
17
+
18
+ var _core = createCommonjsModule(function (module) {
19
+ var core = module.exports = { version: '2.6.12' };
20
+ if (typeof __e == 'number') __e = core;
21
+ });
22
+ var _core_1 = _core.version;
23
+
24
+ var _aFunction = function (it) {
25
+ if (typeof it != 'function') throw TypeError(it + ' is not a function!');
26
+ return it;
27
+ };
28
+
29
+ var _ctx = function (fn, that, length) {
30
+ _aFunction(fn);
31
+ if (that === undefined) return fn;
32
+ switch (length) {
33
+ case 1: return function (a) {
34
+ return fn.call(that, a);
35
+ };
36
+ case 2: return function (a, b) {
37
+ return fn.call(that, a, b);
38
+ };
39
+ case 3: return function (a, b, c) {
40
+ return fn.call(that, a, b, c);
41
+ };
42
+ }
43
+ return function () {
44
+ return fn.apply(that, arguments);
45
+ };
46
+ };
47
+
48
+ var _isObject = function (it) {
49
+ return typeof it === 'object' ? it !== null : typeof it === 'function';
50
+ };
51
+
52
+ var _anObject = function (it) {
53
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
54
+ return it;
55
+ };
56
+
57
+ var _fails = function (exec) {
58
+ try {
59
+ return !!exec();
60
+ } catch (e) {
61
+ return true;
62
+ }
63
+ };
64
+
65
+ var _descriptors = !_fails(function () {
66
+ return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
67
+ });
68
+
69
+ var document$1 = _global.document;
70
+ var is = _isObject(document$1) && _isObject(document$1.createElement);
71
+ var _domCreate = function (it) {
72
+ return is ? document$1.createElement(it) : {};
73
+ };
74
+
75
+ var _ie8DomDefine = !_descriptors && !_fails(function () {
76
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
77
+ });
78
+
79
+ var _toPrimitive = function (it, S) {
80
+ if (!_isObject(it)) return it;
81
+ var fn, val;
82
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
83
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
84
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
85
+ throw TypeError("Can't convert object to primitive value");
86
+ };
87
+
88
+ var dP = Object.defineProperty;
89
+ var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
90
+ _anObject(O);
91
+ P = _toPrimitive(P, true);
92
+ _anObject(Attributes);
93
+ if (_ie8DomDefine) try {
94
+ return dP(O, P, Attributes);
95
+ } catch (e) { }
96
+ if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
97
+ if ('value' in Attributes) O[P] = Attributes.value;
98
+ return O;
99
+ };
100
+ var _objectDp = {
101
+ f: f
102
+ };
103
+
104
+ var _propertyDesc = function (bitmap, value) {
105
+ return {
106
+ enumerable: !(bitmap & 1),
107
+ configurable: !(bitmap & 2),
108
+ writable: !(bitmap & 4),
109
+ value: value
110
+ };
111
+ };
112
+
113
+ var _hide = _descriptors ? function (object, key, value) {
114
+ return _objectDp.f(object, key, _propertyDesc(1, value));
115
+ } : function (object, key, value) {
116
+ object[key] = value;
117
+ return object;
118
+ };
119
+
120
+ var hasOwnProperty = {}.hasOwnProperty;
121
+ var _has = function (it, key) {
122
+ return hasOwnProperty.call(it, key);
123
+ };
124
+
125
+ var PROTOTYPE = 'prototype';
126
+ var $export = function (type, name, source) {
127
+ var IS_FORCED = type & $export.F;
128
+ var IS_GLOBAL = type & $export.G;
129
+ var IS_STATIC = type & $export.S;
130
+ var IS_PROTO = type & $export.P;
131
+ var IS_BIND = type & $export.B;
132
+ var IS_WRAP = type & $export.W;
133
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
134
+ var expProto = exports[PROTOTYPE];
135
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] : (_global[name] || {})[PROTOTYPE];
136
+ var key, own, out;
137
+ if (IS_GLOBAL) source = name;
138
+ for (key in source) {
139
+ own = !IS_FORCED && target && target[key] !== undefined;
140
+ if (own && _has(exports, key)) continue;
141
+ out = own ? target[key] : source[key];
142
+ exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
143
+ : IS_BIND && own ? _ctx(out, _global)
144
+ : IS_WRAP && target[key] == out ? (function (C) {
145
+ var F = function (a, b, c) {
146
+ if (this instanceof C) {
147
+ switch (arguments.length) {
148
+ case 0: return new C();
149
+ case 1: return new C(a);
150
+ case 2: return new C(a, b);
151
+ } return new C(a, b, c);
152
+ } return C.apply(this, arguments);
153
+ };
154
+ F[PROTOTYPE] = C[PROTOTYPE];
155
+ return F;
156
+ })(out) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
157
+ if (IS_PROTO) {
158
+ (exports.virtual || (exports.virtual = {}))[key] = out;
159
+ if (type & $export.R && expProto && !expProto[key]) _hide(expProto, key, out);
160
+ }
161
+ }
162
+ };
163
+ $export.F = 1;
164
+ $export.G = 2;
165
+ $export.S = 4;
166
+ $export.P = 8;
167
+ $export.B = 16;
168
+ $export.W = 32;
169
+ $export.U = 64;
170
+ $export.R = 128;
171
+ var _export = $export;
172
+
173
+ var _defined = function (it) {
174
+ if (it == undefined) throw TypeError("Can't call method on " + it);
175
+ return it;
176
+ };
177
+
178
+ var _stringWs = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
179
+ '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
180
+
181
+ var space = '[' + _stringWs + ']';
182
+ var non = '\u200b\u0085';
183
+ var ltrim = RegExp('^' + space + space + '*');
184
+ var rtrim = RegExp(space + space + '*$');
185
+ var exporter = function (KEY, exec, ALIAS) {
186
+ var exp = {};
187
+ var FORCE = _fails(function () {
188
+ return !!_stringWs[KEY]() || non[KEY]() != non;
189
+ });
190
+ var fn = exp[KEY] = FORCE ? exec(trim) : _stringWs[KEY];
191
+ if (ALIAS) exp[ALIAS] = fn;
192
+ _export(_export.P + _export.F * FORCE, 'String', exp);
193
+ };
194
+ var trim = exporter.trim = function (string, TYPE) {
195
+ string = String(_defined(string));
196
+ if (TYPE & 1) string = string.replace(ltrim, '');
197
+ if (TYPE & 2) string = string.replace(rtrim, '');
198
+ return string;
199
+ };
200
+ var _stringTrim = exporter;
201
+
202
+ var $parseInt = _global.parseInt;
203
+ var $trim = _stringTrim.trim;
204
+ var hex = /^[-+]?0[xX]/;
205
+ var _parseInt = $parseInt(_stringWs + '08') !== 8 || $parseInt(_stringWs + '0x16') !== 22 ? function parseInt(str, radix) {
206
+ var string = $trim(String(str), 3);
207
+ return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
208
+ } : $parseInt;
209
+
210
+ _export(_export.G + _export.F * (parseInt != _parseInt), { parseInt: _parseInt });
211
+
212
+ var _parseInt$1 = _core.parseInt;
213
+
214
+ var _parseInt$2 = _parseInt$1;
215
+
216
+ var nodeList = [];
217
+ var clickctx = '$clickoutsideCtx';
218
+ var beginClick;
219
+ document.addEventListener('mousedown', function (event) {
220
+ return beginClick = event;
221
+ });
222
+ document.addEventListener('mouseup', function (event) {
223
+ nodeList.forEach(function (node) {
224
+ node[clickctx].clickoutsideHandler(event, beginClick);
225
+ });
226
+ });
227
+ var bkClickoutside = {
228
+ bind: function bind(el, binding, vnode) {
229
+ var id = nodeList.push(el) - 1;
230
+ var clickoutsideHandler = function clickoutsideHandler() {
231
+ var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
232
+ var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
233
+ if (!vnode.context
234
+ || !mouseup.target || !mousedown.target || el.contains(mouseup.target)
235
+ || el.contains(mousedown.target)
236
+ || el === mouseup.target
237
+ || vnode.context.popup
238
+ && (vnode.context.popup.contains(mouseup.target)
239
+ || vnode.context.popup.contains(mousedown.target)
240
+ )) {
241
+ return;
242
+ }
243
+ if (binding.expression
244
+ && el[clickctx].callbackName
245
+ && vnode.context[el[clickctx].callbackName]
246
+ ) {
247
+ vnode.context[el[clickctx].callbackName](mouseup, mousedown, el);
248
+ } else {
249
+ el[clickctx].bindingFn && el[clickctx].bindingFn(mouseup, mousedown, el);
250
+ }
251
+ };
252
+ el[clickctx] = {
253
+ id: id,
254
+ clickoutsideHandler: clickoutsideHandler,
255
+ callbackName: binding.expression,
256
+ callbackFn: binding.value
257
+ };
258
+ },
259
+ update: function update(el, binding) {
260
+ el[clickctx].callbackName = binding.expression;
261
+ el[clickctx].callbackFn = binding.value;
262
+ },
263
+ unbind: function unbind(el) {
264
+ for (var i = 0, len = nodeList.length; i < len; i++) {
265
+ if (nodeList[i][clickctx].id === el[clickctx].id) {
266
+ nodeList.splice(i, 1);
267
+ break;
268
+ }
269
+ }
270
+ }
271
+ };
272
+ bkClickoutside.install = function (Vue) {
273
+ Vue.directive('bkClickoutside', bkClickoutside);
274
+ };
275
+
276
+ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
277
+ var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
278
+ var timeoutDuration = 0;
279
+ for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
280
+ if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
281
+ timeoutDuration = 1;
282
+ break;
283
+ }
284
+ }
285
+ function microtaskDebounce(fn) {
286
+ var called = false;
287
+ return function () {
288
+ if (called) {
289
+ return;
290
+ }
291
+ called = true;
292
+ window.Promise.resolve().then(function () {
293
+ called = false;
294
+ fn();
295
+ });
296
+ };
297
+ }
298
+ function taskDebounce(fn) {
299
+ var scheduled = false;
300
+ return function () {
301
+ if (!scheduled) {
302
+ scheduled = true;
303
+ setTimeout(function () {
304
+ scheduled = false;
305
+ fn();
306
+ }, timeoutDuration);
307
+ }
308
+ };
309
+ }
310
+ var supportsMicroTasks = isBrowser && window.Promise;
311
+ var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
312
+ function isFunction(functionToCheck) {
313
+ var getType = {};
314
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
315
+ }
316
+ function getStyleComputedProperty(element, property) {
317
+ if (element.nodeType !== 1) {
318
+ return [];
319
+ }
320
+ var window = element.ownerDocument.defaultView;
321
+ var css = window.getComputedStyle(element, null);
322
+ return property ? css[property] : css;
323
+ }
324
+ function getParentNode(element) {
325
+ if (element.nodeName === 'HTML') {
326
+ return element;
327
+ }
328
+ return element.parentNode || element.host;
329
+ }
330
+ function getScrollParent(element) {
331
+ if (!element) {
332
+ return document.body;
333
+ }
334
+ switch (element.nodeName) {
335
+ case 'HTML':
336
+ case 'BODY':
337
+ return element.ownerDocument.body;
338
+ case '#document':
339
+ return element.body;
340
+ }
341
+ var _getStyleComputedProp = getStyleComputedProperty(element),
342
+ overflow = _getStyleComputedProp.overflow,
343
+ overflowX = _getStyleComputedProp.overflowX,
344
+ overflowY = _getStyleComputedProp.overflowY;
345
+ if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
346
+ return element;
347
+ }
348
+ return getScrollParent(getParentNode(element));
349
+ }
350
+ var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
351
+ var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
352
+ function isIE(version) {
353
+ if (version === 11) {
354
+ return isIE11;
355
+ }
356
+ if (version === 10) {
357
+ return isIE10;
358
+ }
359
+ return isIE11 || isIE10;
360
+ }
361
+ function getOffsetParent(element) {
362
+ if (!element) {
363
+ return document.documentElement;
364
+ }
365
+ var noOffsetParent = isIE(10) ? document.body : null;
366
+ var offsetParent = element.offsetParent || null;
367
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
368
+ offsetParent = (element = element.nextElementSibling).offsetParent;
369
+ }
370
+ var nodeName = offsetParent && offsetParent.nodeName;
371
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
372
+ return element ? element.ownerDocument.documentElement : document.documentElement;
373
+ }
374
+ if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
375
+ return getOffsetParent(offsetParent);
376
+ }
377
+ return offsetParent;
378
+ }
379
+ function isOffsetContainer(element) {
380
+ var nodeName = element.nodeName;
381
+ if (nodeName === 'BODY') {
382
+ return false;
383
+ }
384
+ return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
385
+ }
386
+ function getRoot(node) {
387
+ if (node.parentNode !== null) {
388
+ return getRoot(node.parentNode);
389
+ }
390
+ return node;
391
+ }
392
+ function findCommonOffsetParent(element1, element2) {
393
+ if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
394
+ return document.documentElement;
395
+ }
396
+ var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
397
+ var start = order ? element1 : element2;
398
+ var end = order ? element2 : element1;
399
+ var range = document.createRange();
400
+ range.setStart(start, 0);
401
+ range.setEnd(end, 0);
402
+ var commonAncestorContainer = range.commonAncestorContainer;
403
+ if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
404
+ if (isOffsetContainer(commonAncestorContainer)) {
405
+ return commonAncestorContainer;
406
+ }
407
+ return getOffsetParent(commonAncestorContainer);
408
+ }
409
+ var element1root = getRoot(element1);
410
+ if (element1root.host) {
411
+ return findCommonOffsetParent(element1root.host, element2);
412
+ } else {
413
+ return findCommonOffsetParent(element1, getRoot(element2).host);
414
+ }
415
+ }
416
+ function getScroll(element) {
417
+ var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
418
+ var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
419
+ var nodeName = element.nodeName;
420
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
421
+ var html = element.ownerDocument.documentElement;
422
+ var scrollingElement = element.ownerDocument.scrollingElement || html;
423
+ return scrollingElement[upperSide];
424
+ }
425
+ return element[upperSide];
426
+ }
427
+ function includeScroll(rect, element) {
428
+ var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
429
+ var scrollTop = getScroll(element, 'top');
430
+ var scrollLeft = getScroll(element, 'left');
431
+ var modifier = subtract ? -1 : 1;
432
+ rect.top += scrollTop * modifier;
433
+ rect.bottom += scrollTop * modifier;
434
+ rect.left += scrollLeft * modifier;
435
+ rect.right += scrollLeft * modifier;
436
+ return rect;
437
+ }
438
+ function getBordersSize(styles, axis) {
439
+ var sideA = axis === 'x' ? 'Left' : 'Top';
440
+ var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
441
+ return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
442
+ }
443
+ function getSize(axis, body, html, computedStyle) {
444
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);
445
+ }
446
+ function getWindowSizes(document) {
447
+ var body = document.body;
448
+ var html = document.documentElement;
449
+ var computedStyle = isIE(10) && getComputedStyle(html);
450
+ return {
451
+ height: getSize('Height', body, html, computedStyle),
452
+ width: getSize('Width', body, html, computedStyle)
453
+ };
454
+ }
455
+ var classCallCheck = function (instance, Constructor) {
456
+ if (!(instance instanceof Constructor)) {
457
+ throw new TypeError("Cannot call a class as a function");
458
+ }
459
+ };
460
+ var createClass = function () {
461
+ function defineProperties(target, props) {
462
+ for (var i = 0; i < props.length; i++) {
463
+ var descriptor = props[i];
464
+ descriptor.enumerable = descriptor.enumerable || false;
465
+ descriptor.configurable = true;
466
+ if ("value" in descriptor) descriptor.writable = true;
467
+ Object.defineProperty(target, descriptor.key, descriptor);
468
+ }
469
+ }
470
+ return function (Constructor, protoProps, staticProps) {
471
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
472
+ if (staticProps) defineProperties(Constructor, staticProps);
473
+ return Constructor;
474
+ };
475
+ }();
476
+ var defineProperty = function (obj, key, value) {
477
+ if (key in obj) {
478
+ Object.defineProperty(obj, key, {
479
+ value: value,
480
+ enumerable: true,
481
+ configurable: true,
482
+ writable: true
483
+ });
484
+ } else {
485
+ obj[key] = value;
486
+ }
487
+ return obj;
488
+ };
489
+ var _extends = Object.assign || function (target) {
490
+ for (var i = 1; i < arguments.length; i++) {
491
+ var source = arguments[i];
492
+ for (var key in source) {
493
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
494
+ target[key] = source[key];
495
+ }
496
+ }
497
+ }
498
+ return target;
499
+ };
500
+ function getClientRect(offsets) {
501
+ return _extends({}, offsets, {
502
+ right: offsets.left + offsets.width,
503
+ bottom: offsets.top + offsets.height
504
+ });
505
+ }
506
+ function getBoundingClientRect(element) {
507
+ var rect = {};
508
+ try {
509
+ if (isIE(10)) {
510
+ rect = element.getBoundingClientRect();
511
+ var scrollTop = getScroll(element, 'top');
512
+ var scrollLeft = getScroll(element, 'left');
513
+ rect.top += scrollTop;
514
+ rect.left += scrollLeft;
515
+ rect.bottom += scrollTop;
516
+ rect.right += scrollLeft;
517
+ } else {
518
+ rect = element.getBoundingClientRect();
519
+ }
520
+ } catch (e) {}
521
+ var result = {
522
+ left: rect.left,
523
+ top: rect.top,
524
+ width: rect.right - rect.left,
525
+ height: rect.bottom - rect.top
526
+ };
527
+ var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};
528
+ var width = sizes.width || element.clientWidth || result.right - result.left;
529
+ var height = sizes.height || element.clientHeight || result.bottom - result.top;
530
+ var horizScrollbar = element.offsetWidth - width;
531
+ var vertScrollbar = element.offsetHeight - height;
532
+ if (horizScrollbar || vertScrollbar) {
533
+ var styles = getStyleComputedProperty(element);
534
+ horizScrollbar -= getBordersSize(styles, 'x');
535
+ vertScrollbar -= getBordersSize(styles, 'y');
536
+ result.width -= horizScrollbar;
537
+ result.height -= vertScrollbar;
538
+ }
539
+ return getClientRect(result);
540
+ }
541
+ function getOffsetRectRelativeToArbitraryNode(children, parent) {
542
+ var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
543
+ var isIE10 = isIE(10);
544
+ var isHTML = parent.nodeName === 'HTML';
545
+ var childrenRect = getBoundingClientRect(children);
546
+ var parentRect = getBoundingClientRect(parent);
547
+ var scrollParent = getScrollParent(children);
548
+ var styles = getStyleComputedProperty(parent);
549
+ var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
550
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
551
+ if (fixedPosition && isHTML) {
552
+ parentRect.top = Math.max(parentRect.top, 0);
553
+ parentRect.left = Math.max(parentRect.left, 0);
554
+ }
555
+ var offsets = getClientRect({
556
+ top: childrenRect.top - parentRect.top - borderTopWidth,
557
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
558
+ width: childrenRect.width,
559
+ height: childrenRect.height
560
+ });
561
+ offsets.marginTop = 0;
562
+ offsets.marginLeft = 0;
563
+ if (!isIE10 && isHTML) {
564
+ var marginTop = parseFloat(styles.marginTop, 10);
565
+ var marginLeft = parseFloat(styles.marginLeft, 10);
566
+ offsets.top -= borderTopWidth - marginTop;
567
+ offsets.bottom -= borderTopWidth - marginTop;
568
+ offsets.left -= borderLeftWidth - marginLeft;
569
+ offsets.right -= borderLeftWidth - marginLeft;
570
+ offsets.marginTop = marginTop;
571
+ offsets.marginLeft = marginLeft;
572
+ }
573
+ if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
574
+ offsets = includeScroll(offsets, parent);
575
+ }
576
+ return offsets;
577
+ }
578
+ function getViewportOffsetRectRelativeToArtbitraryNode(element) {
579
+ var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
580
+ var html = element.ownerDocument.documentElement;
581
+ var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
582
+ var width = Math.max(html.clientWidth, window.innerWidth || 0);
583
+ var height = Math.max(html.clientHeight, window.innerHeight || 0);
584
+ var scrollTop = !excludeScroll ? getScroll(html) : 0;
585
+ var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
586
+ var offset = {
587
+ top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
588
+ left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
589
+ width: width,
590
+ height: height
591
+ };
592
+ return getClientRect(offset);
593
+ }
594
+ function isFixed(element) {
595
+ var nodeName = element.nodeName;
596
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
597
+ return false;
598
+ }
599
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
600
+ return true;
601
+ }
602
+ var parentNode = getParentNode(element);
603
+ if (!parentNode) {
604
+ return false;
605
+ }
606
+ return isFixed(parentNode);
607
+ }
608
+ function getFixedPositionOffsetParent(element) {
609
+ if (!element || !element.parentElement || isIE()) {
610
+ return document.documentElement;
611
+ }
612
+ var el = element.parentElement;
613
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
614
+ el = el.parentElement;
615
+ }
616
+ return el || document.documentElement;
617
+ }
618
+ function getBoundaries(popper, reference, padding, boundariesElement) {
619
+ var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
620
+ var boundaries = { top: 0, left: 0 };
621
+ var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
622
+ if (boundariesElement === 'viewport') {
623
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
624
+ } else {
625
+ var boundariesNode = void 0;
626
+ if (boundariesElement === 'scrollParent') {
627
+ boundariesNode = getScrollParent(getParentNode(reference));
628
+ if (boundariesNode.nodeName === 'BODY') {
629
+ boundariesNode = popper.ownerDocument.documentElement;
630
+ }
631
+ } else if (boundariesElement === 'window') {
632
+ boundariesNode = popper.ownerDocument.documentElement;
633
+ } else {
634
+ boundariesNode = boundariesElement;
635
+ }
636
+ var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
637
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
638
+ var _getWindowSizes = getWindowSizes(popper.ownerDocument),
639
+ height = _getWindowSizes.height,
640
+ width = _getWindowSizes.width;
641
+ boundaries.top += offsets.top - offsets.marginTop;
642
+ boundaries.bottom = height + offsets.top;
643
+ boundaries.left += offsets.left - offsets.marginLeft;
644
+ boundaries.right = width + offsets.left;
645
+ } else {
646
+ boundaries = offsets;
647
+ }
648
+ }
649
+ padding = padding || 0;
650
+ var isPaddingNumber = typeof padding === 'number';
651
+ boundaries.left += isPaddingNumber ? padding : padding.left || 0;
652
+ boundaries.top += isPaddingNumber ? padding : padding.top || 0;
653
+ boundaries.right -= isPaddingNumber ? padding : padding.right || 0;
654
+ boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;
655
+ return boundaries;
656
+ }
657
+ function getArea(_ref) {
658
+ var width = _ref.width,
659
+ height = _ref.height;
660
+ return width * height;
661
+ }
662
+ function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
663
+ var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
664
+ if (placement.indexOf('auto') === -1) {
665
+ return placement;
666
+ }
667
+ var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
668
+ var rects = {
669
+ top: {
670
+ width: boundaries.width,
671
+ height: refRect.top - boundaries.top
672
+ },
673
+ right: {
674
+ width: boundaries.right - refRect.right,
675
+ height: boundaries.height
676
+ },
677
+ bottom: {
678
+ width: boundaries.width,
679
+ height: boundaries.bottom - refRect.bottom
680
+ },
681
+ left: {
682
+ width: refRect.left - boundaries.left,
683
+ height: boundaries.height
684
+ }
685
+ };
686
+ var sortedAreas = Object.keys(rects).map(function (key) {
687
+ return _extends({
688
+ key: key
689
+ }, rects[key], {
690
+ area: getArea(rects[key])
691
+ });
692
+ }).sort(function (a, b) {
693
+ return b.area - a.area;
694
+ });
695
+ var filteredAreas = sortedAreas.filter(function (_ref2) {
696
+ var width = _ref2.width,
697
+ height = _ref2.height;
698
+ return width >= popper.clientWidth && height >= popper.clientHeight;
699
+ });
700
+ var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
701
+ var variation = placement.split('-')[1];
702
+ return computedPlacement + (variation ? '-' + variation : '');
703
+ }
704
+ function getReferenceOffsets(state, popper, reference) {
705
+ var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
706
+ var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
707
+ return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
708
+ }
709
+ function getOuterSizes(element) {
710
+ var window = element.ownerDocument.defaultView;
711
+ var styles = window.getComputedStyle(element);
712
+ var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);
713
+ var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);
714
+ var result = {
715
+ width: element.offsetWidth + y,
716
+ height: element.offsetHeight + x
717
+ };
718
+ return result;
719
+ }
720
+ function getOppositePlacement(placement) {
721
+ var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
722
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
723
+ return hash[matched];
724
+ });
725
+ }
726
+ function getPopperOffsets(popper, referenceOffsets, placement) {
727
+ placement = placement.split('-')[0];
728
+ var popperRect = getOuterSizes(popper);
729
+ var popperOffsets = {
730
+ width: popperRect.width,
731
+ height: popperRect.height
732
+ };
733
+ var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
734
+ var mainSide = isHoriz ? 'top' : 'left';
735
+ var secondarySide = isHoriz ? 'left' : 'top';
736
+ var measurement = isHoriz ? 'height' : 'width';
737
+ var secondaryMeasurement = !isHoriz ? 'height' : 'width';
738
+ popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
739
+ if (placement === secondarySide) {
740
+ popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
741
+ } else {
742
+ popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
743
+ }
744
+ return popperOffsets;
745
+ }
746
+ function find(arr, check) {
747
+ if (Array.prototype.find) {
748
+ return arr.find(check);
749
+ }
750
+ return arr.filter(check)[0];
751
+ }
752
+ function findIndex(arr, prop, value) {
753
+ if (Array.prototype.findIndex) {
754
+ return arr.findIndex(function (cur) {
755
+ return cur[prop] === value;
756
+ });
757
+ }
758
+ var match = find(arr, function (obj) {
759
+ return obj[prop] === value;
760
+ });
761
+ return arr.indexOf(match);
762
+ }
763
+ function runModifiers(modifiers, data, ends) {
764
+ var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
765
+ modifiersToRun.forEach(function (modifier) {
766
+ if (modifier['function']) {
767
+ console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
768
+ }
769
+ var fn = modifier['function'] || modifier.fn;
770
+ if (modifier.enabled && isFunction(fn)) {
771
+ data.offsets.popper = getClientRect(data.offsets.popper);
772
+ data.offsets.reference = getClientRect(data.offsets.reference);
773
+ data = fn(data, modifier);
774
+ }
775
+ });
776
+ return data;
777
+ }
778
+ function update() {
779
+ if (this.state.isDestroyed) {
780
+ return;
781
+ }
782
+ var data = {
783
+ instance: this,
784
+ styles: {},
785
+ arrowStyles: {},
786
+ attributes: {},
787
+ flipped: false,
788
+ offsets: {}
789
+ };
790
+ data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
791
+ data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
792
+ data.originalPlacement = data.placement;
793
+ data.positionFixed = this.options.positionFixed;
794
+ data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
795
+ data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
796
+ data = runModifiers(this.modifiers, data);
797
+ if (!this.state.isCreated) {
798
+ this.state.isCreated = true;
799
+ this.options.onCreate(data);
800
+ } else {
801
+ this.options.onUpdate(data);
802
+ }
803
+ }
804
+ function isModifierEnabled(modifiers, modifierName) {
805
+ return modifiers.some(function (_ref) {
806
+ var name = _ref.name,
807
+ enabled = _ref.enabled;
808
+ return enabled && name === modifierName;
809
+ });
810
+ }
811
+ function getSupportedPropertyName(property) {
812
+ var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
813
+ var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
814
+ for (var i = 0; i < prefixes.length; i++) {
815
+ var prefix = prefixes[i];
816
+ var toCheck = prefix ? '' + prefix + upperProp : property;
817
+ if (typeof document.body.style[toCheck] !== 'undefined') {
818
+ return toCheck;
819
+ }
820
+ }
821
+ return null;
822
+ }
823
+ function destroy() {
824
+ this.state.isDestroyed = true;
825
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
826
+ this.popper.removeAttribute('x-placement');
827
+ this.popper.style.position = '';
828
+ this.popper.style.top = '';
829
+ this.popper.style.left = '';
830
+ this.popper.style.right = '';
831
+ this.popper.style.bottom = '';
832
+ this.popper.style.willChange = '';
833
+ this.popper.style[getSupportedPropertyName('transform')] = '';
834
+ }
835
+ this.disableEventListeners();
836
+ if (this.options.removeOnDestroy) {
837
+ this.popper.parentNode.removeChild(this.popper);
838
+ }
839
+ return this;
840
+ }
841
+ function getWindow(element) {
842
+ var ownerDocument = element.ownerDocument;
843
+ return ownerDocument ? ownerDocument.defaultView : window;
844
+ }
845
+ function attachToScrollParents(scrollParent, event, callback, scrollParents) {
846
+ var isBody = scrollParent.nodeName === 'BODY';
847
+ var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
848
+ target.addEventListener(event, callback, { passive: true });
849
+ if (!isBody) {
850
+ attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
851
+ }
852
+ scrollParents.push(target);
853
+ }
854
+ function setupEventListeners(reference, options, state, updateBound) {
855
+ state.updateBound = updateBound;
856
+ getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
857
+ var scrollElement = getScrollParent(reference);
858
+ attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
859
+ state.scrollElement = scrollElement;
860
+ state.eventsEnabled = true;
861
+ return state;
862
+ }
863
+ function enableEventListeners() {
864
+ if (!this.state.eventsEnabled) {
865
+ this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
866
+ }
867
+ }
868
+ function removeEventListeners(reference, state) {
869
+ getWindow(reference).removeEventListener('resize', state.updateBound);
870
+ state.scrollParents.forEach(function (target) {
871
+ target.removeEventListener('scroll', state.updateBound);
872
+ });
873
+ state.updateBound = null;
874
+ state.scrollParents = [];
875
+ state.scrollElement = null;
876
+ state.eventsEnabled = false;
877
+ return state;
878
+ }
879
+ function disableEventListeners() {
880
+ if (this.state.eventsEnabled) {
881
+ cancelAnimationFrame(this.scheduleUpdate);
882
+ this.state = removeEventListeners(this.reference, this.state);
883
+ }
884
+ }
885
+ function isNumeric(n) {
886
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
887
+ }
888
+ function setStyles(element, styles) {
889
+ Object.keys(styles).forEach(function (prop) {
890
+ var unit = '';
891
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
892
+ unit = 'px';
893
+ }
894
+ element.style[prop] = styles[prop] + unit;
895
+ });
896
+ }
897
+ function setAttributes(element, attributes) {
898
+ Object.keys(attributes).forEach(function (prop) {
899
+ var value = attributes[prop];
900
+ if (value !== false) {
901
+ element.setAttribute(prop, attributes[prop]);
902
+ } else {
903
+ element.removeAttribute(prop);
904
+ }
905
+ });
906
+ }
907
+ function applyStyle(data) {
908
+ setStyles(data.instance.popper, data.styles);
909
+ setAttributes(data.instance.popper, data.attributes);
910
+ if (data.arrowElement && Object.keys(data.arrowStyles).length) {
911
+ setStyles(data.arrowElement, data.arrowStyles);
912
+ }
913
+ return data;
914
+ }
915
+ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
916
+ var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
917
+ var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
918
+ popper.setAttribute('x-placement', placement);
919
+ setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
920
+ return options;
921
+ }
922
+ function getRoundedOffsets(data, shouldRound) {
923
+ var _data$offsets = data.offsets,
924
+ popper = _data$offsets.popper,
925
+ reference = _data$offsets.reference;
926
+ var round = Math.round,
927
+ floor = Math.floor;
928
+ var noRound = function noRound(v) {
929
+ return v;
930
+ };
931
+ var referenceWidth = round(reference.width);
932
+ var popperWidth = round(popper.width);
933
+ var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;
934
+ var isVariation = data.placement.indexOf('-') !== -1;
935
+ var sameWidthParity = referenceWidth % 2 === popperWidth % 2;
936
+ var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;
937
+ var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;
938
+ var verticalToInteger = !shouldRound ? noRound : round;
939
+ return {
940
+ left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),
941
+ top: verticalToInteger(popper.top),
942
+ bottom: verticalToInteger(popper.bottom),
943
+ right: horizontalToInteger(popper.right)
944
+ };
945
+ }
946
+ var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);
947
+ function computeStyle(data, options) {
948
+ var x = options.x,
949
+ y = options.y;
950
+ var popper = data.offsets.popper;
951
+ var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
952
+ return modifier.name === 'applyStyle';
953
+ }).gpuAcceleration;
954
+ if (legacyGpuAccelerationOption !== undefined) {
955
+ console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
956
+ }
957
+ var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
958
+ var offsetParent = getOffsetParent(data.instance.popper);
959
+ var offsetParentRect = getBoundingClientRect(offsetParent);
960
+ var styles = {
961
+ position: popper.position
962
+ };
963
+ var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);
964
+ var sideA = x === 'bottom' ? 'top' : 'bottom';
965
+ var sideB = y === 'right' ? 'left' : 'right';
966
+ var prefixedProperty = getSupportedPropertyName('transform');
967
+ var left = void 0,
968
+ top = void 0;
969
+ if (sideA === 'bottom') {
970
+ if (offsetParent.nodeName === 'HTML') {
971
+ top = -offsetParent.clientHeight + offsets.bottom;
972
+ } else {
973
+ top = -offsetParentRect.height + offsets.bottom;
974
+ }
975
+ } else {
976
+ top = offsets.top;
977
+ }
978
+ if (sideB === 'right') {
979
+ if (offsetParent.nodeName === 'HTML') {
980
+ left = -offsetParent.clientWidth + offsets.right;
981
+ } else {
982
+ left = -offsetParentRect.width + offsets.right;
983
+ }
984
+ } else {
985
+ left = offsets.left;
986
+ }
987
+ if (gpuAcceleration && prefixedProperty) {
988
+ styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
989
+ styles[sideA] = 0;
990
+ styles[sideB] = 0;
991
+ styles.willChange = 'transform';
992
+ } else {
993
+ var invertTop = sideA === 'bottom' ? -1 : 1;
994
+ var invertLeft = sideB === 'right' ? -1 : 1;
995
+ styles[sideA] = top * invertTop;
996
+ styles[sideB] = left * invertLeft;
997
+ styles.willChange = sideA + ', ' + sideB;
998
+ }
999
+ var attributes = {
1000
+ 'x-placement': data.placement
1001
+ };
1002
+ data.attributes = _extends({}, attributes, data.attributes);
1003
+ data.styles = _extends({}, styles, data.styles);
1004
+ data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
1005
+ return data;
1006
+ }
1007
+ function isModifierRequired(modifiers, requestingName, requestedName) {
1008
+ var requesting = find(modifiers, function (_ref) {
1009
+ var name = _ref.name;
1010
+ return name === requestingName;
1011
+ });
1012
+ var isRequired = !!requesting && modifiers.some(function (modifier) {
1013
+ return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
1014
+ });
1015
+ if (!isRequired) {
1016
+ var _requesting = '`' + requestingName + '`';
1017
+ var requested = '`' + requestedName + '`';
1018
+ console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
1019
+ }
1020
+ return isRequired;
1021
+ }
1022
+ function arrow(data, options) {
1023
+ var _data$offsets$arrow;
1024
+ if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
1025
+ return data;
1026
+ }
1027
+ var arrowElement = options.element;
1028
+ if (typeof arrowElement === 'string') {
1029
+ arrowElement = data.instance.popper.querySelector(arrowElement);
1030
+ if (!arrowElement) {
1031
+ return data;
1032
+ }
1033
+ } else {
1034
+ if (!data.instance.popper.contains(arrowElement)) {
1035
+ console.warn('WARNING: `arrow.element` must be child of its popper element!');
1036
+ return data;
1037
+ }
1038
+ }
1039
+ var placement = data.placement.split('-')[0];
1040
+ var _data$offsets = data.offsets,
1041
+ popper = _data$offsets.popper,
1042
+ reference = _data$offsets.reference;
1043
+ var isVertical = ['left', 'right'].indexOf(placement) !== -1;
1044
+ var len = isVertical ? 'height' : 'width';
1045
+ var sideCapitalized = isVertical ? 'Top' : 'Left';
1046
+ var side = sideCapitalized.toLowerCase();
1047
+ var altSide = isVertical ? 'left' : 'top';
1048
+ var opSide = isVertical ? 'bottom' : 'right';
1049
+ var arrowElementSize = getOuterSizes(arrowElement)[len];
1050
+ if (reference[opSide] - arrowElementSize < popper[side]) {
1051
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
1052
+ }
1053
+ if (reference[side] + arrowElementSize > popper[opSide]) {
1054
+ data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
1055
+ }
1056
+ data.offsets.popper = getClientRect(data.offsets.popper);
1057
+ var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
1058
+ var css = getStyleComputedProperty(data.instance.popper);
1059
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
1060
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
1061
+ var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
1062
+ sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
1063
+ data.arrowElement = arrowElement;
1064
+ data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
1065
+ return data;
1066
+ }
1067
+ function getOppositeVariation(variation) {
1068
+ if (variation === 'end') {
1069
+ return 'start';
1070
+ } else if (variation === 'start') {
1071
+ return 'end';
1072
+ }
1073
+ return variation;
1074
+ }
1075
+ var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
1076
+ var validPlacements = placements.slice(3);
1077
+ function clockwise(placement) {
1078
+ var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1079
+ var index = validPlacements.indexOf(placement);
1080
+ var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
1081
+ return counter ? arr.reverse() : arr;
1082
+ }
1083
+ var BEHAVIORS = {
1084
+ FLIP: 'flip',
1085
+ CLOCKWISE: 'clockwise',
1086
+ COUNTERCLOCKWISE: 'counterclockwise'
1087
+ };
1088
+ function flip(data, options) {
1089
+ if (isModifierEnabled(data.instance.modifiers, 'inner')) {
1090
+ return data;
1091
+ }
1092
+ if (data.flipped && data.placement === data.originalPlacement) {
1093
+ return data;
1094
+ }
1095
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
1096
+ var placement = data.placement.split('-')[0];
1097
+ var placementOpposite = getOppositePlacement(placement);
1098
+ var variation = data.placement.split('-')[1] || '';
1099
+ var flipOrder = [];
1100
+ switch (options.behavior) {
1101
+ case BEHAVIORS.FLIP:
1102
+ flipOrder = [placement, placementOpposite];
1103
+ break;
1104
+ case BEHAVIORS.CLOCKWISE:
1105
+ flipOrder = clockwise(placement);
1106
+ break;
1107
+ case BEHAVIORS.COUNTERCLOCKWISE:
1108
+ flipOrder = clockwise(placement, true);
1109
+ break;
1110
+ default:
1111
+ flipOrder = options.behavior;
1112
+ }
1113
+ flipOrder.forEach(function (step, index) {
1114
+ if (placement !== step || flipOrder.length === index + 1) {
1115
+ return data;
1116
+ }
1117
+ placement = data.placement.split('-')[0];
1118
+ placementOpposite = getOppositePlacement(placement);
1119
+ var popperOffsets = data.offsets.popper;
1120
+ var refOffsets = data.offsets.reference;
1121
+ var floor = Math.floor;
1122
+ var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
1123
+ var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
1124
+ var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
1125
+ var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
1126
+ var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
1127
+ var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
1128
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1129
+ var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
1130
+ var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);
1131
+ var flippedVariation = flippedVariationByRef || flippedVariationByContent;
1132
+ if (overlapsRef || overflowsBoundaries || flippedVariation) {
1133
+ data.flipped = true;
1134
+ if (overlapsRef || overflowsBoundaries) {
1135
+ placement = flipOrder[index + 1];
1136
+ }
1137
+ if (flippedVariation) {
1138
+ variation = getOppositeVariation(variation);
1139
+ }
1140
+ data.placement = placement + (variation ? '-' + variation : '');
1141
+ data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
1142
+ data = runModifiers(data.instance.modifiers, data, 'flip');
1143
+ }
1144
+ });
1145
+ return data;
1146
+ }
1147
+ function keepTogether(data) {
1148
+ var _data$offsets = data.offsets,
1149
+ popper = _data$offsets.popper,
1150
+ reference = _data$offsets.reference;
1151
+ var placement = data.placement.split('-')[0];
1152
+ var floor = Math.floor;
1153
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1154
+ var side = isVertical ? 'right' : 'bottom';
1155
+ var opSide = isVertical ? 'left' : 'top';
1156
+ var measurement = isVertical ? 'width' : 'height';
1157
+ if (popper[side] < floor(reference[opSide])) {
1158
+ data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
1159
+ }
1160
+ if (popper[opSide] > floor(reference[side])) {
1161
+ data.offsets.popper[opSide] = floor(reference[side]);
1162
+ }
1163
+ return data;
1164
+ }
1165
+ function toValue(str, measurement, popperOffsets, referenceOffsets) {
1166
+ var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
1167
+ var value = +split[1];
1168
+ var unit = split[2];
1169
+ if (!value) {
1170
+ return str;
1171
+ }
1172
+ if (unit.indexOf('%') === 0) {
1173
+ var element = void 0;
1174
+ switch (unit) {
1175
+ case '%p':
1176
+ element = popperOffsets;
1177
+ break;
1178
+ case '%':
1179
+ case '%r':
1180
+ default:
1181
+ element = referenceOffsets;
1182
+ }
1183
+ var rect = getClientRect(element);
1184
+ return rect[measurement] / 100 * value;
1185
+ } else if (unit === 'vh' || unit === 'vw') {
1186
+ var size = void 0;
1187
+ if (unit === 'vh') {
1188
+ size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
1189
+ } else {
1190
+ size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
1191
+ }
1192
+ return size / 100 * value;
1193
+ } else {
1194
+ return value;
1195
+ }
1196
+ }
1197
+ function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
1198
+ var offsets = [0, 0];
1199
+ var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
1200
+ var fragments = offset.split(/(\+|\-)/).map(function (frag) {
1201
+ return frag.trim();
1202
+ });
1203
+ var divider = fragments.indexOf(find(fragments, function (frag) {
1204
+ return frag.search(/,|\s/) !== -1;
1205
+ }));
1206
+ if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
1207
+ console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
1208
+ }
1209
+ var splitRegex = /\s*,\s*|\s+/;
1210
+ var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
1211
+ ops = ops.map(function (op, index) {
1212
+ var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
1213
+ var mergeWithPrevious = false;
1214
+ return op
1215
+ .reduce(function (a, b) {
1216
+ if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
1217
+ a[a.length - 1] = b;
1218
+ mergeWithPrevious = true;
1219
+ return a;
1220
+ } else if (mergeWithPrevious) {
1221
+ a[a.length - 1] += b;
1222
+ mergeWithPrevious = false;
1223
+ return a;
1224
+ } else {
1225
+ return a.concat(b);
1226
+ }
1227
+ }, [])
1228
+ .map(function (str) {
1229
+ return toValue(str, measurement, popperOffsets, referenceOffsets);
1230
+ });
1231
+ });
1232
+ ops.forEach(function (op, index) {
1233
+ op.forEach(function (frag, index2) {
1234
+ if (isNumeric(frag)) {
1235
+ offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
1236
+ }
1237
+ });
1238
+ });
1239
+ return offsets;
1240
+ }
1241
+ function offset(data, _ref) {
1242
+ var offset = _ref.offset;
1243
+ var placement = data.placement,
1244
+ _data$offsets = data.offsets,
1245
+ popper = _data$offsets.popper,
1246
+ reference = _data$offsets.reference;
1247
+ var basePlacement = placement.split('-')[0];
1248
+ var offsets = void 0;
1249
+ if (isNumeric(+offset)) {
1250
+ offsets = [+offset, 0];
1251
+ } else {
1252
+ offsets = parseOffset(offset, popper, reference, basePlacement);
1253
+ }
1254
+ if (basePlacement === 'left') {
1255
+ popper.top += offsets[0];
1256
+ popper.left -= offsets[1];
1257
+ } else if (basePlacement === 'right') {
1258
+ popper.top += offsets[0];
1259
+ popper.left += offsets[1];
1260
+ } else if (basePlacement === 'top') {
1261
+ popper.left += offsets[0];
1262
+ popper.top -= offsets[1];
1263
+ } else if (basePlacement === 'bottom') {
1264
+ popper.left += offsets[0];
1265
+ popper.top += offsets[1];
1266
+ }
1267
+ data.popper = popper;
1268
+ return data;
1269
+ }
1270
+ function preventOverflow(data, options) {
1271
+ var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
1272
+ if (data.instance.reference === boundariesElement) {
1273
+ boundariesElement = getOffsetParent(boundariesElement);
1274
+ }
1275
+ var transformProp = getSupportedPropertyName('transform');
1276
+ var popperStyles = data.instance.popper.style;
1277
+ var top = popperStyles.top,
1278
+ left = popperStyles.left,
1279
+ transform = popperStyles[transformProp];
1280
+ popperStyles.top = '';
1281
+ popperStyles.left = '';
1282
+ popperStyles[transformProp] = '';
1283
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
1284
+ popperStyles.top = top;
1285
+ popperStyles.left = left;
1286
+ popperStyles[transformProp] = transform;
1287
+ options.boundaries = boundaries;
1288
+ var order = options.priority;
1289
+ var popper = data.offsets.popper;
1290
+ var check = {
1291
+ primary: function primary(placement) {
1292
+ var value = popper[placement];
1293
+ if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
1294
+ value = Math.max(popper[placement], boundaries[placement]);
1295
+ }
1296
+ return defineProperty({}, placement, value);
1297
+ },
1298
+ secondary: function secondary(placement) {
1299
+ var mainSide = placement === 'right' ? 'left' : 'top';
1300
+ var value = popper[mainSide];
1301
+ if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
1302
+ value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
1303
+ }
1304
+ return defineProperty({}, mainSide, value);
1305
+ }
1306
+ };
1307
+ order.forEach(function (placement) {
1308
+ var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
1309
+ popper = _extends({}, popper, check[side](placement));
1310
+ });
1311
+ data.offsets.popper = popper;
1312
+ return data;
1313
+ }
1314
+ function shift(data) {
1315
+ var placement = data.placement;
1316
+ var basePlacement = placement.split('-')[0];
1317
+ var shiftvariation = placement.split('-')[1];
1318
+ if (shiftvariation) {
1319
+ var _data$offsets = data.offsets,
1320
+ reference = _data$offsets.reference,
1321
+ popper = _data$offsets.popper;
1322
+ var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
1323
+ var side = isVertical ? 'left' : 'top';
1324
+ var measurement = isVertical ? 'width' : 'height';
1325
+ var shiftOffsets = {
1326
+ start: defineProperty({}, side, reference[side]),
1327
+ end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
1328
+ };
1329
+ data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
1330
+ }
1331
+ return data;
1332
+ }
1333
+ function hide(data) {
1334
+ if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
1335
+ return data;
1336
+ }
1337
+ var refRect = data.offsets.reference;
1338
+ var bound = find(data.instance.modifiers, function (modifier) {
1339
+ return modifier.name === 'preventOverflow';
1340
+ }).boundaries;
1341
+ if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
1342
+ if (data.hide === true) {
1343
+ return data;
1344
+ }
1345
+ data.hide = true;
1346
+ data.attributes['x-out-of-boundaries'] = '';
1347
+ } else {
1348
+ if (data.hide === false) {
1349
+ return data;
1350
+ }
1351
+ data.hide = false;
1352
+ data.attributes['x-out-of-boundaries'] = false;
1353
+ }
1354
+ return data;
1355
+ }
1356
+ function inner(data) {
1357
+ var placement = data.placement;
1358
+ var basePlacement = placement.split('-')[0];
1359
+ var _data$offsets = data.offsets,
1360
+ popper = _data$offsets.popper,
1361
+ reference = _data$offsets.reference;
1362
+ var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
1363
+ var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
1364
+ popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
1365
+ data.placement = getOppositePlacement(placement);
1366
+ data.offsets.popper = getClientRect(popper);
1367
+ return data;
1368
+ }
1369
+ var modifiers = {
1370
+ shift: {
1371
+ order: 100,
1372
+ enabled: true,
1373
+ fn: shift
1374
+ },
1375
+ offset: {
1376
+ order: 200,
1377
+ enabled: true,
1378
+ fn: offset,
1379
+ offset: 0
1380
+ },
1381
+ preventOverflow: {
1382
+ order: 300,
1383
+ enabled: true,
1384
+ fn: preventOverflow,
1385
+ priority: ['left', 'right', 'top', 'bottom'],
1386
+ padding: 5,
1387
+ boundariesElement: 'scrollParent'
1388
+ },
1389
+ keepTogether: {
1390
+ order: 400,
1391
+ enabled: true,
1392
+ fn: keepTogether
1393
+ },
1394
+ arrow: {
1395
+ order: 500,
1396
+ enabled: true,
1397
+ fn: arrow,
1398
+ element: '[x-arrow]'
1399
+ },
1400
+ flip: {
1401
+ order: 600,
1402
+ enabled: true,
1403
+ fn: flip,
1404
+ behavior: 'flip',
1405
+ padding: 5,
1406
+ boundariesElement: 'viewport',
1407
+ flipVariations: false,
1408
+ flipVariationsByContent: false
1409
+ },
1410
+ inner: {
1411
+ order: 700,
1412
+ enabled: false,
1413
+ fn: inner
1414
+ },
1415
+ hide: {
1416
+ order: 800,
1417
+ enabled: true,
1418
+ fn: hide
1419
+ },
1420
+ computeStyle: {
1421
+ order: 850,
1422
+ enabled: true,
1423
+ fn: computeStyle,
1424
+ gpuAcceleration: true,
1425
+ x: 'bottom',
1426
+ y: 'right'
1427
+ },
1428
+ applyStyle: {
1429
+ order: 900,
1430
+ enabled: true,
1431
+ fn: applyStyle,
1432
+ onLoad: applyStyleOnLoad,
1433
+ gpuAcceleration: undefined
1434
+ }
1435
+ };
1436
+ var Defaults = {
1437
+ placement: 'bottom',
1438
+ positionFixed: false,
1439
+ eventsEnabled: true,
1440
+ removeOnDestroy: false,
1441
+ onCreate: function onCreate() {},
1442
+ onUpdate: function onUpdate() {},
1443
+ modifiers: modifiers
1444
+ };
1445
+ var Popper = function () {
1446
+ function Popper(reference, popper) {
1447
+ var _this = this;
1448
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1449
+ classCallCheck(this, Popper);
1450
+ this.scheduleUpdate = function () {
1451
+ return requestAnimationFrame(_this.update);
1452
+ };
1453
+ this.update = debounce(this.update.bind(this));
1454
+ this.options = _extends({}, Popper.Defaults, options);
1455
+ this.state = {
1456
+ isDestroyed: false,
1457
+ isCreated: false,
1458
+ scrollParents: []
1459
+ };
1460
+ this.reference = reference && reference.jquery ? reference[0] : reference;
1461
+ this.popper = popper && popper.jquery ? popper[0] : popper;
1462
+ this.options.modifiers = {};
1463
+ Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
1464
+ _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
1465
+ });
1466
+ this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
1467
+ return _extends({
1468
+ name: name
1469
+ }, _this.options.modifiers[name]);
1470
+ })
1471
+ .sort(function (a, b) {
1472
+ return a.order - b.order;
1473
+ });
1474
+ this.modifiers.forEach(function (modifierOptions) {
1475
+ if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
1476
+ modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
1477
+ }
1478
+ });
1479
+ this.update();
1480
+ var eventsEnabled = this.options.eventsEnabled;
1481
+ if (eventsEnabled) {
1482
+ this.enableEventListeners();
1483
+ }
1484
+ this.state.eventsEnabled = eventsEnabled;
1485
+ }
1486
+ createClass(Popper, [{
1487
+ key: 'update',
1488
+ value: function update$$1() {
1489
+ return update.call(this);
1490
+ }
1491
+ }, {
1492
+ key: 'destroy',
1493
+ value: function destroy$$1() {
1494
+ return destroy.call(this);
1495
+ }
1496
+ }, {
1497
+ key: 'enableEventListeners',
1498
+ value: function enableEventListeners$$1() {
1499
+ return enableEventListeners.call(this);
1500
+ }
1501
+ }, {
1502
+ key: 'disableEventListeners',
1503
+ value: function disableEventListeners$$1() {
1504
+ return disableEventListeners.call(this);
1505
+ }
1506
+ }]);
1507
+ return Popper;
1508
+ }();
1509
+ Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
1510
+ Popper.placements = placements;
1511
+ Popper.Defaults = Defaults;
1512
+
1513
+ var variable = {
1514
+ dropdownMarginBottom: '4px'
1515
+ };
1516
+ var variable_1 = variable.dropdownMarginBottom;
1517
+
1518
+ var script = {
1519
+ name: 'bk-dropdown-menu',
1520
+ directives: {
1521
+ clickoutside: bkClickoutside
1522
+ },
1523
+ props: {
1524
+ trigger: {
1525
+ type: String,
1526
+ default: 'mouseover',
1527
+ validator: function validator(event) {
1528
+ return ['click', 'mouseover'].includes(event);
1529
+ }
1530
+ },
1531
+ align: {
1532
+ type: String,
1533
+ default: 'left'
1534
+ },
1535
+ disabled: {
1536
+ type: Boolean,
1537
+ default: false
1538
+ },
1539
+ positionFixed: {
1540
+ type: Boolean,
1541
+ default: false
1542
+ },
1543
+ fontSize: {
1544
+ type: String,
1545
+ default: 'normal'
1546
+ },
1547
+ extCls: {
1548
+ type: String,
1549
+ default: ''
1550
+ },
1551
+ openDelay: {
1552
+ type: Number,
1553
+ default: 0
1554
+ },
1555
+ closeDelay: {
1556
+ type: Number,
1557
+ default: 100
1558
+ }
1559
+ },
1560
+ data: function data() {
1561
+ return {
1562
+ menuStyle: null,
1563
+ timer: 0,
1564
+ isShow: false,
1565
+ popInstance: null,
1566
+ containerHeight: 32
1567
+ };
1568
+ },
1569
+ computed: {
1570
+ fontSizeCls: function fontSizeCls() {
1571
+ var cls = '';
1572
+ if (this.fontSize === 'medium') {
1573
+ cls = 'medium-font';
1574
+ } else if (this.fontSize === 'large') {
1575
+ cls = 'large-font';
1576
+ }
1577
+ return cls;
1578
+ }
1579
+ },
1580
+ mounted: function mounted() {
1581
+ this.containerHeight = this.containerHeight + _parseInt$2(variable_1, 10);
1582
+ var placement = "bottom".concat(this.getPlacementFix());
1583
+ this.popInstance = new Popper(this.$refs.refDropTrigger, this.$refs.refDropContent, {
1584
+ placement: placement,
1585
+ positionFixed: this.positionFixed,
1586
+ modifiers: {
1587
+ offset: {
1588
+ offset: "0, ".concat(variable_1)
1589
+ },
1590
+ keepTogether: {}
1591
+ }
1592
+ });
1593
+ },
1594
+ beforeDestroy: function beforeDestroy() {
1595
+ if (this.popInstance) {
1596
+ this.popInstance.destroy();
1597
+ this.popInstance = null;
1598
+ }
1599
+ },
1600
+ methods: {
1601
+ getPlacementFix: function getPlacementFix() {
1602
+ var placementFix = {
1603
+ 'left': '-start',
1604
+ 'right': '-end',
1605
+ 'center': ''
1606
+ };
1607
+ var fixAppend = placementFix[this.align];
1608
+ if (fixAppend !== undefined) {
1609
+ return fixAppend;
1610
+ }
1611
+ return '';
1612
+ },
1613
+ handleClick: function handleClick() {
1614
+ if (this.disabled || this.trigger !== 'click') {
1615
+ return;
1616
+ }
1617
+ this.isShow ? this.hide() : this.show();
1618
+ },
1619
+ handleMouseover: function handleMouseover() {
1620
+ if (this.trigger === 'mouseover' && !this.disabled) {
1621
+ this.show();
1622
+ }
1623
+ },
1624
+ handleMouseout: function handleMouseout() {
1625
+ if (this.trigger === 'mouseover' && !this.disabled) {
1626
+ this.hide();
1627
+ }
1628
+ },
1629
+ handleClickoutside: function handleClickoutside() {
1630
+ if (this.isShow) {
1631
+ this.hide();
1632
+ }
1633
+ },
1634
+ show: function show() {
1635
+ var _this = this;
1636
+ clearTimeout(this.openTimer);
1637
+ clearTimeout(this.closeTimer);
1638
+ this.openTimer = setTimeout(function () {
1639
+ _this.isShow = true;
1640
+ _this.$emit('show');
1641
+ }, this.openDelay);
1642
+ this.popInstance.scheduleUpdate();
1643
+ },
1644
+ hide: function hide() {
1645
+ var _this2 = this;
1646
+ clearTimeout(this.closeTimer);
1647
+ clearTimeout(this.openTimer);
1648
+ this.closeTimer = setTimeout(function () {
1649
+ _this2.isShow = false;
1650
+ _this2.$emit('hide');
1651
+ }, this.closeDelay);
1652
+ this.popInstance.scheduleUpdate();
1653
+ }
1654
+ }
1655
+ };
1656
+
1657
+ function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
1658
+ , shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
1659
+ if (typeof shadowMode !== 'boolean') {
1660
+ createInjectorSSR = createInjector;
1661
+ createInjector = shadowMode;
1662
+ shadowMode = false;
1663
+ }
1664
+ var options = typeof script === 'function' ? script.options : script;
1665
+ if (template && template.render) {
1666
+ options.render = template.render;
1667
+ options.staticRenderFns = template.staticRenderFns;
1668
+ options._compiled = true;
1669
+ if (isFunctionalTemplate) {
1670
+ options.functional = true;
1671
+ }
1672
+ }
1673
+ if (scopeId) {
1674
+ options._scopeId = scopeId;
1675
+ }
1676
+ var hook;
1677
+ if (moduleIdentifier) {
1678
+ hook = function hook(context) {
1679
+ context = context ||
1680
+ this.$vnode && this.$vnode.ssrContext ||
1681
+ this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;
1682
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
1683
+ context = __VUE_SSR_CONTEXT__;
1684
+ }
1685
+ if (style) {
1686
+ style.call(this, createInjectorSSR(context));
1687
+ }
1688
+ if (context && context._registeredComponents) {
1689
+ context._registeredComponents.add(moduleIdentifier);
1690
+ }
1691
+ };
1692
+ options._ssrRegister = hook;
1693
+ } else if (style) {
1694
+ hook = shadowMode ? function () {
1695
+ style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));
1696
+ } : function (context) {
1697
+ style.call(this, createInjector(context));
1698
+ };
1699
+ }
1700
+ if (hook) {
1701
+ if (options.functional) {
1702
+ var originalRender = options.render;
1703
+ options.render = function renderWithStyleInjection(h, context) {
1704
+ hook.call(context);
1705
+ return originalRender(h, context);
1706
+ };
1707
+ } else {
1708
+ var existing = options.beforeCreate;
1709
+ options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
1710
+ }
1711
+ }
1712
+ return script;
1713
+ }
1714
+ var normalizeComponent_1 = normalizeComponent;
1715
+
1716
+ /* script */
1717
+ var __vue_script__ = script;
1718
+ /* template */
1719
+
1720
+ var __vue_render__ = function __vue_render__() {
1721
+ var _vm = this;
1722
+
1723
+ var _h = _vm.$createElement;
1724
+
1725
+ var _c = _vm._self._c || _h;
1726
+
1727
+ return _c('div', {
1728
+ directives: [{
1729
+ name: "clickoutside",
1730
+ rawName: "v-clickoutside",
1731
+ value: _vm.handleClickoutside,
1732
+ expression: "handleClickoutside"
1733
+ }],
1734
+ staticClass: "bk-dropdown-menu",
1735
+ class: [_vm.disabled ? 'disabled' : '', _vm.positionFixed ? '' : 'bk-dropdown-full-width', _vm.fontSizeCls, _vm.extCls],
1736
+ style: {
1737
+ height: _vm.containerHeight + 'px'
1738
+ },
1739
+ attrs: {
1740
+ "tabindex": "0"
1741
+ },
1742
+ on: {
1743
+ "keydown": [function ($event) {
1744
+ if (!('button' in $event) && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) {
1745
+ return null;
1746
+ }
1747
+
1748
+ $event.preventDefault();
1749
+ return _vm.handleMouseover($event);
1750
+ }, function ($event) {
1751
+ if (!('button' in $event) && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) {
1752
+ return null;
1753
+ }
1754
+
1755
+ $event.stopPropagation();
1756
+ $event.preventDefault();
1757
+ return _vm.handleMouseout($event);
1758
+ }],
1759
+ "click": _vm.handleClick,
1760
+ "mouseenter": _vm.handleMouseover,
1761
+ "mouseleave": _vm.handleMouseout
1762
+ }
1763
+ }, [_c('div', {
1764
+ ref: "refDropTrigger",
1765
+ staticClass: "bk-dropdown-trigger"
1766
+ }, [_vm._t("dropdown-trigger")], 2), _c('div', {
1767
+ ref: "refDropContent",
1768
+ class: ['bk-dropdown-content', {
1769
+ 'is-show': _vm.isShow,
1770
+ 'right-align': _vm.align === 'right',
1771
+ 'center-align': _vm.align === 'center',
1772
+ 'left-align': _vm.align === 'left'
1773
+ }]
1774
+ }, [_vm._t("dropdown-content")], 2)]);
1775
+ };
1776
+
1777
+ var __vue_staticRenderFns__ = [];
1778
+ /* style */
1779
+
1780
+ var __vue_inject_styles__ = undefined;
1781
+ /* scoped */
1782
+
1783
+ var __vue_scope_id__ = undefined;
1784
+ /* module identifier */
1785
+
1786
+ var __vue_module_identifier__ = undefined;
1787
+ /* functional template */
1788
+
1789
+ var __vue_is_functional_template__ = false;
1790
+ /* style inject */
1791
+
1792
+ /* style inject SSR */
1793
+
1794
+ /* style inject shadow dom */
1795
+
1796
+ var __vue_component__ = /*#__PURE__*/normalizeComponent_1({
1797
+ render: __vue_render__,
1798
+ staticRenderFns: __vue_staticRenderFns__
1799
+ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);
1800
+
1801
+ var _toObject = function (it) {
1802
+ return Object(_defined(it));
1803
+ };
1804
+
1805
+ var toString = {}.toString;
1806
+ var _cof = function (it) {
1807
+ return toString.call(it).slice(8, -1);
1808
+ };
1809
+
1810
+ var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
1811
+ return _cof(it) == 'String' ? it.split('') : Object(it);
1812
+ };
1813
+
1814
+ var _toIobject = function (it) {
1815
+ return _iobject(_defined(it));
1816
+ };
1817
+
1818
+ var ceil = Math.ceil;
1819
+ var floor = Math.floor;
1820
+ var _toInteger = function (it) {
1821
+ return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1822
+ };
1823
+
1824
+ var min = Math.min;
1825
+ var _toLength = function (it) {
1826
+ return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0;
1827
+ };
1828
+
1829
+ var max = Math.max;
1830
+ var min$1 = Math.min;
1831
+ var _toAbsoluteIndex = function (index, length) {
1832
+ index = _toInteger(index);
1833
+ return index < 0 ? max(index + length, 0) : min$1(index, length);
1834
+ };
1835
+
1836
+ var _arrayIncludes = function (IS_INCLUDES) {
1837
+ return function ($this, el, fromIndex) {
1838
+ var O = _toIobject($this);
1839
+ var length = _toLength(O.length);
1840
+ var index = _toAbsoluteIndex(fromIndex, length);
1841
+ var value;
1842
+ if (IS_INCLUDES && el != el) while (length > index) {
1843
+ value = O[index++];
1844
+ if (value != value) return true;
1845
+ } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
1846
+ if (O[index] === el) return IS_INCLUDES || index || 0;
1847
+ } return !IS_INCLUDES && -1;
1848
+ };
1849
+ };
1850
+
1851
+ var _shared = createCommonjsModule(function (module) {
1852
+ var SHARED = '__core-js_shared__';
1853
+ var store = _global[SHARED] || (_global[SHARED] = {});
1854
+ (module.exports = function (key, value) {
1855
+ return store[key] || (store[key] = value !== undefined ? value : {});
1856
+ })('versions', []).push({
1857
+ version: _core.version,
1858
+ mode: 'pure' ,
1859
+ copyright: 2020 Denis Pushkarev (zloirock.ru)'
1860
+ });
1861
+ });
1862
+
1863
+ var id = 0;
1864
+ var px = Math.random();
1865
+ var _uid = function (key) {
1866
+ return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1867
+ };
1868
+
1869
+ var shared = _shared('keys');
1870
+ var _sharedKey = function (key) {
1871
+ return shared[key] || (shared[key] = _uid(key));
1872
+ };
1873
+
1874
+ var arrayIndexOf = _arrayIncludes(false);
1875
+ var IE_PROTO = _sharedKey('IE_PROTO');
1876
+ var _objectKeysInternal = function (object, names) {
1877
+ var O = _toIobject(object);
1878
+ var i = 0;
1879
+ var result = [];
1880
+ var key;
1881
+ for (key in O) if (key != IE_PROTO) _has(O, key) && result.push(key);
1882
+ while (names.length > i) if (_has(O, key = names[i++])) {
1883
+ ~arrayIndexOf(result, key) || result.push(key);
1884
+ }
1885
+ return result;
1886
+ };
1887
+
1888
+ var _enumBugKeys = (
1889
+ 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
1890
+ ).split(',');
1891
+
1892
+ var _objectKeys = Object.keys || function keys(O) {
1893
+ return _objectKeysInternal(O, _enumBugKeys);
1894
+ };
1895
+
1896
+ var _objectSap = function (KEY, exec) {
1897
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
1898
+ var exp = {};
1899
+ exp[KEY] = exec(fn);
1900
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
1901
+ };
1902
+
1903
+ _objectSap('keys', function () {
1904
+ return function keys(it) {
1905
+ return _objectKeys(_toObject(it));
1906
+ };
1907
+ });
1908
+
1909
+ var keys = _core.Object.keys;
1910
+
1911
+ var keys$1 = keys;
1912
+
1913
+ function setInstaller (component, afterInstall) {
1914
+ component.install = function (Vue) {
1915
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1916
+ var props = component.props || {};
1917
+ keys$1(options).forEach(function (key) {
1918
+ if (props.hasOwnProperty(key)) {
1919
+ if (typeof props[key] === 'function' || props[key] instanceof Array) {
1920
+ props[key] = {
1921
+ type: props[key],
1922
+ default: options[key]
1923
+ };
1924
+ } else {
1925
+ props[key].default = options[key];
1926
+ }
1927
+ }
1928
+ });
1929
+ component.name = options.namespace ? component.name.replace('bk', options.namespace) : component.name;
1930
+ Vue.component(component.name, component);
1931
+ typeof afterInstall === 'function' && afterInstall(Vue, options);
1932
+ };
1933
+ }
1934
+
1935
+ setInstaller(__vue_component__);
1936
+
1937
+ exports.default = __vue_component__;
1938
+
1939
+ Object.defineProperty(exports, '__esModule', { value: true });
1895
1940
 
1896
1941
  }));