buefy 0.9.26 → 0.9.28
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.
- package/README.md +3 -1
- package/dist/buefy.css +15904 -0
- package/dist/buefy.esm.js +17883 -0
- package/dist/buefy.esm.min.js +2 -0
- package/dist/buefy.js +17967 -0
- package/dist/buefy.min.css +1 -0
- package/dist/buefy.min.js +2 -0
- package/dist/cjs/Autocomplete-7a39c5ce.js +673 -0
- package/dist/cjs/Button-01827709.js +114 -0
- package/dist/cjs/CheckRadioMixin-c910f2ed.js +45 -0
- package/dist/cjs/Checkbox-43f54cc7.js +70 -0
- package/dist/cjs/Datepicker-680659bc.js +1679 -0
- package/dist/cjs/DropdownItem-422f8c34.js +559 -0
- package/dist/cjs/Field-4557b10c.js +315 -0
- package/dist/cjs/FormElementMixin-193a88b8.js +163 -0
- package/dist/cjs/Icon-78961800.js +189 -0
- package/dist/cjs/Image-c4bcd9b3.js +299 -0
- package/dist/cjs/InjectedChildMixin-d6bf7f91.js +135 -0
- package/dist/cjs/Input-e5a72d97.js +248 -0
- package/dist/cjs/Loading-6f2c7075.js +150 -0
- package/dist/cjs/MessageMixin-8d959514.js +146 -0
- package/dist/cjs/Modal-4cf07210.js +278 -0
- package/dist/cjs/NoticeMixin-01121bd2.js +154 -0
- package/dist/cjs/Pagination-d6b3fb85.js +413 -0
- package/dist/cjs/Select-2b3879bc.js +100 -0
- package/dist/cjs/SlotComponent-4fb48389.js +53 -0
- package/dist/cjs/TabbedChildMixin-907cad32.js +222 -0
- package/dist/cjs/Tag-437f65fb.js +154 -0
- package/dist/cjs/Timepicker-498fa02b.js +67 -0
- package/dist/cjs/TimepickerMixin-6c1a4ab4.js +661 -0
- package/dist/cjs/Tooltip-c1df7ee3.js +370 -0
- package/dist/cjs/_rollupPluginBabelHelpers-8b2e54ad.js +365 -0
- package/dist/cjs/autocomplete.js +22 -0
- package/dist/cjs/breadcrumb.js +139 -0
- package/dist/cjs/button.js +20 -0
- package/dist/cjs/carousel.js +662 -0
- package/dist/cjs/checkbox.js +86 -0
- package/dist/cjs/clockpicker.js +461 -0
- package/dist/cjs/collapse.js +128 -0
- package/dist/cjs/colorpicker.js +23 -0
- package/dist/cjs/config-8cfb5a4a.js +81 -0
- package/dist/cjs/config.js +18 -0
- package/dist/cjs/datepicker.js +27 -0
- package/dist/cjs/datetimepicker.js +377 -0
- package/dist/cjs/dialog.js +308 -0
- package/dist/cjs/dropdown.js +23 -0
- package/dist/cjs/field.js +18 -0
- package/dist/cjs/helpers.js +375 -0
- package/dist/cjs/icon.js +19 -0
- package/dist/cjs/image.js +19 -0
- package/dist/cjs/index-99d1c930.js +1633 -0
- package/dist/cjs/index.js +216 -0
- package/dist/cjs/input.js +21 -0
- package/dist/cjs/loading.js +38 -0
- package/dist/cjs/menu.js +304 -0
- package/dist/cjs/message.js +67 -0
- package/dist/cjs/modal.js +59 -0
- package/dist/cjs/navbar.js +679 -0
- package/dist/cjs/notification.js +181 -0
- package/dist/cjs/numberinput.js +278 -0
- package/dist/cjs/pagination.js +22 -0
- package/dist/cjs/plugins-7f41b028.js +94 -0
- package/dist/cjs/progress.js +239 -0
- package/dist/cjs/radio.js +130 -0
- package/dist/cjs/rate.js +156 -0
- package/dist/cjs/select.js +21 -0
- package/dist/cjs/sidebar.js +303 -0
- package/dist/cjs/skeleton.js +111 -0
- package/dist/cjs/slider.js +603 -0
- package/dist/cjs/snackbar.js +132 -0
- package/dist/cjs/ssr-20dba236.js +10 -0
- package/dist/cjs/steps.js +278 -0
- package/dist/cjs/switch.js +139 -0
- package/dist/cjs/table.js +1695 -0
- package/dist/cjs/tabs.js +214 -0
- package/dist/cjs/tag.js +70 -0
- package/dist/cjs/taginput.js +331 -0
- package/dist/cjs/timepicker.js +28 -0
- package/dist/cjs/toast.js +106 -0
- package/dist/cjs/tooltip.js +19 -0
- package/dist/cjs/trapFocus-261420b0.js +49 -0
- package/dist/cjs/upload.js +205 -0
- package/dist/components/autocomplete/index.js +1620 -0
- package/dist/components/autocomplete/index.min.js +2 -0
- package/dist/components/breadcrumb/index.js +297 -0
- package/dist/components/breadcrumb/index.min.js +2 -0
- package/dist/components/button/index.js +569 -0
- package/dist/components/button/index.min.js +2 -0
- package/dist/components/carousel/index.js +1629 -0
- package/dist/components/carousel/index.min.js +2 -0
- package/dist/components/checkbox/index.js +279 -0
- package/dist/components/checkbox/index.min.js +2 -0
- package/dist/components/clockpicker/index.js +3131 -0
- package/dist/components/clockpicker/index.min.js +2 -0
- package/dist/components/collapse/index.js +217 -0
- package/dist/components/collapse/index.min.js +2 -0
- package/dist/components/colorpicker/index.js +4249 -0
- package/dist/components/colorpicker/index.min.js +2 -0
- package/dist/components/datepicker/index.js +3845 -0
- package/dist/components/datepicker/index.min.js +2 -0
- package/dist/components/datetimepicker/index.js +4902 -0
- package/dist/components/datetimepicker/index.min.js +2 -0
- package/dist/components/dialog/index.js +1168 -0
- package/dist/components/dialog/index.min.js +2 -0
- package/dist/components/dropdown/index.js +1043 -0
- package/dist/components/dropdown/index.min.js +2 -0
- package/dist/components/field/index.js +511 -0
- package/dist/components/field/index.min.js +2 -0
- package/dist/components/icon/index.js +463 -0
- package/dist/components/icon/index.min.js +2 -0
- package/dist/components/image/index.js +513 -0
- package/dist/components/image/index.min.js +2 -0
- package/dist/components/input/index.js +862 -0
- package/dist/components/input/index.min.js +2 -0
- package/dist/components/loading/index.js +366 -0
- package/dist/components/loading/index.min.js +2 -0
- package/dist/components/menu/index.js +748 -0
- package/dist/components/menu/index.min.js +2 -0
- package/dist/components/message/index.js +650 -0
- package/dist/components/message/index.min.js +2 -0
- package/dist/components/modal/index.js +624 -0
- package/dist/components/modal/index.min.js +2 -0
- package/dist/components/navbar/index.js +805 -0
- package/dist/components/navbar/index.min.js +2 -0
- package/dist/components/notification/index.js +923 -0
- package/dist/components/notification/index.min.js +2 -0
- package/dist/components/numberinput/index.js +1119 -0
- package/dist/components/numberinput/index.min.js +2 -0
- package/dist/components/pagination/index.js +868 -0
- package/dist/components/pagination/index.min.js +2 -0
- package/dist/components/progress/index.js +621 -0
- package/dist/components/progress/index.min.js +2 -0
- package/dist/components/radio/index.js +260 -0
- package/dist/components/radio/index.min.js +2 -0
- package/dist/components/rate/index.js +600 -0
- package/dist/components/rate/index.min.js +2 -0
- package/dist/components/select/index.js +715 -0
- package/dist/components/select/index.min.js +2 -0
- package/dist/components/sidebar/index.js +467 -0
- package/dist/components/sidebar/index.min.js +2 -0
- package/dist/components/skeleton/index.js +200 -0
- package/dist/components/skeleton/index.min.js +2 -0
- package/dist/components/slider/index.js +1264 -0
- package/dist/components/slider/index.min.js +2 -0
- package/dist/components/snackbar/index.js +527 -0
- package/dist/components/snackbar/index.min.js +2 -0
- package/dist/components/steps/index.js +1180 -0
- package/dist/components/steps/index.min.js +2 -0
- package/dist/components/switch/index.js +297 -0
- package/dist/components/switch/index.min.js +2 -0
- package/dist/components/table/index.js +3480 -0
- package/dist/components/table/index.min.js +2 -0
- package/dist/components/tabs/index.js +1116 -0
- package/dist/components/tabs/index.min.js +2 -0
- package/dist/components/tag/index.js +307 -0
- package/dist/components/tag/index.min.js +2 -0
- package/dist/components/taginput/index.js +2104 -0
- package/dist/components/taginput/index.min.js +2 -0
- package/dist/components/timepicker/index.js +2843 -0
- package/dist/components/timepicker/index.min.js +2 -0
- package/dist/components/toast/index.js +501 -0
- package/dist/components/toast/index.min.js +2 -0
- package/dist/components/tooltip/index.js +630 -0
- package/dist/components/tooltip/index.min.js +2 -0
- package/dist/components/upload/index.js +525 -0
- package/dist/components/upload/index.min.js +2 -0
- package/dist/esm/Autocomplete-1a6e8770.js +671 -0
- package/dist/esm/Button-521f6efc.js +112 -0
- package/dist/esm/CheckRadioMixin-e726a83c.js +43 -0
- package/dist/esm/Checkbox-1d02686e.js +68 -0
- package/dist/esm/Datepicker-0ae1e826.js +1677 -0
- package/dist/esm/DropdownItem-55682322.js +556 -0
- package/dist/esm/Field-3ceba31e.js +313 -0
- package/dist/esm/FormElementMixin-b223d3c7.js +161 -0
- package/dist/esm/Icon-60d47b31.js +187 -0
- package/dist/esm/Image-75808acb.js +297 -0
- package/dist/esm/InjectedChildMixin-b4220787.js +130 -0
- package/dist/esm/Input-20612b63.js +246 -0
- package/dist/esm/Loading-ae028ea5.js +148 -0
- package/dist/esm/MessageMixin-d577a9f5.js +144 -0
- package/dist/esm/Modal-7da7641f.js +276 -0
- package/dist/esm/NoticeMixin-bd6f61d9.js +152 -0
- package/dist/esm/Pagination-68f12c1e.js +409 -0
- package/dist/esm/Select-97781d4e.js +98 -0
- package/dist/esm/SlotComponent-8871a20f.js +51 -0
- package/dist/esm/TabbedChildMixin-bcb13767.js +219 -0
- package/dist/esm/Tag-6365aa46.js +152 -0
- package/dist/esm/Timepicker-38480bbc.js +65 -0
- package/dist/esm/TimepickerMixin-d736b0a9.js +659 -0
- package/dist/esm/Tooltip-d98a769c.js +368 -0
- package/dist/esm/_rollupPluginBabelHelpers-df313029.js +350 -0
- package/dist/esm/autocomplete.js +18 -0
- package/dist/esm/breadcrumb.js +133 -0
- package/dist/esm/button.js +16 -0
- package/dist/esm/carousel.js +655 -0
- package/dist/esm/checkbox.js +81 -0
- package/dist/esm/clockpicker.js +456 -0
- package/dist/esm/collapse.js +123 -0
- package/dist/esm/colorpicker.js +14 -0
- package/dist/esm/config-e7d4b9c2.js +78 -0
- package/dist/esm/config.js +14 -0
- package/dist/esm/datepicker.js +23 -0
- package/dist/esm/datetimepicker.js +372 -0
- package/dist/esm/dialog.js +302 -0
- package/dist/esm/dropdown.js +18 -0
- package/dist/esm/field.js +14 -0
- package/dist/esm/helpers.js +348 -0
- package/dist/esm/icon.js +15 -0
- package/dist/esm/image.js +15 -0
- package/dist/esm/index-903f63ea.js +1629 -0
- package/dist/esm/index.js +182 -0
- package/dist/esm/input.js +17 -0
- package/dist/esm/loading.js +33 -0
- package/dist/esm/menu.js +297 -0
- package/dist/esm/message.js +62 -0
- package/dist/esm/modal.js +54 -0
- package/dist/esm/navbar.js +672 -0
- package/dist/esm/notification.js +175 -0
- package/dist/esm/numberinput.js +273 -0
- package/dist/esm/pagination.js +17 -0
- package/dist/esm/plugins-218aea86.js +89 -0
- package/dist/esm/progress.js +233 -0
- package/dist/esm/radio.js +124 -0
- package/dist/esm/rate.js +151 -0
- package/dist/esm/select.js +17 -0
- package/dist/esm/sidebar.js +298 -0
- package/dist/esm/skeleton.js +106 -0
- package/dist/esm/slider.js +597 -0
- package/dist/esm/snackbar.js +126 -0
- package/dist/esm/ssr-b847d137.js +7 -0
- package/dist/esm/steps.js +272 -0
- package/dist/esm/switch.js +134 -0
- package/dist/esm/table.js +1689 -0
- package/dist/esm/tabs.js +208 -0
- package/dist/esm/tag.js +65 -0
- package/dist/esm/taginput.js +326 -0
- package/dist/esm/timepicker.js +24 -0
- package/dist/esm/toast.js +100 -0
- package/dist/esm/tooltip.js +15 -0
- package/dist/esm/trapFocus-f0736873.js +47 -0
- package/dist/esm/upload.js +200 -0
- package/dist/vetur/attributes.json +3238 -0
- package/dist/vetur/tags.json +1183 -0
- package/package.json +3 -3
- package/src/components/autocomplete/Autocomplete.spec.js +16 -0
- package/src/components/autocomplete/Autocomplete.vue +9 -3
- package/src/components/colorpicker/ColorpickerHSLRepresentationSquare.vue +2 -0
- package/src/components/colorpicker/ColorpickerHSLRepresentationTriangle.vue +2 -0
- package/src/components/dropdown/Dropdown.vue +51 -3
- package/src/components/numberinput/Numberinput.vue +4 -0
- package/src/components/sidebar/Sidebar.vue +1 -0
- package/src/components/slider/Slider.vue +7 -2
- package/src/components/slider/SliderThumb.vue +8 -0
- package/src/components/table/Table.vue +4 -1
- package/src/components/table/TableColumn.spec.js +51 -0
- package/src/components/table/TableColumn.vue +8 -1
- package/src/components/taginput/Taginput.vue +7 -2
- package/src/components/tooltip/Tooltip.vue +10 -3
- package/src/scss/components/_dropdown.scss +4 -2
|
@@ -0,0 +1,1043 @@
|
|
|
1
|
+
/*! Buefy v0.9.28 | MIT License | github.com/buefy/buefy */
|
|
2
|
+
(function (global, factory) {
|
|
3
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
4
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
5
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Dropdown = {}));
|
|
6
|
+
})(this, (function (exports) { 'use strict';
|
|
7
|
+
|
|
8
|
+
function _toPrimitive(t, r) {
|
|
9
|
+
if ("object" != typeof t || !t) return t;
|
|
10
|
+
var e = t[Symbol.toPrimitive];
|
|
11
|
+
if (void 0 !== e) {
|
|
12
|
+
var i = e.call(t, r || "default");
|
|
13
|
+
if ("object" != typeof i) return i;
|
|
14
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
15
|
+
}
|
|
16
|
+
return ("string" === r ? String : Number)(t);
|
|
17
|
+
}
|
|
18
|
+
function _toPropertyKey(t) {
|
|
19
|
+
var i = _toPrimitive(t, "string");
|
|
20
|
+
return "symbol" == typeof i ? i : String(i);
|
|
21
|
+
}
|
|
22
|
+
function _typeof(o) {
|
|
23
|
+
"@babel/helpers - typeof";
|
|
24
|
+
|
|
25
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
26
|
+
return typeof o;
|
|
27
|
+
} : function (o) {
|
|
28
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
29
|
+
}, _typeof(o);
|
|
30
|
+
}
|
|
31
|
+
function _defineProperty(obj, key, value) {
|
|
32
|
+
key = _toPropertyKey(key);
|
|
33
|
+
if (key in obj) {
|
|
34
|
+
Object.defineProperty(obj, key, {
|
|
35
|
+
value: value,
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
obj[key] = value;
|
|
42
|
+
}
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
function _toConsumableArray(arr) {
|
|
46
|
+
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
47
|
+
}
|
|
48
|
+
function _arrayWithoutHoles(arr) {
|
|
49
|
+
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
50
|
+
}
|
|
51
|
+
function _iterableToArray(iter) {
|
|
52
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
53
|
+
}
|
|
54
|
+
function _unsupportedIterableToArray(o, minLen) {
|
|
55
|
+
if (!o) return;
|
|
56
|
+
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
57
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
58
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
59
|
+
if (n === "Map" || n === "Set") return Array.from(o);
|
|
60
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
61
|
+
}
|
|
62
|
+
function _arrayLikeToArray(arr, len) {
|
|
63
|
+
if (len == null || len > arr.length) len = arr.length;
|
|
64
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
65
|
+
return arr2;
|
|
66
|
+
}
|
|
67
|
+
function _nonIterableSpread() {
|
|
68
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
69
|
+
}
|
|
70
|
+
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
71
|
+
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
72
|
+
if (!it) {
|
|
73
|
+
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
|
74
|
+
if (it) o = it;
|
|
75
|
+
var i = 0;
|
|
76
|
+
var F = function () {};
|
|
77
|
+
return {
|
|
78
|
+
s: F,
|
|
79
|
+
n: function () {
|
|
80
|
+
if (i >= o.length) return {
|
|
81
|
+
done: true
|
|
82
|
+
};
|
|
83
|
+
return {
|
|
84
|
+
done: false,
|
|
85
|
+
value: o[i++]
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
e: function (e) {
|
|
89
|
+
throw e;
|
|
90
|
+
},
|
|
91
|
+
f: F
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
95
|
+
}
|
|
96
|
+
var normalCompletion = true,
|
|
97
|
+
didErr = false,
|
|
98
|
+
err;
|
|
99
|
+
return {
|
|
100
|
+
s: function () {
|
|
101
|
+
it = it.call(o);
|
|
102
|
+
},
|
|
103
|
+
n: function () {
|
|
104
|
+
var step = it.next();
|
|
105
|
+
normalCompletion = step.done;
|
|
106
|
+
return step;
|
|
107
|
+
},
|
|
108
|
+
e: function (e) {
|
|
109
|
+
didErr = true;
|
|
110
|
+
err = e;
|
|
111
|
+
},
|
|
112
|
+
f: function () {
|
|
113
|
+
try {
|
|
114
|
+
if (!normalCompletion && it.return != null) it.return();
|
|
115
|
+
} finally {
|
|
116
|
+
if (didErr) throw err;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var findFocusable = function findFocusable(element) {
|
|
123
|
+
var programmatic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
124
|
+
if (!element) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
if (programmatic) {
|
|
128
|
+
return element.querySelectorAll("*[tabindex=\"-1\"]");
|
|
129
|
+
}
|
|
130
|
+
return element.querySelectorAll("a[href]:not([tabindex=\"-1\"]),\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n *[tabindex]:not([tabindex=\"-1\"]),\n *[contenteditable]");
|
|
131
|
+
};
|
|
132
|
+
var onKeyDown;
|
|
133
|
+
var bind = function bind(el, _ref) {
|
|
134
|
+
var _ref$value = _ref.value,
|
|
135
|
+
value = _ref$value === void 0 ? true : _ref$value;
|
|
136
|
+
if (value) {
|
|
137
|
+
var focusable = findFocusable(el);
|
|
138
|
+
var focusableProg = findFocusable(el, true);
|
|
139
|
+
if (focusable && focusable.length > 0) {
|
|
140
|
+
onKeyDown = function onKeyDown(event) {
|
|
141
|
+
// Need to get focusable each time since it can change between key events
|
|
142
|
+
// ex. changing month in a datepicker
|
|
143
|
+
focusable = findFocusable(el);
|
|
144
|
+
focusableProg = findFocusable(el, true);
|
|
145
|
+
var firstFocusable = focusable[0];
|
|
146
|
+
var lastFocusable = focusable[focusable.length - 1];
|
|
147
|
+
if (event.target === firstFocusable && event.shiftKey && event.key === 'Tab') {
|
|
148
|
+
event.preventDefault();
|
|
149
|
+
lastFocusable.focus();
|
|
150
|
+
} else if ((event.target === lastFocusable || Array.from(focusableProg).indexOf(event.target) >= 0) && !event.shiftKey && event.key === 'Tab') {
|
|
151
|
+
event.preventDefault();
|
|
152
|
+
firstFocusable.focus();
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
el.addEventListener('keydown', onKeyDown);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
var unbind = function unbind(el) {
|
|
160
|
+
el.removeEventListener('keydown', onKeyDown);
|
|
161
|
+
};
|
|
162
|
+
var directive = {
|
|
163
|
+
bind: bind,
|
|
164
|
+
unbind: unbind
|
|
165
|
+
};
|
|
166
|
+
var trapFocus = directive;
|
|
167
|
+
|
|
168
|
+
var config = {
|
|
169
|
+
defaultContainerElement: null,
|
|
170
|
+
defaultIconPack: 'mdi',
|
|
171
|
+
defaultIconComponent: null,
|
|
172
|
+
defaultIconPrev: 'chevron-left',
|
|
173
|
+
defaultIconNext: 'chevron-right',
|
|
174
|
+
defaultLocale: undefined,
|
|
175
|
+
defaultDialogConfirmText: null,
|
|
176
|
+
defaultDialogCancelText: null,
|
|
177
|
+
defaultSnackbarDuration: 3500,
|
|
178
|
+
defaultSnackbarPosition: null,
|
|
179
|
+
defaultToastDuration: 2000,
|
|
180
|
+
defaultToastPosition: null,
|
|
181
|
+
defaultNotificationDuration: 2000,
|
|
182
|
+
defaultNotificationPosition: null,
|
|
183
|
+
defaultTooltipType: 'is-primary',
|
|
184
|
+
defaultTooltipDelay: null,
|
|
185
|
+
defaultTooltipCloseDelay: null,
|
|
186
|
+
defaultSidebarDelay: null,
|
|
187
|
+
defaultInputAutocomplete: 'on',
|
|
188
|
+
defaultDateFormatter: null,
|
|
189
|
+
defaultDateParser: null,
|
|
190
|
+
defaultDateCreator: null,
|
|
191
|
+
defaultTimeCreator: null,
|
|
192
|
+
defaultDayNames: null,
|
|
193
|
+
defaultMonthNames: null,
|
|
194
|
+
defaultFirstDayOfWeek: null,
|
|
195
|
+
defaultUnselectableDaysOfWeek: null,
|
|
196
|
+
defaultTimeFormatter: null,
|
|
197
|
+
defaultTimeParser: null,
|
|
198
|
+
defaultModalCanCancel: ['escape', 'x', 'outside', 'button'],
|
|
199
|
+
defaultModalScroll: null,
|
|
200
|
+
defaultDatepickerMobileNative: true,
|
|
201
|
+
defaultTimepickerMobileNative: true,
|
|
202
|
+
defaultTimepickerMobileModal: true,
|
|
203
|
+
defaultNoticeQueue: true,
|
|
204
|
+
defaultInputHasCounter: true,
|
|
205
|
+
defaultTaginputHasCounter: true,
|
|
206
|
+
defaultUseHtml5Validation: true,
|
|
207
|
+
defaultDropdownMobileModal: true,
|
|
208
|
+
defaultFieldLabelPosition: null,
|
|
209
|
+
defaultDatepickerYearsRange: [-100, 10],
|
|
210
|
+
defaultDatepickerNearbyMonthDays: true,
|
|
211
|
+
defaultDatepickerNearbySelectableMonthDays: false,
|
|
212
|
+
defaultDatepickerShowWeekNumber: false,
|
|
213
|
+
defaultDatepickerWeekNumberClickable: false,
|
|
214
|
+
defaultDatepickerMobileModal: true,
|
|
215
|
+
defaultTrapFocus: true,
|
|
216
|
+
defaultAutoFocus: true,
|
|
217
|
+
defaultButtonRounded: false,
|
|
218
|
+
defaultSwitchRounded: true,
|
|
219
|
+
defaultCarouselInterval: 3500,
|
|
220
|
+
defaultTabsExpanded: false,
|
|
221
|
+
defaultTabsAnimated: true,
|
|
222
|
+
defaultTabsType: null,
|
|
223
|
+
defaultStatusIcon: true,
|
|
224
|
+
defaultProgrammaticPromise: false,
|
|
225
|
+
defaultLinkTags: ['a', 'button', 'input', 'router-link', 'nuxt-link', 'n-link', 'RouterLink', 'NuxtLink', 'NLink'],
|
|
226
|
+
defaultImageWebpFallback: null,
|
|
227
|
+
defaultImageLazy: true,
|
|
228
|
+
defaultImageResponsive: true,
|
|
229
|
+
defaultImageRatio: null,
|
|
230
|
+
defaultImageSrcsetFormatter: null,
|
|
231
|
+
defaultBreadcrumbTag: 'a',
|
|
232
|
+
defaultBreadcrumbAlign: 'is-left',
|
|
233
|
+
defaultBreadcrumbSeparator: '',
|
|
234
|
+
defaultBreadcrumbSize: 'is-medium',
|
|
235
|
+
customIconPacks: null
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Checks if the flag is set
|
|
240
|
+
* @param val
|
|
241
|
+
* @param flag
|
|
242
|
+
* @returns {boolean}
|
|
243
|
+
*/
|
|
244
|
+
function hasFlag(val, flag) {
|
|
245
|
+
return (val & flag) === flag;
|
|
246
|
+
}
|
|
247
|
+
function removeElement(el) {
|
|
248
|
+
if (typeof el.remove !== 'undefined') {
|
|
249
|
+
el.remove();
|
|
250
|
+
} else if (typeof el.parentNode !== 'undefined' && el.parentNode !== null) {
|
|
251
|
+
el.parentNode.removeChild(el);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
function createAbsoluteElement(el) {
|
|
255
|
+
var root = document.createElement('div');
|
|
256
|
+
root.style.position = 'absolute';
|
|
257
|
+
root.style.left = '0px';
|
|
258
|
+
root.style.top = '0px';
|
|
259
|
+
root.style.width = '100%';
|
|
260
|
+
var wrapper = document.createElement('div');
|
|
261
|
+
root.appendChild(wrapper);
|
|
262
|
+
wrapper.appendChild(el);
|
|
263
|
+
document.body.appendChild(root);
|
|
264
|
+
return root;
|
|
265
|
+
}
|
|
266
|
+
function toCssWidth(width) {
|
|
267
|
+
return width === undefined ? null : isNaN(width) ? width : width + 'px';
|
|
268
|
+
}
|
|
269
|
+
function isCustomElement(vm) {
|
|
270
|
+
return 'shadowRoot' in vm.$root.$options;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var items = 1;
|
|
274
|
+
var sorted$1 = 3;
|
|
275
|
+
var ProviderParentMixin = (function (itemName) {
|
|
276
|
+
var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
277
|
+
var mixin = {
|
|
278
|
+
provide: function provide() {
|
|
279
|
+
return _defineProperty({}, 'b' + itemName, this);
|
|
280
|
+
}
|
|
281
|
+
};
|
|
282
|
+
if (hasFlag(flags, items)) {
|
|
283
|
+
mixin.data = function () {
|
|
284
|
+
return {
|
|
285
|
+
childItems: []
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
mixin.methods = {
|
|
289
|
+
_registerItem: function _registerItem(item) {
|
|
290
|
+
this.childItems.push(item);
|
|
291
|
+
},
|
|
292
|
+
_unregisterItem: function _unregisterItem(item) {
|
|
293
|
+
this.childItems = this.childItems.filter(function (i) {
|
|
294
|
+
return i !== item;
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
if (hasFlag(flags, sorted$1)) {
|
|
299
|
+
mixin.watch = {
|
|
300
|
+
/**
|
|
301
|
+
* When items are added/removed deep search in the elements default's slot
|
|
302
|
+
* And mark the items with their index
|
|
303
|
+
*/
|
|
304
|
+
childItems: function childItems(items) {
|
|
305
|
+
if (items.length > 0 && this.$scopedSlots.default) {
|
|
306
|
+
var tag = items[0].$vnode.tag;
|
|
307
|
+
var index = 0;
|
|
308
|
+
var deepSearch = function deepSearch(children) {
|
|
309
|
+
var _iterator = _createForOfIteratorHelper(children),
|
|
310
|
+
_step;
|
|
311
|
+
try {
|
|
312
|
+
var _loop = function _loop() {
|
|
313
|
+
var child = _step.value;
|
|
314
|
+
if (child.tag === tag) {
|
|
315
|
+
// An item with the same tag will for sure be found
|
|
316
|
+
var it = items.find(function (i) {
|
|
317
|
+
return i.$vnode === child;
|
|
318
|
+
});
|
|
319
|
+
if (it) {
|
|
320
|
+
it.index = index++;
|
|
321
|
+
}
|
|
322
|
+
} else if (child.tag) {
|
|
323
|
+
var sub = child.componentInstance ? child.componentInstance.$scopedSlots.default ? child.componentInstance.$scopedSlots.default() : child.componentInstance.$children : child.children;
|
|
324
|
+
if (Array.isArray(sub) && sub.length > 0) {
|
|
325
|
+
deepSearch(sub.map(function (e) {
|
|
326
|
+
return e.$vnode;
|
|
327
|
+
}));
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
};
|
|
331
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
332
|
+
_loop();
|
|
333
|
+
}
|
|
334
|
+
} catch (err) {
|
|
335
|
+
_iterator.e(err);
|
|
336
|
+
} finally {
|
|
337
|
+
_iterator.f();
|
|
338
|
+
}
|
|
339
|
+
return false;
|
|
340
|
+
};
|
|
341
|
+
deepSearch(this.$scopedSlots.default());
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
mixin.computed = {
|
|
346
|
+
/**
|
|
347
|
+
* When items are added/removed sort them according to their position
|
|
348
|
+
*/
|
|
349
|
+
sortedItems: function sortedItems() {
|
|
350
|
+
return this.childItems.slice().sort(function (i1, i2) {
|
|
351
|
+
return i1.index - i2.index;
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return mixin;
|
|
358
|
+
});
|
|
359
|
+
|
|
360
|
+
var DEFAULT_CLOSE_OPTIONS = ['escape', 'outside'];
|
|
361
|
+
var script$1 = {
|
|
362
|
+
name: 'BDropdown',
|
|
363
|
+
directives: {
|
|
364
|
+
trapFocus: trapFocus
|
|
365
|
+
},
|
|
366
|
+
mixins: [ProviderParentMixin('dropdown')],
|
|
367
|
+
props: {
|
|
368
|
+
value: {
|
|
369
|
+
type: [String, Number, Boolean, Object, Array, Function],
|
|
370
|
+
default: null
|
|
371
|
+
},
|
|
372
|
+
disabled: Boolean,
|
|
373
|
+
inline: Boolean,
|
|
374
|
+
scrollable: Boolean,
|
|
375
|
+
maxHeight: {
|
|
376
|
+
type: [String, Number],
|
|
377
|
+
default: 200
|
|
378
|
+
},
|
|
379
|
+
position: {
|
|
380
|
+
type: String,
|
|
381
|
+
validator: function validator(value) {
|
|
382
|
+
return ['is-top-right', 'is-top-left', 'is-bottom-left', 'is-bottom-right'].indexOf(value) > -1;
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
triggers: {
|
|
386
|
+
type: Array,
|
|
387
|
+
default: function _default() {
|
|
388
|
+
return ['click'];
|
|
389
|
+
}
|
|
390
|
+
},
|
|
391
|
+
mobileModal: {
|
|
392
|
+
type: Boolean,
|
|
393
|
+
default: function _default() {
|
|
394
|
+
return config.defaultDropdownMobileModal;
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
ariaRole: {
|
|
398
|
+
type: String,
|
|
399
|
+
validator: function validator(value) {
|
|
400
|
+
return ['menu', 'list', 'dialog'].indexOf(value) > -1;
|
|
401
|
+
},
|
|
402
|
+
default: null
|
|
403
|
+
},
|
|
404
|
+
animation: {
|
|
405
|
+
type: String,
|
|
406
|
+
default: 'fade'
|
|
407
|
+
},
|
|
408
|
+
multiple: Boolean,
|
|
409
|
+
trapFocus: {
|
|
410
|
+
type: Boolean,
|
|
411
|
+
default: function _default() {
|
|
412
|
+
return config.defaultTrapFocus;
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
closeOnClick: {
|
|
416
|
+
type: Boolean,
|
|
417
|
+
default: true
|
|
418
|
+
},
|
|
419
|
+
canClose: {
|
|
420
|
+
type: [Array, Boolean],
|
|
421
|
+
default: true
|
|
422
|
+
},
|
|
423
|
+
expanded: Boolean,
|
|
424
|
+
appendToBody: Boolean,
|
|
425
|
+
appendToBodyCopyParent: Boolean,
|
|
426
|
+
triggerTabindex: {
|
|
427
|
+
type: Number,
|
|
428
|
+
default: 0
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
data: function data() {
|
|
432
|
+
return {
|
|
433
|
+
selected: this.value,
|
|
434
|
+
style: {},
|
|
435
|
+
isActive: false,
|
|
436
|
+
isHoverable: false,
|
|
437
|
+
maybeTap: false,
|
|
438
|
+
isTouchEnabled: false,
|
|
439
|
+
_bodyEl: undefined,
|
|
440
|
+
// Used to append to body
|
|
441
|
+
timeOutID: null,
|
|
442
|
+
timeOutID2: null
|
|
443
|
+
};
|
|
444
|
+
},
|
|
445
|
+
computed: {
|
|
446
|
+
rootClasses: function rootClasses() {
|
|
447
|
+
return [this.position, {
|
|
448
|
+
'is-disabled': this.disabled,
|
|
449
|
+
'is-hoverable': this.hoverable,
|
|
450
|
+
'is-inline': this.inline,
|
|
451
|
+
'is-active': this.isActive || this.inline,
|
|
452
|
+
'is-mobile-modal': this.isMobileModal,
|
|
453
|
+
'is-expanded': this.expanded,
|
|
454
|
+
'is-touch-enabled': this.isTouchEnabled
|
|
455
|
+
}];
|
|
456
|
+
},
|
|
457
|
+
isMobileModal: function isMobileModal() {
|
|
458
|
+
return this.mobileModal && !this.inline;
|
|
459
|
+
},
|
|
460
|
+
cancelOptions: function cancelOptions() {
|
|
461
|
+
return typeof this.canClose === 'boolean' ? this.canClose ? DEFAULT_CLOSE_OPTIONS : [] : this.canClose;
|
|
462
|
+
},
|
|
463
|
+
contentStyle: function contentStyle() {
|
|
464
|
+
return {
|
|
465
|
+
maxHeight: this.scrollable ? toCssWidth(this.maxHeight) : null,
|
|
466
|
+
overflow: this.scrollable ? 'auto' : null
|
|
467
|
+
};
|
|
468
|
+
},
|
|
469
|
+
hoverable: function hoverable() {
|
|
470
|
+
return this.triggers.indexOf('hover') >= 0;
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
watch: {
|
|
474
|
+
/**
|
|
475
|
+
* When v-model is changed set the new selected item.
|
|
476
|
+
*/
|
|
477
|
+
value: function value(_value) {
|
|
478
|
+
this.selected = _value;
|
|
479
|
+
},
|
|
480
|
+
/**
|
|
481
|
+
* Emit event when isActive value is changed.
|
|
482
|
+
*
|
|
483
|
+
* Also resets `isTouchEnabled` when it turns inactive.
|
|
484
|
+
*/
|
|
485
|
+
isActive: function isActive(value) {
|
|
486
|
+
var _this = this;
|
|
487
|
+
this.$emit('active-change', value);
|
|
488
|
+
if (!value) {
|
|
489
|
+
// delays to reset the touch enabled flag until the dropdown
|
|
490
|
+
// menu disappears to avoid glitches
|
|
491
|
+
// also takes care of chattering, e.g., repeated quick taps,
|
|
492
|
+
// otherwise the flag may become inconsistent with the actual
|
|
493
|
+
// state of the dropdown menu
|
|
494
|
+
this.timeOutID = setTimeout(function () {
|
|
495
|
+
if (!_this.isActive) {
|
|
496
|
+
_this.isTouchEnabled = false;
|
|
497
|
+
}
|
|
498
|
+
}, 250);
|
|
499
|
+
}
|
|
500
|
+
this.handleScroll();
|
|
501
|
+
if (this.appendToBody) {
|
|
502
|
+
this.$nextTick(function () {
|
|
503
|
+
_this.updateAppendToBody();
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
},
|
|
507
|
+
isHoverable: function isHoverable(value) {
|
|
508
|
+
if (this.hoverable) {
|
|
509
|
+
this.$emit('active-change', value);
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
methods: {
|
|
514
|
+
handleScroll: function handleScroll() {
|
|
515
|
+
if (typeof window === 'undefined') return;
|
|
516
|
+
if (this.isMobileModal) {
|
|
517
|
+
if (this.isActive) {
|
|
518
|
+
document.documentElement.classList.add('is-clipped-touch');
|
|
519
|
+
} else {
|
|
520
|
+
document.documentElement.classList.remove('is-clipped-touch');
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
},
|
|
524
|
+
/**
|
|
525
|
+
* Click listener from DropdownItem.
|
|
526
|
+
* 1. Set new selected item.
|
|
527
|
+
* 2. Emit input event to update the user v-model.
|
|
528
|
+
* 3. Close the dropdown.
|
|
529
|
+
*/
|
|
530
|
+
selectItem: function selectItem(value) {
|
|
531
|
+
if (this.multiple) {
|
|
532
|
+
if (this.selected) {
|
|
533
|
+
if (this.selected.indexOf(value) === -1) {
|
|
534
|
+
// Add value
|
|
535
|
+
this.selected = [].concat(_toConsumableArray(this.selected), [value]);
|
|
536
|
+
} else {
|
|
537
|
+
// Remove value
|
|
538
|
+
this.selected = this.selected.filter(function (val) {
|
|
539
|
+
return val !== value;
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
} else {
|
|
543
|
+
this.selected = [value];
|
|
544
|
+
}
|
|
545
|
+
this.$emit('change', this.selected);
|
|
546
|
+
} else {
|
|
547
|
+
if (this.selected !== value) {
|
|
548
|
+
this.selected = value;
|
|
549
|
+
this.$emit('change', this.selected);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
this.$emit('input', this.selected);
|
|
553
|
+
if (!this.multiple) {
|
|
554
|
+
this.isActive = !this.closeOnClick;
|
|
555
|
+
if (this.hoverable && this.closeOnClick) {
|
|
556
|
+
this.isHoverable = false;
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
},
|
|
560
|
+
/**
|
|
561
|
+
* White-listed items to not close when clicked.
|
|
562
|
+
*/
|
|
563
|
+
isInWhiteList: function isInWhiteList(el) {
|
|
564
|
+
if (el === this.$refs.dropdownMenu) return true;
|
|
565
|
+
if (el === this.$refs.trigger) return true;
|
|
566
|
+
// All chidren from dropdown
|
|
567
|
+
if (this.$refs.dropdownMenu !== undefined) {
|
|
568
|
+
var children = this.$refs.dropdownMenu.querySelectorAll('*');
|
|
569
|
+
var _iterator = _createForOfIteratorHelper(children),
|
|
570
|
+
_step;
|
|
571
|
+
try {
|
|
572
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
573
|
+
var child = _step.value;
|
|
574
|
+
if (el === child) {
|
|
575
|
+
return true;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
} catch (err) {
|
|
579
|
+
_iterator.e(err);
|
|
580
|
+
} finally {
|
|
581
|
+
_iterator.f();
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
// All children from trigger
|
|
585
|
+
if (this.$refs.trigger !== undefined) {
|
|
586
|
+
var _children = this.$refs.trigger.querySelectorAll('*');
|
|
587
|
+
var _iterator2 = _createForOfIteratorHelper(_children),
|
|
588
|
+
_step2;
|
|
589
|
+
try {
|
|
590
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
591
|
+
var _child = _step2.value;
|
|
592
|
+
if (el === _child) {
|
|
593
|
+
return true;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
} catch (err) {
|
|
597
|
+
_iterator2.e(err);
|
|
598
|
+
} finally {
|
|
599
|
+
_iterator2.f();
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
return false;
|
|
603
|
+
},
|
|
604
|
+
/**
|
|
605
|
+
* Close dropdown if clicked outside.
|
|
606
|
+
*/
|
|
607
|
+
clickedOutside: function clickedOutside(event) {
|
|
608
|
+
if (this.cancelOptions.indexOf('outside') < 0) return;
|
|
609
|
+
if (this.inline) return;
|
|
610
|
+
var target = isCustomElement(this) ? event.composedPath()[0] : event.target;
|
|
611
|
+
if (!this.isInWhiteList(target)) this.isActive = false;
|
|
612
|
+
},
|
|
613
|
+
/**
|
|
614
|
+
* Keypress event that is bound to the document
|
|
615
|
+
*/
|
|
616
|
+
keyPress: function keyPress(_ref) {
|
|
617
|
+
var key = _ref.key;
|
|
618
|
+
if (this.isActive && (key === 'Escape' || key === 'Esc')) {
|
|
619
|
+
if (this.cancelOptions.indexOf('escape') < 0) return;
|
|
620
|
+
this.isActive = false;
|
|
621
|
+
}
|
|
622
|
+
},
|
|
623
|
+
onClick: function onClick() {
|
|
624
|
+
// hover precedes
|
|
625
|
+
if (this.triggers.indexOf('hover') !== -1) return;
|
|
626
|
+
if (this.triggers.indexOf('click') < 0) return;
|
|
627
|
+
this.toggle();
|
|
628
|
+
},
|
|
629
|
+
onContextMenu: function onContextMenu() {
|
|
630
|
+
if (this.triggers.indexOf('contextmenu') < 0) return;
|
|
631
|
+
this.toggle();
|
|
632
|
+
},
|
|
633
|
+
onHover: function onHover() {
|
|
634
|
+
if (this.triggers.indexOf('hover') < 0) return;
|
|
635
|
+
// touch precedes
|
|
636
|
+
if (this.isTouchEnabled) return;
|
|
637
|
+
this.isHoverable = true;
|
|
638
|
+
},
|
|
639
|
+
// takes care of touch-enabled devices
|
|
640
|
+
// - does nothing if hover trigger is disabled
|
|
641
|
+
// - suppresses hover trigger by setting isTouchEnabled
|
|
642
|
+
// - handles only a tap; i.e., touchstart on the trigger immediately
|
|
643
|
+
// folowed by touchend
|
|
644
|
+
onTouchStart: function onTouchStart() {
|
|
645
|
+
this.maybeTap = true;
|
|
646
|
+
},
|
|
647
|
+
onTouchMove: function onTouchMove() {
|
|
648
|
+
this.maybeTap = false;
|
|
649
|
+
},
|
|
650
|
+
onTouchEnd: function onTouchEnd(e) {
|
|
651
|
+
if (this.triggers.indexOf('hover') === -1) return;
|
|
652
|
+
if (!this.maybeTap) return;
|
|
653
|
+
// tap on dropdown contents may happen without preventDefault
|
|
654
|
+
e.preventDefault();
|
|
655
|
+
this.maybeTap = false;
|
|
656
|
+
this.isTouchEnabled = true;
|
|
657
|
+
this.toggle();
|
|
658
|
+
},
|
|
659
|
+
onFocus: function onFocus() {
|
|
660
|
+
if (this.triggers.indexOf('focus') < 0) return;
|
|
661
|
+
this.toggle();
|
|
662
|
+
},
|
|
663
|
+
/**
|
|
664
|
+
* Toggle dropdown if it's not disabled.
|
|
665
|
+
*/
|
|
666
|
+
toggle: function toggle() {
|
|
667
|
+
var _this2 = this;
|
|
668
|
+
if (this.disabled) return;
|
|
669
|
+
if (!this.isActive) {
|
|
670
|
+
// if not active, toggle after clickOutside event
|
|
671
|
+
// this fixes toggling programmatic
|
|
672
|
+
this.$nextTick(function () {
|
|
673
|
+
var value = !_this2.isActive;
|
|
674
|
+
_this2.isActive = value;
|
|
675
|
+
// Vue 2.6.x ???
|
|
676
|
+
_this2.timeOutID2 = setTimeout(function () {
|
|
677
|
+
return _this2.isActive = value;
|
|
678
|
+
});
|
|
679
|
+
});
|
|
680
|
+
} else {
|
|
681
|
+
this.isActive = !this.isActive;
|
|
682
|
+
}
|
|
683
|
+
},
|
|
684
|
+
updateAppendToBody: function updateAppendToBody() {
|
|
685
|
+
var dropdown = this.$refs.dropdown;
|
|
686
|
+
var dropdownMenu = this.$refs.dropdownMenu;
|
|
687
|
+
var trigger = this.$refs.trigger;
|
|
688
|
+
if (dropdownMenu && trigger) {
|
|
689
|
+
// update wrapper dropdown
|
|
690
|
+
var dropdownWrapper = this.$data._bodyEl.children[0];
|
|
691
|
+
dropdownWrapper.classList.forEach(function (item) {
|
|
692
|
+
return dropdownWrapper.classList.remove(item);
|
|
693
|
+
});
|
|
694
|
+
dropdownWrapper.classList.add('dropdown');
|
|
695
|
+
dropdownWrapper.classList.add('dropdown-menu-animation');
|
|
696
|
+
if (this.$vnode && this.$vnode.data && this.$vnode.data.staticClass) {
|
|
697
|
+
dropdownWrapper.classList.add(this.$vnode.data.staticClass);
|
|
698
|
+
}
|
|
699
|
+
this.rootClasses.forEach(function (item) {
|
|
700
|
+
// skip position prop
|
|
701
|
+
if (item && _typeof(item) === 'object') {
|
|
702
|
+
for (var key in item) {
|
|
703
|
+
if (item[key]) {
|
|
704
|
+
dropdownWrapper.classList.add(key);
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
if (this.appendToBodyCopyParent) {
|
|
710
|
+
var parentNode = this.$refs.dropdown.parentNode;
|
|
711
|
+
var parent = this.$data._bodyEl;
|
|
712
|
+
parent.classList.forEach(function (item) {
|
|
713
|
+
return parent.classList.remove(item);
|
|
714
|
+
});
|
|
715
|
+
parentNode.classList.forEach(function (item) {
|
|
716
|
+
parent.classList.add(item);
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
var rect = trigger.getBoundingClientRect();
|
|
720
|
+
var top = rect.top + window.scrollY;
|
|
721
|
+
var left = rect.left + window.scrollX;
|
|
722
|
+
if (!this.position || this.position.indexOf('bottom') >= 0) {
|
|
723
|
+
top += trigger.clientHeight;
|
|
724
|
+
} else {
|
|
725
|
+
top -= dropdownMenu.clientHeight;
|
|
726
|
+
}
|
|
727
|
+
if (this.position && this.position.indexOf('left') >= 0) {
|
|
728
|
+
left -= dropdownMenu.clientWidth - trigger.clientWidth;
|
|
729
|
+
}
|
|
730
|
+
this.style = {
|
|
731
|
+
position: 'absolute',
|
|
732
|
+
top: "".concat(top, "px"),
|
|
733
|
+
left: "".concat(left, "px"),
|
|
734
|
+
zIndex: '99',
|
|
735
|
+
width: this.expanded ? "".concat(dropdown.offsetWidth, "px") : undefined
|
|
736
|
+
};
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
},
|
|
740
|
+
mounted: function mounted() {
|
|
741
|
+
if (this.appendToBody) {
|
|
742
|
+
this.$data._bodyEl = createAbsoluteElement(this.$refs.dropdownMenu);
|
|
743
|
+
this.updateAppendToBody();
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
created: function created() {
|
|
747
|
+
if (typeof window !== 'undefined') {
|
|
748
|
+
document.addEventListener('click', this.clickedOutside);
|
|
749
|
+
document.addEventListener('keyup', this.keyPress);
|
|
750
|
+
}
|
|
751
|
+
},
|
|
752
|
+
beforeDestroy: function beforeDestroy() {
|
|
753
|
+
if (typeof window !== 'undefined') {
|
|
754
|
+
document.removeEventListener('click', this.clickedOutside);
|
|
755
|
+
document.removeEventListener('keyup', this.keyPress);
|
|
756
|
+
}
|
|
757
|
+
if (this.appendToBody) {
|
|
758
|
+
removeElement(this.$data._bodyEl);
|
|
759
|
+
}
|
|
760
|
+
clearTimeout(this.timeOutID);
|
|
761
|
+
clearTimeout(this.timeOutID2);
|
|
762
|
+
}
|
|
763
|
+
};
|
|
764
|
+
|
|
765
|
+
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
|
|
766
|
+
if (typeof shadowMode !== 'boolean') {
|
|
767
|
+
createInjectorSSR = createInjector;
|
|
768
|
+
createInjector = shadowMode;
|
|
769
|
+
shadowMode = false;
|
|
770
|
+
}
|
|
771
|
+
// Vue.extend constructor export interop.
|
|
772
|
+
const options = typeof script === 'function' ? script.options : script;
|
|
773
|
+
// render functions
|
|
774
|
+
if (template && template.render) {
|
|
775
|
+
options.render = template.render;
|
|
776
|
+
options.staticRenderFns = template.staticRenderFns;
|
|
777
|
+
options._compiled = true;
|
|
778
|
+
// functional template
|
|
779
|
+
if (isFunctionalTemplate) {
|
|
780
|
+
options.functional = true;
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
// scopedId
|
|
784
|
+
if (scopeId) {
|
|
785
|
+
options._scopeId = scopeId;
|
|
786
|
+
}
|
|
787
|
+
let hook;
|
|
788
|
+
if (moduleIdentifier) {
|
|
789
|
+
// server build
|
|
790
|
+
hook = function (context) {
|
|
791
|
+
// 2.3 injection
|
|
792
|
+
context =
|
|
793
|
+
context || // cached call
|
|
794
|
+
(this.$vnode && this.$vnode.ssrContext) || // stateful
|
|
795
|
+
(this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
|
|
796
|
+
// 2.2 with runInNewContext: true
|
|
797
|
+
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
|
|
798
|
+
context = __VUE_SSR_CONTEXT__;
|
|
799
|
+
}
|
|
800
|
+
// inject component styles
|
|
801
|
+
if (style) {
|
|
802
|
+
style.call(this, createInjectorSSR(context));
|
|
803
|
+
}
|
|
804
|
+
// register component module identifier for async chunk inference
|
|
805
|
+
if (context && context._registeredComponents) {
|
|
806
|
+
context._registeredComponents.add(moduleIdentifier);
|
|
807
|
+
}
|
|
808
|
+
};
|
|
809
|
+
// used by ssr in case component is cached and beforeCreate
|
|
810
|
+
// never gets called
|
|
811
|
+
options._ssrRegister = hook;
|
|
812
|
+
}
|
|
813
|
+
else if (style) {
|
|
814
|
+
hook = shadowMode
|
|
815
|
+
? function (context) {
|
|
816
|
+
style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
|
|
817
|
+
}
|
|
818
|
+
: function (context) {
|
|
819
|
+
style.call(this, createInjector(context));
|
|
820
|
+
};
|
|
821
|
+
}
|
|
822
|
+
if (hook) {
|
|
823
|
+
if (options.functional) {
|
|
824
|
+
// register for functional component in vue file
|
|
825
|
+
const originalRender = options.render;
|
|
826
|
+
options.render = function renderWithStyleInjection(h, context) {
|
|
827
|
+
hook.call(context);
|
|
828
|
+
return originalRender(h, context);
|
|
829
|
+
};
|
|
830
|
+
}
|
|
831
|
+
else {
|
|
832
|
+
// inject component registration as beforeCreate hook
|
|
833
|
+
const existing = options.beforeCreate;
|
|
834
|
+
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
return script;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
/* script */
|
|
841
|
+
const __vue_script__$1 = script$1;
|
|
842
|
+
|
|
843
|
+
/* template */
|
|
844
|
+
var __vue_render__$1 = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"dropdown",staticClass:"dropdown dropdown-menu-animation",class:_vm.rootClasses,on:{"mouseleave":function($event){_vm.isHoverable = false;}}},[(!_vm.inline)?_c('div',{ref:"trigger",staticClass:"dropdown-trigger",attrs:{"tabindex":_vm.disabled ? false : _vm.triggerTabindex,"aria-haspopup":"true"},on:{"click":_vm.onClick,"contextmenu":function($event){$event.preventDefault();return _vm.onContextMenu($event)},"mouseenter":_vm.onHover,"!focus":function($event){return _vm.onFocus($event)},"touchstart":_vm.onTouchStart,"touchmove":_vm.onTouchMove,"touchend":_vm.onTouchEnd}},[_vm._t("trigger",null,{"active":_vm.isActive})],2):_vm._e(),_c('transition',{attrs:{"name":_vm.animation}},[(_vm.isMobileModal)?_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.isActive),expression:"isActive"}],staticClass:"background",attrs:{"aria-hidden":!_vm.isActive}}):_vm._e()]),_c('transition',{attrs:{"name":_vm.animation}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:((!_vm.disabled && (_vm.isActive || _vm.isHoverable)) || _vm.inline),expression:"(!disabled && (isActive || isHoverable)) || inline"},{name:"trap-focus",rawName:"v-trap-focus",value:(_vm.trapFocus),expression:"trapFocus"}],ref:"dropdownMenu",staticClass:"dropdown-menu",style:(_vm.style),attrs:{"aria-hidden":!_vm.isActive}},[_c('div',{staticClass:"dropdown-content",style:(_vm.contentStyle),attrs:{"role":_vm.ariaRole,"aria-modal":!_vm.inline}},[_vm._t("default")],2)])])],1)};
|
|
845
|
+
var __vue_staticRenderFns__$1 = [];
|
|
846
|
+
|
|
847
|
+
/* style */
|
|
848
|
+
const __vue_inject_styles__$1 = undefined;
|
|
849
|
+
/* scoped */
|
|
850
|
+
const __vue_scope_id__$1 = undefined;
|
|
851
|
+
/* module identifier */
|
|
852
|
+
const __vue_module_identifier__$1 = undefined;
|
|
853
|
+
/* functional template */
|
|
854
|
+
const __vue_is_functional_template__$1 = false;
|
|
855
|
+
/* style inject */
|
|
856
|
+
|
|
857
|
+
/* style inject SSR */
|
|
858
|
+
|
|
859
|
+
/* style inject shadow dom */
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
const __vue_component__$1 = /*#__PURE__*/normalizeComponent(
|
|
864
|
+
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
|
|
865
|
+
__vue_inject_styles__$1,
|
|
866
|
+
__vue_script__$1,
|
|
867
|
+
__vue_scope_id__$1,
|
|
868
|
+
__vue_is_functional_template__$1,
|
|
869
|
+
__vue_module_identifier__$1,
|
|
870
|
+
false,
|
|
871
|
+
undefined,
|
|
872
|
+
undefined,
|
|
873
|
+
undefined
|
|
874
|
+
);
|
|
875
|
+
|
|
876
|
+
var Dropdown = __vue_component__$1;
|
|
877
|
+
|
|
878
|
+
var sorted = 1;
|
|
879
|
+
var optional = 2;
|
|
880
|
+
var InjectedChildMixin = (function (parentItemName) {
|
|
881
|
+
var flags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
882
|
+
var mixin = {
|
|
883
|
+
inject: {
|
|
884
|
+
parent: {
|
|
885
|
+
from: 'b' + parentItemName,
|
|
886
|
+
default: false
|
|
887
|
+
}
|
|
888
|
+
},
|
|
889
|
+
created: function created() {
|
|
890
|
+
if (!this.parent) {
|
|
891
|
+
if (!hasFlag(flags, optional)) {
|
|
892
|
+
this.$destroy();
|
|
893
|
+
throw new Error('You should wrap ' + this.$options.name + ' in a ' + parentItemName);
|
|
894
|
+
}
|
|
895
|
+
} else if (this.parent._registerItem) {
|
|
896
|
+
this.parent._registerItem(this);
|
|
897
|
+
}
|
|
898
|
+
},
|
|
899
|
+
beforeDestroy: function beforeDestroy() {
|
|
900
|
+
if (this.parent && this.parent._unregisterItem) {
|
|
901
|
+
this.parent._unregisterItem(this);
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
};
|
|
905
|
+
if (hasFlag(flags, sorted)) {
|
|
906
|
+
mixin.data = function () {
|
|
907
|
+
return {
|
|
908
|
+
index: null
|
|
909
|
+
};
|
|
910
|
+
};
|
|
911
|
+
}
|
|
912
|
+
return mixin;
|
|
913
|
+
});
|
|
914
|
+
|
|
915
|
+
//
|
|
916
|
+
var script = {
|
|
917
|
+
name: 'BDropdownItem',
|
|
918
|
+
mixins: [InjectedChildMixin('dropdown')],
|
|
919
|
+
props: {
|
|
920
|
+
value: {
|
|
921
|
+
type: [String, Number, Boolean, Object, Array, Function],
|
|
922
|
+
default: null
|
|
923
|
+
},
|
|
924
|
+
separator: Boolean,
|
|
925
|
+
disabled: Boolean,
|
|
926
|
+
custom: Boolean,
|
|
927
|
+
focusable: {
|
|
928
|
+
type: Boolean,
|
|
929
|
+
default: true
|
|
930
|
+
},
|
|
931
|
+
paddingless: Boolean,
|
|
932
|
+
hasLink: Boolean,
|
|
933
|
+
ariaRole: {
|
|
934
|
+
type: String,
|
|
935
|
+
default: ''
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
computed: {
|
|
939
|
+
anchorClasses: function anchorClasses() {
|
|
940
|
+
return {
|
|
941
|
+
'is-disabled': this.parent.disabled || this.disabled,
|
|
942
|
+
'is-paddingless': this.paddingless,
|
|
943
|
+
'is-active': this.isActive
|
|
944
|
+
};
|
|
945
|
+
},
|
|
946
|
+
itemClasses: function itemClasses() {
|
|
947
|
+
return {
|
|
948
|
+
'dropdown-item': !this.hasLink,
|
|
949
|
+
'is-disabled': this.disabled,
|
|
950
|
+
'is-paddingless': this.paddingless,
|
|
951
|
+
'is-active': this.isActive,
|
|
952
|
+
'has-link': this.hasLink
|
|
953
|
+
};
|
|
954
|
+
},
|
|
955
|
+
ariaRoleItem: function ariaRoleItem() {
|
|
956
|
+
return this.ariaRole === 'menuitem' || this.ariaRole === 'listitem' ? this.ariaRole : null;
|
|
957
|
+
},
|
|
958
|
+
isClickable: function isClickable() {
|
|
959
|
+
return !this.parent.disabled && !this.separator && !this.disabled && !this.custom;
|
|
960
|
+
},
|
|
961
|
+
isActive: function isActive() {
|
|
962
|
+
if (this.parent.selected === null) return false;
|
|
963
|
+
if (this.parent.multiple) return this.parent.selected.indexOf(this.value) >= 0;
|
|
964
|
+
return this.value === this.parent.selected;
|
|
965
|
+
},
|
|
966
|
+
isFocusable: function isFocusable() {
|
|
967
|
+
return this.hasLink ? false : this.focusable;
|
|
968
|
+
}
|
|
969
|
+
},
|
|
970
|
+
methods: {
|
|
971
|
+
/**
|
|
972
|
+
* Click listener, select the item.
|
|
973
|
+
*/
|
|
974
|
+
selectItem: function selectItem() {
|
|
975
|
+
if (!this.isClickable) return;
|
|
976
|
+
this.parent.selectItem(this.value);
|
|
977
|
+
this.$emit('click');
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
};
|
|
981
|
+
|
|
982
|
+
/* script */
|
|
983
|
+
const __vue_script__ = script;
|
|
984
|
+
|
|
985
|
+
/* template */
|
|
986
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.separator)?_c('hr',{staticClass:"dropdown-divider"}):(!_vm.custom && !_vm.hasLink)?_c('a',{staticClass:"dropdown-item",class:_vm.anchorClasses,attrs:{"role":_vm.ariaRoleItem,"tabindex":_vm.isFocusable ? 0 : null},on:{"click":_vm.selectItem}},[_vm._t("default")],2):_c('div',{class:_vm.itemClasses,attrs:{"role":_vm.ariaRoleItem,"tabindex":_vm.isFocusable ? 0 : null},on:{"click":_vm.selectItem}},[_vm._t("default")],2)};
|
|
987
|
+
var __vue_staticRenderFns__ = [];
|
|
988
|
+
|
|
989
|
+
/* style */
|
|
990
|
+
const __vue_inject_styles__ = undefined;
|
|
991
|
+
/* scoped */
|
|
992
|
+
const __vue_scope_id__ = undefined;
|
|
993
|
+
/* module identifier */
|
|
994
|
+
const __vue_module_identifier__ = undefined;
|
|
995
|
+
/* functional template */
|
|
996
|
+
const __vue_is_functional_template__ = false;
|
|
997
|
+
/* style inject */
|
|
998
|
+
|
|
999
|
+
/* style inject SSR */
|
|
1000
|
+
|
|
1001
|
+
/* style inject shadow dom */
|
|
1002
|
+
|
|
1003
|
+
|
|
1004
|
+
|
|
1005
|
+
const __vue_component__ = /*#__PURE__*/normalizeComponent(
|
|
1006
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
1007
|
+
__vue_inject_styles__,
|
|
1008
|
+
__vue_script__,
|
|
1009
|
+
__vue_scope_id__,
|
|
1010
|
+
__vue_is_functional_template__,
|
|
1011
|
+
__vue_module_identifier__,
|
|
1012
|
+
false,
|
|
1013
|
+
undefined,
|
|
1014
|
+
undefined,
|
|
1015
|
+
undefined
|
|
1016
|
+
);
|
|
1017
|
+
|
|
1018
|
+
var DropdownItem = __vue_component__;
|
|
1019
|
+
|
|
1020
|
+
var use = function use(plugin) {
|
|
1021
|
+
if (typeof window !== 'undefined' && window.Vue) {
|
|
1022
|
+
window.Vue.use(plugin);
|
|
1023
|
+
}
|
|
1024
|
+
};
|
|
1025
|
+
var registerComponent = function registerComponent(Vue, component) {
|
|
1026
|
+
Vue.component(component.name, component);
|
|
1027
|
+
};
|
|
1028
|
+
|
|
1029
|
+
var Plugin = {
|
|
1030
|
+
install: function install(Vue) {
|
|
1031
|
+
registerComponent(Vue, Dropdown);
|
|
1032
|
+
registerComponent(Vue, DropdownItem);
|
|
1033
|
+
}
|
|
1034
|
+
};
|
|
1035
|
+
use(Plugin);
|
|
1036
|
+
|
|
1037
|
+
exports.BDropdown = Dropdown;
|
|
1038
|
+
exports.BDropdownItem = DropdownItem;
|
|
1039
|
+
exports["default"] = Plugin;
|
|
1040
|
+
|
|
1041
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
1042
|
+
|
|
1043
|
+
}));
|