@dcloudio/uni-debugger
Version:
uni-app debugger
1,453 lines (1,174 loc) • 479 kB
JavaScript
webpackJsonp([1],{
/***/ "./node_modules/base64-js/index.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.byteLength = byteLength
exports.toByteArray = toByteArray
exports.fromByteArray = fromByteArray
var lookup = []
var revLookup = []
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
for (var i = 0, len = code.length; i < len; ++i) {
lookup[i] = code[i]
revLookup[code.charCodeAt(i)] = i
}
// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
revLookup['-'.charCodeAt(0)] = 62
revLookup['_'.charCodeAt(0)] = 63
function getLens (b64) {
var len = b64.length
if (len % 4 > 0) {
throw new Error('Invalid string. Length must be a multiple of 4')
}
// Trim off extra bytes after placeholder bytes are found
// See: https://github.com/beatgammit/base64-js/issues/42
var validLen = b64.indexOf('=')
if (validLen === -1) validLen = len
var placeHoldersLen = validLen === len
? 0
: 4 - (validLen % 4)
return [validLen, placeHoldersLen]
}
// base64 is 4/3 + up to two characters of the original data
function byteLength (b64) {
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function _byteLength (b64, validLen, placeHoldersLen) {
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
}
function toByteArray (b64) {
var tmp
var lens = getLens(b64)
var validLen = lens[0]
var placeHoldersLen = lens[1]
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
var curByte = 0
// if there are placeholders, only get up to the last complete 4 chars
var len = placeHoldersLen > 0
? validLen - 4
: validLen
for (var i = 0; i < len; i += 4) {
tmp =
(revLookup[b64.charCodeAt(i)] << 18) |
(revLookup[b64.charCodeAt(i + 1)] << 12) |
(revLookup[b64.charCodeAt(i + 2)] << 6) |
revLookup[b64.charCodeAt(i + 3)]
arr[curByte++] = (tmp >> 16) & 0xFF
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 2) {
tmp =
(revLookup[b64.charCodeAt(i)] << 2) |
(revLookup[b64.charCodeAt(i + 1)] >> 4)
arr[curByte++] = tmp & 0xFF
}
if (placeHoldersLen === 1) {
tmp =
(revLookup[b64.charCodeAt(i)] << 10) |
(revLookup[b64.charCodeAt(i + 1)] << 4) |
(revLookup[b64.charCodeAt(i + 2)] >> 2)
arr[curByte++] = (tmp >> 8) & 0xFF
arr[curByte++] = tmp & 0xFF
}
return arr
}
function tripletToBase64 (num) {
return lookup[num >> 18 & 0x3F] +
lookup[num >> 12 & 0x3F] +
lookup[num >> 6 & 0x3F] +
lookup[num & 0x3F]
}
function encodeChunk (uint8, start, end) {
var tmp
var output = []
for (var i = start; i < end; i += 3) {
tmp =
((uint8[i] << 16) & 0xFF0000) +
((uint8[i + 1] << 8) & 0xFF00) +
(uint8[i + 2] & 0xFF)
output.push(tripletToBase64(tmp))
}
return output.join('')
}
function fromByteArray (uint8) {
var tmp
var len = uint8.length
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
var parts = []
var maxChunkLength = 16383 // must be multiple of 3
// go through the array every three bytes, we'll deal with trailing stuff later
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
parts.push(encodeChunk(
uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
))
}
// pad the end with zeros, but make sure to not forget the extra bytes
if (extraBytes === 1) {
tmp = uint8[len - 1]
parts.push(
lookup[tmp >> 2] +
lookup[(tmp << 4) & 0x3F] +
'=='
)
} else if (extraBytes === 2) {
tmp = (uint8[len - 2] << 8) + uint8[len - 1]
parts.push(
lookup[tmp >> 10] +
lookup[(tmp >> 4) & 0x3F] +
lookup[(tmp << 2) & 0x3F] +
'='
)
}
return parts.join('')
}
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/button/button-close.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BButtonClose = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _vueFunctionalDataMerge = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
var _config = __webpack_require__("./node_modules/bootstrap-vue/es/utils/config.js");
var _normalizeSlot = __webpack_require__("./node_modules/bootstrap-vue/es/utils/normalize-slot.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var NAME = 'BButtonClose';
var props = {
disabled: {
type: Boolean,
default: false
},
ariaLabel: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'ariaLabel');
}
},
textVariant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'textVariant');
}
} // @vue/component
};
var BButtonClose =
/*#__PURE__*/
_vue.default.extend({
name: NAME,
functional: true,
props: props,
render: function render(h, _ref) {
var props = _ref.props,
data = _ref.data,
listeners = _ref.listeners,
slots = _ref.slots,
scopedSlots = _ref.scopedSlots;
var $slots = slots();
var $scopedSlots = scopedSlots || {};
var componentData = {
staticClass: 'close',
class: _defineProperty({}, "text-".concat(props.textVariant), props.textVariant),
attrs: {
type: 'button',
disabled: props.disabled,
'aria-label': props.ariaLabel ? String(props.ariaLabel) : null
},
on: {
click: function click(e) {
// Ensure click on button HTML content is also disabled
/* istanbul ignore if: bug in JSDOM still emits click on inner element */
if (props.disabled && e instanceof Event) {
e.stopPropagation();
e.preventDefault();
}
}
} // Careful not to override the default slot with innerHTML
};
if (!(0, _normalizeSlot.hasNormalizedSlot)('default', $scopedSlots, $slots)) {
componentData.domProps = {
innerHTML: '×'
};
}
return h('button', (0, _vueFunctionalDataMerge.mergeData)(data, componentData), (0, _normalizeSlot.normalizeSlot)('default', {}, $scopedSlots, $slots));
}
});
exports.BButtonClose = BButtonClose;
var _default2 = BButtonClose;
exports.default = _default2;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/button/button.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BButton = exports.props = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _vueFunctionalDataMerge = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
var _pluckProps = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/pluck-props.js"));
var _array = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
var _config = __webpack_require__("./node_modules/bootstrap-vue/es/utils/config.js");
var _dom = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
var _inspect = __webpack_require__("./node_modules/bootstrap-vue/es/utils/inspect.js");
var _object = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
var _link = __webpack_require__("./node_modules/bootstrap-vue/es/components/link/link.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// --- Constants --
var NAME = 'BButton';
var btnProps = {
block: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
size: {
type: String,
default: null
},
variant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'variant');
}
},
type: {
type: String,
default: 'button'
},
tag: {
type: String,
default: 'button'
},
pill: {
type: Boolean,
default: false
},
squared: {
type: Boolean,
default: false
},
pressed: {
// tri-state prop: true, false or null
// => on, off, not a toggle
type: Boolean,
default: null
}
};
var linkProps = (0, _link.propsFactory)();
delete linkProps.href.default;
delete linkProps.to.default;
var linkPropKeys = (0, _object.keys)(linkProps);
var props = _objectSpread({}, linkProps, btnProps); // --- Helper methods ---
// Focus handler for toggle buttons. Needs class of 'focus' when focused.
exports.props = props;
var handleFocus = function handleFocus(evt) {
if (evt.type === 'focusin') {
(0, _dom.addClass)(evt.target, 'focus');
} else if (evt.type === 'focusout') {
(0, _dom.removeClass)(evt.target, 'focus');
}
}; // Is the requested button a link?
var isLink = function isLink(props) {
// If tag prop is set to `a`, we use a b-link to get proper disabled handling
return Boolean(props.href || props.to || props.tag && String(props.tag).toLowerCase() === 'a');
}; // Is the button to be a toggle button?
var isToggle = function isToggle(props) {
return (0, _inspect.isBoolean)(props.pressed);
}; // Is the button "really" a button?
var isButton = function isButton(props) {
if (isLink(props)) {
return false;
} else if (props.tag && String(props.tag).toLowerCase() !== 'button') {
return false;
}
return true;
}; // Is the requested tag not a button or link?
var isNonStandardTag = function isNonStandardTag(props) {
return !isLink(props) && !isButton(props);
}; // Compute required classes (non static classes)
var computeClass = function computeClass(props) {
var _ref;
return ["btn-".concat(props.variant || (0, _config.getComponentConfig)(NAME, 'variant')), (_ref = {}, _defineProperty(_ref, "btn-".concat(props.size), Boolean(props.size)), _defineProperty(_ref, 'btn-block', props.block), _defineProperty(_ref, 'rounded-pill', props.pill), _defineProperty(_ref, 'rounded-0', props.squared && !props.pill), _defineProperty(_ref, "disabled", props.disabled), _defineProperty(_ref, "active", props.pressed), _ref)];
}; // Compute the link props to pass to b-link (if required)
var computeLinkProps = function computeLinkProps(props) {
return isLink(props) ? (0, _pluckProps.default)(linkPropKeys, props) : null;
}; // Compute the attributes for a button
var computeAttrs = function computeAttrs(props, data) {
var button = isButton(props);
var link = isLink(props);
var toggle = isToggle(props);
var nonStdTag = isNonStandardTag(props);
var role = data.attrs && data.attrs['role'] ? data.attrs['role'] : null;
var tabindex = data.attrs ? data.attrs['tabindex'] : null;
if (nonStdTag) {
tabindex = '0';
}
return {
// Type only used for "real" buttons
type: button && !link ? props.type : null,
// Disabled only set on "real" buttons
disabled: button ? props.disabled : null,
// We add a role of button when the tag is not a link or button for ARIA.
// Don't bork any role provided in data.attrs when isLink or isButton
role: nonStdTag ? 'button' : role,
// We set the aria-disabled state for non-standard tags
'aria-disabled': nonStdTag ? String(props.disabled) : null,
// For toggles, we need to set the pressed state for ARIA
'aria-pressed': toggle ? String(props.pressed) : null,
// autocomplete off is needed in toggle mode to prevent some browsers from
// remembering the previous setting when using the back button.
autocomplete: toggle ? 'off' : null,
// Tab index is used when the component is not a button.
// Links are tabbable, but don't allow disabled, while non buttons or links
// are not tabbable, so we mimic that functionality by disabling tabbing
// when disabled, and adding a tabindex of '0' to non buttons or non links.
tabindex: props.disabled && !button ? '-1' : tabindex
};
}; // @vue/component
var BButton =
/*#__PURE__*/
_vue.default.extend({
name: NAME,
functional: true,
props: props,
render: function render(h, _ref2) {
var props = _ref2.props,
data = _ref2.data,
listeners = _ref2.listeners,
children = _ref2.children;
var toggle = isToggle(props);
var link = isLink(props);
var on = {
click: function click(e) {
/* istanbul ignore if: blink/button disabled should handle this */
if (props.disabled && e instanceof Event) {
e.stopPropagation();
e.preventDefault();
} else if (toggle && listeners && listeners['update:pressed']) {
// Send .sync updates to any "pressed" prop (if .sync listeners)
// Concat will normalize the value to an array
// without double wrapping an array value in an array.
(0, _array.concat)(listeners['update:pressed']).forEach(function (fn) {
if ((0, _inspect.isFunction)(fn)) {
fn(!props.pressed);
}
});
}
}
};
if (toggle) {
on.focusin = handleFocus;
on.focusout = handleFocus;
}
var componentData = {
staticClass: 'btn',
class: computeClass(props),
props: computeLinkProps(props),
attrs: computeAttrs(props, data),
on: on
};
return h(link ? _link.BLink : props.tag, (0, _vueFunctionalDataMerge.mergeData)(data, componentData), children);
}
});
exports.BButton = BButton;
var _default2 = BButton;
exports.default = _default2;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/embed/embed.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BEmbed = exports.props = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _vueFunctionalDataMerge = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
var _array = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var props = {
type: {
type: String,
default: 'iframe',
validator: function validator(str) {
return (0, _array.arrayIncludes)(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);
}
},
tag: {
type: String,
default: 'div'
},
aspect: {
type: String,
default: '16by9'
} // @vue/component
};
exports.props = props;
var BEmbed =
/*#__PURE__*/
_vue.default.extend({
name: 'BEmbed',
functional: true,
props: props,
render: function render(h, _ref) {
var props = _ref.props,
data = _ref.data,
children = _ref.children;
return h(props.tag, {
ref: data.ref,
staticClass: 'embed-responsive',
class: _defineProperty({}, "embed-responsive-".concat(props.aspect), Boolean(props.aspect))
}, [h(props.type, (0, _vueFunctionalDataMerge.mergeData)(data, {
ref: '',
staticClass: 'embed-responsive-item'
}), children)]);
}
});
exports.BEmbed = BEmbed;
var _default = BEmbed;
exports.default = _default;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/form-select/form-select.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BFormSelect = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _id = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js"));
var _formOptions = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-options.js"));
var _form = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/form.js"));
var _formSize = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-size.js"));
var _formState = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-state.js"));
var _formCustom = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/form-custom.js"));
var _normalizeSlot = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/normalize-slot.js"));
var _array = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
var _html = __webpack_require__("./node_modules/bootstrap-vue/es/utils/html.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// @vue/component
var BFormSelect =
/*#__PURE__*/
_vue.default.extend({
name: 'BFormSelect',
mixins: [_id.default, _normalizeSlot.default, _form.default, _formSize.default, _formState.default, _formCustom.default, _formOptions.default],
model: {
prop: 'value',
event: 'input'
},
props: {
value: {// type: [Object, Array, String, Number, Boolean],
// default: undefined
},
multiple: {
type: Boolean,
default: false
},
selectSize: {
// Browsers default size to 0, which shows 4 rows in most browsers in multiple mode
// Size of 1 can bork out Firefox
type: Number,
default: 0
},
ariaInvalid: {
type: [Boolean, String],
default: false
}
},
data: function data() {
return {
localValue: this.value
};
},
computed: {
computedSelectSize: function computedSelectSize() {
// Custom selects with a size of zero causes the arrows to be hidden,
// so dont render the size attribute in this case
return !this.plain && this.selectSize === 0 ? null : this.selectSize;
},
inputClass: function inputClass() {
return [this.plain ? 'form-control' : 'custom-select', this.size && this.plain ? "form-control-".concat(this.size) : null, this.size && !this.plain ? "custom-select-".concat(this.size) : null, this.stateClass];
},
computedAriaInvalid: function computedAriaInvalid() {
if (this.ariaInvalid === true || this.ariaInvalid === 'true') {
return 'true';
}
return this.stateClass === 'is-invalid' ? 'true' : null;
}
},
watch: {
value: function value(newVal, oldVal) {
this.localValue = newVal;
},
localValue: function localValue(newVal, oldVal) {
this.$emit('input', this.localValue);
}
},
methods: {
focus: function focus() {
this.$refs.input.focus();
},
blur: function blur() {
this.$refs.input.blur();
}
},
render: function render(h) {
var _this = this;
var options = this.formOptions.map(function (option, index) {
return h('option', {
key: "option_".concat(index, "_opt"),
attrs: {
disabled: Boolean(option.disabled)
},
domProps: _objectSpread({}, (0, _html.htmlOrText)(option.html, option.text), {
value: option.value
})
});
});
return h('select', {
ref: 'input',
class: this.inputClass,
directives: [{
name: 'model',
rawName: 'v-model',
value: this.localValue,
expression: 'localValue'
}],
attrs: {
id: this.safeId(),
name: this.name,
form: this.form || null,
multiple: this.multiple || null,
size: this.computedSelectSize,
disabled: this.disabled,
required: this.required,
'aria-required': this.required ? 'true' : null,
'aria-invalid': this.computedAriaInvalid
},
on: {
change: function change(evt) {
var target = evt.target;
var selectedVal = (0, _array.from)(target.options).filter(function (o) {
return o.selected;
}).map(function (o) {
return '_value' in o ? o._value : o.value;
});
_this.localValue = target.multiple ? selectedVal : selectedVal[0];
_this.$nextTick(function () {
_this.$emit('change', _this.localValue);
});
}
}
}, [this.normalizeSlot('first'), options, this.normalizeSlot('default')]);
}
});
exports.BFormSelect = BFormSelect;
var _default = BFormSelect;
exports.default = _default;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/link/link.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BLink = exports.omitLinkProps = exports.pickLinkProps = exports.props = exports.propsFactory = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _vueFunctionalDataMerge = __webpack_require__("./node_modules/vue-functional-data-merge/dist/lib.esm.js");
var _array = __webpack_require__("./node_modules/bootstrap-vue/es/utils/array.js");
var _inspect = __webpack_require__("./node_modules/bootstrap-vue/es/utils/inspect.js");
var _object = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
var _router = __webpack_require__("./node_modules/bootstrap-vue/es/utils/router.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
/**
* The Link component is used in many other BV components.
* As such, sharing its props makes supporting all its features easier.
* However, some components need to modify the defaults for their own purpose.
* Prefer sharing a fresh copy of the props to ensure mutations
* do not affect other component references to the props.
*
* https://github.com/vuejs/vue-router/blob/dev/src/components/link.js
* @return {{}}
*/
var propsFactory = function propsFactory() {
return {
href: {
type: String,
default: null
},
rel: {
type: String,
default: null
},
target: {
type: String,
default: '_self'
},
active: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
// router-link specific props
to: {
type: [String, Object],
default: null
},
append: {
type: Boolean,
default: false
},
replace: {
type: Boolean,
default: false
},
event: {
type: [String, Array],
default: 'click'
},
activeClass: {
type: String // default: undefined
},
exact: {
type: Boolean,
default: false
},
exactActiveClass: {
type: String // default: undefined
},
routerTag: {
type: String,
default: 'a'
},
// nuxt-link specific prop(s)
noPrefetch: {
type: Boolean,
default: false
}
};
};
exports.propsFactory = propsFactory;
var props = propsFactory(); // Return a fresh copy of <b-link> props
// Containing only the specified prop(s)
exports.props = props;
var pickLinkProps = function pickLinkProps(propsToPick) {
var freshLinkProps = propsFactory(); // Normalize everything to array.
propsToPick = (0, _array.concat)(propsToPick);
return (0, _object.keys)(freshLinkProps).reduce(function (memo, prop) {
if ((0, _array.arrayIncludes)(propsToPick, prop)) {
memo[prop] = freshLinkProps[prop];
}
return memo;
}, {});
}; // Return a fresh copy of <b-link> props
// Keeping all but the specified omitting prop(s)
exports.pickLinkProps = pickLinkProps;
var omitLinkProps = function omitLinkProps(propsToOmit) {
var freshLinkProps = propsFactory(); // Normalize everything to array.
propsToOmit = (0, _array.concat)(propsToOmit);
return (0, _object.keys)(props).reduce(function (memo, prop) {
if (!(0, _array.arrayIncludes)(propsToOmit, prop)) {
memo[prop] = freshLinkProps[prop];
}
return memo;
}, {});
};
exports.omitLinkProps = omitLinkProps;
var clickHandlerFactory = function clickHandlerFactory(_ref) {
var disabled = _ref.disabled,
tag = _ref.tag,
href = _ref.href,
suppliedHandler = _ref.suppliedHandler,
parent = _ref.parent;
return function onClick(evt) {
var _arguments = arguments;
if (disabled && evt instanceof Event) {
// Stop event from bubbling up.
evt.stopPropagation(); // Kill the event loop attached to this specific EventTarget.
// Needed to prevent vue-router for doing its thing
evt.stopImmediatePropagation();
} else {
if ((0, _router.isRouterLink)(tag) && evt.currentTarget.__vue__) {
// Router links do not emit instance 'click' events, so we
// add in an $emit('click', evt) on it's vue instance
/* istanbul ignore next: difficult to test, but we know it works */
evt.currentTarget.__vue__.$emit('click', evt);
} // Call the suppliedHandler(s), if any provided
(0, _array.concat)(suppliedHandler).filter(function (h) {
return (0, _inspect.isFunction)(h);
}).forEach(function (handler) {
handler.apply(void 0, _toConsumableArray(_arguments));
});
parent.$root.$emit('clicked::link', evt);
}
if (!(0, _router.isRouterLink)(tag) && href === '#' || disabled) {
// Stop scroll-to-top behavior or navigation on regular links
// when href is just '#'
evt.preventDefault();
}
};
}; // @vue/component
var BLink =
/*#__PURE__*/
_vue.default.extend({
name: 'BLink',
functional: true,
props: propsFactory(),
render: function render(h, _ref2) {
var props = _ref2.props,
data = _ref2.data,
parent = _ref2.parent,
children = _ref2.children;
var tag = (0, _router.computeTag)(props, parent);
var rel = (0, _router.computeRel)(props);
var href = (0, _router.computeHref)(props, tag);
var eventType = (0, _router.isRouterLink)(tag) ? 'nativeOn' : 'on';
var suppliedHandler = (data[eventType] || {}).click;
var handlers = {
click: clickHandlerFactory({
tag: tag,
href: href,
disabled: props.disabled,
suppliedHandler: suppliedHandler,
parent: parent
})
};
var componentData = (0, _vueFunctionalDataMerge.mergeData)(data, {
class: {
active: props.active,
disabled: props.disabled
},
attrs: {
rel: rel,
target: props.target,
tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,
'aria-disabled': props.disabled ? 'true' : null
},
props: _objectSpread({}, props, {
tag: props.routerTag
})
}); // If href attribute exists on router-link (even undefined or null) it fails working on SSR
// So we explicitly add it here if needed (i.e. if computeHref() is truthy)
if (href) {
componentData.attrs.href = href;
} else {
// Ensure the prop HREF does not exist for router links
delete componentData.props.href;
} // We want to overwrite any click handler since our callback
// will invoke the user supplied handler if !props.disabled
componentData[eventType] = _objectSpread({}, componentData[eventType] || {}, handlers);
return h(tag, componentData, children);
}
});
exports.BLink = BLink;
var _default = BLink;
exports.default = _default;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/modal/helpers/bv-modal-event.class.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BvModalEvent = void 0;
var _bvEvent = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-event.class.js"));
var _warn = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/warn.js"));
var _object = __webpack_require__("./node_modules/bootstrap-vue/es/utils/object.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var BvModalEvent =
/*#__PURE__*/
function (_BvEvent) {
_inherits(BvModalEvent, _BvEvent);
function BvModalEvent(type) {
var _this;
var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
_classCallCheck(this, BvModalEvent);
_this = _possibleConstructorReturn(this, _getPrototypeOf(BvModalEvent).call(this, type, eventInit)); // Freeze our new props as readonly, but leave them enumerable
(0, _object.defineProperties)(_assertThisInitialized(_this), {
trigger: (0, _object.readonlyDescriptor)()
});
return _this;
}
_createClass(BvModalEvent, [{
key: "cancel",
value: function cancel()
/* istanbul ignore next */
{
// Backwards compatibility for BootstrapVue 1.x
(0, _warn.default)('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().');
this.preventDefault();
}
}, {
key: "modalId",
get: function get()
/* istanbul ignore next */
{
// Backwards compatability <= 2.0.0-rc.19
(0, _warn.default)('b-modal: evt.modalId is deprecated. Please use evt.componentId.');
return this.componentId;
}
}], [{
key: "Defaults",
get: function get() {
return _objectSpread({}, _get(_getPrototypeOf(BvModalEvent), "Defaults", this), {
trigger: null
});
}
}]);
return BvModalEvent;
}(_bvEvent.default); // Named exports
exports.BvModalEvent = BvModalEvent;
// Default export
var _default = BvModalEvent;
exports.default = _default;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/modal/helpers/modal-manager.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _dom = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
var _env = __webpack_require__("./node_modules/bootstrap-vue/es/utils/env.js");
var _inspect = __webpack_require__("./node_modules/bootstrap-vue/es/utils/inspect.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Private ModalManager helper
* Handles controlling modal stacking zIndexes and body adjustments/classes
*/
// --- Constants ---
// Default modal backdrop z-index
var DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments
var Selector = {
FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
STICKY_CONTENT: '.sticky-top',
NAVBAR_TOGGLER: '.navbar-toggler' // @vue/component
};
var ModalManager =
/*#__PURE__*/
_vue.default.extend({
data: function data() {
return {
modals: [],
baseZIndex: null,
scrollbarWidth: null,
isBodyOverflowing: false
};
},
computed: {
modalCount: function modalCount() {
return this.modals.length;
},
modalsAreOpen: function modalsAreOpen() {
return this.modalCount > 0;
}
},
watch: {
modalCount: function modalCount(newCount, oldCount) {
if (_env.isBrowser) {
this.getScrollbarWidth();
if (newCount > 0 && oldCount === 0) {
// Transitioning to modal(s) open
this.checkScrollbar();
this.setScrollbar();
(0, _dom.addClass)(document.body, 'modal-open');
} else if (newCount === 0 && oldCount > 0) {
// Transitioning to modal(s) closed
this.resetScrollbar();
(0, _dom.removeClass)(document.body, 'modal-open');
}
(0, _dom.setAttr)(document.body, 'data-modal-open-count', String(newCount));
}
},
modals: function modals(newVal, oldVal) {
var _this = this;
this.checkScrollbar();
(0, _dom.requestAF)(function () {
_this.updateModals(newVal || []);
});
}
},
methods: {
// Public methods
registerModal: function registerModal(modal) {
var _this2 = this;
// Register the modal if not already registered
if (modal && this.modals.indexOf(modal) === -1) {
// Add modal to modals array
this.modals.push(modal);
modal.$once('hook:beforeDestroy', function () {
_this2.unregisterModal(modal);
});
}
},
unregisterModal: function unregisterModal(modal) {
var index = this.modals.indexOf(modal);
if (index > -1) {
// Remove modal from modals array
this.modals.splice(index, 1); // Reset the modal's data
if (!(modal._isBeingDestroyed || modal._isDestroyed)) {
this.resetModal(modal);
}
}
},
getBaseZIndex: function getBaseZIndex() {
if ((0, _inspect.isNull)(this.baseZIndex) && _env.isBrowser) {
// Create a temporary `div.modal-backdrop` to get computed z-index
var div = document.createElement('div');
div.className = 'modal-backdrop d-none';
div.style.display = 'none';
document.body.appendChild(div);
this.baseZIndex = parseInt((0, _dom.getCS)(div).zIndex || DEFAULT_ZINDEX, 10);
document.body.removeChild(div);
}
return this.baseZIndex || DEFAULT_ZINDEX;
},
getScrollbarWidth: function getScrollbarWidth() {
if ((0, _inspect.isNull)(this.scrollbarWidth) && _env.isBrowser) {
// Create a temporary `div.measure-scrollbar` to get computed z-index
var div = document.createElement('div');
div.className = 'modal-scrollbar-measure';
document.body.appendChild(div);
this.scrollbarWidth = (0, _dom.getBCR)(div).width - div.clientWidth;
document.body.removeChild(div);
}
return this.scrollbarWidth || 0;
},
// Private methods
updateModals: function updateModals(modals) {
var _this3 = this;
var baseZIndex = this.getBaseZIndex();
var scrollbarWidth = this.getScrollbarWidth();
modals.forEach(function (modal, index) {
// We update data values on each modal
modal.zIndex = baseZIndex + index;
modal.scrollbarWidth = scrollbarWidth;
modal.isTop = index === _this3.modals.length - 1;
modal.isBodyOverflowing = _this3.isBodyOverflowing;
});
},
resetModal: function resetModal(modal) {
if (modal) {
modal.zIndex = this.getBaseZIndex();
modal.isTop = true;
modal.isBodyOverflowing = false;
}
},
checkScrollbar: function checkScrollbar() {
// Determine if the body element is overflowing
var _getBCR = (0, _dom.getBCR)(document.body),
left = _getBCR.left,
right = _getBCR.right;
this.isBodyOverflowing = left + right < window.innerWidth;
},
setScrollbar: function setScrollbar() {
var body = document.body; // Storage place to cache changes to margins and padding
// Note: This assumes the following element types are not added to the
// document after the modal has opened.
body._paddingChangedForModal = body._paddingChangedForModal || [];
body._marginChangedForModal = body._marginChangedForModal || [];
if (this.isBodyOverflowing) {
var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding
/* istanbul ignore next: difficult to test in JSDOM */
(0, _dom.selectAll)(Selector.FIXED_CONTENT).forEach(function (el) {
var actualPadding = el.style.paddingRight;
var calculatedPadding = (0, _dom.getCS)(el).paddingRight || 0;
(0, _dom.setAttr)(el, 'data-padding-right', actualPadding);
el.style.paddingRight = "".concat(parseFloat(calculatedPadding) + scrollbarWidth, "px");
body._paddingChangedForModal.push(el);
}); // Adjust sticky content margin
/* istanbul ignore next: difficult to test in JSDOM */
(0, _dom.selectAll)(Selector.STICKY_CONTENT).forEach(function (el) {
var actualMargin = el.style.marginRight;
var calculatedMargin = (0, _dom.getCS)(el).marginRight || 0;
(0, _dom.setAttr)(el, 'data-margin-right', actualMargin);
el.style.marginRight = "".concat(parseFloat(calculatedMargin) - scrollbarWidth, "px");
body._marginChangedForModal.push(el);
}); // Adjust <b-navbar-toggler> margin
/* istanbul ignore next: difficult to test in JSDOM */
(0, _dom.selectAll)(Selector.NAVBAR_TOGGLER).forEach(function (el) {
var actualMargin = el.style.marginRight;
var calculatedMargin = (0, _dom.getCS)(el).marginRight || 0;
(0, _dom.setAttr)(el, 'data-margin-right', actualMargin);
el.style.marginRight = "".concat(parseFloat(calculatedMargin) + scrollbarWidth, "px");
body._marginChangedForModal.push(el);
}); // Adjust body padding
var actualPadding = body.style.paddingRight;
var calculatedPadding = (0, _dom.getCS)(body).paddingRight;
(0, _dom.setAttr)(body, 'data-padding-right', actualPadding);
body.style.paddingRight = "".concat(parseFloat(calculatedPadding) + scrollbarWidth, "px");
}
},
resetScrollbar: function resetScrollbar() {
var body = document.body;
if (body._paddingChangedForModal) {
// Restore fixed content padding
body._paddingChangedForModal.forEach(function (el) {
/* istanbul ignore next: difficult to test in JSDOM */
if ((0, _dom.hasAttr)(el, 'data-padding-right')) {
el.style.paddingRight = (0, _dom.getAttr)(el, 'data-padding-right') || '';
(0, _dom.removeAttr)(el, 'data-padding-right');
}
});
}
if (body._marginChangedForModal) {
// Restore sticky content and navbar-toggler margin
body._marginChangedForModal.forEach(function (el) {
/* istanbul ignore next: difficult to test in JSDOM */
if ((0, _dom.hasAttr)(el, 'data-margin-right')) {
el.style.marginRight = (0, _dom.getAttr)(el, 'data-margin-right') || '';
(0, _dom.removeAttr)(el, 'data-margin-right');
}
});
}
body._paddingChangedForModal = null;
body._marginChangedForModal = null; // Restore body padding
if ((0, _dom.hasAttr)(body, 'data-padding-right')) {
body.style.paddingRight = (0, _dom.getAttr)(body, 'data-padding-right') || '';
(0, _dom.removeAttr)(body, 'data-padding-right');
}
}
}
}); // Export our ModalManager
var _default = new ModalManager();
exports.default = _default;
/***/ }),
/***/ "./node_modules/bootstrap-vue/es/components/modal/modal.js":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
exports.__esModule = true;
exports.default = exports.BModal = exports.props = void 0;
var _vue = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/vue.js"));
var _modalManager = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/components/modal/helpers/modal-manager.js"));
var _bvModalEvent = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/components/modal/helpers/bv-modal-event.class.js"));
var _id = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/id.js"));
var _listenOnRoot = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/listen-on-root.js"));
var _normalizeSlot = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/mixins/normalize-slot.js"));
var _bvTransition = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/bv-transition.js"));
var _keyCodes = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/key-codes.js"));
var _observeDom = _interopRequireDefault(__webpack_require__("./node_modules/bootstrap-vue/es/utils/observe-dom.js"));
var _transporter = __webpack_require__("./node_modules/bootstrap-vue/es/utils/transporter.js");
var _env = __webpack_require__("./node_modules/bootstrap-vue/es/utils/env.js");
var _inspect = __webpack_require__("./node_modules/bootstrap-vue/es/utils/inspect.js");
var _config = __webpack_require__("./node_modules/bootstrap-vue/es/utils/config.js");
var _html = __webpack_require__("./node_modules/bootstrap-vue/es/utils/html.js");
var _dom = __webpack_require__("./node_modules/bootstrap-vue/es/utils/dom.js");
var _button = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button.js");
var _buttonClose = __webpack_require__("./node_modules/bootstrap-vue/es/components/button/button-close.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// --- Constants ---
var NAME = 'BModal'; // ObserveDom config to detect changes in modal content
// so that we can adjust the modal padding if needed
var OBSERVER_CONFIG = {
subtree: true,
childList: true,
characterData: true,
attributes: true,
attributeFilter: ['style', 'class'] // Options for DOM event listeners
};
var EVT_OPTIONS = {
passive: true,
capture: false
};
var props = {
title: {
type: String,
default: ''
},
titleHtml: {
type: String
},
titleTag: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'titleTag');
}
},
size: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'size');
}
},
centered: {
type: Boolean,
default: false
},
scrollable: {
type: Boolean,
default: false
},
buttonSize: {
type: String,
default: ''
},
noStacking: {
type: Boolean,
default: false
},
noFade: {
type: Boolean,
default: false
},
noCloseOnBackdrop: {
type: Boolean,
default: false
},
noCloseOnEsc: {
type: Boolean,
default: false
},
noEnforceFocus: {
type: Boolean,
default: false
},
headerBgVariant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'headerBgVariant');
}
},
headerBorderVariant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'headerBorderVariant');
}
},
headerTextVariant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'headerTextVariant');
}
},
headerCloseVariant: {
type: String,
default: function _default() {
return (0, _config.getComponentConfig)(NAME, 'headerCloseVariant');