{"version":3,"file":"js/669-13c52ddffb419b4b62e3.js","mappings":"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","sources":["webpack://mixmastermiles/./node_modules/@iconfu/svg-inject/dist/svg-inject.js","webpack://mixmastermiles/./node_modules/@johmun/vue-tags-input/dist/vue-tags-input.js","webpack://mixmastermiles/./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack://mixmastermiles/./node_modules/@trevoreyre/autocomplete-vue/dist/autocomplete.esm.js","webpack://mixmastermiles/./node_modules/axios/index.js","webpack://mixmastermiles/./node_modules/axios/lib/adapters/xhr.js","webpack://mixmastermiles/./node_modules/axios/lib/axios.js","webpack://mixmastermiles/./node_modules/axios/lib/cancel/Cancel.js","webpack://mixmastermiles/./node_modules/axios/lib/cancel/CancelToken.js","webpack://mixmastermiles/./node_modules/axios/lib/cancel/isCancel.js","webpack://mixmastermiles/./node_modules/axios/lib/core/Axios.js","webpack://mixmastermiles/./node_modules/axios/lib/core/InterceptorManager.js","webpack://mixmastermiles/./node_modules/axios/lib/core/buildFullPath.js","webpack://mixmastermiles/./node_modules/axios/lib/core/createError.js","webpack://mixmastermiles/./node_modules/axios/lib/core/dispatchRequest.js","webpack://mixmastermiles/./node_modules/axios/lib/core/enhanceError.js","webpack://mixmastermiles/./node_modules/axios/lib/core/mergeConfig.js","webpack://mixmastermiles/./node_modules/axios/lib/core/settle.js","webpack://mixmastermiles/./node_modules/axios/lib/core/transformData.js","webpack://mixmastermiles/./node_modules/axios/lib/defaults.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/bind.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/buildURL.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/combineURLs.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/cookies.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://mixmastermiles/./node_modules/axios/lib/helpers/spread.js","webpack://mixmastermiles/./node_modules/axios/lib/utils.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/button/button.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/click-out.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/focus-in.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/dropdown.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/popper.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-item-button.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-header.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-divider.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/form/form.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-form.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-text.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/dropdown-group.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/dropdown/index.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/listeners.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/link/link.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/listen-on-document.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/listen-on-window.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/button/button-close.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/transporter/transporter.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal-event.class.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/modal/helpers/modal-manager.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/modal/modal.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/directives/modal/modal.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/modal/helpers/bv-modal.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/modal/index.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/noop.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-popper.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip-template.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tooltip/helpers/bv-tooltip.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tooltip/tooltip.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover-template.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/popover/helpers/bv-popover.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/popover/popover.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/directives/popover/popover.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/directives/popover/index.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/popover/index.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/nav/nav.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tabs/tabs.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tabs/tab.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/stable-sort.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/tabs/index.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/components/transition/bv-transition.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/components.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/config.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/env.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/events.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/key-codes.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/props.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/regex.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/safe-types.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/constants/slots.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/attrs.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/id.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/listen-on-root.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/normalize-slot.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/mixins/scoped-style.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/array.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/bv-event.class.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/cache.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/clone-deep.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/memoize.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/config.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/dom.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/events.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/get-scope-id.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/html.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/identity.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/inspect.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/loose-equal.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/math.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/model.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/normalize-slot.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/number.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/object.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/observe-dom.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/get.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/config-set.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/plugins.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/props.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/router.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/string.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/env.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/utils/warn.js","webpack://mixmastermiles/./node_modules/bootstrap-vue/esm/vue.js","webpack://mixmastermiles/./node_modules/bootstrap/js/src/carousel.js","webpack://mixmastermiles/./node_modules/bootstrap/js/src/dropdown.js","webpack://mixmastermiles/./node_modules/bootstrap/js/src/toast.js","webpack://mixmastermiles/./node_modules/bootstrap/js/src/util.js","webpack://mixmastermiles/./node_modules/bs-custom-file-input/dist/bs-custom-file-input.js","webpack://mixmastermiles/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/compareAsc/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/endOfDay/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/endOfMonth/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/differenceInMonths/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/_lib/cloneObject/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/formatDistance/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/parseJSON/index.js","webpack://mixmastermiles/./node_modules/date-fns/esm/toDate/index.js","webpack://mixmastermiles/./node_modules/fuzzyset.js/dist/fuzzyset.esm.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/data.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/disable-selection.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/ie.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/scroll-parent.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/version.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/widget.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/widgets/mouse.js","webpack://mixmastermiles/./node_modules/jquery-ui/ui/widgets/sortable.js","webpack://mixmastermiles/./node_modules/jquery/dist/jquery.js","webpack://mixmastermiles/./node_modules/jsmediatags/dist/jsmediatags.min.js","webpack://mixmastermiles/./node_modules/local-time/app/assets/javascripts/local-time.js","webpack://mixmastermiles/./node_modules/popper.js/dist/esm/popper.js","webpack://mixmastermiles/./node_modules/vue-functional-data-merge/dist/lib.esm.js","webpack://mixmastermiles/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://mixmastermiles/./node_modules/vue-select/dist/vue-select.js","webpack://mixmastermiles/./node_modules/vue/dist/vue.runtime.esm.js","webpack://mixmastermiles/./node_modules/wavesurfer.js/dist/wavesurfer.js","webpack://mixmastermiles/./node_modules/webpack-jquery-ui/sortable.js"],"sourcesContent":["/**\n * SVGInject - Version 1.2.3\n * A tiny, intuitive, robust, caching solution for injecting SVG files inline into the DOM.\n *\n * https://github.com/iconfu/svg-inject\n *\n * Copyright (c) 2018 INCORS, the creators of iconfu.com\n * @license MIT License - https://github.com/iconfu/svg-inject/blob/master/LICENSE\n */\n\n(function(window, document) {\n // constants for better minification\n var _CREATE_ELEMENT_ = 'createElement';\n var _GET_ELEMENTS_BY_TAG_NAME_ = 'getElementsByTagName';\n var _LENGTH_ = 'length';\n var _STYLE_ = 'style';\n var _TITLE_ = 'title';\n var _UNDEFINED_ = 'undefined';\n var _SET_ATTRIBUTE_ = 'setAttribute';\n var _GET_ATTRIBUTE_ = 'getAttribute';\n\n var NULL = null;\n\n // constants\n var __SVGINJECT = '__svgInject';\n var ID_SUFFIX = '--inject-';\n var ID_SUFFIX_REGEX = new RegExp(ID_SUFFIX + '\\\\d+', \"g\");\n var LOAD_FAIL = 'LOAD_FAIL';\n var SVG_NOT_SUPPORTED = 'SVG_NOT_SUPPORTED';\n var SVG_INVALID = 'SVG_INVALID';\n var ATTRIBUTE_EXCLUSION_NAMES = ['src', 'alt', 'onload', 'onerror'];\n var A_ELEMENT = document[_CREATE_ELEMENT_]('a');\n var IS_SVG_SUPPORTED = typeof SVGRect != _UNDEFINED_;\n var DEFAULT_OPTIONS = {\n useCache: true,\n copyAttributes: true,\n makeIdsUnique: true\n };\n // Map of IRI referenceable tag names to properties that can reference them. This is defined in\n // https://www.w3.org/TR/SVG11/linking.html#processingIRI\n var IRI_TAG_PROPERTIES_MAP = {\n clipPath: ['clip-path'],\n 'color-profile': NULL,\n cursor: NULL,\n filter: NULL,\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-end', 'marker-mid', 'marker-start'],\n mask: NULL,\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke']\n };\n var INJECTED = 1;\n var FAIL = 2;\n\n var uniqueIdCounter = 1;\n var xmlSerializer;\n var domParser;\n\n\n // creates an SVG document from an SVG string\n function svgStringToSvgDoc(svgStr) {\n domParser = domParser || new DOMParser();\n return domParser.parseFromString(svgStr, 'text/xml');\n }\n\n\n // searializes an SVG element to an SVG string\n function svgElemToSvgString(svgElement) {\n xmlSerializer = xmlSerializer || new XMLSerializer();\n return xmlSerializer.serializeToString(svgElement);\n }\n\n\n // Returns the absolute url for the specified url\n function getAbsoluteUrl(url) {\n A_ELEMENT.href = url;\n return A_ELEMENT.href;\n }\n\n\n // Load svg with an XHR request\n function loadSvg(url, callback, errorCallback) {\n if (url) {\n var req = new XMLHttpRequest();\n req.onreadystatechange = function() {\n if (req.readyState == 4) {\n // readyState is DONE\n var status = req.status;\n if (status == 200) {\n // request status is OK\n callback(req.responseXML, req.responseText.trim());\n } else if (status >= 400) {\n // request status is error (4xx or 5xx)\n errorCallback();\n } else if (status == 0) {\n // request status 0 can indicate a failed cross-domain call\n errorCallback();\n }\n }\n };\n req.open('GET', url, true);\n req.send();\n }\n }\n\n\n // Copy attributes from img element to svg element\n function copyAttributes(imgElem, svgElem) {\n var attribute;\n var attributeName;\n var attributeValue;\n var attributes = imgElem.attributes;\n for (var i = 0; i < attributes[_LENGTH_]; i++) {\n attribute = attributes[i];\n attributeName = attribute.name;\n // Only copy attributes not explicitly excluded from copying\n if (ATTRIBUTE_EXCLUSION_NAMES.indexOf(attributeName) == -1) {\n attributeValue = attribute.value;\n // If img attribute is \"title\", insert a title element into SVG element\n if (attributeName == _TITLE_) {\n var titleElem;\n var firstElementChild = svgElem.firstElementChild;\n if (firstElementChild && firstElementChild.localName.toLowerCase() == _TITLE_) {\n // If the SVG element's first child is a title element, keep it as the title element\n titleElem = firstElementChild;\n } else {\n // If the SVG element's first child element is not a title element, create a new title\n // ele,emt and set it as the first child\n titleElem = document[_CREATE_ELEMENT_ + 'NS']('http://www.w3.org/2000/svg', _TITLE_);\n svgElem.insertBefore(titleElem, firstElementChild);\n }\n // Set new title content\n titleElem.textContent = attributeValue;\n } else {\n // Set img attribute to svg element\n svgElem[_SET_ATTRIBUTE_](attributeName, attributeValue);\n }\n }\n }\n }\n\n\n // This function appends a suffix to IDs of referenced elements in the in order to to avoid ID collision\n // between multiple injected SVGs. The suffix has the form \"--inject-X\", where X is a running number which is\n // incremented with each injection. References to the IDs are adjusted accordingly.\n // We assume tha all IDs within the injected SVG are unique, therefore the same suffix can be used for all IDs of one\n // injected SVG.\n // If the onlyReferenced argument is set to true, only those IDs will be made unique that are referenced from within the SVG\n function makeIdsUnique(svgElem, onlyReferenced) {\n var idSuffix = ID_SUFFIX + uniqueIdCounter++;\n // Regular expression for functional notations of an IRI references. This will find occurences in the form\n // url(#anyId) or url(\"#anyId\") (for Internet Explorer) and capture the referenced ID\n var funcIriRegex = /url\\(\"?#([a-zA-Z][\\w:.-]*)\"?\\)/g;\n // Get all elements with an ID. The SVG spec recommends to put referenced elements inside elements, but\n // this is not a requirement, therefore we have to search for IDs in the whole SVG.\n var idElements = svgElem.querySelectorAll('[id]');\n var idElem;\n // An object containing referenced IDs as keys is used if only referenced IDs should be uniquified.\n // If this object does not exist, all IDs will be uniquified.\n var referencedIds = onlyReferenced ? [] : NULL;\n var tagName;\n var iriTagNames = {};\n var iriProperties = [];\n var changed = false;\n var i, j;\n\n if (idElements[_LENGTH_]) {\n // Make all IDs unique by adding the ID suffix and collect all encountered tag names\n // that are IRI referenceable from properities.\n for (i = 0; i < idElements[_LENGTH_]; i++) {\n tagName = idElements[i].localName; // Use non-namespaced tag name\n // Make ID unique if tag name is IRI referenceable\n if (tagName in IRI_TAG_PROPERTIES_MAP) {\n iriTagNames[tagName] = 1;\n }\n }\n // Get all properties that are mapped to the found IRI referenceable tags\n for (tagName in iriTagNames) {\n (IRI_TAG_PROPERTIES_MAP[tagName] || [tagName]).forEach(function (mappedProperty) {\n // Add mapped properties to array of iri referencing properties.\n // Use linear search here because the number of possible entries is very small (maximum 11)\n if (iriProperties.indexOf(mappedProperty) < 0) {\n iriProperties.push(mappedProperty);\n }\n });\n }\n if (iriProperties[_LENGTH_]) {\n // Add \"style\" to properties, because it may contain references in the form 'style=\"fill:url(#myFill)\"'\n iriProperties.push(_STYLE_);\n }\n // Run through all elements of the SVG and replace IDs in references.\n // To get all descending elements, getElementsByTagName('*') seems to perform faster than querySelectorAll('*').\n // Since svgElem.getElementsByTagName('*') does not return the svg element itself, we have to handle it separately.\n var descElements = svgElem[_GET_ELEMENTS_BY_TAG_NAME_]('*');\n var element = svgElem;\n var propertyName;\n var value;\n var newValue;\n for (i = -1; element != NULL;) {\n if (element.localName == _STYLE_) {\n // If element is a style element, replace IDs in all occurences of \"url(#anyId)\" in text content\n value = element.textContent;\n newValue = value && value.replace(funcIriRegex, function(match, id) {\n if (referencedIds) {\n referencedIds[id] = 1;\n }\n return 'url(#' + id + idSuffix + ')';\n });\n if (newValue !== value) {\n element.textContent = newValue;\n }\n } else if (element.hasAttributes()) {\n // Run through all property names for which IDs were found\n for (j = 0; j < iriProperties[_LENGTH_]; j++) {\n propertyName = iriProperties[j];\n value = element[_GET_ATTRIBUTE_](propertyName);\n newValue = value && value.replace(funcIriRegex, function(match, id) {\n if (referencedIds) {\n referencedIds[id] = 1;\n }\n return 'url(#' + id + idSuffix + ')';\n });\n if (newValue !== value) {\n element[_SET_ATTRIBUTE_](propertyName, newValue);\n }\n }\n // Replace IDs in xlink:ref and href attributes\n ['xlink:href', 'href'].forEach(function(refAttrName) {\n var iri = element[_GET_ATTRIBUTE_](refAttrName);\n if (/^\\s*#/.test(iri)) { // Check if iri is non-null and internal reference\n iri = iri.trim();\n element[_SET_ATTRIBUTE_](refAttrName, iri + idSuffix);\n if (referencedIds) {\n // Add ID to referenced IDs\n referencedIds[iri.substring(1)] = 1;\n }\n }\n });\n }\n element = descElements[++i];\n }\n for (i = 0; i < idElements[_LENGTH_]; i++) {\n idElem = idElements[i];\n // If set of referenced IDs exists, make only referenced IDs unique,\n // otherwise make all IDs unique.\n if (!referencedIds || referencedIds[idElem.id]) {\n // Add suffix to element's ID\n idElem.id += idSuffix;\n changed = true;\n }\n }\n }\n // return true if SVG element has changed\n return changed;\n }\n\n\n // For cached SVGs the IDs are made unique by simply replacing the already inserted unique IDs with a\n // higher ID counter. This is much more performant than a call to makeIdsUnique().\n function makeIdsUniqueCached(svgString) {\n return svgString.replace(ID_SUFFIX_REGEX, ID_SUFFIX + uniqueIdCounter++);\n }\n\n\n // Inject SVG by replacing the img element with the SVG element in the DOM\n function inject(imgElem, svgElem, absUrl, options) {\n if (svgElem) {\n svgElem[_SET_ATTRIBUTE_]('data-inject-url', absUrl);\n var parentNode = imgElem.parentNode;\n if (parentNode) {\n if (options.copyAttributes) {\n copyAttributes(imgElem, svgElem);\n }\n // Invoke beforeInject hook if set\n var beforeInject = options.beforeInject;\n var injectElem = (beforeInject && beforeInject(imgElem, svgElem)) || svgElem;\n // Replace img element with new element. This is the actual injection.\n parentNode.replaceChild(injectElem, imgElem);\n // Mark img element as injected\n imgElem[__SVGINJECT] = INJECTED;\n removeOnLoadAttribute(imgElem);\n // Invoke afterInject hook if set\n var afterInject = options.afterInject;\n if (afterInject) {\n afterInject(imgElem, injectElem);\n }\n }\n } else {\n svgInvalid(imgElem, options);\n }\n }\n\n\n // Merges any number of options objects into a new object\n function mergeOptions() {\n var mergedOptions = {};\n var args = arguments;\n // Iterate over all specified options objects and add all properties to the new options object\n for (var i = 0; i < args[_LENGTH_]; i++) {\n var argument = args[i];\n for (var key in argument) {\n if (argument.hasOwnProperty(key)) {\n mergedOptions[key] = argument[key];\n }\n }\n }\n return mergedOptions;\n }\n\n\n // Adds the specified CSS to the document's element\n function addStyleToHead(css) {\n var head = document[_GET_ELEMENTS_BY_TAG_NAME_]('head')[0];\n if (head) {\n var style = document[_CREATE_ELEMENT_](_STYLE_);\n style.type = 'text/css';\n style.appendChild(document.createTextNode(css));\n head.appendChild(style);\n }\n }\n\n\n // Builds an SVG element from the specified SVG string\n function buildSvgElement(svgStr, verify) {\n if (verify) {\n var svgDoc;\n try {\n // Parse the SVG string with DOMParser\n svgDoc = svgStringToSvgDoc(svgStr);\n } catch(e) {\n return NULL;\n }\n if (svgDoc[_GET_ELEMENTS_BY_TAG_NAME_]('parsererror')[_LENGTH_]) {\n // DOMParser does not throw an exception, but instead puts parsererror tags in the document\n return NULL;\n }\n return svgDoc.documentElement;\n } else {\n var div = document.createElement('div');\n div.innerHTML = svgStr;\n return div.firstElementChild;\n }\n }\n\n\n function removeOnLoadAttribute(imgElem) {\n // Remove the onload attribute. Should only be used to remove the unstyled image flash protection and\n // make the element visible, not for removing the event listener.\n imgElem.removeAttribute('onload');\n }\n\n\n function errorMessage(msg) {\n console.error('SVGInject: ' + msg);\n }\n\n\n function fail(imgElem, status, options) {\n imgElem[__SVGINJECT] = FAIL;\n if (options.onFail) {\n options.onFail(imgElem, status);\n } else {\n errorMessage(status);\n }\n }\n\n\n function svgInvalid(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_INVALID, options);\n }\n\n\n function svgNotSupported(imgElem, options) {\n removeOnLoadAttribute(imgElem);\n fail(imgElem, SVG_NOT_SUPPORTED, options);\n }\n\n\n function loadFail(imgElem, options) {\n fail(imgElem, LOAD_FAIL, options);\n }\n\n\n function removeEventListeners(imgElem) {\n imgElem.onload = NULL;\n imgElem.onerror = NULL;\n }\n\n\n function imgNotSet(msg) {\n errorMessage('no img element');\n }\n\n\n function createSVGInject(globalName, options) {\n var defaultOptions = mergeOptions(DEFAULT_OPTIONS, options);\n var svgLoadCache = {};\n\n if (IS_SVG_SUPPORTED) {\n // If the browser supports SVG, add a small stylesheet that hides the elements until\n // injection is finished. This avoids showing the unstyled SVGs before style is applied.\n addStyleToHead('img[onload^=\"' + globalName + '(\"]{visibility:hidden;}');\n }\n\n\n /**\n * SVGInject\n *\n * Injects the SVG specified in the `src` attribute of the specified `img` element or array of `img`\n * elements. Returns a Promise object which resolves if all passed in `img` elements have either been\n * injected or failed to inject (Only if a global Promise object is available like in all modern browsers\n * or through a polyfill).\n *\n * Options:\n * useCache: If set to `true` the SVG will be cached using the absolute URL. Default value is `true`.\n * copyAttributes: If set to `true` the attributes will be copied from `img` to `svg`. Dfault value\n * is `true`.\n * makeIdsUnique: If set to `true` the ID of elements in the `` element that can be references by\n * property values (for example 'clipPath') are made unique by appending \"--inject-X\", where X is a\n * running number which increases with each injection. This is done to avoid duplicate IDs in the DOM.\n * beforeLoad: Hook before SVG is loaded. The `img` element is passed as a parameter. If the hook returns\n * a string it is used as the URL instead of the `img` element's `src` attribute.\n * afterLoad: Hook after SVG is loaded. The loaded `svg` element and `svg` string are passed as a\n * parameters. If caching is active this hook will only get called once for injected SVGs with the\n * same absolute path. Changes to the `svg` element in this hook will be applied to all injected SVGs\n * with the same absolute path. It's also possible to return an `svg` string or `svg` element which\n * will then be used for the injection.\n * beforeInject: Hook before SVG is injected. The `img` and `svg` elements are passed as parameters. If\n * any html element is returned it gets injected instead of applying the default SVG injection.\n * afterInject: Hook after SVG is injected. The `img` and `svg` elements are passed as parameters.\n * onAllFinish: Hook after all `img` elements passed to an SVGInject() call have either been injected or\n * failed to inject.\n * onFail: Hook after injection fails. The `img` element and a `status` string are passed as an parameter.\n * The `status` can be either `'SVG_NOT_SUPPORTED'` (the browser does not support SVG),\n * `'SVG_INVALID'` (the SVG is not in a valid format) or `'LOAD_FAILED'` (loading of the SVG failed).\n *\n * @param {HTMLImageElement} img - an img element or an array of img elements\n * @param {Object} [options] - optional parameter with [options](#options) for this injection.\n */\n function SVGInject(img, options) {\n options = mergeOptions(defaultOptions, options);\n\n var run = function(resolve) {\n var allFinish = function() {\n var onAllFinish = options.onAllFinish;\n if (onAllFinish) {\n onAllFinish();\n }\n resolve && resolve();\n };\n\n if (img && typeof img[_LENGTH_] != _UNDEFINED_) {\n // an array like structure of img elements\n var injectIndex = 0;\n var injectCount = img[_LENGTH_];\n\n if (injectCount == 0) {\n allFinish();\n } else {\n var finish = function() {\n if (++injectIndex == injectCount) {\n allFinish();\n }\n };\n\n for (var i = 0; i < injectCount; i++) {\n SVGInjectElement(img[i], options, finish);\n }\n }\n } else {\n // only one img element\n SVGInjectElement(img, options, allFinish);\n }\n };\n\n // return a Promise object if globally available\n return typeof Promise == _UNDEFINED_ ? run() : new Promise(run);\n }\n\n\n // Injects a single svg element. Options must be already merged with the default options.\n function SVGInjectElement(imgElem, options, callback) {\n if (imgElem) {\n var svgInjectAttributeValue = imgElem[__SVGINJECT];\n if (!svgInjectAttributeValue) {\n removeEventListeners(imgElem);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(imgElem, options);\n callback();\n return;\n }\n // Invoke beforeLoad hook if set. If the beforeLoad returns a value use it as the src for the load\n // URL path. Else use the imgElem's src attribute value.\n var beforeLoad = options.beforeLoad;\n var src = (beforeLoad && beforeLoad(imgElem)) || imgElem[_GET_ATTRIBUTE_]('src');\n\n if (!src) {\n // If no image src attribute is set do no injection. This can only be reached by using javascript\n // because if no src attribute is set the onload and onerror events do not get called\n if (src === '') {\n loadFail(imgElem, options);\n }\n callback();\n return;\n }\n\n // set array so later calls can register callbacks\n var onFinishCallbacks = [];\n imgElem[__SVGINJECT] = onFinishCallbacks;\n\n var onFinish = function() {\n callback();\n onFinishCallbacks.forEach(function(onFinishCallback) {\n onFinishCallback();\n });\n };\n\n var absUrl = getAbsoluteUrl(src);\n var useCacheOption = options.useCache;\n var makeIdsUniqueOption = options.makeIdsUnique;\n \n var setSvgLoadCacheValue = function(val) {\n if (useCacheOption) {\n svgLoadCache[absUrl].forEach(function(svgLoad) {\n svgLoad(val);\n });\n svgLoadCache[absUrl] = val;\n }\n };\n\n if (useCacheOption) {\n var svgLoad = svgLoadCache[absUrl];\n\n var handleLoadValue = function(loadValue) {\n if (loadValue === LOAD_FAIL) {\n loadFail(imgElem, options);\n } else if (loadValue === SVG_INVALID) {\n svgInvalid(imgElem, options);\n } else {\n var hasUniqueIds = loadValue[0];\n var svgString = loadValue[1];\n var uniqueIdsSvgString = loadValue[2];\n var svgElem;\n\n if (makeIdsUniqueOption) {\n if (hasUniqueIds === NULL) {\n // IDs for the SVG string have not been made unique before. This may happen if previous\n // injection of a cached SVG have been run with the option makedIdsUnique set to false\n svgElem = buildSvgElement(svgString, false);\n hasUniqueIds = makeIdsUnique(svgElem, false);\n\n loadValue[0] = hasUniqueIds;\n loadValue[2] = hasUniqueIds && svgElemToSvgString(svgElem);\n } else if (hasUniqueIds) {\n // Make IDs unique for already cached SVGs with better performance\n svgString = makeIdsUniqueCached(uniqueIdsSvgString);\n }\n }\n\n svgElem = svgElem || buildSvgElement(svgString, false);\n\n inject(imgElem, svgElem, absUrl, options);\n }\n onFinish();\n };\n\n if (typeof svgLoad != _UNDEFINED_) {\n // Value for url exists in cache\n if (svgLoad.isCallbackQueue) {\n // Same url has been cached, but value has not been loaded yet, so add to callbacks\n svgLoad.push(handleLoadValue);\n } else {\n handleLoadValue(svgLoad);\n }\n return;\n } else {\n var svgLoad = [];\n // set property isCallbackQueue to Array to differentiate from array with cached loaded values\n svgLoad.isCallbackQueue = true;\n svgLoadCache[absUrl] = svgLoad;\n }\n }\n\n // Load the SVG because it is not cached or caching is disabled\n loadSvg(absUrl, function(svgXml, svgString) {\n // Use the XML from the XHR request if it is an instance of Document. Otherwise\n // (for example of IE9), create the svg document from the svg string.\n var svgElem = svgXml instanceof Document ? svgXml.documentElement : buildSvgElement(svgString, true);\n\n var afterLoad = options.afterLoad;\n if (afterLoad) {\n // Invoke afterLoad hook which may modify the SVG element. After load may also return a new\n // svg element or svg string\n var svgElemOrSvgString = afterLoad(svgElem, svgString) || svgElem;\n if (svgElemOrSvgString) {\n // Update svgElem and svgString because of modifications to the SVG element or SVG string in\n // the afterLoad hook, so the modified SVG is also used for all later cached injections\n var isString = typeof svgElemOrSvgString == 'string';\n svgString = isString ? svgElemOrSvgString : svgElemToSvgString(svgElem);\n svgElem = isString ? buildSvgElement(svgElemOrSvgString, true) : svgElemOrSvgString;\n }\n }\n\n if (svgElem instanceof SVGElement) {\n var hasUniqueIds = NULL;\n if (makeIdsUniqueOption) {\n hasUniqueIds = makeIdsUnique(svgElem, false);\n }\n\n if (useCacheOption) {\n var uniqueIdsSvgString = hasUniqueIds && svgElemToSvgString(svgElem);\n // set an array with three entries to the load cache\n setSvgLoadCacheValue([hasUniqueIds, svgString, uniqueIdsSvgString]);\n }\n\n inject(imgElem, svgElem, absUrl, options);\n } else {\n svgInvalid(imgElem, options);\n setSvgLoadCacheValue(SVG_INVALID);\n }\n onFinish();\n }, function() {\n loadFail(imgElem, options);\n setSvgLoadCacheValue(LOAD_FAIL);\n onFinish();\n });\n } else {\n if (Array.isArray(svgInjectAttributeValue)) {\n // svgInjectAttributeValue is an array. Injection is not complete so register callback\n svgInjectAttributeValue.push(callback);\n } else {\n callback();\n }\n }\n } else {\n imgNotSet();\n }\n }\n\n\n /**\n * Sets the default [options](#options) for SVGInject.\n *\n * @param {Object} [options] - default [options](#options) for an injection.\n */\n SVGInject.setOptions = function(options) {\n defaultOptions = mergeOptions(defaultOptions, options);\n };\n\n\n // Create a new instance of SVGInject\n SVGInject.create = createSVGInject;\n\n\n /**\n * Used in onerror Event of an `` element to handle cases when the loading the original src fails\n * (for example if file is not found or if the browser does not support SVG). This triggers a call to the\n * options onFail hook if available. The optional second parameter will be set as the new src attribute\n * for the img element.\n *\n * @param {HTMLImageElement} img - an img element\n * @param {String} [fallbackSrc] - optional parameter fallback src\n */\n SVGInject.err = function(img, fallbackSrc) {\n if (img) {\n if (img[__SVGINJECT] != FAIL) {\n removeEventListeners(img);\n\n if (!IS_SVG_SUPPORTED) {\n svgNotSupported(img, defaultOptions);\n } else {\n removeOnLoadAttribute(img);\n loadFail(img, defaultOptions);\n }\n if (fallbackSrc) {\n removeOnLoadAttribute(img);\n img.src = fallbackSrc;\n }\n }\n } else {\n imgNotSet();\n }\n };\n\n window[globalName] = SVGInject;\n\n return SVGInject;\n }\n\n var SVGInjectInstance = createSVGInject('SVGInject');\n\n if (typeof module == 'object' && typeof module.exports == 'object') {\n module.exports = SVGInjectInstance;\n }\n})(window, document);","!function(A,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.vueTagsInput=t():A.vueTagsInput=t()}(window,function(){return function(A){var t={};function e(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return A[n].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=A,e.c=t,e.d=function(A,t,n){e.o(A,t)||Object.defineProperty(A,t,{enumerable:!0,get:n})},e.r=function(A){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(A,\"__esModule\",{value:!0})},e.t=function(A,t){if(1&t&&(A=e(A)),8&t)return A;if(4&t&&\"object\"==typeof A&&A&&A.__esModule)return A;var n=Object.create(null);if(e.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:A}),2&t&&\"string\"!=typeof A)for(var i in A)e.d(n,i,function(t){return A[t]}.bind(null,i));return n},e.n=function(A){var t=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(t,\"a\",t),t},e.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},e.p=\"/dist/\",e(e.s=6)}([function(A,t,e){var n=e(8);\"string\"==typeof n&&(n=[[A.i,n,\"\"]]),n.locals&&(A.exports=n.locals);(0,e(4).default)(\"7ec05f6c\",n,!1,{})},function(A,t,e){var n=e(10);\"string\"==typeof n&&(n=[[A.i,n,\"\"]]),n.locals&&(A.exports=n.locals);(0,e(4).default)(\"3453d19d\",n,!1,{})},function(A,t,e){\"use strict\";A.exports=function(A){var t=[];return t.toString=function(){return this.map(function(t){var e=function(A,t){var e=A[1]||\"\",n=A[3];if(!n)return e;if(t&&\"function\"==typeof btoa){var i=(r=n,\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\"),a=n.sources.map(function(A){return\"/*# sourceURL=\"+n.sourceRoot+A+\" */\"});return[e].concat(a).concat([i]).join(\"\\n\")}var r;return[e].join(\"\\n\")}(t,A);return t[2]?\"@media \"+t[2]+\"{\"+e+\"}\":e}).join(\"\")},t.i=function(A,e){\"string\"==typeof A&&(A=[[null,A,\"\"]]);for(var n={},i=0;ie.parts.length&&(n.parts.length=e.parts.length)}else{var r=[];for(i=0;i div[data-v-61d92e31] {\\n cursor: pointer;\\n padding: 3px 6px;\\n width: 100%;\\n}\\n.ti-selected-item[data-v-61d92e31] {\\n background-color: #5C6BC0;\\n color: #fff;\\n}\\n',\"\",{version:3,sources:[\"C:/Users/johan/dev/vue-tags-input/vue-tags-input/C:/Users/johan/dev/vue-tags-input/vue-tags-input/vue-tags-input.scss\"],names:[],mappings:\"AAAA;EACE,uBAAuB;EACvB,mCAA8C;EAC9C,+JAAuM;EACvM,oBAAoB;EACpB,mBAAmB;CAAE;AAEvB;EACE,kCAAkC;EAClC,YAAY;EACZ,mBAAmB;EACnB,oBAAoB;EACpB,qBAAqB;EACrB,qBAAqB;EACrB,eAAe;EACf,oCAAoC;EACpC,mCAAmC;CAAE;AAEvC;EACE,iBAAiB;CAAE;AAErB;EACE,iBAAiB;CAAE;AAErB;EACE,iBAAiB;CAAE;AAErB;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;CAAE;AAE1B;EACE,uBAAuB;CAAE;AAE3B;EACE,cAAc;CAAE;AAElB;EACE,8BAA8B;CAAE;AAElC;EACE,iBAAiB;EACjB,mBAAmB;EACnB,uBAAuB;CAAE;AAE3B;EACE,aAAa;CAAE;AACf;IACE,gBAAgB;CAAE;AAEtB;EACE,uBAAuB;EACvB,cAAc;EACd,aAAa;EACb,gBAAgB;CAAE;AAEpB;EACE,cAAc;EACd,gBAAgB;EAChB,YAAY;EACZ,iBAAiB;CAAE;AAErB;EACE,0BAA0B;EAC1B,YAAY;EACZ,mBAAmB;EACnB,cAAc;EACd,iBAAiB;EACjB,YAAY;EACZ,iBAAiB;CAAE;AACnB;IACE,cAAc;CAAE;AAClB;IACE,cAAc;IACd,oBAAoB;CAAE;AACxB;IACE,mBAAmB;CAAE;AACvB;IACE,mBAAmB;CAAE;AACvB;IACE,mBAAmB;IACnB,mBAAmB;IACnB,YAAY;IACZ,iBAAiB;CAAE;AACrB;IACE,iBAAiB;IACjB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;CAAE;AACpB;MACE,gBAAgB;CAAE;AACtB;IACE,kBAAkB;CAAE;AACtB;IACE,0BAA0B;CAAE;AAEhC;EACE,cAAc;EACd,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,iBAAiB;CAAE;AACnB;IACE,eAAe;IACf,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,YAAY;CAAE;AAElB;EACE,qBAAqB;CAAE;AAEzB;EACE,uBAAuB;EACvB,iBAAiB;EACjB,mBAAmB;EACnB,YAAY;EACZ,uBAAuB;EACvB,YAAY;CAAE;AAEhB;EACE,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;CAAE;AAEhB;EACE,0BAA0B;EAC1B,YAAY;CAAE\",file:\"vue-tags-input.scss?vue&type=style&index=0&id=61d92e31&lang=scss&scoped=true&\",sourcesContent:['@font-face {\\n font-family: \\'icomoon\\';\\n src: url(\"./assets/fonts/icomoon.eot?7grlse\");\\n src: url(\"./assets/fonts/icomoon.eot?7grlse#iefix\") format(\"embedded-opentype\"), url(\"./assets/fonts/icomoon.ttf?7grlse\") format(\"truetype\"), url(\"./assets/fonts/icomoon.woff?7grlse\") format(\"woff\");\\n font-weight: normal;\\n font-style: normal; }\\n\\n[class^=\"ti-icon-\"], [class*=\" ti-icon-\"] {\\n font-family: \\'icomoon\\' !important;\\n speak: none;\\n font-style: normal;\\n font-weight: normal;\\n font-variant: normal;\\n text-transform: none;\\n line-height: 1;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale; }\\n\\n.ti-icon-check:before {\\n content: \"\\\\e902\"; }\\n\\n.ti-icon-close:before {\\n content: \"\\\\e901\"; }\\n\\n.ti-icon-undo:before {\\n content: \"\\\\e900\"; }\\n\\nul {\\n margin: 0px;\\n padding: 0px;\\n list-style-type: none; }\\n\\n*, *:before, *:after {\\n box-sizing: border-box; }\\n\\ninput:focus {\\n outline: none; }\\n\\ninput[disabled] {\\n background-color: transparent; }\\n\\n.vue-tags-input {\\n max-width: 450px;\\n position: relative;\\n background-color: #fff; }\\n\\ndiv.vue-tags-input.disabled {\\n opacity: 0.5; }\\n div.vue-tags-input.disabled * {\\n cursor: default; }\\n\\n.ti-input {\\n border: 1px solid #ccc;\\n display: flex;\\n padding: 4px;\\n flex-wrap: wrap; }\\n\\n.ti-tags {\\n display: flex;\\n flex-wrap: wrap;\\n width: 100%;\\n line-height: 1em; }\\n\\n.ti-tag {\\n background-color: #5C6BC0;\\n color: #fff;\\n border-radius: 2px;\\n display: flex;\\n padding: 3px 5px;\\n margin: 2px;\\n font-size: .85em; }\\n .ti-tag:focus {\\n outline: none; }\\n .ti-tag .ti-content {\\n display: flex;\\n align-items: center; }\\n .ti-tag .ti-tag-center {\\n position: relative; }\\n .ti-tag span {\\n line-height: .85em; }\\n .ti-tag span.ti-hidden {\\n padding-left: 14px;\\n visibility: hidden;\\n height: 0px;\\n white-space: pre; }\\n .ti-tag .ti-actions {\\n margin-left: 2px;\\n display: flex;\\n align-items: center;\\n font-size: 1.15em; }\\n .ti-tag .ti-actions i {\\n cursor: pointer; }\\n .ti-tag:last-child {\\n margin-right: 4px; }\\n .ti-tag.ti-invalid, .ti-tag.ti-tag.ti-deletion-mark {\\n background-color: #e54d42; }\\n\\n.ti-new-tag-input-wrapper {\\n display: flex;\\n flex: 1 0 auto;\\n padding: 3px 5px;\\n margin: 2px;\\n font-size: .85em; }\\n .ti-new-tag-input-wrapper input {\\n flex: 1 0 auto;\\n min-width: 100px;\\n border: none;\\n padding: 0px;\\n margin: 0px; }\\n\\n.ti-new-tag-input {\\n line-height: initial; }\\n\\n.ti-autocomplete {\\n border: 1px solid #ccc;\\n border-top: none;\\n position: absolute;\\n width: 100%;\\n background-color: #fff;\\n z-index: 20; }\\n\\n.ti-item > div {\\n cursor: pointer;\\n padding: 3px 6px;\\n width: 100%; }\\n\\n.ti-selected-item {\\n background-color: #5C6BC0;\\n color: #fff; }\\n'],sourceRoot:\"\"}])},function(A,t,e){\"use strict\";A.exports=function(A){return\"string\"!=typeof A?A:(/^['\"].*['\"]$/.test(A)&&(A=A.slice(1,-1)),/[\"'() \\t\\n]/.test(A)?'\"'+A.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\")+'\"':A)}},function(A,t){A.exports=\"data:font/ttf;base64,AAEAAAALAIAAAwAwT1MvMg8SBawAAAC8AAAAYGNtYXAXVtKJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZqWfozAAAAF4AAAA/GhlYWQPxZgIAAACdAAAADZoaGVhB4ADyAAAAqwAAAAkaG10eBIAAb4AAALQAAAAHGxvY2EAkgDiAAAC7AAAABBtYXhwAAkAHwAAAvwAAAAgbmFtZZlKCfsAAAMcAAABhnBvc3QAAwAAAAAEpAAAACAAAwOAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6QL//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAFYBAQO+AoEAHAAAATIXHgEXFhcHJicuAScmIyIGBxchERc2Nz4BNzYCFkpDQ28pKRdkECAfVTM0OT9wLZz+gJgdIiJLKSgCVRcYUjg5QiAzKys+ERIrJZoBgJoZFRQcCAgAAQDWAIEDKgLVAAsAAAEHFwcnByc3JzcXNwMq7u487u487u487u4Cme7uPO7uPO7uPO7uAAEAkgCBA4ACvQAFAAAlARcBJzcBgAHEPP4A7jz5AcQ8/gDuPAAAAAABAAAAAAAAH8nTUV8PPPUACwQAAAAAANZ1KhsAAAAA1nUqGwAAAAADvgLVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAO+AAEAAAAAAAAAAAAAAAAAAAAHBAAAAAAAAAAAAAAAAgAAAAQAAFYEAADWBAAAkgAAAAAACgAUAB4AUABqAH4AAQAAAAcAHQABAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"},function(A,t){A.exports=\"data:font/woff;base64,d09GRgABAAAAAAUQAAsAAAAABMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIFrGNtYXAAAAFoAAAAVAAAAFQXVtKJZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAPwAAAD8pZ+jMGhlYWQAAALAAAAANgAAADYPxZgIaGhlYQAAAvgAAAAkAAAAJAeAA8hobXR4AAADHAAAABwAAAAcEgABvmxvY2EAAAM4AAAAEAAAABAAkgDibWF4cAAAA0gAAAAgAAAAIAAJAB9uYW1lAAADaAAAAYYAAAGGmUoJ+3Bvc3QAAATwAAAAIAAAACAAAwAAAAMDgAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QIDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkC//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQBWAQEDvgKBABwAAAEyFx4BFxYXByYnLgEnJiMiBgcXIREXNjc+ATc2AhZKQ0NvKSkXZBAgH1UzNDk/cC2c/oCYHSIiSykoAlUXGFI4OUIgMysrPhESKyWaAYCaGRUUHAgIAAEA1gCBAyoC1QALAAABBxcHJwcnNyc3FzcDKu7uPO7uPO7uPO7uApnu7jzu7jzu7jzu7gABAJIAgQOAAr0ABQAAJQEXASc3AYABxDz+AO48+QHEPP4A7jwAAAAAAQAAAAAAAB/J01FfDzz1AAsEAAAAAADWdSobAAAAANZ1KhsAAAAAA74C1QAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADvgABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABWBAAA1gQAAJIAAAAAAAoAFAAeAFAAagB+AAEAAAAHAB0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAHAAAAAQAAAAAAAgAHAGAAAQAAAAAAAwAHADYAAQAAAAAABAAHAHUAAQAAAAAABQALABUAAQAAAAAABgAHAEsAAQAAAAAACgAaAIoAAwABBAkAAQAOAAcAAwABBAkAAgAOAGcAAwABBAkAAwAOAD0AAwABBAkABAAOAHwAAwABBAkABQAWACAAAwABBAkABgAOAFIAAwABBAkACgA0AKRpY29tb29uAGkAYwBvAG0AbwBvAG5WZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBpY29tb29uAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG5SZWd1bGFyAFIAZQBnAHUAbABhAHJpY29tb29uAGkAYwBvAG0AbwBvAG5Gb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\"},function(A,t,e){\"use strict\";e.r(t);var n=function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"div\",{staticClass:\"vue-tags-input\",class:[{\"ti-disabled\":A.disabled},{\"ti-focus\":A.focused}]},[e(\"div\",{staticClass:\"ti-input\"},[A.tagsCopy?e(\"ul\",{staticClass:\"ti-tags\"},[A._l(A.tagsCopy,function(t,n){return e(\"li\",{key:n,staticClass:\"ti-tag\",class:[{\"ti-editing\":A.tagsEditStatus[n]},t.tiClasses,t.classes,{\"ti-deletion-mark\":A.isMarked(n)}],style:t.style,attrs:{tabindex:\"0\"},on:{click:function(e){return A.$emit(\"tag-clicked\",{tag:t,index:n})}}},[e(\"div\",{staticClass:\"ti-content\"},[A.$scopedSlots[\"tag-left\"]?e(\"div\",{staticClass:\"ti-tag-left\"},[A._t(\"tag-left\",null,{tag:t,index:n,edit:A.tagsEditStatus[n],performSaveEdit:A.performSaveTag,performDelete:A.performDeleteTag,performCancelEdit:A.cancelEdit,performOpenEdit:A.performEditTag,deletionMark:A.isMarked(n)})],2):A._e(),A._v(\" \"),e(\"div\",{ref:\"tagCenter\",refInFor:!0,staticClass:\"ti-tag-center\"},[A.$scopedSlots[\"tag-center\"]?A._e():e(\"span\",{class:{\"ti-hidden\":A.tagsEditStatus[n]},on:{click:function(t){return A.performEditTag(n)}}},[A._v(A._s(t.text))]),A._v(\" \"),A.$scopedSlots[\"tag-center\"]?A._e():e(\"tag-input\",{attrs:{scope:{edit:A.tagsEditStatus[n],maxlength:A.maxlength,tag:t,index:n,validateTag:A.createChangedTag,performCancelEdit:A.cancelEdit,performSaveEdit:A.performSaveTag}}}),A._v(\" \"),A._t(\"tag-center\",null,{tag:t,index:n,maxlength:A.maxlength,edit:A.tagsEditStatus[n],performSaveEdit:A.performSaveTag,performDelete:A.performDeleteTag,performCancelEdit:A.cancelEdit,validateTag:A.createChangedTag,performOpenEdit:A.performEditTag,deletionMark:A.isMarked(n)})],2),A._v(\" \"),A.$scopedSlots[\"tag-right\"]?e(\"div\",{staticClass:\"ti-tag-right\"},[A._t(\"tag-right\",null,{tag:t,index:n,edit:A.tagsEditStatus[n],performSaveEdit:A.performSaveTag,performDelete:A.performDeleteTag,performCancelEdit:A.cancelEdit,performOpenEdit:A.performEditTag,deletionMark:A.isMarked(n)})],2):A._e()]),A._v(\" \"),e(\"div\",{staticClass:\"ti-actions\"},[A.$scopedSlots[\"tag-actions\"]?A._e():e(\"i\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.tagsEditStatus[n],expression:\"tagsEditStatus[index]\"}],staticClass:\"ti-icon-undo\",on:{click:function(t){return A.cancelEdit(n)}}}),A._v(\" \"),A.$scopedSlots[\"tag-actions\"]?A._e():e(\"i\",{directives:[{name:\"show\",rawName:\"v-show\",value:!A.tagsEditStatus[n],expression:\"!tagsEditStatus[index]\"}],staticClass:\"ti-icon-close\",on:{click:function(t){return A.performDeleteTag(n)}}}),A._v(\" \"),A.$scopedSlots[\"tag-actions\"]?A._t(\"tag-actions\",null,{tag:t,index:n,edit:A.tagsEditStatus[n],performSaveEdit:A.performSaveTag,performDelete:A.performDeleteTag,performCancelEdit:A.cancelEdit,performOpenEdit:A.performEditTag,deletionMark:A.isMarked(n)}):A._e()],2)])}),A._v(\" \"),e(\"li\",{staticClass:\"ti-new-tag-input-wrapper\"},[e(\"input\",A._b({ref:\"newTagInput\",staticClass:\"ti-new-tag-input\",class:[A.createClasses(A.newTag,A.tags,A.validation,A.isDuplicate)],attrs:{placeholder:A.placeholder,maxlength:A.maxlength,disabled:A.disabled,type:\"text\",size:\"1\"},domProps:{value:A.newTag},on:{keydown:[function(t){return A.performAddTags(A.filteredAutocompleteItems[A.selectedItem]||A.newTag,t)},function(t){return t.type.indexOf(\"key\")||8===t.keyCode?A.invokeDelete(t):null},function(t){return t.type.indexOf(\"key\")||9===t.keyCode?A.performBlur(t):null},function(t){return t.type.indexOf(\"key\")||38===t.keyCode?A.selectItem(t,\"before\"):null},function(t){return t.type.indexOf(\"key\")||40===t.keyCode?A.selectItem(t,\"after\"):null}],paste:A.addTagsFromPaste,input:A.updateNewTag,blur:function(t){return A.$emit(\"blur\",t)},focus:function(t){A.focused=!0,A.$emit(\"focus\",t)},click:function(t){!A.addOnlyFromAutocomplete&&(A.selectedItem=null)}}},\"input\",A.$attrs,!1))])],2):A._e()]),A._v(\" \"),A._t(\"between-elements\"),A._v(\" \"),A.autocompleteOpen?e(\"div\",{staticClass:\"ti-autocomplete\",on:{mouseout:function(t){A.selectedItem=null}}},[A._t(\"autocomplete-header\"),A._v(\" \"),e(\"ul\",A._l(A.filteredAutocompleteItems,function(t,n){return e(\"li\",{key:n,staticClass:\"ti-item\",class:[t.tiClasses,t.classes,{\"ti-selected-item\":A.isSelected(n)}],style:t.style,on:{mouseover:function(t){!A.disabled&&(A.selectedItem=n)}}},[A.$scopedSlots[\"autocomplete-item\"]?A._t(\"autocomplete-item\",null,{item:t,index:n,performAdd:function(t){return A.performAddTags(t,void 0,\"autocomplete\")},selected:A.isSelected(n)}):e(\"div\",{on:{click:function(e){return A.performAddTags(t,void 0,\"autocomplete\")}}},[A._v(\"\\n \"+A._s(t.text)+\"\\n \")])],2)}),0),A._v(\" \"),A._t(\"autocomplete-footer\")],2):A._e()],2)};n._withStripped=!0;var i=e(5),a=e.n(i),r=function(A){return JSON.parse(JSON.stringify(A))},o=function(A,t){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0;void 0===A.text&&(A={text:A});var i=function(A,t){return t.filter(function(t){var e=A.text;return\"string\"==typeof t.rule?!new RegExp(t.rule).test(e):t.rule instanceof RegExp?!t.rule.test(e):\"[object Function]\"==={}.toString.call(t.rule)?t.rule(A):void 0}).map(function(A){return A.classes})}(A,e),a=function(A,t){for(var e=0;e1?e-1:0),i=1;i1?t-1:0),n=1;n=this.autocompleteMinLength&&this.filteredAutocompleteItems.length>0&&this.focused},filteredAutocompleteItems:function(){var A=this,t=this.autocompleteItems.map(function(t){return s(t,A.tags,A.validation,A.isDuplicate)});return this.autocompleteFilterDuplicates?t.filter(this.duplicateFilter):t}},methods:{createClasses:o,getSelectedIndex:function(A){var t=this.filteredAutocompleteItems,e=this.selectedItem,n=t.length-1;if(0!==t.length)return null===e?0:\"before\"===A&&0===e?n:\"after\"===A&&e===n?0:\"after\"===A?e+1:e-1},selectDefaultItem:function(){this.addOnlyFromAutocomplete&&this.filteredAutocompleteItems.length>0?this.selectedItem=0:this.selectedItem=null},selectItem:function(A,t){A.preventDefault(),this.selectedItem=this.getSelectedIndex(t)},isSelected:function(A){return this.selectedItem===A},isMarked:function(A){return this.deletionMark===A},invokeDelete:function(){var A=this;if(this.deleteOnBackspace&&!(this.newTag.length>0)){var t=this.tagsCopy.length-1;null===this.deletionMark?(this.deletionMarkTime=setTimeout(function(){return A.deletionMark=null},1e3),this.deletionMark=t):this.performDeleteTag(t)}},addTagsFromPaste:function(){var A=this;this.addFromPaste&&setTimeout(function(){return A.performAddTags(A.newTag)},10)},performEditTag:function(A){var t=this;this.allowEditTags&&(this._events[\"before-editing-tag\"]||this.editTag(A),this.$emit(\"before-editing-tag\",{index:A,tag:this.tagsCopy[A],editTag:function(){return t.editTag(A)}}))},editTag:function(A){this.allowEditTags&&(this.toggleEditMode(A),this.focus(A))},toggleEditMode:function(A){this.allowEditTags&&!this.disabled&&this.$set(this.tagsEditStatus,A,!this.tagsEditStatus[A])},createChangedTag:function(A,t){var e=this.tagsCopy[A];e.text=t?t.target.value:this.tagsCopy[A].text,this.$set(this.tagsCopy,A,s(e,this.tagsCopy,this.validation,this.isDuplicate))},focus:function(A){var t=this;this.$nextTick(function(){var e=t.$refs.tagCenter[A].querySelector(\"input.ti-tag-input\");e&&e.focus()})},quote:function(A){return A.replace(/([()[{*+.$^\\\\|?])/g,\"\\\\$1\")},cancelEdit:function(A){this.tags[A]&&(this.tagsCopy[A]=r(s(this.tags[A],this.tags,this.validation,this.isDuplicate)),this.$set(this.tagsEditStatus,A,!1))},hasForbiddingAddRule:function(A){var t=this;return A.some(function(A){var e=t.validation.find(function(t){return A===t.classes});return!!e&&e.disableAdd})},createTagTexts:function(A){var t=this,e=new RegExp(this.separators.map(function(A){return t.quote(A)}).join(\"|\"));return A.split(e).map(function(A){return{text:A}})},performDeleteTag:function(A){var t=this;this._events[\"before-deleting-tag\"]||this.deleteTag(A),this.$emit(\"before-deleting-tag\",{index:A,tag:this.tagsCopy[A],deleteTag:function(){return t.deleteTag(A)}})},deleteTag:function(A){this.disabled||(this.deletionMark=null,clearTimeout(this.deletionMarkTime),this.tagsCopy.splice(A,1),this._events[\"update:tags\"]&&this.$emit(\"update:tags\",this.tagsCopy),this.$emit(\"tags-changed\",this.tagsCopy))},noTriggerKey:function(A,t){var e=-1!==this[t].indexOf(A.keyCode)||-1!==this[t].indexOf(A.key);return e&&A.preventDefault(),!e},performAddTags:function(A,t,e){var n=this;if(!(this.disabled||t&&this.noTriggerKey(t,\"addOnKey\"))){var i=[];\"object\"===m(A)&&(i=[A]),\"string\"==typeof A&&(i=this.createTagTexts(A)),(i=i.filter(function(A){return A.text.trim().length>0})).forEach(function(A){A=s(A,n.tags,n.validation,n.isDuplicate),n._events[\"before-adding-tag\"]||n.addTag(A,e),n.$emit(\"before-adding-tag\",{tag:A,addTag:function(){return n.addTag(A,e)}})})}},duplicateFilter:function(A){return this.isDuplicate?!this.isDuplicate(this.tagsCopy,A):!this.tagsCopy.find(function(t){return t.text===A.text})},addTag:function(A){var t=this,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"new-tag-input\",n=this.filteredAutocompleteItems.map(function(A){return A.text});this.addOnlyFromAutocomplete&&-1===n.indexOf(A.text)||this.$nextTick(function(){return t.maxTags&&t.maxTags<=t.tagsCopy.length?t.$emit(\"max-tags-reached\",A):t.avoidAddingDuplicates&&!t.duplicateFilter(A)?t.$emit(\"adding-duplicate\",A):void(t.hasForbiddingAddRule(A.tiClasses)||(t.$emit(\"input\",\"\"),t.tagsCopy.push(A),t._events[\"update:tags\"]&&t.$emit(\"update:tags\",t.tagsCopy),\"autocomplete\"===e&&t.$refs.newTagInput.focus(),t.$emit(\"tags-changed\",t.tagsCopy)))})},performSaveTag:function(A,t){var e=this,n=this.tagsCopy[A];this.disabled||t&&this.noTriggerKey(t,\"addOnKey\")||0!==n.text.trim().length&&(this._events[\"before-saving-tag\"]||this.saveTag(A,n),this.$emit(\"before-saving-tag\",{index:A,tag:n,saveTag:function(){return e.saveTag(A,n)}}))},saveTag:function(A,t){if(this.avoidAddingDuplicates){var e=r(this.tagsCopy),n=e.splice(A,1)[0];if(this.isDuplicate?this.isDuplicate(e,n):-1!==e.map(function(A){return A.text}).indexOf(n.text))return this.$emit(\"saving-duplicate\",t)}this.hasForbiddingAddRule(t.tiClasses)||(this.$set(this.tagsCopy,A,t),this.toggleEditMode(A),this._events[\"update:tags\"]&&this.$emit(\"update:tags\",this.tagsCopy),this.$emit(\"tags-changed\",this.tagsCopy))},tagsEqual:function(){var A=this;return!this.tagsCopy.some(function(t,e){return!a()(t,A.tags[e])})},updateNewTag:function(A){var t=A.target.value;this.newTag=t,this.$emit(\"input\",t)},initTags:function(){this.tagsCopy=u(this.tags,this.validation,this.isDuplicate),this.tagsEditStatus=r(this.tags).map(function(){return!1}),this._events[\"update:tags\"]&&!this.tagsEqual()&&this.$emit(\"update:tags\",this.tagsCopy)},blurredOnClick:function(A){this.$el.contains(A.target)||this.$el.contains(document.activeElement)||this.performBlur(A)},performBlur:function(){this.addOnBlur&&this.focused&&this.performAddTags(this.newTag),this.focused=!1}},watch:{value:function(A){this.addOnlyFromAutocomplete||(this.selectedItem=null),this.newTag=A},tags:{handler:function(){this.initTags()},deep:!0},autocompleteOpen:\"selectDefaultItem\"},created:function(){this.newTag=this.value,this.initTags()},mounted:function(){this.selectDefaultItem(),document.addEventListener(\"click\",this.blurredOnClick)},destroyed:function(){document.removeEventListener(\"click\",this.blurredOnClick)}},C=(e(9),l(h,n,[],!1,null,\"61d92e31\",null));C.options.__file=\"vue-tags-input/vue-tags-input.vue\";var E=C.exports;e.d(t,\"VueTagsInput\",function(){return E}),e.d(t,\"createClasses\",function(){return o}),e.d(t,\"createTag\",function(){return s}),e.d(t,\"createTags\",function(){return u}),e.d(t,\"TagInput\",function(){return g}),E.install=function(A){return A.component(E.name,E)},\"undefined\"!=typeof window&&window.Vue&&window.Vue.use(E);t.default=E}])});\n//# sourceMappingURL=vue-tags-input.js.map","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n var context = this;\n\n (function() {\n (function() {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n\n }).call(this);\n }).call(context);\n\n var Rails = context.Rails;\n\n (function() {\n (function() {\n var nonce;\n\n nonce = null;\n\n Rails.loadCSPNonce = function() {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function() {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n\n }).call(this);\n (function() {\n var expando, m;\n\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function(element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function(element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function(element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n\n Rails.$ = function(selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n\n }).call(this);\n (function() {\n var $, csrfParam, csrfToken;\n\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function() {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function(xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function() {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if ((token != null) && (param != null)) {\n return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n return input.value = token;\n });\n }\n };\n\n }).call(this);\n (function() {\n var CustomEvent, fire, matches, preventDefault;\n\n matches = Rails.matches;\n\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function() {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n }\n return result;\n };\n }\n\n fire = Rails.fire = function(obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function(e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function(element, selector, eventType, handler) {\n return element.addEventListener(eventType, function(e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n\n }).call(this);\n (function() {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function(options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function() {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n\n createXHR = function(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function() {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n\n processResponse = function(response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n\n Rails.href = function(element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function(url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n } catch (error) {\n e = error;\n return true;\n }\n };\n\n }).call(this);\n (function() {\n var matches, toArray;\n\n matches = Rails.matches;\n\n toArray = function(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function(element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function(input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function(option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function(param) {\n if (param.name != null) {\n return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function(form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function(el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n\n }).call(this);\n (function() {\n var allowAction, fire, stopEverything;\n\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function(e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function(message, element) {\n return confirm(message);\n };\n\n allowAction = function(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n\n }).call(this);\n (function() {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function(e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function(e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function(e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function(element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n\n }).call(this);\n (function() {\n var stopEverything;\n\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function(e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n\n }).call(this);\n (function() {\n var ajax, fire, getData, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n slice = [].slice;\n\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function(element) {\n var value;\n value = element.getAttribute('data-remote');\n return (value != null) && value !== 'false';\n };\n\n Rails.handleRemote = function(e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: (withCredentials != null) && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function(e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function(e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n\n }).call(this);\n (function() {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function() {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function() {\n $(Rails.formEnableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function(el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n return setTimeout((function() {\n return disableElement(e);\n }), 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n// Polyfill for element.matches, to support Internet Explorer. It's a relatively\n// simple polyfill, so we'll just include it rather than require the user to\n// include the polyfill themselves. Adapted from\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\nvar matches = function matches(element, selector) {\n return element.matches ? element.matches(selector) : element.msMatchesSelector ? element.msMatchesSelector(selector) : element.webkitMatchesSelector ? element.webkitMatchesSelector(selector) : null;\n};\n\n// Polyfill for element.closest, to support Internet Explorer. It's a relatively\n\nvar closestPolyfill = function closestPolyfill(el, selector) {\n var element = el;\n\n while (element && element.nodeType === 1) {\n if (matches(element, selector)) {\n return element;\n }\n\n element = element.parentNode;\n }\n\n return null;\n};\n\nvar closest = function closest(element, selector) {\n return element.closest ? element.closest(selector) : closestPolyfill(element, selector);\n};\n\n// Returns true if the value has a \"then\" function. Adapted from\n// https://github.com/graphql/graphql-js/blob/499a75939f70c4863d44149371d6a99d57ff7c35/src/jsutils/isPromise.js\nvar isPromise = function isPromise(value) {\n return Boolean(value && typeof value.then === 'function');\n};\n\nvar AutocompleteCore = function AutocompleteCore() {\n var _this = this;\n\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n search = _ref.search,\n _ref$autoSelect = _ref.autoSelect,\n autoSelect = _ref$autoSelect === void 0 ? false : _ref$autoSelect,\n _ref$setValue = _ref.setValue,\n setValue = _ref$setValue === void 0 ? function () {} : _ref$setValue,\n _ref$setAttribute = _ref.setAttribute,\n setAttribute = _ref$setAttribute === void 0 ? function () {} : _ref$setAttribute,\n _ref$onUpdate = _ref.onUpdate,\n onUpdate = _ref$onUpdate === void 0 ? function () {} : _ref$onUpdate,\n _ref$onSubmit = _ref.onSubmit,\n onSubmit = _ref$onSubmit === void 0 ? function () {} : _ref$onSubmit,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onHide = _ref.onHide,\n onHide = _ref$onHide === void 0 ? function () {} : _ref$onHide,\n _ref$onLoading = _ref.onLoading,\n onLoading = _ref$onLoading === void 0 ? function () {} : _ref$onLoading,\n _ref$onLoaded = _ref.onLoaded,\n onLoaded = _ref$onLoaded === void 0 ? function () {} : _ref$onLoaded;\n\n _classCallCheck(this, AutocompleteCore);\n\n _defineProperty(this, \"value\", '');\n\n _defineProperty(this, \"searchCounter\", 0);\n\n _defineProperty(this, \"results\", []);\n\n _defineProperty(this, \"selectedIndex\", -1);\n\n _defineProperty(this, \"handleInput\", function (event) {\n var value = event.target.value;\n\n _this.updateResults(value);\n\n _this.value = value;\n });\n\n _defineProperty(this, \"handleKeyDown\", function (event) {\n var key = event.key;\n\n switch (key) {\n case 'Up': // IE/Edge\n\n case 'Down': // IE/Edge\n\n case 'ArrowUp':\n case 'ArrowDown':\n {\n var selectedIndex = key === 'ArrowUp' || key === 'Up' ? _this.selectedIndex - 1 : _this.selectedIndex + 1;\n event.preventDefault();\n\n _this.handleArrows(selectedIndex);\n\n break;\n }\n\n case 'Tab':\n {\n _this.selectResult();\n\n break;\n }\n\n case 'Enter':\n {\n var selectedResult = _this.results[_this.selectedIndex];\n\n _this.selectResult();\n\n _this.onSubmit(selectedResult);\n\n break;\n }\n\n case 'Esc': // IE/Edge\n\n case 'Escape':\n {\n _this.hideResults();\n\n _this.setValue();\n\n break;\n }\n\n default:\n return;\n }\n });\n\n _defineProperty(this, \"handleFocus\", function (event) {\n var value = event.target.value;\n\n _this.updateResults(value);\n\n _this.value = value;\n });\n\n _defineProperty(this, \"handleBlur\", function () {\n _this.hideResults();\n });\n\n _defineProperty(this, \"handleResultMouseDown\", function (event) {\n event.preventDefault();\n });\n\n _defineProperty(this, \"handleResultClick\", function (event) {\n var target = event.target;\n var result = closest(target, '[data-result-index]');\n\n if (result) {\n _this.selectedIndex = parseInt(result.dataset.resultIndex, 10);\n var selectedResult = _this.results[_this.selectedIndex];\n\n _this.selectResult();\n\n _this.onSubmit(selectedResult);\n }\n });\n\n _defineProperty(this, \"handleArrows\", function (selectedIndex) {\n // Loop selectedIndex back to first or last result if out of bounds\n var resultsCount = _this.results.length;\n _this.selectedIndex = (selectedIndex % resultsCount + resultsCount) % resultsCount; // Update results and aria attributes\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n });\n\n _defineProperty(this, \"selectResult\", function () {\n var selectedResult = _this.results[_this.selectedIndex];\n\n if (selectedResult) {\n _this.setValue(selectedResult);\n }\n\n _this.hideResults();\n });\n\n _defineProperty(this, \"updateResults\", function (value) {\n var currentSearch = ++_this.searchCounter;\n\n _this.onLoading();\n\n _this.search(value).then(function (results) {\n if (currentSearch !== _this.searchCounter) {\n return;\n }\n\n _this.results = results;\n\n _this.onLoaded();\n\n if (_this.results.length === 0) {\n _this.hideResults();\n\n return;\n }\n\n _this.selectedIndex = _this.autoSelect ? 0 : -1;\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n\n _this.showResults();\n });\n });\n\n _defineProperty(this, \"showResults\", function () {\n _this.setAttribute('aria-expanded', true);\n\n _this.onShow();\n });\n\n _defineProperty(this, \"hideResults\", function () {\n _this.selectedIndex = -1;\n _this.results = [];\n\n _this.setAttribute('aria-expanded', false);\n\n _this.setAttribute('aria-activedescendant', '');\n\n _this.onUpdate(_this.results, _this.selectedIndex);\n\n _this.onHide();\n });\n\n _defineProperty(this, \"checkSelectedResultVisible\", function (resultsElement) {\n var selectedResultElement = resultsElement.querySelector(\"[data-result-index=\\\"\".concat(_this.selectedIndex, \"\\\"]\"));\n\n if (!selectedResultElement) {\n return;\n }\n\n var resultsPosition = resultsElement.getBoundingClientRect();\n var selectedPosition = selectedResultElement.getBoundingClientRect();\n\n if (selectedPosition.top < resultsPosition.top) {\n // Element is above viewable area\n resultsElement.scrollTop -= resultsPosition.top - selectedPosition.top;\n } else if (selectedPosition.bottom > resultsPosition.bottom) {\n // Element is below viewable area\n resultsElement.scrollTop += selectedPosition.bottom - resultsPosition.bottom;\n }\n });\n\n this.search = isPromise(search) ? search : function (value) {\n return Promise.resolve(search(value));\n };\n this.autoSelect = autoSelect;\n this.setValue = setValue;\n this.setAttribute = setAttribute;\n this.onUpdate = onUpdate;\n this.onSubmit = onSubmit;\n this.onShow = onShow;\n this.onHide = onHide;\n this.onLoading = onLoading;\n this.onLoaded = onLoaded;\n};\n\n// Generates a unique ID, with optional prefix. Adapted from\n// https://github.com/lodash/lodash/blob/61acdd0c295e4447c9c10da04e287b1ebffe452c/uniqueId.js\nvar idCounter = 0;\n\nvar uniqueId = function uniqueId() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return \"\".concat(prefix).concat(++idCounter);\n};\n\n// Calculates whether element2 should be above or below element1. Always\n// places element2 below unless all of the following:\n// 1. There isn't enough visible viewport below to fit element2\n// 2. There is more room above element1 than there is below\n// 3. Placing elemen2 above 1 won't overflow window\nvar getRelativePosition = function getRelativePosition(element1, element2) {\n var position1 = element1.getBoundingClientRect();\n var position2 = element2.getBoundingClientRect();\n var positionAbove =\n /* 1 */\n position1.bottom + position2.height > window.innerHeight &&\n /* 2 */\n window.innerHeight - position1.bottom < position1.top &&\n /* 3 */\n window.pageYOffset + position1.top - position2.height > 0;\n return positionAbove ? 'above' : 'below';\n};\n\n// Credit David Walsh (https://davidwalsh.name/javascript-debounce-function)\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nvar debounce = function debounce(func, wait, immediate) {\n var timeout;\n return function executedFunction() {\n var context = this;\n var args = arguments;\n\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n\nvar script = {\n name: 'Autocomplete',\n inheritAttrs: false,\n props: {\n search: {\n type: Function,\n required: true\n },\n baseClass: {\n type: String,\n \"default\": 'autocomplete'\n },\n autoSelect: {\n type: Boolean,\n \"default\": false\n },\n getResultValue: {\n type: Function,\n \"default\": function _default(result) {\n return result;\n }\n },\n defaultValue: {\n type: String,\n \"default\": ''\n },\n debounceTime: {\n type: Number,\n \"default\": 0\n }\n },\n data: function data() {\n var core = new AutocompleteCore({\n search: this.search,\n autoSelect: this.autoSelect,\n setValue: this.setValue,\n onUpdate: this.handleUpdate,\n onSubmit: this.handleSubmit,\n onShow: this.handleShow,\n onHide: this.handleHide,\n onLoading: this.handleLoading,\n onLoaded: this.handleLoaded\n });\n\n if (this.debounceTime > 0) {\n core.handleInput = debounce(core.handleInput, this.debounceTime);\n }\n\n return {\n core: core,\n value: this.defaultValue,\n resultListId: uniqueId(\"\".concat(this.baseClass, \"-result-list-\")),\n results: [],\n selectedIndex: -1,\n expanded: false,\n loading: false,\n position: 'below',\n resetPosition: true\n };\n },\n computed: {\n rootProps: function rootProps() {\n return {\n \"class\": this.baseClass,\n style: {\n position: 'relative'\n },\n 'data-expanded': this.expanded,\n 'data-loading': this.loading,\n 'data-position': this.position\n };\n },\n inputProps: function inputProps() {\n return _objectSpread2({\n \"class\": \"\".concat(this.baseClass, \"-input\"),\n value: this.value,\n role: 'combobox',\n autocomplete: 'off',\n autocapitalize: 'off',\n autocorrect: 'off',\n spellcheck: 'false',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'listbox',\n 'aria-owns': this.resultListId,\n 'aria-expanded': this.expanded ? 'true' : 'false',\n 'aria-activedescendant': this.selectedIndex > -1 ? this.resultProps[this.selectedIndex].id : ''\n }, this.$attrs);\n },\n inputListeners: function inputListeners() {\n return {\n input: this.handleInput,\n keydown: this.core.handleKeyDown,\n focus: this.core.handleFocus,\n blur: this.core.handleBlur\n };\n },\n resultListProps: function resultListProps() {\n var yPosition = this.position === 'below' ? 'top' : 'bottom';\n return {\n id: this.resultListId,\n \"class\": \"\".concat(this.baseClass, \"-result-list\"),\n role: 'listbox',\n style: _defineProperty({\n position: 'absolute',\n zIndex: 1,\n width: '100%',\n visibility: this.expanded ? 'visible' : 'hidden',\n pointerEvents: this.expanded ? 'auto' : 'none'\n }, yPosition, '100%')\n };\n },\n resultListListeners: function resultListListeners() {\n return {\n mousedown: this.core.handleResultMouseDown,\n click: this.core.handleResultClick\n };\n },\n resultProps: function resultProps() {\n var _this = this;\n\n return this.results.map(function (result, index) {\n return _objectSpread2({\n id: \"\".concat(_this.baseClass, \"-result-\").concat(index),\n \"class\": \"\".concat(_this.baseClass, \"-result\"),\n 'data-result-index': index,\n role: 'option'\n }, _this.selectedIndex === index ? {\n 'aria-selected': 'true'\n } : {});\n });\n }\n },\n mounted: function mounted() {\n document.body.addEventListener('click', this.handleDocumentClick);\n },\n beforeDestroy: function beforeDestroy() {\n document.body.removeEventListener('click', this.handleDocumentClick);\n },\n updated: function updated() {\n if (!this.$refs.input || !this.$refs.resultList) {\n return;\n }\n\n if (this.resetPosition && this.results.length > 0) {\n this.resetPosition = false;\n this.position = getRelativePosition(this.$refs.input, this.$refs.resultList);\n }\n\n this.core.checkSelectedResultVisible(this.$refs.resultList);\n },\n methods: {\n setValue: function setValue(result) {\n this.value = result ? this.getResultValue(result) : '';\n },\n handleUpdate: function handleUpdate(results, selectedIndex) {\n this.results = results;\n this.selectedIndex = selectedIndex;\n this.$emit('update', results, selectedIndex);\n },\n handleShow: function handleShow() {\n this.expanded = true;\n },\n handleHide: function handleHide() {\n this.expanded = false;\n this.resetPosition = true;\n },\n handleLoading: function handleLoading() {\n this.loading = true;\n },\n handleLoaded: function handleLoaded() {\n this.loading = false;\n },\n handleInput: function handleInput(event) {\n this.value = event.target.value;\n this.core.handleInput(event);\n },\n handleSubmit: function handleSubmit(selectedResult) {\n this.$emit('submit', selectedResult);\n },\n handleDocumentClick: function handleDocumentClick(event) {\n if (this.$refs.root.contains(event.target)) {\n return;\n }\n\n this.core.hideResults();\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"root\"},[_vm._t(\"default\",[_c('div',_vm._b({},'div',_vm.rootProps,false),[_c('input',_vm._g(_vm._b({ref:\"input\",on:{\"input\":_vm.handleInput,\"keydown\":_vm.core.handleKeyDown,\"focus\":_vm.core.handleFocus,\"blur\":_vm.core.handleBlur}},'input',_vm.inputProps,false),_vm.$listeners)),_vm._v(\" \"),_c('ul',_vm._g(_vm._b({ref:\"resultList\"},'ul',_vm.resultListProps,false),_vm.resultListListeners),[_vm._l((_vm.results),function(result,index){return [_vm._t(\"result\",[_c('li',_vm._b({key:_vm.resultProps[index].id},'li',_vm.resultProps[index],false),[_vm._v(\"\\n \"+_vm._s(_vm.getResultValue(result))+\"\\n \")])],{\"result\":result,\"props\":_vm.resultProps[index]})]})],2)])],{\"rootProps\":_vm.rootProps,\"inputProps\":_vm.inputProps,\"inputListeners\":_vm.inputListeners,\"resultListProps\":_vm.resultListProps,\"resultListListeners\":_vm.resultListListeners,\"results\":_vm.results,\"resultProps\":_vm.resultProps})],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nfunction install(Vue) {\n if (install.installed) {\n return;\n }\n\n install.installed = true;\n Vue.component('Autocomplete', __vue_component__);\n}\n\nvar plugin = {\n install: install\n}; // Auto install if Vue is found\n\nvar GlobalVue;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n} // Inject install function into component. Allows component to be registered via\n// Vue.use() as well as Vue.component()\n\n\n__vue_component__.install = install;\n\nexport default __vue_component__;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BUTTON } from '../../constants/components';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { addClass, isTag, removeClass } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction } from '../../utils/inspect';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { isLink as isLinkStrict } from '../../utils/router';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n pill: makeProp(PROP_TYPE_BOOLEAN, false),\n // Tri-state: `true`, `false` or `null`\n // => On, off, not a toggle\n pressed: makeProp(PROP_TYPE_BOOLEAN, null),\n size: makeProp(PROP_TYPE_STRING),\n squared: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'button'),\n type: makeProp(PROP_TYPE_STRING, 'button'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_BUTTON); // --- Helper methods ---\n// Focus handler for toggle buttons\n// Needs class of 'focus' when focused\n\nvar handleFocus = function handleFocus(event) {\n if (event.type === 'focusin') {\n addClass(event.target, 'focus');\n } else if (event.type === 'focusout') {\n removeClass(event.target, 'focus');\n }\n}; // Is the requested button a link?\n// If tag prop is set to `a`, we use a to get proper disabled handling\n\n\nvar isLink = function isLink(props) {\n return isLinkStrict(props) || isTag(props.tag, 'a');\n}; // Is the button to be a toggle button?\n\n\nvar isToggle = function isToggle(props) {\n return isBoolean(props.pressed);\n}; // Is the button \"really\" a button?\n\n\nvar isButton = function isButton(props) {\n return !(isLink(props) || props.tag && !isTag(props.tag, 'button'));\n}; // Is the requested tag not a button or link?\n\n\nvar isNonStandardTag = function isNonStandardTag(props) {\n return !isLink(props) && !isButton(props);\n}; // Compute required classes (non static classes)\n\n\nvar computeClass = function computeClass(props) {\n var _ref;\n\n return [\"btn-\".concat(props.variant || 'secondary'), (_ref = {}, _defineProperty(_ref, \"btn-\".concat(props.size), 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)];\n}; // Compute the link props to pass to b-link (if required)\n\n\nvar computeLinkProps = function computeLinkProps(props) {\n return isLink(props) ? pluckProps(linkProps, props) : {};\n}; // Compute the attributes for a button\n\n\nvar computeAttrs = function computeAttrs(props, data) {\n var button = isButton(props);\n var link = isLink(props);\n var toggle = isToggle(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var role = data.attrs && data.attrs.role ? data.attrs.role : null;\n var tabindex = data.attrs ? data.attrs.tabindex : null;\n\n if (nonStandardTag || hashLink) {\n tabindex = '0';\n }\n\n return {\n // Type only used for \"real\" buttons\n type: button && !link ? props.type : null,\n // Disabled only set on \"real\" buttons\n disabled: button ? props.disabled : null,\n // We add a role of button when the tag is not a link or button for ARIA\n // Don't bork any role provided in `data.attrs` when `isLink` or `isButton`\n // Except when link has `href` of `#`\n role: nonStandardTag || hashLink ? 'button' : role,\n // We set the `aria-disabled` state for non-standard tags\n 'aria-disabled': nonStandardTag ? String(props.disabled) : null,\n // For toggles, we need to set the pressed state for ARIA\n 'aria-pressed': toggle ? String(props.pressed) : null,\n // `autocomplete=\"off\"` is needed in toggle mode to prevent some browsers\n // from remembering the previous setting when using the back button\n autocomplete: toggle ? 'off' : null,\n // `tabindex` is used when the component is not a button\n // Links are tabbable, but don't allow disabled, while non buttons or links\n // are not tabbable, so we mimic that functionality by disabling tabbing\n // when disabled, and adding a `tabindex=\"0\"` to non buttons or non links\n tabindex: props.disabled && !button ? '-1' : tabindex\n };\n}; // --- Main component ---\n// @vue/component\n\n\nexport var BButton = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON,\n functional: true,\n props: props,\n render: function render(h, _ref2) {\n var props = _ref2.props,\n data = _ref2.data,\n listeners = _ref2.listeners,\n children = _ref2.children;\n var toggle = isToggle(props);\n var link = isLink(props);\n var nonStandardTag = isNonStandardTag(props);\n var hashLink = link && props.href === '#';\n var on = {\n keydown: function keydown(event) {\n // When the link is a `href=\"#\"` or a non-standard tag (has `role=\"button\"`),\n // we add a keydown handlers for CODE_SPACE/CODE_ENTER\n\n /* istanbul ignore next */\n if (props.disabled || !(nonStandardTag || hashLink)) {\n return;\n }\n\n var keyCode = event.keyCode; // Add CODE_SPACE handler for `href=\"#\"` and CODE_ENTER handler for non-standard tags\n\n if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {\n var target = event.currentTarget || event.target;\n stopEvent(event, {\n propagation: false\n });\n target.click();\n }\n },\n click: function click(event) {\n /* istanbul ignore if: blink/button disabled should handle this */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n } else if (toggle && listeners && listeners['update:pressed']) {\n // Send `.sync` updates to any \"pressed\" prop (if `.sync` listeners)\n // `concat()` will normalize the value to an array without\n // double wrapping an array value in an array\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (isFunction(fn)) {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (toggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: computeClass(props),\n props: computeLinkProps(props),\n attrs: computeAttrs(props, data),\n on: on\n };\n return h(link ? BLink : props.tag, mergeData(data, componentData), children);\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { contains } from '../utils/dom';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var clickOutMixin = Vue.extend({\n data: function data() {\n return {\n listenForClickOut: false\n };\n },\n watch: {\n listenForClickOut: function listenForClickOut(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.clickOutElement = null;\n this.clickOutEventName = null;\n },\n mounted: function mounted() {\n if (!this.clickOutElement) {\n this.clickOutElement = document;\n }\n\n if (!this.clickOutEventName) {\n this.clickOutEventName = 'click';\n }\n\n if (this.listenForClickOut) {\n eventOn(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.clickOutElement, this.clickOutEventName, this._clickOutHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n isClickOut: function isClickOut(event) {\n return !contains(this.$el, event.target);\n },\n _clickOutHandler: function _clickOutHandler(event) {\n if (this.clickOutHandler && this.isClickOut(event)) {\n this.clickOutHandler(event);\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { eventOn, eventOff } from '../utils/events'; // @vue/component\n\nexport var focusInMixin = Vue.extend({\n data: function data() {\n return {\n listenForFocusIn: false\n };\n },\n watch: {\n listenForFocusIn: function listenForFocusIn(newValue, oldValue) {\n if (newValue !== oldValue) {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n\n if (newValue) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n }\n },\n beforeCreate: function beforeCreate() {\n // Declare non-reactive properties\n this.focusInElement = null;\n },\n mounted: function mounted() {\n if (!this.focusInElement) {\n this.focusInElement = document;\n }\n\n if (this.listenForFocusIn) {\n eventOn(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n }\n },\n beforeDestroy: function beforeDestroy() {\n eventOff(this.focusInElement, 'focusin', this._focusInHandler, EVENT_OPTIONS_NO_CAPTURE);\n },\n methods: {\n _focusInHandler: function _focusInHandler(event) {\n if (this.focusInHandler) {\n this.focusInHandler(event);\n }\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport Popper from 'popper.js';\nimport { Vue } from '../vue';\nimport { NAME_DROPDOWN } from '../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE } from '../constants/events';\nimport { CODE_DOWN, CODE_ENTER, CODE_ESC, CODE_SPACE, CODE_UP } from '../constants/key-codes';\nimport { PLACEMENT_TOP_START, PLACEMENT_TOP_END, PLACEMENT_BOTTOM_START, PLACEMENT_BOTTOM_END, PLACEMENT_RIGHT_START, PLACEMENT_LEFT_START } from '../constants/popper';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props';\nimport { HTMLElement } from '../constants/safe-types';\nimport { BvEvent } from '../utils/bv-event.class';\nimport { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom';\nimport { getRootEventName, stopEvent } from '../utils/events';\nimport { isNull } from '../utils/inspect';\nimport { mergeDeep, sortKeys } from '../utils/object';\nimport { makeProp, makePropsConfigurable } from '../utils/props';\nimport { warn } from '../utils/warn';\nimport { clickOutMixin } from './click-out';\nimport { focusInMixin } from './focus-in';\nimport { idMixin, props as idProps } from './id';\nimport { listenOnRootMixin } from './listen-on-root'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_SHOWN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_SHOWN);\nvar ROOT_EVENT_NAME_HIDDEN = getRootEventName(NAME_DROPDOWN, EVENT_NAME_HIDDEN); // CSS selectors\n\nvar SELECTOR_FORM_CHILD = '.dropdown form';\nvar SELECTOR_ITEM = ['.dropdown-item', '.b-dropdown-form'].map(function (selector) {\n return \"\".concat(selector, \":not(.disabled):not([disabled])\");\n}).join(', '); // --- Helper methods ---\n// Return an array of visible items\n\nvar filterVisibles = function filterVisibles(els) {\n return (els || []).filter(isVisible);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, {\n // String: `scrollParent`, `window` or `viewport`\n // HTMLElement: HTML Element reference\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place left if possible\n dropleft: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place right if possible\n dropright: makeProp(PROP_TYPE_BOOLEAN, false),\n // Place on top if possible\n dropup: makeProp(PROP_TYPE_BOOLEAN, false),\n // Disable auto-flipping of menu from bottom <=> top\n noFlip: makeProp(PROP_TYPE_BOOLEAN, false),\n // Number of pixels or a CSS unit value to offset menu\n // (i.e. `1px`, `1rem`, etc.)\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n popperOpts: makeProp(PROP_TYPE_OBJECT, {}),\n // Right align menu (default is left align)\n right: makeProp(PROP_TYPE_BOOLEAN, false)\n})), NAME_DROPDOWN); // --- Mixin ---\n// @vue/component\n\nexport var dropdownMixin = Vue.extend({\n mixins: [idMixin, listenOnRootMixin, clickOutMixin, focusInMixin],\n provide: function provide() {\n return {\n bvDropdown: this\n };\n },\n inject: {\n bvNavbar: {\n default: null\n }\n },\n props: props,\n data: function data() {\n return {\n visible: false,\n visibleChangePrevented: false\n };\n },\n computed: {\n inNavbar: function inNavbar() {\n return !isNull(this.bvNavbar);\n },\n toggler: function toggler() {\n var toggle = this.$refs.toggle;\n return toggle ? toggle.$el || toggle : null;\n },\n directionClass: function directionClass() {\n if (this.dropup) {\n return 'dropup';\n } else if (this.dropright) {\n return 'dropright';\n } else if (this.dropleft) {\n return 'dropleft';\n }\n\n return '';\n },\n boundaryClass: function boundaryClass() {\n // Position `static` is needed to allow menu to \"breakout\" of the `scrollParent`\n // boundaries when boundary is anything other than `scrollParent`\n // See: https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n return this.boundary !== 'scrollParent' && !this.inNavbar ? 'position-static' : '';\n }\n },\n watch: {\n visible: function visible(newValue, oldValue) {\n if (this.visibleChangePrevented) {\n this.visibleChangePrevented = false;\n return;\n }\n\n if (newValue !== oldValue) {\n var eventName = newValue ? EVENT_NAME_SHOW : EVENT_NAME_HIDE;\n var bvEvent = new BvEvent(eventName, {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.menu,\n relatedTarget: null,\n componentId: this.safeId ? this.safeId() : this.id || null\n });\n this.emitEvent(bvEvent);\n\n if (bvEvent.defaultPrevented) {\n // Reset value and exit if canceled\n this.visibleChangePrevented = true;\n this.visible = oldValue; // Just in case a child element triggered `this.hide(true)`\n\n this.$off(EVENT_NAME_HIDDEN, this.focusToggler);\n return;\n }\n\n if (newValue) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n }\n },\n disabled: function disabled(newValue, oldValue) {\n if (newValue !== oldValue && newValue && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_popper = null;\n this.$_hideTimeout = null;\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In case we are inside a ``\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.whileOpenListen(false);\n this.destroyPopper();\n this.clearHideTimeout();\n },\n methods: {\n // Event emitter\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(NAME_DROPDOWN, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n showMenu: function showMenu() {\n var _this = this;\n\n if (this.disabled) {\n /* istanbul ignore next */\n return;\n } // Only instantiate Popper.js when dropdown is not in ``\n\n\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n /* istanbul ignore next */\n warn('Popper.js not found. Falling back to CSS positioning', NAME_DROPDOWN);\n } else {\n // For dropup with alignment we use the parent element as popper container\n var el = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle; // Make sure we have a reference to an element, not a component!\n\n el = el.$el || el; // Instantiate Popper.js\n\n this.createPopper(el);\n }\n } // Ensure other menus are closed\n\n\n this.emitOnRoot(ROOT_EVENT_NAME_SHOWN, this); // Enable listeners\n\n this.whileOpenListen(true); // Wrap in `$nextTick()` to ensure menu is fully rendered/shown\n\n this.$nextTick(function () {\n // Focus on the menu container on show\n _this.focusMenu(); // Emit the shown event\n\n\n _this.$emit(EVENT_NAME_SHOWN);\n });\n },\n hideMenu: function hideMenu() {\n this.whileOpenListen(false);\n this.emitOnRoot(ROOT_EVENT_NAME_HIDDEN, this);\n this.$emit(EVENT_NAME_HIDDEN);\n this.destroyPopper();\n },\n createPopper: function createPopper(element) {\n this.destroyPopper();\n this.$_popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n // Ensure popper event listeners are removed cleanly\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n // Instructs popper to re-computes the dropdown position\n // useful if the content changes size\n updatePopper: function updatePopper() {\n try {\n this.$_popper.scheduleUpdate();\n } catch (_unused) {}\n },\n clearHideTimeout: function clearHideTimeout() {\n clearTimeout(this.$_hideTimeout);\n this.$_hideTimeout = null;\n },\n getPopperConfig: function getPopperConfig() {\n var placement = PLACEMENT_BOTTOM_START;\n\n if (this.dropup) {\n placement = this.right ? PLACEMENT_TOP_END : PLACEMENT_TOP_START;\n } else if (this.dropright) {\n placement = PLACEMENT_RIGHT_START;\n } else if (this.dropleft) {\n placement = PLACEMENT_LEFT_START;\n } else if (this.right) {\n placement = PLACEMENT_BOTTOM_END;\n }\n\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n var boundariesElement = this.boundary;\n\n if (boundariesElement) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: boundariesElement\n };\n }\n\n return mergeDeep(popperConfig, this.popperOpts || {});\n },\n // Turn listeners on/off while open\n whileOpenListen: function whileOpenListen(isOpen) {\n // Hide the dropdown when clicked outside\n this.listenForClickOut = isOpen; // Hide the dropdown when it loses focus\n\n this.listenForFocusIn = isOpen; // Hide the dropdown when another dropdown is opened\n\n var method = isOpen ? '$on' : '$off';\n this.$root[method](ROOT_EVENT_NAME_SHOWN, this.rootCloseListener);\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n // Public method to show dropdown\n show: function show() {\n var _this2 = this;\n\n if (this.disabled) {\n return;\n } // Wrap in a `requestAF()` to allow any previous\n // click handling to occur first\n\n\n requestAF(function () {\n _this2.visible = true;\n });\n },\n // Public method to hide dropdown\n hide: function hide() {\n var refocus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n /* istanbul ignore next */\n if (this.disabled) {\n return;\n }\n\n this.visible = false;\n\n if (refocus) {\n // Child element is closing the dropdown on click\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only by a button that toggles the menu\n toggle: function toggle(event) {\n event = event || {}; // Early exit when not a click event or ENTER, SPACE or DOWN were pressed\n\n var _event = event,\n type = _event.type,\n keyCode = _event.keyCode;\n\n if (type !== 'click' && !(type === 'keydown' && [CODE_ENTER, CODE_SPACE, CODE_DOWN].indexOf(keyCode) !== -1)) {\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_TOGGLE, event);\n stopEvent(event); // Toggle visibility\n\n if (this.visible) {\n this.hide(true);\n } else {\n this.show();\n }\n },\n // Mousedown handler for the toggle\n\n /* istanbul ignore next */\n onMousedown: function onMousedown(event) {\n // We prevent the 'mousedown' event for the toggle to stop the\n // 'focusin' event from being fired\n // The event would otherwise be picked up by the global 'focusin'\n // listener and there is no cross-browser solution to detect it\n // relates to the toggle click\n // The 'click' event will still be fired and we handle closing\n // other dropdowns there too\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/4328\n stopEvent(event, {\n propagation: false\n });\n },\n // Called from dropdown menu context\n onKeydown: function onKeydown(event) {\n var keyCode = event.keyCode;\n\n if (keyCode === CODE_ESC) {\n // Close on ESC\n this.onEsc(event);\n } else if (keyCode === CODE_DOWN) {\n // Down Arrow\n this.focusNext(event, false);\n } else if (keyCode === CODE_UP) {\n // Up Arrow\n this.focusNext(event, true);\n }\n },\n // If user presses ESC, close the menu\n onEsc: function onEsc(event) {\n if (this.visible) {\n this.visible = false;\n stopEvent(event); // Return focus to original trigger button\n\n this.$once(EVENT_NAME_HIDDEN, this.focusToggler);\n }\n },\n // Called only in split button mode, for the split button\n onSplitClick: function onSplitClick(event) {\n /* istanbul ignore next */\n if (this.disabled) {\n this.visible = false;\n return;\n }\n\n this.$emit(EVENT_NAME_CLICK, event);\n },\n // Shared hide handler between click-out and focus-in events\n hideHandler: function hideHandler(event) {\n var _this3 = this;\n\n var target = event.target;\n\n if (this.visible && !contains(this.$refs.menu, target) && !contains(this.toggler, target)) {\n this.clearHideTimeout();\n this.$_hideTimeout = setTimeout(function () {\n return _this3.hide();\n }, this.inNavbar ? 300 : 0);\n }\n },\n // Document click-out listener\n clickOutHandler: function clickOutHandler(event) {\n this.hideHandler(event);\n },\n // Document focus-in listener\n focusInHandler: function focusInHandler(event) {\n this.hideHandler(event);\n },\n // Keyboard nav\n focusNext: function focusNext(event, up) {\n var _this4 = this;\n\n // Ignore key up/down on form elements\n var target = event.target;\n\n if (!this.visible || event && closest(SELECTOR_FORM_CHILD, target)) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n stopEvent(event);\n this.$nextTick(function () {\n var items = _this4.getItems();\n\n if (items.length < 1) {\n /* istanbul ignore next: should never happen */\n return;\n }\n\n var index = items.indexOf(target);\n\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n\n if (index < 0) {\n /* istanbul ignore next: should never happen */\n index = 0;\n }\n\n _this4.focusItem(index, items);\n });\n },\n focusItem: function focusItem(index, items) {\n var el = items.find(function (el, i) {\n return i === index;\n });\n attemptFocus(el);\n },\n getItems: function getItems() {\n // Get all items\n return filterVisibles(selectAll(SELECTOR_ITEM, this.$refs.menu));\n },\n focusMenu: function focusMenu() {\n attemptFocus(this.$refs.menu);\n },\n focusToggler: function focusToggler() {\n var _this5 = this;\n\n this.$nextTick(function () {\n attemptFocus(_this5.toggler);\n });\n }\n }\n});","export var PLACEMENT_TOP_START = 'top-start';\nexport var PLACEMENT_TOP_END = 'top-end';\nexport var PLACEMENT_BOTTOM_START = 'bottom-start';\nexport var PLACEMENT_BOTTOM_END = 'bottom-end';\nexport var PLACEMENT_RIGHT_START = 'right-start';\nexport var PLACEMENT_RIGHT_END = 'right-end';\nexport var PLACEMENT_LEFT_START = 'left-start';\nexport var PLACEMENT_LEFT_END = 'left-end';","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { htmlOrText } from '../../utils/html';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButton } from '../button/button';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), dropdownProps), {}, {\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n html: makeProp(PROP_TYPE_STRING),\n // If `true`, only render menu contents when open\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCaret: makeProp(PROP_TYPE_BOOLEAN, false),\n role: makeProp(PROP_TYPE_STRING, 'menu'),\n size: makeProp(PROP_TYPE_STRING),\n split: makeProp(PROP_TYPE_BOOLEAN, false),\n splitButtonType: makeProp(PROP_TYPE_STRING, 'button', function (value) {\n return arrayIncludes(['button', 'submit', 'reset'], value);\n }),\n splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n splitHref: makeProp(PROP_TYPE_STRING),\n splitTo: makeProp(PROP_TYPE_OBJECT_STRING),\n splitVariant: makeProp(PROP_TYPE_STRING),\n text: makeProp(PROP_TYPE_STRING),\n toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n toggleTag: makeProp(PROP_TYPE_STRING, 'button'),\n // TODO: This really should be `toggleLabel`\n toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),\n variant: makeProp(PROP_TYPE_STRING, 'secondary')\n})), NAME_DROPDOWN); // --- Main component ---\n// @vue/component\n\nexport var BDropdown = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN,\n mixins: [idMixin, dropdownMixin, normalizeSlotMixin],\n props: props,\n computed: {\n dropdownClasses: function dropdownClasses() {\n var block = this.block,\n split = this.split;\n return [this.directionClass, this.boundaryClass, {\n show: this.visible,\n // The 'btn-group' class is required in `split` mode for button alignment\n // It needs also to be applied when `block` is disabled to allow multiple\n // dropdowns to be aligned one line\n 'btn-group': split || !block,\n // When `block` is enabled and we are in `split` mode the 'd-flex' class\n // needs to be applied to allow the buttons to stretch to full width\n 'd-flex': block && split\n }];\n },\n menuClasses: function menuClasses() {\n return [this.menuClass, {\n 'dropdown-menu-right': this.right,\n show: this.visible\n }];\n },\n toggleClasses: function toggleClasses() {\n var split = this.split;\n return [this.toggleClass, {\n 'dropdown-toggle-split': split,\n 'dropdown-toggle-no-caret': this.noCaret && !split\n }];\n }\n },\n render: function render(h) {\n var visible = this.visible,\n variant = this.variant,\n size = this.size,\n block = this.block,\n disabled = this.disabled,\n split = this.split,\n role = this.role,\n hide = this.hide,\n toggle = this.toggle;\n var commonProps = {\n variant: variant,\n size: size,\n block: block,\n disabled: disabled\n };\n var $buttonChildren = this.normalizeSlot(SLOT_NAME_BUTTON_CONTENT);\n var buttonContentDomProps = this.hasNormalizedSlot(SLOT_NAME_BUTTON_CONTENT) ? {} : htmlOrText(this.html, this.text);\n var $split = h();\n\n if (split) {\n var splitTo = this.splitTo,\n splitHref = this.splitHref,\n splitButtonType = this.splitButtonType;\n\n var btnProps = _objectSpread(_objectSpread({}, commonProps), {}, {\n variant: this.splitVariant || variant\n }); // We add these as needed due to issues with\n // defined property with `undefined`/`null` values\n\n\n if (splitTo) {\n btnProps.to = splitTo;\n } else if (splitHref) {\n btnProps.href = splitHref;\n } else if (splitButtonType) {\n btnProps.type = splitButtonType;\n }\n\n $split = h(BButton, {\n class: this.splitClass,\n attrs: {\n id: this.safeId('_BV_button_')\n },\n props: btnProps,\n domProps: buttonContentDomProps,\n on: {\n click: this.onSplitClick\n },\n ref: 'button'\n }, $buttonChildren); // Overwrite button content for the toggle when in `split` mode\n\n $buttonChildren = [h('span', {\n class: ['sr-only']\n }, [this.toggleText])];\n buttonContentDomProps = {};\n }\n\n var $toggle = h(BButton, {\n staticClass: 'dropdown-toggle',\n class: this.toggleClasses,\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': toString(visible)\n },\n props: _objectSpread(_objectSpread({}, commonProps), {}, {\n tag: this.toggleTag,\n block: block && !split\n }),\n domProps: buttonContentDomProps,\n on: {\n mousedown: this.onMousedown,\n click: toggle,\n keydown: toggle // Handle ENTER, SPACE and DOWN\n\n },\n ref: 'toggle'\n }, $buttonChildren);\n var $menu = h('ul', {\n staticClass: 'dropdown-menu',\n class: this.menuClasses,\n attrs: {\n role: role,\n tabindex: '-1',\n 'aria-labelledby': this.safeId(split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n keydown: this.onKeydown // Handle UP, DOWN and ESC\n\n },\n ref: 'menu'\n }, [!this.lazy || visible ? this.normalizeSlot(SLOT_NAME_DEFAULT, {\n hide: hide\n }) : h()]);\n return h('div', {\n staticClass: 'dropdown b-dropdown',\n class: this.dropdownClasses,\n attrs: {\n id: this.safeId()\n }\n }, [$split, $toggle, $menu]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { requestAF } from '../../utils/dom';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink, props as BLinkProps } from '../link/link'; // --- Props ---\n\nvar linkProps = omit(BLinkProps, ['event', 'routerTag']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, linkProps), {}, {\n linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n})), NAME_DROPDOWN_ITEM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItem = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem'\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n var _this = this;\n\n // Close on next animation frame to allow time to process\n requestAF(function () {\n if (_this.bvDropdown) {\n _this.bvDropdown.hide(true);\n }\n });\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var linkClass = this.linkClass,\n variant = this.variant,\n active = this.active,\n disabled = this.disabled,\n onClick = this.onClick,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h(BLink, {\n staticClass: 'dropdown-item',\n class: [linkClass, _defineProperty({}, \"text-\".concat(variant), variant && !(active || disabled))],\n props: pluckProps(linkProps, this.$props),\n attrs: this.computedAttrs,\n on: {\n click: onClick\n },\n ref: 'item'\n }, this.normalizeSlot())]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_DROPDOWN_ITEM_BUTTON } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n activeClass: makeProp(PROP_TYPE_STRING, 'active'),\n buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_ITEM_BUTTON); // --- Main component ---\n// @vue/component\n\nexport var BDropdownItemButton = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_ITEM_BUTTON,\n mixins: [attrsMixin, normalizeSlotMixin],\n inject: {\n bvDropdown: {\n default: null\n }\n },\n inheritAttrs: false,\n props: props,\n computed: {\n computedAttrs: function computedAttrs() {\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n role: 'menuitem',\n type: 'button',\n disabled: this.disabled\n });\n }\n },\n methods: {\n closeDropdown: function closeDropdown() {\n if (this.bvDropdown) {\n this.bvDropdown.hide(true);\n }\n },\n onClick: function onClick(event) {\n this.$emit(EVENT_NAME_CLICK, event);\n this.closeDropdown();\n }\n },\n render: function render(h) {\n var _ref;\n\n var active = this.active,\n variant = this.variant,\n bvAttrs = this.bvAttrs;\n return h('li', {\n class: bvAttrs.class,\n style: bvAttrs.style,\n attrs: {\n role: 'presentation'\n }\n }, [h('button', {\n staticClass: 'dropdown-item',\n class: [this.buttonClass, (_ref = {}, _defineProperty(_ref, this.activeClass, active), _defineProperty(_ref, \"text-\".concat(variant), variant && !(active || this.disabled)), _ref)],\n attrs: this.computedAttrs,\n on: {\n click: this.onClick\n },\n ref: 'button'\n }, this.normalizeSlot())]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownHeader = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: _defineProperty({}, \"text-\".concat(variant), variant),\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n }),\n ref: 'header'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_DIVIDER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { omit } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'hr')\n}, NAME_DROPDOWN_DIVIDER); // --- Main component ---\n// @vue/component\n\nexport var BDropdownDivider = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_DIVIDER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(props.tag, {\n staticClass: 'dropdown-divider',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n role: 'separator',\n 'aria-orientation': 'horizontal'\n }),\n ref: 'divider'\n })]);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { omit, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BForm, props as formControlProps } from '../form/form'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, formControlProps), {}, {\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n})), NAME_DROPDOWN_FORM); // --- Main component ---\n// @vue/component\n\nexport var BDropdownForm = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props: props,\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n }),\n on: listeners,\n ref: 'form'\n }, children)]);\n }\n});","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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BDropdownText = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tag = props.tag,\n textClass = props.textClass,\n variant = props.variant;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, _defineProperty({}, \"text-\".concat(variant), variant)],\n props: props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_GROUP } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER } from '../../constants/slots';\nimport { isTag } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot';\nimport { omit } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaDescribedby: makeProp(PROP_TYPE_STRING),\n header: makeProp(PROP_TYPE_STRING),\n headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerTag: makeProp(PROP_TYPE_STRING, 'header'),\n headerVariant: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_GROUP); // --- Main component ---\n// @vue/component\n\nexport var BDropdownGroup = /*#__PURE__*/Vue.extend({\n name: NAME_DROPDOWN_GROUP,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var id = props.id,\n variant = props.variant,\n header = props.header,\n headerTag = props.headerTag;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var slotScope = {};\n var headerId = id ? \"_bv_\".concat(id, \"_group_dd_header\") : null;\n var $header = h();\n\n if (hasNormalizedSlot(SLOT_NAME_HEADER, $scopedSlots, $slots) || header) {\n $header = h(headerTag, {\n staticClass: 'dropdown-header',\n class: [props.headerClasses, _defineProperty({}, \"text-\".concat(variant), variant)],\n attrs: {\n id: headerId,\n role: isTag(headerTag, 'header') ? null : 'heading'\n }\n }, normalizeSlot(SLOT_NAME_HEADER, slotScope, $scopedSlots, $slots) || header);\n }\n\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [$header, h('ul', {\n staticClass: 'list-unstyled',\n attrs: _objectSpread(_objectSpread({}, data.attrs || {}), {}, {\n id: id,\n role: 'group',\n 'aria-describedby': [headerId, props.ariaDescribedBy].filter(identity).join(' ').trim() || null\n })\n }, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots))]);\n }\n});","import { BDropdown } from './dropdown';\nimport { BDropdownItem } from './dropdown-item';\nimport { BDropdownItemButton } from './dropdown-item-button';\nimport { BDropdownHeader } from './dropdown-header';\nimport { BDropdownDivider } from './dropdown-divider';\nimport { BDropdownForm } from './dropdown-form';\nimport { BDropdownText } from './dropdown-text';\nimport { BDropdownGroup } from './dropdown-group';\nimport { pluginFactory } from '../../utils/plugins';\nvar DropdownPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BDropdown: BDropdown,\n BDd: BDropdown,\n BDropdownItem: BDropdownItem,\n BDdItem: BDropdownItem,\n BDropdownItemButton: BDropdownItemButton,\n BDropdownItemBtn: BDropdownItemButton,\n BDdItemButton: BDropdownItemButton,\n BDdItemBtn: BDropdownItemButton,\n BDropdownHeader: BDropdownHeader,\n BDdHeader: BDropdownHeader,\n BDropdownDivider: BDropdownDivider,\n BDdDivider: BDropdownDivider,\n BDropdownForm: BDropdownForm,\n BDdForm: BDropdownForm,\n BDropdownText: BDropdownText,\n BDdText: BDropdownText,\n BDropdownGroup: BDropdownGroup,\n BDdGroup: BDropdownGroup\n }\n});\nexport { DropdownPlugin, BDropdown, BDropdownItem, BDropdownItemButton, BDropdownHeader, BDropdownDivider, BDropdownForm, BDropdownText, BDropdownGroup };","import { makePropCacheMixin } from '../utils/cache';\nexport var listenersMixin = makePropCacheMixin('$listeners', 'bvListeners');","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_LINK } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { attemptBlur, attemptFocus, isTag } from '../../utils/dom';\nimport { getRootEventName, stopEvent } from '../../utils/events';\nimport { isBoolean, isEvent, isFunction, isUndefined } from '../../utils/inspect';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props';\nimport { computeHref, computeRel, computeTag, isRouterLink as _isRouterLink } from '../../utils/router';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot'; // --- Constants ---\n\nvar ROOT_EVENT_NAME_CLICKED = getRootEventName(NAME_LINK, 'clicked'); // --- Props ---\n// `` specific props\n\nexport var routerLinkProps = {\n activeClass: makeProp(PROP_TYPE_STRING),\n append: makeProp(PROP_TYPE_BOOLEAN, false),\n event: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK),\n exact: makeProp(PROP_TYPE_BOOLEAN, false),\n exactActiveClass: makeProp(PROP_TYPE_STRING),\n replace: makeProp(PROP_TYPE_BOOLEAN, false),\n routerTag: makeProp(PROP_TYPE_STRING, 'a'),\n to: makeProp(PROP_TYPE_OBJECT_STRING)\n}; // `` specific props\n\nexport var nuxtLinkProps = {\n noPrefetch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Must be `null` to fall back to the value defined in the\n // `nuxt.config.js` configuration file for `router.prefetchLinks`\n // We convert `null` to `undefined`, so that Nuxt.js will use the\n // compiled default\n // Vue treats `undefined` as default of `false` for Boolean props,\n // so we must set it as `null` here to be a true tri-state prop\n prefetch: makeProp(PROP_TYPE_BOOLEAN, null)\n}; // All `` props\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, nuxtLinkProps), routerLinkProps), {}, {\n active: makeProp(PROP_TYPE_BOOLEAN, false),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n href: makeProp(PROP_TYPE_STRING),\n // Must be `null` if no value provided\n rel: makeProp(PROP_TYPE_STRING, null),\n // To support 3rd party router links based on `` (i.e. `g-link` for Gridsome)\n // Default is to auto choose between `` and ``\n // Gridsome doesn't provide a mechanism to auto detect and has caveats\n // such as not supporting FQDN URLs or hash only URLs\n routerComponentName: makeProp(PROP_TYPE_STRING),\n target: makeProp(PROP_TYPE_STRING, '_self')\n})), NAME_LINK); // --- Main component ---\n// @vue/component\n\nexport var BLink = /*#__PURE__*/Vue.extend({\n name: NAME_LINK,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, listenOnRootMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n computed: {\n computedTag: function computedTag() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n disabled = this.disabled,\n routerComponentName = this.routerComponentName;\n return computeTag({\n to: to,\n disabled: disabled,\n routerComponentName: routerComponentName\n }, this);\n },\n isRouterLink: function isRouterLink() {\n return _isRouterLink(this.computedTag);\n },\n computedRel: function computedRel() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var target = this.target,\n rel = this.rel;\n return computeRel({\n target: target,\n rel: rel\n });\n },\n computedHref: function computedHref() {\n // We don't pass `this` as the first arg as we need reactivity of the props\n var to = this.to,\n href = this.href;\n return computeHref({\n to: to,\n href: href\n }, this.computedTag);\n },\n computedProps: function computedProps() {\n var prefetch = this.prefetch;\n return this.isRouterLink ? _objectSpread(_objectSpread({}, pluckProps(_objectSpread(_objectSpread({}, routerLinkProps), nuxtLinkProps), this)), {}, {\n // Coerce `prefetch` value `null` to be `undefined`\n prefetch: isBoolean(prefetch) ? prefetch : undefined,\n // Pass `router-tag` as `tag` prop\n tag: this.routerTag\n }) : {};\n },\n computedAttrs: function computedAttrs() {\n var bvAttrs = this.bvAttrs,\n href = this.computedHref,\n rel = this.computedRel,\n disabled = this.disabled,\n target = this.target,\n routerTag = this.routerTag,\n isRouterLink = this.isRouterLink;\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, bvAttrs), href ? {\n href: href\n } : {}), isRouterLink && !isTag(routerTag, 'a') ? {} : {\n rel: rel,\n target: target\n }), {}, {\n tabindex: disabled ? '-1' : isUndefined(bvAttrs.tabindex) ? null : bvAttrs.tabindex,\n 'aria-disabled': disabled ? 'true' : null\n });\n },\n computedListeners: function computedListeners() {\n return _objectSpread(_objectSpread({}, this.bvListeners), {}, {\n // We want to overwrite any click handler since our callback\n // will invoke the user supplied handler(s) if `!this.disabled`\n click: this.onClick\n });\n }\n },\n methods: {\n onClick: function onClick(event) {\n var _arguments = arguments;\n var eventIsEvent = isEvent(event);\n var isRouterLink = this.isRouterLink;\n var suppliedHandler = this.bvListeners.click;\n\n if (eventIsEvent && this.disabled) {\n // Stop event from bubbling up\n // Kill the event loop attached to this specific `EventTarget`\n // Needed to prevent `vue-router` for doing its thing\n stopEvent(event, {\n immediatePropagation: true\n });\n } else {\n /* istanbul ignore next: difficult to test, but we know it works */\n if (isRouterLink && event.currentTarget.__vue__) {\n // Router links do not emit instance `click` events, so we\n // add in an `$emit('click', event)` on its Vue instance\n event.currentTarget.__vue__.$emit(EVENT_NAME_CLICK, event);\n } // Call the suppliedHandler(s), if any provided\n\n\n concat(suppliedHandler).filter(function (h) {\n return isFunction(h);\n }).forEach(function (handler) {\n handler.apply(void 0, _toConsumableArray(_arguments));\n }); // Emit the global `$root` click event\n\n this.emitOnRoot(ROOT_EVENT_NAME_CLICKED, event); // TODO: Remove deprecated 'clicked::link' event with next major release\n\n this.emitOnRoot('clicked::link', event);\n } // Stop scroll-to-top behavior or navigation on\n // regular links when href is just '#'\n\n\n if (eventIsEvent && !isRouterLink && this.computedHref === '#') {\n stopEvent(event, {\n propagation: false\n });\n }\n },\n focus: function focus() {\n attemptFocus(this.$el);\n },\n blur: function blur() {\n attemptBlur(this.$el);\n }\n },\n render: function render(h) {\n var active = this.active,\n disabled = this.disabled;\n return h(this.computedTag, _defineProperty({\n class: {\n active: active,\n disabled: disabled\n },\n attrs: this.computedAttrs,\n props: this.computedProps\n }, this.isRouterLink ? 'nativeOn' : 'on', this.computedListeners), this.normalizeSlot());\n }\n});","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { isString, isFunction } from '../utils/inspect';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_bv_documentHandlers_'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnDocumentMixin = Vue.extend({\n created: function created() {\n var _this = this;\n\n /* istanbul ignore next */\n if (!IS_BROWSER) {\n return;\n } // Declare non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of handlers\n // Prop will be defined on client only\n\n\n this[PROP] = {}; // Set up our beforeDestroy handler (client only)\n\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n var items = _this[PROP] || {}; // Immediately delete this[PROP] to prevent the\n // listenOn/Off methods from running (which may occur\n // due to requestAnimationFrame/transition delays)\n\n delete _this[PROP]; // Remove all registered event handlers\n\n keys(items).forEach(function (eventName) {\n var handlers = items[eventName] || [];\n handlers.forEach(function (handler) {\n return eventOff(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n });\n });\n });\n },\n methods: {\n listenDocument: function listenDocument(on, eventName, handler) {\n on ? this.listenOnDocument(eventName, handler) : this.listenOffDocument(eventName, handler);\n },\n listenOnDocument: function listenOnDocument(eventName, handler) {\n if (this[PROP] && isString(eventName) && isFunction(handler)) {\n this[PROP][eventName] = this[PROP][eventName] || [];\n\n if (!arrayIncludes(this[PROP][eventName], handler)) {\n this[PROP][eventName].push(handler);\n eventOn(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n },\n listenOffDocument: function listenOffDocument(eventName, handler) {\n if (this[PROP] && isString(eventName) && isFunction(handler)) {\n eventOff(document, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n this[PROP][eventName] = (this[PROP][eventName] || []).filter(function (h) {\n return h !== handler;\n });\n }\n }\n }\n});","import { Vue } from '../vue';\nimport { IS_BROWSER } from '../constants/env';\nimport { EVENT_OPTIONS_NO_CAPTURE } from '../constants/events';\nimport { arrayIncludes } from '../utils/array';\nimport { eventOn, eventOff } from '../utils/events';\nimport { isString, isFunction } from '../utils/inspect';\nimport { keys } from '../utils/object'; // --- Constants ---\n\nvar PROP = '$_bv_windowHandlers_'; // --- Mixin ---\n// @vue/component\n\nexport var listenOnWindowMixin = Vue.extend({\n beforeCreate: function beforeCreate() {\n // Declare non-reactive property\n // Object of arrays, keyed by event name,\n // where value is an array of handlers\n this[PROP] = {};\n },\n beforeDestroy: function beforeDestroy() {\n if (IS_BROWSER) {\n var items = this[PROP]; // Immediately delete this[PROP] to prevent the\n // listenOn/Off methods from running (which may occur\n // due to requestAnimationFrame delays)\n\n delete this[PROP]; // Remove all registered event handlers\n\n keys(items).forEach(function (eventName) {\n var handlers = items[eventName] || [];\n handlers.forEach(function (handler) {\n return eventOff(window, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n });\n });\n }\n },\n methods: {\n listenWindow: function listenWindow(on, eventName, handler) {\n on ? this.listenOnWindow(eventName, handler) : this.listenOffWindow(eventName, handler);\n },\n listenOnWindow: function listenOnWindow(eventName, handler) {\n if (IS_BROWSER && this[PROP] && isString(eventName) && isFunction(handler)) {\n this[PROP][eventName] = this[PROP][eventName] || [];\n\n if (!arrayIncludes(this[PROP][eventName], handler)) {\n this[PROP][eventName].push(handler);\n eventOn(window, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n }\n }\n },\n listenOffWindow: function listenOffWindow(eventName, handler) {\n if (IS_BROWSER && this[PROP] && isString(eventName) && isFunction(handler)) {\n eventOff(window, eventName, handler, EVENT_OPTIONS_NO_CAPTURE);\n this[PROP][eventName] = (this[PROP][eventName] || []).filter(function (h) {\n return h !== handler;\n });\n }\n }\n }\n});","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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_BUTTON_CLOSE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { stopEvent } from '../../utils/events';\nimport { isEvent } from '../../utils/inspect';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n content: makeProp(PROP_TYPE_STRING, '×'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n textVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_BUTTON_CLOSE); // --- Main component ---\n// @vue/component\n\nexport var BButtonClose = /*#__PURE__*/Vue.extend({\n name: NAME_BUTTON_CLOSE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(event) {\n // Ensure click on button HTML content is also disabled\n\n /* istanbul ignore if: bug in JSDOM still emits click on inner element */\n if (props.disabled && isEvent(event)) {\n stopEvent(event);\n }\n }\n }\n }; // Careful not to override the default slot with innerHTML\n\n if (!hasNormalizedSlot(SLOT_NAME_DEFAULT, $scopedSlots, $slots)) {\n componentData.domProps = {\n innerHTML: props.content\n };\n }\n\n return h('button', mergeData(data, componentData), normalizeSlot(SLOT_NAME_DEFAULT, {}, $scopedSlots, $slots));\n }\n});","import { Vue } from '../../vue';\nimport { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_FUNCTION, PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { concat } from '../../utils/array';\nimport { removeNode, select } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isString } from '../../utils/inspect';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp } from '../../utils/props'; // --- Helper components ---\n// BVTransporter/BVTransporterTarget:\n//\n// Single root node portaling of content, which retains parent/child hierarchy\n// Unlike Portal-Vue where portaled content is no longer a descendent of its\n// intended parent components\n//\n// Private components for use by Tooltips, Popovers and Modals\n//\n// Based on vue-simple-portal\n// https://github.com/LinusBorg/vue-simple-portal\n// Transporter target used by BVTransporter\n// Supports only a single root element\n// @vue/component\n\nvar BVTransporterTarget = /*#__PURE__*/Vue.extend({\n // As an abstract component, it doesn't appear in the $parent chain of\n // components, which means the next parent of any component rendered inside\n // of this one will be the parent from which is was portal'd\n abstract: true,\n name: NAME_TRANSPORTER_TARGET,\n props: {\n // Even though we only support a single root element,\n // VNodes are always passed as an array\n nodes: makeProp(PROP_TYPE_ARRAY_FUNCTION)\n },\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n destroyed: function destroyed() {\n removeNode(this.$el);\n },\n render: function render(h) {\n var updatedNodes = this.updatedNodes;\n var $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;\n $nodes = concat($nodes).filter(identity);\n\n if ($nodes && $nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n /* istanbul ignore next */\n\n\n return h();\n }\n}); // --- Props ---\n\nexport var props = {\n // String: CSS selector,\n // HTMLElement: Element reference\n // Mainly needed for tooltips/popovers inside modals\n container: makeProp([HTMLElement, PROP_TYPE_STRING], 'body'),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n // This should be set to match the root element type\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransporter = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSPORTER,\n mixins: [normalizeSlotMixin],\n props: props,\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmountTarget() : this.$nextTick(this.mountTarget);\n }\n }\n },\n created: function created() {\n // Create private non-reactive props\n this.$_defaultFn = null;\n this.$_target = null;\n },\n beforeMount: function beforeMount() {\n this.mountTarget();\n },\n updated: function updated() {\n // We need to make sure that all children have completed updating\n // before rendering in the target\n // `vue-simple-portal` has the this in a `$nextTick()`,\n // while `portal-vue` doesn't\n // Just trying to see if the `$nextTick()` delay is required or not\n // Since all slots in Vue 2.6.x are always functions\n this.updateTarget();\n },\n beforeDestroy: function beforeDestroy() {\n this.unmountTarget();\n this.$_defaultFn = null;\n },\n methods: {\n // Get the element which the target should be appended to\n getContainer: function getContainer() {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n var container = this.container;\n return isString(container) ? select(container) : container;\n } else {\n return null;\n }\n },\n // Mount the target\n mountTarget: function mountTarget() {\n if (!this.$_target) {\n var $container = this.getContainer();\n\n if ($container) {\n var $el = document.createElement('div');\n $container.appendChild($el);\n this.$_target = new BVTransporterTarget({\n el: $el,\n parent: this,\n propsData: {\n // Initial nodes to be rendered\n nodes: concat(this.normalizeSlot())\n }\n });\n }\n }\n },\n // Update the content of the target\n updateTarget: function updateTarget() {\n if (IS_BROWSER && this.$_target) {\n var defaultFn = this.$scopedSlots.default;\n\n if (!this.disabled) {\n /* istanbul ignore else: only applicable in Vue 2.5.x */\n if (defaultFn && this.$_defaultFn !== defaultFn) {\n // We only update the target component if the scoped slot\n // function is a fresh one. The new slot syntax (since Vue 2.6)\n // can cache unchanged slot functions and we want to respect that here\n this.$_target.updatedNodes = defaultFn;\n } else if (!defaultFn) {\n // We also need to be back compatible with non-scoped default slot (i.e. 2.5.x)\n this.$_target.updatedNodes = this.$slots.default;\n }\n } // Update the scoped slot function cache\n\n\n this.$_defaultFn = defaultFn;\n }\n },\n // Unmount the target\n unmountTarget: function unmountTarget() {\n this.$_target && this.$_target.$destroy();\n this.$_target = null;\n }\n },\n render: function render(h) {\n // This component has no root element, so only a single VNode is allowed\n if (this.disabled) {\n var $nodes = concat(this.normalizeSlot()).filter(identity);\n\n if ($nodes.length > 0 && !$nodes[0].text) {\n return $nodes[0];\n }\n }\n\n return h();\n }\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; 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); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _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); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _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); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { defineProperties, readonlyDescriptor } from '../../../utils/object';\n\nvar BvModalEvent = /*#__PURE__*/function (_BvEvent) {\n _inherits(BvModalEvent, _BvEvent);\n\n var _super = _createSuper(BvModalEvent);\n\n function BvModalEvent(type) {\n var _this;\n\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvModalEvent);\n\n _this = _super.call(this, type, eventInit); // Freeze our new props as readonly, but leave them enumerable\n\n defineProperties(_assertThisInitialized(_this), {\n trigger: readonlyDescriptor()\n });\n return _this;\n }\n\n _createClass(BvModalEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(BvModalEvent), \"Defaults\", this)), {}, {\n trigger: null\n });\n }\n }]);\n\n return BvModalEvent;\n}(BvEvent); // Named exports\n\n\nexport { BvModalEvent };","/**\n * Private ModalManager helper\n * Handles controlling modal stacking zIndexes and body adjustments/classes\n */\nimport { Vue } from '../../../vue';\nimport { IS_BROWSER } from '../../../constants/env';\nimport { HOOK_EVENT_NAME_BEFORE_DESTROY } from '../../../constants/events';\nimport { addClass, getAttr, getBCR, getCS, getStyle, hasAttr, removeAttr, removeClass, requestAF, selectAll, setAttr, setStyle } from '../../../utils/dom';\nimport { isNull } from '../../../utils/inspect';\nimport { toFloat, toInteger } from '../../../utils/number'; // --- Constants ---\n// Default modal backdrop z-index\n\nvar DEFAULT_ZINDEX = 1040; // Selectors for padding/margin adjustments\n\nvar SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nvar SELECTOR_STICKY_CONTENT = '.sticky-top';\nvar SELECTOR_NAVBAR_TOGGLER = '.navbar-toggler'; // --- Main component ---\n// @vue/component\n\nvar ModalManager = /*#__PURE__*/Vue.extend({\n data: function data() {\n return {\n modals: [],\n baseZIndex: null,\n scrollbarWidth: null,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalCount: function modalCount() {\n return this.modals.length;\n },\n modalsAreOpen: function modalsAreOpen() {\n return this.modalCount > 0;\n }\n },\n watch: {\n modalCount: function modalCount(newCount, oldCount) {\n if (IS_BROWSER) {\n this.getScrollbarWidth();\n\n if (newCount > 0 && oldCount === 0) {\n // Transitioning to modal(s) open\n this.checkScrollbar();\n this.setScrollbar();\n addClass(document.body, 'modal-open');\n } else if (newCount === 0 && oldCount > 0) {\n // Transitioning to modal(s) closed\n this.resetScrollbar();\n removeClass(document.body, 'modal-open');\n }\n\n setAttr(document.body, 'data-modal-open-count', String(newCount));\n }\n },\n modals: function modals(newValue) {\n var _this = this;\n\n this.checkScrollbar();\n requestAF(function () {\n _this.updateModals(newValue || []);\n });\n }\n },\n methods: {\n // Public methods\n registerModal: function registerModal(modal) {\n var _this2 = this;\n\n // Register the modal if not already registered\n if (modal && this.modals.indexOf(modal) === -1) {\n // Add modal to modals array\n this.modals.push(modal);\n modal.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.unregisterModal(modal);\n });\n }\n },\n unregisterModal: function unregisterModal(modal) {\n var index = this.modals.indexOf(modal);\n\n if (index > -1) {\n // Remove modal from modals array\n this.modals.splice(index, 1); // Reset the modal's data\n\n if (!(modal._isBeingDestroyed || modal._isDestroyed)) {\n this.resetModal(modal);\n }\n }\n },\n getBaseZIndex: function getBaseZIndex() {\n if (isNull(this.baseZIndex) && IS_BROWSER) {\n // Create a temporary `div.modal-backdrop` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-backdrop');\n addClass(div, 'd-none');\n setStyle(div, 'display', 'none');\n document.body.appendChild(div);\n this.baseZIndex = toInteger(getCS(div).zIndex, DEFAULT_ZINDEX);\n document.body.removeChild(div);\n }\n\n return this.baseZIndex || DEFAULT_ZINDEX;\n },\n getScrollbarWidth: function getScrollbarWidth() {\n if (isNull(this.scrollbarWidth) && IS_BROWSER) {\n // Create a temporary `div.measure-scrollbar` to get computed z-index\n var div = document.createElement('div');\n addClass(div, 'modal-scrollbar-measure');\n document.body.appendChild(div);\n this.scrollbarWidth = getBCR(div).width - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return this.scrollbarWidth || 0;\n },\n // Private methods\n updateModals: function updateModals(modals) {\n var _this3 = this;\n\n var baseZIndex = this.getBaseZIndex();\n var scrollbarWidth = this.getScrollbarWidth();\n modals.forEach(function (modal, index) {\n // We update data values on each modal\n modal.zIndex = baseZIndex + index;\n modal.scrollbarWidth = scrollbarWidth;\n modal.isTop = index === _this3.modals.length - 1;\n modal.isBodyOverflowing = _this3.isBodyOverflowing;\n });\n },\n resetModal: function resetModal(modal) {\n if (modal) {\n modal.zIndex = this.getBaseZIndex();\n modal.isTop = true;\n modal.isBodyOverflowing = false;\n }\n },\n checkScrollbar: function checkScrollbar() {\n // Determine if the body element is overflowing\n var _getBCR = getBCR(document.body),\n left = _getBCR.left,\n right = _getBCR.right;\n\n this.isBodyOverflowing = left + right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n var body = document.body; // Storage place to cache changes to margins and padding\n // Note: This assumes the following element types are not added to the\n // document after the modal has opened.\n\n body._paddingChangedForModal = body._paddingChangedForModal || [];\n body._marginChangedForModal = body._marginChangedForModal || [];\n\n if (this.isBodyOverflowing) {\n var scrollbarWidth = this.scrollbarWidth; // Adjust fixed content padding\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_FIXED_CONTENT).forEach(function (el) {\n var actualPadding = getStyle(el, 'paddingRight') || '';\n setAttr(el, 'data-padding-right', actualPadding);\n setStyle(el, 'paddingRight', \"\".concat(toFloat(getCS(el).paddingRight, 0) + scrollbarWidth, \"px\"));\n\n body._paddingChangedForModal.push(el);\n }); // Adjust sticky content margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_STICKY_CONTENT).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) - scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust margin\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n selectAll(SELECTOR_NAVBAR_TOGGLER).forEach(function (el)\n /* istanbul ignore next */\n {\n var actualMargin = getStyle(el, 'marginRight') || '';\n setAttr(el, 'data-margin-right', actualMargin);\n setStyle(el, 'marginRight', \"\".concat(toFloat(getCS(el).marginRight, 0) + scrollbarWidth, \"px\"));\n\n body._marginChangedForModal.push(el);\n }); // Adjust body padding\n\n var actualPadding = getStyle(body, 'paddingRight') || '';\n setAttr(body, 'data-padding-right', actualPadding);\n setStyle(body, 'paddingRight', \"\".concat(toFloat(getCS(body).paddingRight, 0) + scrollbarWidth, \"px\"));\n }\n },\n resetScrollbar: function resetScrollbar() {\n var body = document.body;\n\n if (body._paddingChangedForModal) {\n // Restore fixed content padding\n body._paddingChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-padding-right')) {\n setStyle(el, 'paddingRight', getAttr(el, 'data-padding-right') || '');\n removeAttr(el, 'data-padding-right');\n }\n });\n }\n\n if (body._marginChangedForModal) {\n // Restore sticky content and navbar-toggler margin\n body._marginChangedForModal.forEach(function (el) {\n /* istanbul ignore next: difficult to test in JSDOM */\n if (hasAttr(el, 'data-margin-right')) {\n setStyle(el, 'marginRight', getAttr(el, 'data-margin-right') || '');\n removeAttr(el, 'data-margin-right');\n }\n });\n }\n\n body._paddingChangedForModal = null;\n body._marginChangedForModal = null; // Restore body padding\n\n if (hasAttr(body, 'data-padding-right')) {\n setStyle(body, 'paddingRight', getAttr(body, 'data-padding-right') || '');\n removeAttr(body, 'data-padding-right');\n }\n }\n }\n}); // Create and export our modal manager instance\n\nexport var modalManager = new ModalManager();","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_MODAL } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CANCEL, EVENT_NAME_CHANGE, EVENT_NAME_CLOSE, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OK, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_TOGGLE, EVENT_OPTIONS_NO_CAPTURE } from '../../constants/events';\nimport { CODE_ESC } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement } from '../../constants/safe-types';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_MODAL_BACKDROP, SLOT_NAME_MODAL_CANCEL, SLOT_NAME_MODAL_FOOTER, SLOT_NAME_MODAL_HEADER, SLOT_NAME_MODAL_HEADER_CLOSE, SLOT_NAME_MODAL_OK, SLOT_NAME_MODAL_TITLE } from '../../constants/slots';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { attemptFocus, closest, contains, getActiveElement as _getActiveElement, getTabables, requestAF, select } from '../../utils/dom';\nimport { getRootActionEventName, getRootEventName, eventOn, eventOff } from '../../utils/events';\nimport { htmlOrText } from '../../utils/html';\nimport { identity } from '../../utils/identity';\nimport { isString, isUndefinedOrNull } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { listenOnDocumentMixin } from '../../mixins/listen-on-document';\nimport { listenOnRootMixin } from '../../mixins/listen-on-root';\nimport { listenOnWindowMixin } from '../../mixins/listen-on-window';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { scopedStyleMixin } from '../../mixins/scoped-style';\nimport { BButton } from '../button/button';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition';\nimport { BVTransporter } from '../transporter/transporter';\nimport { BvModalEvent } from './helpers/bv-modal-event.class';\nimport { modalManager } from './helpers/modal-manager'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('visible', {\n type: PROP_TYPE_BOOLEAN,\n defaultValue: false,\n event: EVENT_NAME_CHANGE\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar TRIGGER_BACKDROP = 'backdrop';\nvar TRIGGER_ESC = 'esc';\nvar TRIGGER_FORCE = 'FORCE';\nvar TRIGGER_TOGGLE = 'toggle';\nvar BUTTON_CANCEL = 'cancel'; // TODO: This should be renamed to 'close'\n\nvar BUTTON_CLOSE = 'headerclose';\nvar BUTTON_OK = 'ok';\nvar BUTTONS = [BUTTON_CANCEL, BUTTON_CLOSE, BUTTON_OK]; // `ObserveDom` config to detect changes in modal content\n// so that we can adjust the modal padding if needed\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n}; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), {}, {\n ariaLabel: makeProp(PROP_TYPE_STRING),\n autoFocusButton: makeProp(PROP_TYPE_STRING, null,\n /* istanbul ignore next */\n function (value) {\n return isUndefinedOrNull(value) || arrayIncludes(BUTTONS, value);\n }),\n bodyBgVariant: makeProp(PROP_TYPE_STRING),\n bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n bodyTextVariant: makeProp(PROP_TYPE_STRING),\n busy: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonSize: makeProp(PROP_TYPE_STRING),\n cancelDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n cancelTitle: makeProp(PROP_TYPE_STRING, 'Cancel'),\n cancelTitleHtml: makeProp(PROP_TYPE_STRING),\n cancelVariant: makeProp(PROP_TYPE_STRING, 'secondary'),\n centered: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n dialogClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerBgVariant: makeProp(PROP_TYPE_STRING),\n footerBorderVariant: makeProp(PROP_TYPE_STRING),\n footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n footerTextVariant: makeProp(PROP_TYPE_STRING),\n headerBgVariant: makeProp(PROP_TYPE_STRING),\n headerBorderVariant: makeProp(PROP_TYPE_STRING),\n headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n headerCloseContent: makeProp(PROP_TYPE_STRING, '×'),\n headerCloseLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n headerCloseVariant: makeProp(PROP_TYPE_STRING),\n headerTextVariant: makeProp(PROP_TYPE_STRING),\n // TODO: Rename to `noBackdrop` and deprecate `hideBackdrop`\n hideBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noFooter` and deprecate `hideFooter`\n hideFooter: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeader` and deprecate `hideHeader`\n hideHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n // TODO: Rename to `noHeaderClose` and deprecate `hideHeaderClose`\n hideHeaderClose: makeProp(PROP_TYPE_BOOLEAN, false),\n ignoreEnforceFocusSelector: makeProp(PROP_TYPE_ARRAY_STRING),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n modalClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noCloseOnBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noCloseOnEsc: makeProp(PROP_TYPE_BOOLEAN, false),\n noEnforceFocus: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noStacking: makeProp(PROP_TYPE_BOOLEAN, false),\n okDisabled: makeProp(PROP_TYPE_BOOLEAN, false),\n okOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n okTitle: makeProp(PROP_TYPE_STRING, 'OK'),\n okTitleHtml: makeProp(PROP_TYPE_STRING),\n okVariant: makeProp(PROP_TYPE_STRING, 'primary'),\n // HTML Element, CSS selector string or Vue component instance\n returnFocus: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n scrollable: makeProp(PROP_TYPE_BOOLEAN, false),\n size: makeProp(PROP_TYPE_STRING, 'md'),\n static: makeProp(PROP_TYPE_BOOLEAN, false),\n title: makeProp(PROP_TYPE_STRING),\n titleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleHtml: makeProp(PROP_TYPE_STRING),\n titleSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n titleTag: makeProp(PROP_TYPE_STRING, 'h5')\n})), NAME_MODAL); // --- Main component ---\n// @vue/component\n\nexport var BModal = /*#__PURE__*/Vue.extend({\n name: NAME_MODAL,\n mixins: [attrsMixin, idMixin, modelMixin, listenOnDocumentMixin, listenOnRootMixin, listenOnWindowMixin, normalizeSlotMixin, scopedStyleMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n isHidden: true,\n // If modal should not be in document\n isVisible: false,\n // Controls modal visible state\n isTransitioning: false,\n // Used for style control\n isShow: false,\n // Used for style control\n isBlock: false,\n // Used for style control\n isOpening: false,\n // To signal that the modal is in the process of opening\n isClosing: false,\n // To signal that the modal is in the process of closing\n ignoreBackdropClick: false,\n // Used to signify if click out listener should ignore the click\n isModalOverflowing: false,\n // The following items are controlled by the modalManager instance\n scrollbarWidth: 0,\n zIndex: modalManager.getBaseZIndex(),\n isTop: true,\n isBodyOverflowing: false\n };\n },\n computed: {\n modalId: function modalId() {\n return this.safeId();\n },\n modalOuterId: function modalOuterId() {\n return this.safeId('__BV_modal_outer_');\n },\n modalHeaderId: function modalHeaderId() {\n return this.safeId('__BV_modal_header_');\n },\n modalBodyId: function modalBodyId() {\n return this.safeId('__BV_modal_body_');\n },\n modalTitleId: function modalTitleId() {\n return this.safeId('__BV_modal_title_');\n },\n modalContentId: function modalContentId() {\n return this.safeId('__BV_modal_content_');\n },\n modalFooterId: function modalFooterId() {\n return this.safeId('__BV_modal_footer_');\n },\n modalBackdropId: function modalBackdropId() {\n return this.safeId('__BV_modal_backdrop_');\n },\n modalClasses: function modalClasses() {\n return [{\n fade: !this.noFade,\n show: this.isShow\n }, this.modalClass];\n },\n modalStyles: function modalStyles() {\n var sbWidth = \"\".concat(this.scrollbarWidth, \"px\");\n return {\n paddingLeft: !this.isBodyOverflowing && this.isModalOverflowing ? sbWidth : '',\n paddingRight: this.isBodyOverflowing && !this.isModalOverflowing ? sbWidth : '',\n // Needed to fix issue https://github.com/bootstrap-vue/bootstrap-vue/issues/3457\n // Even though we are using v-show, we must ensure 'none' is restored in the styles\n display: this.isBlock ? 'block' : 'none'\n };\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return [(_ref = {}, _defineProperty(_ref, \"modal-\".concat(this.size), this.size), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _defineProperty(_ref, 'modal-dialog-scrollable', this.scrollable), _ref), this.dialogClass];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return [(_ref2 = {}, _defineProperty(_ref2, \"bg-\".concat(this.headerBgVariant), this.headerBgVariant), _defineProperty(_ref2, \"text-\".concat(this.headerTextVariant), this.headerTextVariant), _defineProperty(_ref2, \"border-\".concat(this.headerBorderVariant), this.headerBorderVariant), _ref2), this.headerClass];\n },\n titleClasses: function titleClasses() {\n return [{\n 'sr-only': this.titleSrOnly\n }, this.titleClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return [(_ref3 = {}, _defineProperty(_ref3, \"bg-\".concat(this.bodyBgVariant), this.bodyBgVariant), _defineProperty(_ref3, \"text-\".concat(this.bodyTextVariant), this.bodyTextVariant), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return [(_ref4 = {}, _defineProperty(_ref4, \"bg-\".concat(this.footerBgVariant), this.footerBgVariant), _defineProperty(_ref4, \"text-\".concat(this.footerTextVariant), this.footerTextVariant), _defineProperty(_ref4, \"border-\".concat(this.footerBorderVariant), this.footerBorderVariant), _ref4), this.footerClass];\n },\n modalOuterStyle: function modalOuterStyle() {\n // Styles needed for proper stacking of modals\n return {\n position: 'absolute',\n zIndex: this.zIndex\n };\n },\n slotScope: function slotScope() {\n return {\n cancel: this.onCancel,\n close: this.onClose,\n hide: this.hide,\n ok: this.onOk,\n visible: this.isVisible\n };\n },\n computeIgnoreEnforceFocusSelector: function computeIgnoreEnforceFocusSelector() {\n // Normalize to an single selector with selectors separated by `,`\n return concat(this.ignoreEnforceFocusSelector).filter(identity).join(',').trim();\n },\n computedAttrs: function computedAttrs() {\n // If the parent has a scoped style attribute, and the modal\n // is portalled, add the scoped attribute to the modal wrapper\n var scopedStyleAttrs = !this.static ? this.scopedStyleAttrs : {};\n return _objectSpread(_objectSpread(_objectSpread({}, scopedStyleAttrs), this.bvAttrs), {}, {\n id: this.modalOuterId\n });\n },\n computedModalAttrs: function computedModalAttrs() {\n var isVisible = this.isVisible,\n ariaLabel = this.ariaLabel;\n return {\n id: this.modalId,\n role: 'dialog',\n 'aria-hidden': isVisible ? null : 'true',\n 'aria-modal': isVisible ? 'true' : null,\n 'aria-label': ariaLabel,\n 'aria-labelledby': this.hideHeader || ariaLabel || // TODO: Rename slot to `title` and deprecate `modal-title`\n !(this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) || this.titleHtml || this.title) ? null : this.modalTitleId,\n 'aria-describedby': this.modalBodyId\n };\n }\n },\n watch: _defineProperty({}, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n this[newValue ? 'show' : 'hide']();\n }\n }),\n created: function created() {\n // Define non-reactive properties\n this.$_observer = null;\n this.$_returnFocus = this.returnFocus || null;\n },\n mounted: function mounted() {\n // Set initial z-index as queried from the DOM\n this.zIndex = modalManager.getBaseZIndex(); // Listen for events from others to either open or close ourselves\n // and listen to all modals to enable/disable enforce focus\n\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW), this.showHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_HIDE), this.hideHandler);\n this.listenOnRoot(getRootActionEventName(NAME_MODAL, EVENT_NAME_TOGGLE), this.toggleHandler); // Listen for `bv:modal::show events`, and close ourselves if the\n // opening modal not us\n\n this.listenOnRoot(getRootEventName(NAME_MODAL, EVENT_NAME_SHOW), this.modalListener); // Initially show modal?\n\n if (this[MODEL_PROP_NAME] === true) {\n this.$nextTick(this.show);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n this.setObserver(false);\n\n if (this.isVisible) {\n this.isVisible = false;\n this.isShow = false;\n this.isTransitioning = false;\n }\n },\n methods: {\n setObserver: function setObserver() {\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n this.$_observer = observeDom(this.$refs.content, this.checkModalOverflow.bind(this), OBSERVER_CONFIG);\n }\n },\n // Private method to update the v-model\n updateModel: function updateModel(value) {\n if (value !== this[MODEL_PROP_NAME]) {\n this.$emit(MODEL_EVENT_NAME, value);\n }\n },\n // Private method to create a BvModalEvent object\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new BvModalEvent(type, _objectSpread(_objectSpread({\n // Default options\n cancelable: false,\n target: this.$refs.modal || this.$el || null,\n relatedTarget: null,\n trigger: null\n }, options), {}, {\n // Options that can't be overridden\n vueTarget: this,\n componentId: this.modalId\n }));\n },\n // Public method to show modal\n show: function show() {\n if (this.isVisible || this.isOpening) {\n // If already open, or in the process of opening, do nothing\n\n /* istanbul ignore next */\n return;\n }\n /* istanbul ignore next */\n\n\n if (this.isClosing) {\n // If we are in the process of closing, wait until hidden before re-opening\n\n /* istanbul ignore next */\n this.$once(EVENT_NAME_HIDDEN, this.show);\n /* istanbul ignore next */\n\n return;\n }\n\n this.isOpening = true; // Set the element to return focus to when closed\n\n this.$_returnFocus = this.$_returnFocus || this.getActiveElement();\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if canceled\n\n if (showEvt.defaultPrevented || this.isVisible) {\n this.isOpening = false; // Ensure the v-model reflects the current state\n\n this.updateModel(false);\n return;\n } // Show the modal\n\n\n this.doShow();\n },\n // Public method to hide modal\n hide: function hide() {\n var trigger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n if (!this.isVisible || this.isClosing) {\n /* istanbul ignore next */\n return;\n }\n\n this.isClosing = true;\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: trigger !== TRIGGER_FORCE,\n trigger: trigger || null\n }); // We emit specific event for one of the three built-in buttons\n\n if (trigger === BUTTON_OK) {\n this.$emit(EVENT_NAME_OK, hideEvt);\n } else if (trigger === BUTTON_CANCEL) {\n this.$emit(EVENT_NAME_CANCEL, hideEvt);\n } else if (trigger === BUTTON_CLOSE) {\n this.$emit(EVENT_NAME_CLOSE, hideEvt);\n }\n\n this.emitEvent(hideEvt); // Hide if not canceled\n\n if (hideEvt.defaultPrevented || !this.isVisible) {\n this.isClosing = false; // Ensure v-model reflects current state\n\n this.updateModel(true);\n return;\n } // Stop observing for content changes\n\n\n this.setObserver(false); // Trigger the hide transition\n\n this.isVisible = false; // Update the v-model\n\n this.updateModel(false);\n },\n // Public method to toggle modal visibility\n toggle: function toggle(triggerEl) {\n if (triggerEl) {\n this.$_returnFocus = triggerEl;\n }\n\n if (this.isVisible) {\n this.hide(TRIGGER_TOGGLE);\n } else {\n this.show();\n }\n },\n // Private method to get the current document active element\n getActiveElement: function getActiveElement() {\n // Returning focus to `document.body` may cause unwanted scrolls,\n // so we exclude setting focus on body\n var activeElement = _getActiveElement(IS_BROWSER ? [document.body] : []); // Preset the fallback return focus value if it is not set\n // `document.activeElement` should be the trigger element that was clicked or\n // in the case of using the v-model, which ever element has current focus\n // Will be overridden by some commands such as toggle, etc.\n // Note: On IE 11, `document.activeElement` may be `null`\n // So we test it for truthiness first\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3206\n\n\n return activeElement && activeElement.focus ? activeElement : null;\n },\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this = this;\n\n /* istanbul ignore next: commenting out for now until we can test stacking */\n if (modalManager.modalsAreOpen && this.noStacking) {\n // If another modal(s) is already open, wait for it(them) to close\n this.listenOnRootOnce(getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN), this.doShow);\n return;\n }\n\n modalManager.registerModal(this); // Place modal in DOM\n\n this.isHidden = false;\n this.$nextTick(function () {\n // We do this in `$nextTick()` to ensure the modal is in DOM first\n // before we show it\n _this.isVisible = true;\n _this.isOpening = false; // Update the v-model\n\n _this.updateModel(true);\n\n _this.$nextTick(function () {\n // Observe changes in modal content and adjust if necessary\n // In a `$nextTick()` in case modal content is lazy\n _this.setObserver(true);\n });\n });\n },\n // Transition handlers\n onBeforeEnter: function onBeforeEnter() {\n this.isTransitioning = true;\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n var _this2 = this;\n\n this.isBlock = true; // We add the `show` class 1 frame later\n // `requestAF()` runs the callback before the next repaint, so we need\n // two calls to guarantee the next frame has been rendered\n\n requestAF(function () {\n requestAF(function () {\n _this2.isShow = true;\n });\n });\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.checkModalOverflow();\n this.isTransitioning = false; // We use `requestAF()` to allow transition hooks to complete\n // before passing control over to the other handlers\n // This will allow users to not have to use `$nextTick()` or `requestAF()`\n // when trying to pre-focus an element\n\n requestAF(function () {\n _this3.emitEvent(_this3.buildEvent(EVENT_NAME_SHOWN));\n\n _this3.setEnforceFocus(true);\n\n _this3.$nextTick(function () {\n // Delayed in a `$nextTick()` to allow users time to pre-focus\n // an element if the wish\n _this3.focusFirst();\n });\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.isTransitioning = true;\n this.setResizeEvent(false);\n this.setEnforceFocus(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.isShow = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.isBlock = false;\n this.isTransitioning = false;\n this.isModalOverflowing = false;\n this.isHidden = true;\n this.$nextTick(function () {\n _this4.isClosing = false;\n modalManager.unregisterModal(_this4);\n\n _this4.returnFocusTo(); // TODO: Need to find a way to pass the `trigger` property\n // to the `hidden` event, not just only the `hide` event\n\n\n _this4.emitEvent(_this4.buildEvent(EVENT_NAME_HIDDEN));\n });\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type; // We emit on `$root` first in case a global listener wants to cancel\n // the event first before the instance emits its event\n\n this.emitOnRoot(getRootEventName(NAME_MODAL, type), bvEvent, bvEvent.componentId);\n this.$emit(type, bvEvent);\n },\n // UI event handlers\n onDialogMousedown: function onDialogMousedown() {\n var _this5 = this;\n\n // Watch to see if the matching mouseup event occurs outside the dialog\n // And if it does, cancel the clickOut handler\n var modal = this.$refs.modal;\n\n var onceModalMouseup = function onceModalMouseup(event) {\n eventOff(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n\n if (event.target === modal) {\n _this5.ignoreBackdropClick = true;\n }\n };\n\n eventOn(modal, 'mouseup', onceModalMouseup, EVENT_OPTIONS_NO_CAPTURE);\n },\n onClickOut: function onClickOut(event) {\n if (this.ignoreBackdropClick) {\n // Click was initiated inside the modal content, but finished outside.\n // Set by the above onDialogMousedown handler\n this.ignoreBackdropClick = false;\n return;\n } // Do nothing if not visible, backdrop click disabled, or element\n // that generated click event is no longer in document body\n\n\n if (!this.isVisible || this.noCloseOnBackdrop || !contains(document.body, event.target)) {\n return;\n } // If backdrop clicked, hide modal\n\n\n if (!contains(this.$refs.content, event.target)) {\n this.hide(TRIGGER_BACKDROP);\n }\n },\n onOk: function onOk() {\n this.hide(BUTTON_OK);\n },\n onCancel: function onCancel() {\n this.hide(BUTTON_CANCEL);\n },\n onClose: function onClose() {\n this.hide(BUTTON_CLOSE);\n },\n onEsc: function onEsc(event) {\n // If ESC pressed, hide modal\n if (event.keyCode === CODE_ESC && this.isVisible && !this.noCloseOnEsc) {\n this.hide(TRIGGER_ESC);\n }\n },\n // Document focusin listener\n focusHandler: function focusHandler(event) {\n // If focus leaves modal content, bring it back\n var content = this.$refs.content;\n var target = event.target;\n\n if (this.noEnforceFocus || !this.isTop || !this.isVisible || !content || document === target || contains(content, target) || this.computeIgnoreEnforceFocusSelector && closest(this.computeIgnoreEnforceFocusSelector, target, true)) {\n return;\n }\n\n var tabables = getTabables(this.$refs.content);\n var bottomTrap = this.$refs['bottom-trap'];\n var topTrap = this.$refs['top-trap'];\n\n if (bottomTrap && target === bottomTrap) {\n // If user pressed TAB out of modal into our bottom trab trap element\n // Find the first tabable element in the modal content and focus it\n if (attemptFocus(tabables[0])) {\n // Focus was successful\n return;\n }\n } else if (topTrap && target === topTrap) {\n // If user pressed CTRL-TAB out of modal and into our top tab trap element\n // Find the last tabable element in the modal content and focus it\n if (attemptFocus(tabables[tabables.length - 1])) {\n // Focus was successful\n return;\n }\n } // Otherwise focus the modal content container\n\n\n attemptFocus(content, {\n preventScroll: true\n });\n },\n // Turn on/off focusin listener\n setEnforceFocus: function setEnforceFocus(on) {\n this.listenDocument(on, 'focusin', this.focusHandler);\n },\n // Resize listener\n setResizeEvent: function setResizeEvent(on) {\n this.listenWindow(on, 'resize', this.checkModalOverflow);\n this.listenWindow(on, 'orientationchange', this.checkModalOverflow);\n },\n // Root listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.$_returnFocus = triggerEl || this.getActiveElement();\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.modalId) {\n this.hide('event');\n }\n },\n toggleHandler: function toggleHandler(id, triggerEl) {\n if (id === this.modalId) {\n this.toggle(triggerEl);\n }\n },\n modalListener: function modalListener(bvEvent) {\n // If another modal opens, close this one if stacking not permitted\n if (this.noStacking && bvEvent.vueTarget !== this) {\n this.hide();\n }\n },\n // Focus control handlers\n focusFirst: function focusFirst() {\n var _this6 = this;\n\n // Don't try and focus if we are SSR\n if (IS_BROWSER) {\n requestAF(function () {\n var modal = _this6.$refs.modal;\n var content = _this6.$refs.content;\n\n var activeElement = _this6.getActiveElement(); // If the modal contains the activeElement, we don't do anything\n\n\n if (modal && content && !(activeElement && contains(content, activeElement))) {\n var ok = _this6.$refs['ok-button'];\n var cancel = _this6.$refs['cancel-button'];\n var close = _this6.$refs['close-button']; // Focus the appropriate button or modal content wrapper\n\n var autoFocus = _this6.autoFocusButton;\n /* istanbul ignore next */\n\n var el = autoFocus === BUTTON_OK && ok ? ok.$el || ok : autoFocus === BUTTON_CANCEL && cancel ? cancel.$el || cancel : autoFocus === BUTTON_CLOSE && close ? close.$el || close : content; // Focus the element\n\n attemptFocus(el);\n\n if (el === content) {\n // Make sure top of modal is showing (if longer than the viewport)\n _this6.$nextTick(function () {\n modal.scrollTop = 0;\n });\n }\n }\n });\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer `returnFocus` prop over event specified\n // `return_focus` value\n var el = this.returnFocus || this.$_returnFocus || null;\n this.$_returnFocus = null;\n this.$nextTick(function () {\n // Is el a string CSS selector?\n el = isString(el) ? select(el) : el;\n\n if (el) {\n // Possibly could be a component reference\n el = el.$el || el;\n attemptFocus(el);\n }\n });\n },\n checkModalOverflow: function checkModalOverflow() {\n if (this.isVisible) {\n var modal = this.$refs.modal;\n this.isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n }\n },\n makeModal: function makeModal(h) {\n // Modal header\n var $header = h();\n\n if (!this.hideHeader) {\n // TODO: Rename slot to `header` and deprecate `modal-header`\n var $modalHeader = this.normalizeSlot(SLOT_NAME_MODAL_HEADER, this.slotScope);\n\n if (!$modalHeader) {\n var $closeButton = h();\n\n if (!this.hideHeaderClose) {\n $closeButton = h(BButtonClose, {\n props: {\n content: this.headerCloseContent,\n disabled: this.isTransitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerCloseVariant || this.headerTextVariant\n },\n on: {\n click: this.onClose\n },\n ref: 'close-button'\n }, // TODO: Rename slot to `header-close` and deprecate `modal-header-close`\n [this.normalizeSlot(SLOT_NAME_MODAL_HEADER_CLOSE)]);\n }\n\n $modalHeader = [h(this.titleTag, {\n staticClass: 'modal-title',\n class: this.titleClasses,\n attrs: {\n id: this.modalTitleId\n },\n // TODO: Rename slot to `title` and deprecate `modal-title`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_TITLE) ? {} : htmlOrText(this.titleHtml, this.title)\n }, // TODO: Rename slot to `title` and deprecate `modal-title`\n this.normalizeSlot(SLOT_NAME_MODAL_TITLE, this.slotScope)), $closeButton];\n }\n\n $header = h('header', {\n staticClass: 'modal-header',\n class: this.headerClasses,\n attrs: {\n id: this.modalHeaderId\n },\n ref: 'header'\n }, [$modalHeader]);\n } // Modal body\n\n\n var $body = h('div', {\n staticClass: 'modal-body',\n class: this.bodyClasses,\n attrs: {\n id: this.modalBodyId\n },\n ref: 'body'\n }, this.normalizeSlot(SLOT_NAME_DEFAULT, this.slotScope)); // Modal footer\n\n var $footer = h();\n\n if (!this.hideFooter) {\n // TODO: Rename slot to `footer` and deprecate `modal-footer`\n var $modalFooter = this.normalizeSlot(SLOT_NAME_MODAL_FOOTER, this.slotScope);\n\n if (!$modalFooter) {\n var $cancelButton = h();\n\n if (!this.okOnly) {\n $cancelButton = h(BButton, {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_CANCEL) ? {} : htmlOrText(this.cancelTitleHtml, this.cancelTitle),\n on: {\n click: this.onCancel\n },\n ref: 'cancel-button'\n }, // TODO: Rename slot to `cancel-button` and deprecate `modal-cancel`\n this.normalizeSlot(SLOT_NAME_MODAL_CANCEL));\n }\n\n var $okButton = h(BButton, {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.isTransitioning\n },\n // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n domProps: this.hasNormalizedSlot(SLOT_NAME_MODAL_OK) ? {} : htmlOrText(this.okTitleHtml, this.okTitle),\n on: {\n click: this.onOk\n },\n ref: 'ok-button'\n }, // TODO: Rename slot to `ok-button` and deprecate `modal-ok`\n this.normalizeSlot(SLOT_NAME_MODAL_OK));\n $modalFooter = [$cancelButton, $okButton];\n }\n\n $footer = h('footer', {\n staticClass: 'modal-footer',\n class: this.footerClasses,\n attrs: {\n id: this.modalFooterId\n },\n ref: 'footer'\n }, [$modalFooter]);\n } // Assemble modal content\n\n\n var $modalContent = h('div', {\n staticClass: 'modal-content',\n class: this.contentClass,\n attrs: {\n id: this.modalContentId,\n tabindex: '-1'\n },\n ref: 'content'\n }, [$header, $body, $footer]); // Tab traps to prevent page from scrolling to next element in\n // tab index during enforce-focus tab cycle\n\n var $tabTrapTop = h();\n var $tabTrapBottom = h();\n\n if (this.isVisible && !this.noEnforceFocus) {\n $tabTrapTop = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'top-trap'\n });\n $tabTrapBottom = h('span', {\n attrs: {\n tabindex: '0'\n },\n ref: 'bottom-trap'\n });\n } // Modal dialog wrapper\n\n\n var $modalDialog = h('div', {\n staticClass: 'modal-dialog',\n class: this.dialogClasses,\n on: {\n mousedown: this.onDialogMousedown\n },\n ref: 'dialog'\n }, [$tabTrapTop, $modalContent, $tabTrapBottom]); // Modal\n\n var $modal = h('div', {\n staticClass: 'modal',\n class: this.modalClasses,\n style: this.modalStyles,\n attrs: this.computedModalAttrs,\n on: {\n keydown: this.onEsc,\n click: this.onClickOut\n },\n directives: [{\n name: 'show',\n value: this.isVisible\n }],\n ref: 'modal'\n }, [$modalDialog]); // Wrap modal in transition\n // Sadly, we can't use `BVTransition` here due to the differences in\n // transition durations for `.modal` and `.modal-dialog`\n // At least until https://github.com/vuejs/vue/issues/9986 is resolved\n\n $modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n beforeEnter: this.onBeforeEnter,\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n beforeLeave: this.onBeforeLeave,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [$modal]); // Modal backdrop\n\n var $backdrop = h();\n\n if (!this.hideBackdrop && this.isVisible) {\n $backdrop = h('div', {\n staticClass: 'modal-backdrop',\n attrs: {\n id: this.modalBackdropId\n }\n }, // TODO: Rename slot to `backdrop` and deprecate `modal-backdrop`\n this.normalizeSlot(SLOT_NAME_MODAL_BACKDROP));\n }\n\n $backdrop = h(BVTransition, {\n props: {\n noFade: this.noFade\n }\n }, [$backdrop]); // Assemble modal and backdrop in an outer
\n\n return h('div', {\n style: this.modalOuterStyle,\n attrs: this.computedAttrs,\n key: \"modal-outer-\".concat(this[COMPONENT_UID_KEY])\n }, [$modal, $backdrop]);\n }\n },\n render: function render(h) {\n if (this.static) {\n return this.lazy && this.isHidden ? h() : this.makeModal(h);\n } else {\n return this.isHidden ? h() : h(BVTransporter, [this.makeModal(h)]);\n }\n }\n});","import { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { getAttr, hasAttr, isDisabled, matches, select, setAttr } from '../../utils/dom';\nimport { getRootActionEventName, eventOn, eventOff } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object'; // Emitted show event for modal\n\nvar ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW); // Prop name we use to store info on root element\n\nvar PROPERTY = '__bv_modal_directive__';\n\nvar getTarget = function getTarget(_ref) {\n var _ref$modifiers = _ref.modifiers,\n modifiers = _ref$modifiers === void 0 ? {} : _ref$modifiers,\n arg = _ref.arg,\n value = _ref.value;\n // Try value, then arg, otherwise pick last modifier\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\n\nvar getTriggerElement = function getTriggerElement(el) {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\n\nvar setRole = function setRole(trigger) {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n } // Add a tabindex is not a button or link, and tabindex is not provided\n\n\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\n\nvar bind = function bind(el, binding, vnode) {\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target && trigger) {\n var handler = function handler(event) {\n // `currentTarget` is the element with the listener on it\n var currentTarget = event.currentTarget;\n\n if (!isDisabled(currentTarget)) {\n var type = event.type;\n var key = event.keyCode; // Open modal only if trigger is not disabled\n\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n vnode.context.$root.$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n\n el[PROPERTY] = {\n handler: handler,\n target: target,\n trigger: trigger\n }; // If element is not a button, we add `role=\"button\"` for accessibility\n\n setRole(trigger); // Listen for click events\n\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\n\nvar unbind = function unbind(el) {\n var oldProp = el[PROPERTY] || {};\n var trigger = oldProp.trigger;\n var handler = oldProp.handler;\n\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n\n delete el[PROPERTY];\n};\n\nvar componentUpdated = function componentUpdated(el, binding, vnode) {\n var oldProp = el[PROPERTY] || {};\n var target = getTarget(binding);\n var trigger = getTriggerElement(el);\n\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el, binding, vnode);\n bind(el, binding, vnode);\n } // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n\n\n setRole(trigger);\n};\n\nvar updated = function updated() {};\n/*\n * Export our directive\n */\n\n\nexport var VBModal = {\n inserted: componentUpdated,\n updated: updated,\n componentUpdated: componentUpdated,\n unbind: unbind\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// Plugin for adding `$bvModal` property to all Vue instances\nimport { NAME_MODAL, NAME_MSG_BOX } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { concat } from '../../../utils/array';\nimport { getComponentConfig } from '../../../utils/config';\nimport { requestAF } from '../../../utils/dom';\nimport { getRootActionEventName } from '../../../utils/events';\nimport { isUndefined, isFunction } from '../../../utils/inspect';\nimport { assign, defineProperties, defineProperty, hasOwnProperty, keys, omit, readonlyDescriptor } from '../../../utils/object';\nimport { pluginFactory } from '../../../utils/plugins';\nimport { warn, warnNotClient, warnNoPromiseSupport } from '../../../utils/warn';\nimport { BModal, props as modalProps } from '../modal'; // --- Constants ---\n\nvar PROP_NAME = '$bvModal';\nvar PROP_NAME_PRIV = '_bv__modal'; // Base modal props that are allowed\n// Some may be ignored or overridden on some message boxes\n// Prop ID is allowed, but really only should be used for testing\n// We need to add it in explicitly as it comes from the `idMixin`\n\nvar BASE_PROPS = ['id'].concat(_toConsumableArray(keys(omit(modalProps, ['busy', 'lazy', 'noStacking', 'static', 'visible'])))); // Fallback event resolver (returns undefined)\n\nvar defaultResolver = function defaultResolver() {}; // Map prop names to modal slot names\n\n\nvar propsToSlots = {\n msgBoxContent: 'default',\n title: 'modal-title',\n okTitle: 'modal-ok',\n cancelTitle: 'modal-cancel'\n}; // --- Helper methods ---\n// Method to filter only recognized props that are not undefined\n\nvar filterOptions = function filterOptions(options) {\n return BASE_PROPS.reduce(function (memo, key) {\n if (!isUndefined(options[key])) {\n memo[key] = options[key];\n }\n\n return memo;\n }, {});\n}; // Method to install `$bvModal` VM injection\n\n\nvar plugin = function plugin(Vue) {\n // Create a private sub-component that extends BModal\n // which self-destructs after hidden\n // @vue/component\n var BMsgBox = Vue.extend({\n name: NAME_MSG_BOX,\n extends: BModal,\n destroyed: function destroyed() {\n // Make sure we not in document any more\n if (this.$el && this.$el.parentNode) {\n this.$el.parentNode.removeChild(this.$el);\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // Self destruct handler\n var handleDestroy = function handleDestroy() {\n _this.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy); // Self destruct on route change\n\n /* istanbul ignore if */\n\n if (this.$router && this.$route) {\n // Destroy ourselves if route changes\n\n /* istanbul ignore next */\n this.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, this.$watch('$router', handleDestroy));\n } // Show the `BMsgBox`\n\n\n this.show();\n }\n }); // Method to generate the on-demand modal message box\n // Returns a promise that resolves to a value returned by the resolve\n\n var asyncMsgBox = function asyncMsgBox($parent, props) {\n var resolver = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultResolver;\n\n if (warnNotClient(PROP_NAME) || warnNoPromiseSupport(PROP_NAME)) {\n /* istanbul ignore next */\n return;\n } // Create an instance of `BMsgBox` component\n\n\n var msgBox = new BMsgBox({\n // We set parent as the local VM so these modals can emit events on\n // the app `$root`, as needed by things like tooltips and popovers\n // And it helps to ensure `BMsgBox` is destroyed when parent is destroyed\n parent: $parent,\n // Preset the prop values\n propsData: _objectSpread(_objectSpread(_objectSpread({}, filterOptions(getComponentConfig(NAME_MODAL))), {}, {\n // Defaults that user can override\n hideHeaderClose: true,\n hideHeader: !(props.title || props.titleHtml)\n }, omit(props, keys(propsToSlots))), {}, {\n // Props that can't be overridden\n lazy: false,\n busy: false,\n visible: false,\n noStacking: false,\n noEnforceFocus: false\n })\n }); // Convert certain props to scoped slots\n\n keys(propsToSlots).forEach(function (prop) {\n if (!isUndefined(props[prop])) {\n // Can be a string, or array of VNodes.\n // Alternatively, user can use HTML version of prop to pass an HTML string.\n msgBox.$slots[propsToSlots[prop]] = concat(props[prop]);\n }\n }); // Return a promise that resolves when hidden, or rejects on destroyed\n\n return new Promise(function (resolve, reject) {\n var resolved = false;\n msgBox.$once(HOOK_EVENT_NAME_DESTROYED, function () {\n if (!resolved) {\n /* istanbul ignore next */\n reject(new Error('BootstrapVue MsgBox destroyed before resolve'));\n }\n });\n msgBox.$on(EVENT_NAME_HIDE, function (bvModalEvt) {\n if (!bvModalEvt.defaultPrevented) {\n var result = resolver(bvModalEvt); // If resolver didn't cancel hide, we resolve\n\n if (!bvModalEvt.defaultPrevented) {\n resolved = true;\n resolve(result);\n }\n }\n }); // Create a mount point (a DIV) and mount the msgBo which will trigger it to show\n\n var div = document.createElement('div');\n document.body.appendChild(div);\n msgBox.$mount(div);\n });\n }; // Private utility method to open a user defined message box and returns a promise.\n // Not to be used directly by consumers, as this method may change calling syntax\n\n\n var makeMsgBox = function makeMsgBox($parent, content) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var resolver = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!content || warnNoPromiseSupport(PROP_NAME) || warnNotClient(PROP_NAME) || !isFunction(resolver)) {\n /* istanbul ignore next */\n return;\n }\n\n return asyncMsgBox($parent, _objectSpread(_objectSpread({}, filterOptions(options)), {}, {\n msgBoxContent: content\n }), resolver);\n }; // BvModal instance class\n\n\n var BvModal = /*#__PURE__*/function () {\n function BvModal(vm) {\n _classCallCheck(this, BvModal);\n\n // Assign the new properties to this instance\n assign(this, {\n _vm: vm,\n _root: vm.$root\n }); // Set these properties as read-only and non-enumerable\n\n defineProperties(this, {\n _vm: readonlyDescriptor(),\n _root: readonlyDescriptor()\n });\n } // --- Instance methods ---\n // Show modal with the specified ID args are for future use\n\n\n _createClass(BvModal, [{\n key: \"show\",\n value: function show(id) {\n if (id && this._root) {\n var _this$_root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$_root = this._root).$emit.apply(_this$_root, [getRootActionEventName(NAME_MODAL, 'show'), id].concat(args));\n }\n } // Hide modal with the specified ID args are for future use\n\n }, {\n key: \"hide\",\n value: function hide(id) {\n if (id && this._root) {\n var _this$_root2;\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (_this$_root2 = this._root).$emit.apply(_this$_root2, [getRootActionEventName(NAME_MODAL, 'hide'), id].concat(args));\n }\n } // The following methods require Promise support!\n // IE 11 and others do not support Promise natively, so users\n // should have a Polyfill loaded (which they need anyways for IE 11 support)\n // Open a message box with OK button only and returns a promise\n\n }, {\n key: \"msgBoxOk\",\n value: function msgBoxOk(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Pick the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: true,\n okDisabled: false,\n hideFooter: false,\n msgBoxContent: message\n });\n\n return makeMsgBox(this._vm, message, props, function () {\n // Always resolve to true for OK\n return true;\n });\n } // Open a message box modal with OK and CANCEL buttons\n // and returns a promise\n\n }, {\n key: \"msgBoxConfirm\",\n value: function msgBoxConfirm(message) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // Set the modal props we support from options\n var props = _objectSpread(_objectSpread({}, options), {}, {\n // Add in overrides and our content prop\n okOnly: false,\n okDisabled: false,\n cancelDisabled: false,\n hideFooter: false\n });\n\n return makeMsgBox(this._vm, message, props, function (bvModalEvt) {\n var trigger = bvModalEvt.trigger;\n return trigger === 'ok' ? true : trigger === 'cancel' ? false : null;\n });\n }\n }]);\n\n return BvModal;\n }(); // Add our instance mixin\n\n\n Vue.mixin({\n beforeCreate: function beforeCreate() {\n // Because we need access to `$root` for `$emits`, and VM for parenting,\n // we have to create a fresh instance of `BvModal` for each VM\n this[PROP_NAME_PRIV] = new BvModal(this);\n }\n }); // Define our read-only `$bvModal` instance property\n // Placed in an if just in case in HMR mode\n\n if (!hasOwnProperty(Vue.prototype, PROP_NAME)) {\n defineProperty(Vue.prototype, PROP_NAME, {\n get: function get() {\n /* istanbul ignore next */\n if (!this || !this[PROP_NAME_PRIV]) {\n warn(\"\\\"\".concat(PROP_NAME, \"\\\" must be accessed from a Vue instance \\\"this\\\" context.\"), NAME_MODAL);\n }\n\n return this[PROP_NAME_PRIV];\n }\n });\n }\n};\n\nexport var BVModalPlugin = /*#__PURE__*/pluginFactory({\n plugins: {\n plugin: plugin\n }\n});","import { BModal } from './modal';\nimport { VBModal } from '../../directives/modal/modal';\nimport { BVModalPlugin } from './helpers/bv-modal';\nimport { pluginFactory } from '../../utils/plugins';\nvar ModalPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BModal: BModal\n },\n directives: {\n VBModal: VBModal\n },\n // $bvModal injection\n plugins: {\n BVModalPlugin: BVModalPlugin\n }\n});\nexport { ModalPlugin, BModal };","export var noop = function noop() {};","// Base on-demand component for tooltip / popover templates\n//\n// Currently:\n// Responsible for positioning and transitioning the template\n// Templates are only instantiated when shown, and destroyed when hidden\n//\nimport Popper from 'popper.js';\nimport { Vue } from '../../../vue';\nimport { NAME_POPPER } from '../../../constants/components';\nimport { EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { HTMLElement, SVGElement } from '../../../constants/safe-types';\nimport { getCS, requestAF, select } from '../../../utils/dom';\nimport { toFloat } from '../../../utils/number';\nimport { makeProp } from '../../../utils/props';\nimport { BVTransition } from '../../transition/bv-transition'; // --- Constants ---\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n}; // --- Props ---\n\nexport var props = {\n // The minimum distance (in `px`) from the edge of the\n // tooltip/popover that the arrow can be positioned\n arrowPadding: makeProp(PROP_TYPE_NUMBER_STRING, 6),\n // 'scrollParent', 'viewport', 'window', or `Element`\n boundary: makeProp([HTMLElement, PROP_TYPE_STRING], 'scrollParent'),\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 5),\n fallbackPlacement: makeProp(PROP_TYPE_ARRAY_STRING, 'flip'),\n offset: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n placement: makeProp(PROP_TYPE_STRING, 'top'),\n // Element that the tooltip/popover is positioned relative to\n target: makeProp([HTMLElement, SVGElement])\n}; // --- Main component ---\n// @vue/component\n\nexport var BVPopper = /*#__PURE__*/Vue.extend({\n name: NAME_POPPER,\n props: props,\n data: function data() {\n return {\n // reactive props set by parent\n noFade: false,\n // State related data\n localShow: true,\n attachment: this.getAttachment(this.placement)\n };\n },\n computed: {\n /* istanbul ignore next */\n templateType: function templateType() {\n // Overridden by template component\n return 'unknown';\n },\n popperConfig: function popperConfig() {\n var _this = this;\n\n var placement = this.placement;\n return {\n placement: this.getAttachment(placement),\n modifiers: {\n offset: {\n offset: this.getOffset(placement)\n },\n flip: {\n behavior: this.fallbackPlacement\n },\n // `arrow.element` can also be a reference to an HTML Element\n // maybe we should make this a `$ref` in the templates?\n arrow: {\n element: '.arrow'\n },\n preventOverflow: {\n padding: this.boundaryPadding,\n boundariesElement: this.boundary\n }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n /* istanbul ignore next: can't test in JSDOM */\n _this.popperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this.popperPlacementChange(data);\n }\n };\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Note: We are created on-demand, and should be guaranteed that\n // DOM is rendered/ready by the time the created hook runs\n this.$_popper = null; // Ensure we show as we mount\n\n this.localShow = true; // Create popper instance before shown\n\n this.$on(EVENT_NAME_SHOW, function (el) {\n _this2.popperCreate(el);\n }); // Self destruct handler\n\n var handleDestroy = function handleDestroy() {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n }; // Self destruct if parent destroyed\n\n\n this.$parent.$once(HOOK_EVENT_NAME_DESTROYED, handleDestroy); // Self destruct after hidden\n\n this.$once(EVENT_NAME_HIDDEN, handleDestroy);\n },\n beforeMount: function beforeMount() {\n // Ensure that the attachment position is correct before mounting\n // as our propsData is added after `new Template({...})`\n this.attachment = this.getAttachment(this.placement);\n },\n updated: function updated() {\n // Update popper if needed\n // TODO: Should this be a watcher on `this.popperConfig` instead?\n this.updatePopper();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroyPopper();\n },\n destroyed: function destroyed() {\n // Make sure template is removed from DOM\n var el = this.$el;\n el && el.parentNode && el.parentNode.removeChild(el);\n },\n methods: {\n // \"Public\" method to trigger hide template\n hide: function hide() {\n this.localShow = false;\n },\n // Private\n getAttachment: function getAttachment(placement) {\n return AttachmentMap[String(placement).toUpperCase()] || 'auto';\n },\n getOffset: function getOffset(placement) {\n if (!this.offset) {\n // Could set a ref for the arrow element\n var arrow = this.$refs.arrow || select('.arrow', this.$el);\n var arrowOffset = toFloat(getCS(arrow).width, 0) + toFloat(this.arrowPadding, 0);\n\n switch (OffsetMap[String(placement).toUpperCase()] || 0) {\n /* istanbul ignore next: can't test in JSDOM */\n case +1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"+50%p - \".concat(arrowOffset, \"px\");\n\n /* istanbul ignore next: can't test in JSDOM */\n\n case -1:\n /* istanbul ignore next: can't test in JSDOM */\n return \"-50%p + \".concat(arrowOffset, \"px\");\n\n default:\n return 0;\n }\n }\n /* istanbul ignore next */\n\n\n return this.offset;\n },\n popperCreate: function popperCreate(el) {\n this.destroyPopper(); // We use `el` rather than `this.$el` just in case the original\n // mountpoint root element type was changed by the template\n\n this.$_popper = new Popper(this.target, el, this.popperConfig);\n },\n destroyPopper: function destroyPopper() {\n this.$_popper && this.$_popper.destroy();\n this.$_popper = null;\n },\n updatePopper: function updatePopper() {\n this.$_popper && this.$_popper.scheduleUpdate();\n },\n popperPlacementChange: function popperPlacementChange(data) {\n // Callback used by popper to adjust the arrow placement\n this.attachment = this.getAttachment(data.placement);\n },\n\n /* istanbul ignore next */\n renderTemplate: function renderTemplate(h) {\n // Will be overridden by templates\n return h('div');\n }\n },\n render: function render(h) {\n var _this3 = this;\n\n var noFade = this.noFade; // Note: 'show' and 'fade' classes are only appled during transition\n\n return h(BVTransition, {\n // Transitions as soon as mounted\n props: {\n appear: true,\n noFade: noFade\n },\n on: {\n // Events used by parent component/instance\n beforeEnter: function beforeEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOW, el);\n },\n afterEnter: function afterEnter(el) {\n return _this3.$emit(EVENT_NAME_SHOWN, el);\n },\n beforeLeave: function beforeLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDE, el);\n },\n afterLeave: function afterLeave(el) {\n return _this3.$emit(EVENT_NAME_HIDDEN, el);\n }\n }\n }, [this.localShow ? this.renderTemplate(h) : h()]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../../vue';\nimport { NAME_TOOLTIP_TEMPLATE } from '../../../constants/components';\nimport { EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE } from '../../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../../constants/props';\nimport { isFunction } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { scopedStyleMixin } from '../../../mixins/scoped-style';\nimport { BVPopper } from './bv-popper'; // --- Props ---\n\nexport var props = {\n // Used only by the directive versions\n html: makeProp(PROP_TYPE_BOOLEAN, false),\n // Other non-reactive (while open) props are pulled in from BVPopper\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltipTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_TEMPLATE,\n extends: BVPopper,\n mixins: [scopedStyleMixin],\n props: props,\n data: function data() {\n // We use data, rather than props to ensure reactivity\n // Parent component will directly set this data\n return {\n title: '',\n content: '',\n variant: null,\n customClass: null,\n interactive: true\n };\n },\n computed: {\n templateType: function templateType() {\n return 'tooltip';\n },\n templateClasses: function templateClasses() {\n var _ref;\n\n var variant = this.variant,\n attachment = this.attachment,\n templateType = this.templateType;\n return [(_ref = {\n // Disables pointer events to hide the tooltip when the user\n // hovers over its content\n noninteractive: !this.interactive\n }, _defineProperty(_ref, \"b-\".concat(templateType, \"-\").concat(variant), variant), _defineProperty(_ref, \"bs-\".concat(templateType, \"-\").concat(attachment), attachment), _ref), this.customClass];\n },\n templateAttributes: function templateAttributes() {\n var id = this.id;\n return _objectSpread(_objectSpread({}, this.$parent.$parent.$attrs), {}, {\n id: id,\n role: 'tooltip',\n tabindex: '-1'\n }, this.scopedStyleAttrs);\n },\n templateListeners: function templateListeners() {\n var _this = this;\n\n // Used for hover/focus trigger listeners\n return {\n mouseenter:\n /* istanbul ignore next */\n function mouseenter(event) {\n _this.$emit(EVENT_NAME_MOUSEENTER, event);\n },\n mouseleave:\n /* istanbul ignore next */\n function mouseleave(event) {\n _this.$emit(EVENT_NAME_MOUSELEAVE, event);\n },\n focusin:\n /* istanbul ignore next */\n function focusin(event) {\n _this.$emit(EVENT_NAME_FOCUSIN, event);\n },\n focusout:\n /* istanbul ignore next */\n function focusout(event) {\n _this.$emit(EVENT_NAME_FOCUSOUT, event);\n }\n };\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title; // Title can be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title; // Directive versions only\n\n var domProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n return h('div', {\n staticClass: 'tooltip b-tooltip',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), h('div', {\n staticClass: 'tooltip-inner',\n domProps: domProps\n }, [$title])]);\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\n// Tooltip \"Class\" (Built as a renderless Vue instance)\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { COMPONENT_UID_KEY, Vue } from '../../../vue';\nimport { NAME_MODAL, NAME_TOOLTIP_HELPER } from '../../../constants/components';\nimport { EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_FOCUSIN, EVENT_NAME_FOCUSOUT, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_MOUSEENTER, EVENT_NAME_MOUSELEAVE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_OPTIONS_NO_CAPTURE, HOOK_EVENT_NAME_BEFORE_DESTROY, HOOK_EVENT_NAME_DESTROYED } from '../../../constants/events';\nimport { arrayIncludes, concat, from as arrayFrom } from '../../../utils/array';\nimport { attemptFocus, closest, contains, getAttr, getById, hasAttr, hasClass, isDisabled, isElement, isVisible, removeAttr, requestAF, select, setAttr } from '../../../utils/dom';\nimport { eventOff, eventOn, eventOnOff, getRootActionEventName, getRootEventName } from '../../../utils/events';\nimport { getScopeId } from '../../../utils/get-scope-id';\nimport { identity } from '../../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../../utils/inspect';\nimport { looseEqual } from '../../../utils/loose-equal';\nimport { mathMax } from '../../../utils/math';\nimport { noop } from '../../../utils/noop';\nimport { toInteger } from '../../../utils/number';\nimport { keys } from '../../../utils/object';\nimport { warn } from '../../../utils/warn';\nimport { BvEvent } from '../../../utils/bv-event.class';\nimport { listenOnRootMixin } from '../../../mixins/listen-on-root';\nimport { BVTooltipTemplate } from './bv-tooltip-template'; // --- Constants ---\n// Modal container selector for appending tooltip/popover\n\nvar MODAL_SELECTOR = '.modal-content'; // Modal `$root` hidden event\n\nvar ROOT_EVENT_NAME_MODAL_HIDDEN = getRootEventName(NAME_MODAL, EVENT_NAME_HIDDEN); // Sidebar container selector for appending tooltip/popover\n\nvar SIDEBAR_SELECTOR = '.b-sidebar'; // For finding the container to append to\n\nvar CONTAINER_SELECTOR = [MODAL_SELECTOR, SIDEBAR_SELECTOR].join(', '); // For dropdown sniffing\n\nvar DROPDOWN_CLASS = 'dropdown';\nvar DROPDOWN_OPEN_SELECTOR = '.dropdown-menu.show'; // Data attribute to temporary store the `title` attribute's value\n\nvar DATA_TITLE_ATTR = 'data-original-title'; // Data specific to popper and template\n// We don't use props, as we need reactivity (we can't pass reactive props)\n\nvar templateData = {\n // Text string or Scoped slot function\n title: '',\n // Text string or Scoped slot function\n content: '',\n // String\n variant: null,\n // String, Array, Object\n customClass: null,\n // String or array of Strings (overwritten by BVPopper)\n triggers: '',\n // String (overwritten by BVPopper)\n placement: 'auto',\n // String or array of strings\n fallbackPlacement: 'flip',\n // Element or Component reference (or function that returns element) of\n // the element that will have the trigger events bound, and is also\n // default element for positioning\n target: null,\n // HTML ID, Element or Component reference\n container: null,\n // 'body'\n // Boolean\n noFade: false,\n // 'scrollParent', 'viewport', 'window', Element, or Component reference\n boundary: 'scrollParent',\n // Tooltip/popover will try and stay away from\n // boundary edge by this many pixels (Number)\n boundaryPadding: 5,\n // Arrow offset (Number)\n offset: 0,\n // Hover/focus delay (Number or Object)\n delay: 0,\n // Arrow of Tooltip/popover will try and stay away from\n // the edge of tooltip/popover edge by this many pixels\n arrowPadding: 6,\n // Interactive state (Boolean)\n interactive: true,\n // Disabled state (Boolean)\n disabled: false,\n // ID to use for tooltip/popover\n id: null,\n // Flag used by directives only, for HTML content\n html: false\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP_HELPER,\n mixins: [listenOnRootMixin],\n data: function data() {\n return _objectSpread(_objectSpread({}, templateData), {}, {\n // State management data\n activeTrigger: {\n // manual: false,\n hover: false,\n click: false,\n focus: false\n },\n localShow: false\n });\n },\n computed: {\n templateType: function templateType() {\n // Overwritten by BVPopover\n return 'tooltip';\n },\n computedId: function computedId() {\n return this.id || \"__bv_\".concat(this.templateType, \"_\").concat(this[COMPONENT_UID_KEY], \"__\");\n },\n computedDelay: function computedDelay() {\n // Normalizes delay into object form\n var delay = {\n show: 0,\n hide: 0\n };\n\n if (isPlainObject(this.delay)) {\n delay.show = mathMax(toInteger(this.delay.show, 0), 0);\n delay.hide = mathMax(toInteger(this.delay.hide, 0), 0);\n } else if (isNumber(this.delay) || isString(this.delay)) {\n delay.show = delay.hide = mathMax(toInteger(this.delay, 0), 0);\n }\n\n return delay;\n },\n computedTriggers: function computedTriggers() {\n // Returns the triggers in sorted array form\n // TODO: Switch this to object form for easier lookup\n return concat(this.triggers).filter(identity).join(' ').trim().toLowerCase().split(/\\s+/).sort();\n },\n isWithActiveTrigger: function isWithActiveTrigger() {\n for (var trigger in this.activeTrigger) {\n if (this.activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n },\n computedTemplateData: function computedTemplateData() {\n var title = this.title,\n content = this.content,\n variant = this.variant,\n customClass = this.customClass,\n noFade = this.noFade,\n interactive = this.interactive;\n return {\n title: title,\n content: content,\n variant: variant,\n customClass: customClass,\n noFade: noFade,\n interactive: interactive\n };\n }\n },\n watch: {\n computedTriggers: function computedTriggers(newTriggers, oldTriggers) {\n var _this = this;\n\n // Triggers have changed, so re-register them\n\n /* istanbul ignore next */\n if (!looseEqual(newTriggers, oldTriggers)) {\n this.$nextTick(function () {\n // Disable trigger listeners\n _this.unListen(); // Clear any active triggers that are no longer in the list of triggers\n\n\n oldTriggers.forEach(function (trigger) {\n if (!arrayIncludes(newTriggers, trigger)) {\n if (_this.activeTrigger[trigger]) {\n _this.activeTrigger[trigger] = false;\n }\n }\n }); // Re-enable the trigger listeners\n\n _this.listen();\n });\n }\n },\n computedTemplateData: function computedTemplateData() {\n // If any of the while open reactive \"props\" change,\n // ensure that the template updates accordingly\n this.handleTemplateUpdate();\n },\n title: function title(newValue, oldValue) {\n // Make sure to hide the tooltip when the title is set empty\n if (newValue !== oldValue && !newValue) {\n this.hide();\n }\n },\n disabled: function disabled(newValue) {\n if (newValue) {\n this.disable();\n } else {\n this.enable();\n }\n }\n },\n created: function created() {\n var _this2 = this;\n\n // Create non-reactive properties\n this.$_tip = null;\n this.$_hoverTimeout = null;\n this.$_hoverState = '';\n this.$_visibleInterval = null;\n this.$_enabled = !this.disabled;\n this.$_noop = noop.bind(this); // Destroy ourselves when the parent is destroyed\n\n if (this.$parent) {\n this.$parent.$once(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$nextTick(function () {\n // In a `requestAF()` to release control back to application\n requestAF(function () {\n _this2.$destroy();\n });\n });\n });\n }\n\n this.$nextTick(function () {\n var target = _this2.getTarget();\n\n if (target && contains(document.body, target)) {\n // Copy the parent's scoped style attribute\n _this2.scopeId = getScopeId(_this2.$parent); // Set up all trigger handlers and listeners\n\n _this2.listen();\n } else {\n /* istanbul ignore next */\n warn(isString(_this2.target) ? \"Unable to find target element by ID \\\"#\".concat(_this2.target, \"\\\" in document.\") : 'The provided target is no valid HTML element.', _this2.templateType);\n }\n });\n },\n\n /* istanbul ignore next */\n updated: function updated() {\n // Usually called when the slots/data changes\n this.$nextTick(this.handleTemplateUpdate);\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n // In a keepalive that has been deactivated, so hide\n // the tooltip/popover if it is showing\n this.forceHide();\n },\n beforeDestroy: function beforeDestroy() {\n // Remove all handler/listeners\n this.unListen();\n this.setWhileOpenListeners(false); // Clear any timeouts/intervals\n\n this.clearHoverTimeout();\n this.clearVisibilityInterval(); // Destroy the template\n\n this.destroyTemplate(); // Remove any other private properties created during create\n\n this.$_noop = null;\n },\n methods: {\n // --- Methods for creating and destroying the template ---\n getTemplate: function getTemplate() {\n // Overridden by BVPopover\n return BVTooltipTemplate;\n },\n updateData: function updateData() {\n var _this3 = this;\n\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Method for updating popper/template data\n // We only update data if it exists, and has not changed\n var titleUpdated = false;\n keys(templateData).forEach(function (prop) {\n if (!isUndefined(data[prop]) && _this3[prop] !== data[prop]) {\n _this3[prop] = data[prop];\n\n if (prop === 'title') {\n titleUpdated = true;\n }\n }\n }); // If the title has updated, we may need to handle the `title`\n // attribute on the trigger target\n // We only do this while the template is open\n\n if (titleUpdated && this.localShow) {\n this.fixTitle();\n }\n },\n createTemplateAndShow: function createTemplateAndShow() {\n // Creates the template instance and show it\n var container = this.getContainer();\n var Template = this.getTemplate();\n var $tip = this.$_tip = new Template({\n parent: this,\n // The following is not reactive to changes in the props data\n propsData: {\n // These values cannot be changed while template is showing\n id: this.computedId,\n html: this.html,\n placement: this.placement,\n fallbackPlacement: this.fallbackPlacement,\n target: this.getPlacementTarget(),\n boundary: this.getBoundary(),\n // Ensure the following are integers\n offset: toInteger(this.offset, 0),\n arrowPadding: toInteger(this.arrowPadding, 0),\n boundaryPadding: toInteger(this.boundaryPadding, 0)\n }\n }); // We set the initial reactive data (values that can be changed while open)\n\n this.handleTemplateUpdate(); // Template transition phase events (handled once only)\n // When the template has mounted, but not visibly shown yet\n\n $tip.$once(EVENT_NAME_SHOW, this.onTemplateShow); // When the template has completed showing\n\n $tip.$once(EVENT_NAME_SHOWN, this.onTemplateShown); // When the template has started to hide\n\n $tip.$once(EVENT_NAME_HIDE, this.onTemplateHide); // When the template has completed hiding\n\n $tip.$once(EVENT_NAME_HIDDEN, this.onTemplateHidden); // When the template gets destroyed for any reason\n\n $tip.$once(HOOK_EVENT_NAME_DESTROYED, this.destroyTemplate); // Convenience events from template\n // To save us from manually adding/removing DOM\n // listeners to tip element when it is open\n\n $tip.$on(EVENT_NAME_FOCUSIN, this.handleEvent);\n $tip.$on(EVENT_NAME_FOCUSOUT, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSEENTER, this.handleEvent);\n $tip.$on(EVENT_NAME_MOUSELEAVE, this.handleEvent); // Mount (which triggers the `show`)\n\n $tip.$mount(container.appendChild(document.createElement('div'))); // Template will automatically remove its markup from DOM when hidden\n },\n hideTemplate: function hideTemplate() {\n // Trigger the template to start hiding\n // The template will emit the `hide` event after this and\n // then emit the `hidden` event once it is fully hidden\n // The `hook:destroyed` will also be called (safety measure)\n this.$_tip && this.$_tip.hide(); // Clear out any stragging active triggers\n\n this.clearActiveTriggers(); // Reset the hover state\n\n this.$_hoverState = '';\n },\n // Destroy the template instance and reset state\n destroyTemplate: function destroyTemplate() {\n this.setWhileOpenListeners(false);\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers();\n this.localPlacementTarget = null;\n\n try {\n this.$_tip.$destroy();\n } catch (_unused) {}\n\n this.$_tip = null;\n this.removeAriaDescribedby();\n this.restoreTitle();\n this.localShow = false;\n },\n getTemplateElement: function getTemplateElement() {\n return this.$_tip ? this.$_tip.$el : null;\n },\n handleTemplateUpdate: function handleTemplateUpdate() {\n var _this4 = this;\n\n // Update our template title/content \"props\"\n // So that the template updates accordingly\n var $tip = this.$_tip;\n\n if ($tip) {\n var props = ['title', 'content', 'variant', 'customClass', 'noFade', 'interactive']; // Only update the values if they have changed\n\n props.forEach(function (prop) {\n if ($tip[prop] !== _this4[prop]) {\n $tip[prop] = _this4[prop];\n }\n });\n }\n },\n // --- Show/Hide handlers ---\n // Show the tooltip\n show: function show() {\n var target = this.getTarget();\n\n if (!target || !contains(document.body, target) || !isVisible(target) || this.dropdownOpen() || (isUndefinedOrNull(this.title) || this.title === '') && (isUndefinedOrNull(this.content) || this.content === '')) {\n // If trigger element isn't in the DOM or is not visible, or\n // is on an open dropdown toggle, or has no content, then\n // we exit without showing\n return;\n } // If tip already exists, exit early\n\n\n if (this.$_tip || this.localShow) {\n /* istanbul ignore next */\n return;\n } // In the process of showing\n\n\n this.localShow = true; // Create a cancelable BvEvent\n\n var showEvt = this.buildEvent(EVENT_NAME_SHOW, {\n cancelable: true\n });\n this.emitEvent(showEvt); // Don't show if event cancelled\n\n /* istanbul ignore if */\n\n if (showEvt.defaultPrevented) {\n // Destroy the template (if for some reason it was created)\n this.destroyTemplate();\n return;\n } // Fix the title attribute on target\n\n\n this.fixTitle(); // Set aria-describedby on target\n\n this.addAriaDescribedby(); // Create and show the tooltip\n\n this.createTemplateAndShow();\n },\n hide: function hide() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n // Hide the tooltip\n var tip = this.getTemplateElement();\n /* istanbul ignore if */\n\n if (!tip || !this.localShow) {\n this.restoreTitle();\n return;\n } // Emit cancelable BvEvent 'hide'\n // We disable cancelling if `force` is true\n\n\n var hideEvt = this.buildEvent(EVENT_NAME_HIDE, {\n cancelable: !force\n });\n this.emitEvent(hideEvt);\n /* istanbul ignore if: ignore for now */\n\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n } // Tell the template to hide\n\n\n this.hideTemplate();\n },\n forceHide: function forceHide() {\n // Forcefully hides/destroys the template, regardless of any active triggers\n var tip = this.getTemplateElement();\n\n if (!tip || !this.localShow) {\n /* istanbul ignore next */\n return;\n } // Disable while open listeners/watchers\n // This is also done in the template `hide` event handler\n\n\n this.setWhileOpenListeners(false); // Clear any hover enter/leave event\n\n this.clearHoverTimeout();\n this.$_hoverState = '';\n this.clearActiveTriggers(); // Disable the fade animation on the template\n\n if (this.$_tip) {\n this.$_tip.noFade = true;\n } // Hide the tip (with force = true)\n\n\n this.hide(true);\n },\n enable: function enable() {\n this.$_enabled = true; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_ENABLED));\n },\n disable: function disable() {\n this.$_enabled = false; // Create a non-cancelable BvEvent\n\n this.emitEvent(this.buildEvent(EVENT_NAME_DISABLED));\n },\n // --- Handlers for template events ---\n // When template is inserted into DOM, but not yet shown\n onTemplateShow: function onTemplateShow() {\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n },\n // When template show transition completes\n onTemplateShown: function onTemplateShown() {\n var prevHoverState = this.$_hoverState;\n this.$_hoverState = '';\n /* istanbul ignore next: occasional Node 10 coverage error */\n\n if (prevHoverState === 'out') {\n this.leave(null);\n } // Emit a non-cancelable BvEvent 'shown'\n\n\n this.emitEvent(this.buildEvent(EVENT_NAME_SHOWN));\n },\n // When template is starting to hide\n onTemplateHide: function onTemplateHide() {\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n },\n // When template has completed closing (just before it self destructs)\n onTemplateHidden: function onTemplateHidden() {\n // Destroy the template\n this.destroyTemplate(); // Emit a non-cancelable BvEvent 'shown'\n\n this.emitEvent(this.buildEvent(EVENT_NAME_HIDDEN));\n },\n // --- Helper methods ---\n getTarget: function getTarget() {\n var target = this.target;\n\n if (isString(target)) {\n target = getById(target.replace(/^#/, ''));\n } else if (isFunction(target)) {\n target = target();\n } else if (target) {\n target = target.$el || target;\n }\n\n return isElement(target) ? target : null;\n },\n getPlacementTarget: function getPlacementTarget() {\n // This is the target that the tooltip will be placed on, which may not\n // necessarily be the same element that has the trigger event listeners\n // For now, this is the same as target\n // TODO:\n // Add in child selector support\n // Add in visibility checks for this element\n // Fallback to target if not found\n return this.getTarget();\n },\n getTargetId: function getTargetId() {\n // Returns the ID of the trigger element\n var target = this.getTarget();\n return target && target.id ? target.id : null;\n },\n getContainer: function getContainer() {\n // Handle case where container may be a component ref\n var container = this.container ? this.container.$el || this.container : false;\n var body = document.body;\n var target = this.getTarget(); // If we are in a modal, we append to the modal, If we\n // are in a sidebar, we append to the sidebar, else append\n // to body, unless a container is specified\n // TODO:\n // Template should periodically check to see if it is in dom\n // And if not, self destruct (if container got v-if'ed out of DOM)\n // Or this could possibly be part of the visibility check\n\n return container === false ? closest(CONTAINER_SELECTOR, target) || body :\n /*istanbul ignore next */\n isString(container) ?\n /*istanbul ignore next */\n getById(container.replace(/^#/, '')) || body :\n /*istanbul ignore next */\n body;\n },\n getBoundary: function getBoundary() {\n return this.boundary ? this.boundary.$el || this.boundary : 'scrollParent';\n },\n isInModal: function isInModal() {\n var target = this.getTarget();\n return target && closest(MODAL_SELECTOR, target);\n },\n isDropdown: function isDropdown() {\n // Returns true if trigger is a dropdown\n var target = this.getTarget();\n return target && hasClass(target, DROPDOWN_CLASS);\n },\n dropdownOpen: function dropdownOpen() {\n // Returns true if trigger is a dropdown and the dropdown menu is open\n var target = this.getTarget();\n return this.isDropdown() && target && select(DROPDOWN_OPEN_SELECTOR, target);\n },\n clearHoverTimeout: function clearHoverTimeout() {\n clearTimeout(this.$_hoverTimeout);\n this.$_hoverTimeout = null;\n },\n clearVisibilityInterval: function clearVisibilityInterval() {\n clearInterval(this.$_visibleInterval);\n this.$_visibleInterval = null;\n },\n clearActiveTriggers: function clearActiveTriggers() {\n for (var trigger in this.activeTrigger) {\n this.activeTrigger[trigger] = false;\n }\n },\n addAriaDescribedby: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.computedId).join(' ').trim(); // Update/add aria-described by\n\n setAttr(target, 'aria-describedby', desc);\n },\n removeAriaDescribedby: function removeAriaDescribedby() {\n var _this5 = this;\n\n // Remove aria-describedby on trigger element, without removing any other IDs\n var target = this.getTarget();\n var desc = getAttr(target, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this5.computedId;\n }).join(' ').trim(); // Update or remove aria-describedby\n\n if (desc) {\n /* istanbul ignore next */\n setAttr(target, 'aria-describedby', desc);\n } else {\n removeAttr(target, 'aria-describedby');\n }\n },\n fixTitle: function fixTitle() {\n // If the target has a `title` attribute,\n // remove it and store it on a data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, 'title')) {\n // Get `title` attribute value and remove it from target\n var title = getAttr(target, 'title');\n setAttr(target, 'title', ''); // Only set the data attribute when the value is truthy\n\n if (title) {\n setAttr(target, DATA_TITLE_ATTR, title);\n }\n }\n },\n restoreTitle: function restoreTitle() {\n // If the target had a `title` attribute,\n // restore it and remove the data attribute\n var target = this.getTarget();\n\n if (hasAttr(target, DATA_TITLE_ATTR)) {\n // Get data attribute value and remove it from target\n var title = getAttr(target, DATA_TITLE_ATTR);\n removeAttr(target, DATA_TITLE_ATTR); // Only restore the `title` attribute when the value is truthy\n\n if (title) {\n setAttr(target, 'title', title);\n }\n }\n },\n // --- BvEvent helpers ---\n buildEvent: function buildEvent(type) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Defaults to a non-cancellable event\n return new BvEvent(type, _objectSpread({\n cancelable: false,\n target: this.getTarget(),\n relatedTarget: this.getTemplateElement() || null,\n componentId: this.computedId,\n vueTarget: this\n }, options));\n },\n emitEvent: function emitEvent(bvEvent) {\n var type = bvEvent.type;\n this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);\n this.$emit(type, bvEvent);\n },\n // --- Event handler setup methods ---\n listen: function listen() {\n var _this6 = this;\n\n // Enable trigger event handlers\n var el = this.getTarget();\n\n if (!el) {\n /* istanbul ignore next */\n return;\n } // Listen for global show/hide events\n\n\n this.setRootListener(true); // Set up our listeners on the target trigger element\n\n this.computedTriggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n\n /* istanbul ignore next */\n eventOn(el, 'focusout', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n eventOn(el, 'mouseleave', _this6.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }\n }, this);\n },\n\n /* istanbul ignore next */\n unListen: function unListen() {\n var _this7 = this;\n\n // Remove trigger event handlers\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n var target = this.getTarget(); // Stop listening for global show/hide/enable/disable events\n\n this.setRootListener(false); // Clear out any active target listeners\n\n events.forEach(function (event) {\n target && eventOff(target, event, _this7.handleEvent, EVENT_OPTIONS_NO_CAPTURE);\n }, this);\n },\n setRootListener: function setRootListener(on) {\n // Listen for global `bv::{hide|show}::{tooltip|popover}` hide request event\n var $root = this.$root;\n\n if ($root) {\n var method = on ? '$on' : '$off';\n var type = this.templateType;\n $root[method](getRootActionEventName(type, EVENT_NAME_HIDE), this.doHide);\n $root[method](getRootActionEventName(type, EVENT_NAME_SHOW), this.doShow);\n $root[method](getRootActionEventName(type, EVENT_NAME_DISABLE), this.doDisable);\n $root[method](getRootActionEventName(type, EVENT_NAME_ENABLE), this.doEnable);\n }\n },\n setWhileOpenListeners: function setWhileOpenListeners(on) {\n // Events that are only registered when the template is showing\n // Modal close events\n this.setModalListener(on); // Dropdown open events (if we are attached to a dropdown)\n\n this.setDropdownListener(on); // Periodic $element visibility check\n // For handling when tip target is in , tabs, carousel, etc\n\n this.visibleCheck(on); // On-touch start listeners\n\n this.setOnTouchStartListener(on);\n },\n // Handler for periodic visibility check\n visibleCheck: function visibleCheck(on) {\n var _this8 = this;\n\n this.clearVisibilityInterval();\n var target = this.getTarget();\n var tip = this.getTemplateElement();\n\n if (on) {\n this.$_visibleInterval = setInterval(function () {\n if (tip && _this8.localShow && (!target.parentNode || !isVisible(target))) {\n // Target element is no longer visible or not in DOM, so force-hide the tooltip\n _this8.forceHide();\n }\n }, 100);\n }\n },\n setModalListener: function setModalListener(on) {\n // Handle case where tooltip/target is in a modal\n if (this.isInModal()) {\n // We can listen for modal hidden events on `$root`\n this.$root[on ? '$on' : '$off'](ROOT_EVENT_NAME_MODAL_HIDDEN, this.forceHide);\n }\n },\n\n /* istanbul ignore next: JSDOM doesn't support `ontouchstart` */\n setOnTouchStartListener: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // If this is a touch-enabled device we add extra empty\n // `mouseover` listeners to the body's immediate children\n // Only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n eventOnOff(on, el, 'mouseover', _this9.$_noop);\n });\n }\n },\n setDropdownListener: function setDropdownListener(on) {\n var target = this.getTarget();\n\n if (!target || !this.$root || !this.isDropdown) {\n return;\n } // We can listen for dropdown shown events on its instance\n // TODO:\n // We could grab the ID from the dropdown, and listen for\n // $root events for that particular dropdown id\n // Dropdown shown and hidden events will need to emit\n // Note: Dropdown auto-ID happens in a `$nextTick()` after mount\n // So the ID lookup would need to be done in a `$nextTick()`\n\n\n if (target.__vue__) {\n target.__vue__[on ? '$on' : '$off'](EVENT_NAME_SHOWN, this.forceHide);\n }\n },\n // --- Event handlers ---\n handleEvent: function handleEvent(event) {\n // General trigger event handler\n // target is the trigger element\n var target = this.getTarget();\n\n if (!target || isDisabled(target) || !this.$_enabled || this.dropdownOpen()) {\n // If disabled or not enabled, or if a dropdown that is open, don't do anything\n // If tip is shown before element gets disabled, then tip will not\n // close until no longer disabled or forcefully closed\n return;\n }\n\n var type = event.type;\n var triggers = this.computedTriggers;\n\n if (type === 'click' && arrayIncludes(triggers, 'click')) {\n this.click(event);\n } else if (type === 'mouseenter' && arrayIncludes(triggers, 'hover')) {\n // `mouseenter` is a non-bubbling event\n this.enter(event);\n } else if (type === 'focusin' && arrayIncludes(triggers, 'focus')) {\n // `focusin` is a bubbling event\n // `event` includes `relatedTarget` (element losing focus)\n this.enter(event);\n } else if (type === 'focusout' && (arrayIncludes(triggers, 'focus') || arrayIncludes(triggers, 'blur')) || type === 'mouseleave' && arrayIncludes(triggers, 'hover')) {\n // `focusout` is a bubbling event\n // `mouseleave` is a non-bubbling event\n // `tip` is the template (will be null if not open)\n var tip = this.getTemplateElement(); // `eventTarget` is the element which is losing focus/hover and\n\n var eventTarget = event.target; // `relatedTarget` is the element gaining focus/hover\n\n var relatedTarget = event.relatedTarget;\n /* istanbul ignore next */\n\n if ( // From tip to target\n tip && contains(tip, eventTarget) && contains(target, relatedTarget) || // From target to tip\n tip && contains(target, eventTarget) && contains(tip, relatedTarget) || // Within tip\n tip && contains(tip, eventTarget) && contains(tip, relatedTarget) || // Within target\n contains(target, eventTarget) && contains(target, relatedTarget)) {\n // If focus/hover moves within `tip` and `target`, don't trigger a leave\n return;\n } // Otherwise trigger a leave\n\n\n this.leave(event);\n }\n },\n doHide: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Close all tooltips or popovers, or this specific tip (with ID)\n this.forceHide();\n }\n },\n doShow: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Open all tooltips or popovers, or this specific tip (with ID)\n this.show();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doDisable: function doDisable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically disable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Disable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.disable();\n }\n },\n\n /*istanbul ignore next: ignore for now */\n doEnable: function doEnable(id)\n /*istanbul ignore next: ignore for now */\n {\n // Programmatically enable tooltip or popover\n if (!id || this.getTargetId() === id || this.computedId === id) {\n // Enable all tooltips or popovers (no ID), or this specific tip (with ID)\n this.enable();\n }\n },\n click: function click(event) {\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Get around a WebKit bug where `click` does not trigger focus events\n // On most browsers, `click` triggers a `focusin`/`focus` event first\n // Needed so that trigger 'click blur' works on iOS\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/5099\n // We use `currentTarget` rather than `target` to trigger on the\n // element, not the inner content\n\n\n attemptFocus(event.currentTarget);\n this.activeTrigger.click = !this.activeTrigger.click;\n\n if (this.isWithActiveTrigger) {\n this.enter(null);\n } else {\n /* istanbul ignore next */\n this.leave(null);\n }\n },\n\n /* istanbul ignore next */\n toggle: function toggle() {\n // Manual toggle handler\n if (!this.$_enabled || this.dropdownOpen()) {\n /* istanbul ignore next */\n return;\n } // Should we register as an active trigger?\n // this.activeTrigger.manual = !this.activeTrigger.manual\n\n\n if (this.localShow) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n },\n enter: function enter() {\n var _this10 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Opening trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n /* istanbul ignore next */\n\n\n if (this.localShow || this.$_hoverState === 'in') {\n this.$_hoverState = 'in';\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'in';\n\n if (!this.computedDelay.show) {\n this.show();\n } else {\n // Hide any title attribute while enter delay is active\n this.fixTitle();\n this.$_hoverTimeout = setTimeout(function () {\n /* istanbul ignore else */\n if (_this10.$_hoverState === 'in') {\n _this10.show();\n } else if (!_this10.localShow) {\n _this10.restoreTitle();\n }\n }, this.computedDelay.show);\n }\n },\n leave: function leave() {\n var _this11 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n // Closing trigger handler\n // Note: Click events are sent with event === null\n if (event) {\n this.activeTrigger[event.type === 'focusout' ? 'focus' : 'hover'] = false;\n /* istanbul ignore next */\n\n if (event.type === 'focusout' && arrayIncludes(this.computedTriggers, 'blur')) {\n // Special case for `blur`: we clear out the other triggers\n this.activeTrigger.click = false;\n this.activeTrigger.hover = false;\n }\n }\n /* istanbul ignore next: ignore for now */\n\n\n if (this.isWithActiveTrigger) {\n return;\n }\n\n this.clearHoverTimeout();\n this.$_hoverState = 'out';\n\n if (!this.computedDelay.hide) {\n this.hide();\n } else {\n this.$_hoverTimeout = setTimeout(function () {\n if (_this11.$_hoverState === 'out') {\n _this11.hide();\n }\n }, this.computedDelay.hide);\n }\n }\n }\n});","var _makePropsConfigurabl, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TOOLTIP } from '../../constants/components';\nimport { EVENT_NAME_CLOSE, EVENT_NAME_DISABLE, EVENT_NAME_DISABLED, EVENT_NAME_ENABLE, EVENT_NAME_ENABLED, EVENT_NAME_HIDDEN, EVENT_NAME_HIDE, EVENT_NAME_OPEN, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_NUMBER_OBJECT_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { HTMLElement, SVGElement } from '../../constants/safe-types';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { pick } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTooltip } from './helpers/bv-tooltip'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ENABLED = 'disabled';\nvar MODEL_EVENT_NAME_ENABLED = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ENABLED;\nvar MODEL_PROP_NAME_SHOW = 'show';\nvar MODEL_EVENT_NAME_SHOW = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_SHOW; // --- Props ---\n\nexport var props = makePropsConfigurable((_makePropsConfigurabl = {\n // String: scrollParent, window, or viewport\n // Element: element reference\n // Object: Vue component\n boundary: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING], 'scrollParent'),\n boundaryPadding: makeProp(PROP_TYPE_NUMBER_STRING, 50),\n // String: HTML ID of container, if null body is used (default)\n // HTMLElement: element reference reference\n // Object: Vue Component\n container: makeProp([HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING]),\n customClass: makeProp(PROP_TYPE_STRING),\n delay: makeProp(PROP_TYPE_NUMBER_OBJECT_STRING, 50)\n}, _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_ENABLED, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"fallbackPlacement\", makeProp(PROP_TYPE_ARRAY_STRING, 'flip')), _defineProperty(_makePropsConfigurabl, \"id\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"noFade\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"noninteractive\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"offset\", makeProp(PROP_TYPE_NUMBER_STRING, 0)), _defineProperty(_makePropsConfigurabl, \"placement\", makeProp(PROP_TYPE_STRING, 'top')), _defineProperty(_makePropsConfigurabl, MODEL_PROP_NAME_SHOW, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_makePropsConfigurabl, \"target\", makeProp([HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING], undefined, true)), _defineProperty(_makePropsConfigurabl, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_makePropsConfigurabl, \"triggers\", makeProp(PROP_TYPE_ARRAY_STRING, 'hover focus')), _defineProperty(_makePropsConfigurabl, \"variant\", makeProp(PROP_TYPE_STRING)), _makePropsConfigurabl), NAME_TOOLTIP); // --- Main component ---\n// @vue/component\n\nexport var BTooltip = /*#__PURE__*/Vue.extend({\n name: NAME_TOOLTIP,\n mixins: [normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n localShow: this[MODEL_PROP_NAME_SHOW],\n localTitle: '',\n localContent: ''\n };\n },\n computed: {\n // Data that will be passed to the template and popper\n templateData: function templateData() {\n return _objectSpread({\n title: this.localTitle,\n content: this.localContent,\n interactive: !this.noninteractive\n }, pick(this.$props, ['boundary', 'boundaryPadding', 'container', 'customClass', 'delay', 'fallbackPlacement', 'id', 'noFade', 'offset', 'placement', 'target', 'target', 'triggers', 'variant', MODEL_PROP_NAME_ENABLED]));\n },\n // Used to watch for changes to the title and content props\n templateTitleContent: function templateTitleContent() {\n var title = this.title,\n content = this.content;\n return {\n title: title,\n content: content\n };\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_SHOW, function (newValue, oldValue) {\n if (newValue !== oldValue && newValue !== this.localShow && this.$_toolpop) {\n if (newValue) {\n this.$_toolpop.show();\n } else {\n // We use `forceHide()` to override any active triggers\n this.$_toolpop.forceHide();\n }\n }\n }), _defineProperty(_watch, MODEL_PROP_NAME_ENABLED, function (newValue) {\n if (newValue) {\n this.doDisable();\n } else {\n this.doEnable();\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n // TODO: May need to be done in a `$nextTick()`\n this.$emit(MODEL_EVENT_NAME_SHOW, newValue);\n }), _defineProperty(_watch, \"templateData\", function templateData() {\n var _this = this;\n\n this.$nextTick(function () {\n if (_this.$_toolpop) {\n _this.$_toolpop.updateData(_this.templateData);\n }\n });\n }), _defineProperty(_watch, \"templateTitleContent\", function templateTitleContent() {\n this.$nextTick(this.updateContent);\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_toolpop = null;\n },\n updated: function updated() {\n // Update the `propData` object\n // Done in a `$nextTick()` to ensure slot(s) have updated\n this.$nextTick(this.updateContent);\n },\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off(EVENT_NAME_OPEN, this.doOpen);\n this.$off(EVENT_NAME_CLOSE, this.doClose);\n this.$off(EVENT_NAME_DISABLE, this.doDisable);\n this.$off(EVENT_NAME_ENABLE, this.doEnable); // Destroy the tip instance\n\n if (this.$_toolpop) {\n this.$_toolpop.$destroy();\n this.$_toolpop = null;\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n // Instantiate a new BVTooltip instance\n // Done in a `$nextTick()` to ensure DOM has completed rendering\n // so that target can be found\n this.$nextTick(function () {\n // Load the on demand child instance\n var Component = _this2.getComponent(); // Ensure we have initial content\n\n\n _this2.updateContent(); // Pass down the scoped style attribute if available\n\n\n var scopeId = getScopeId(_this2) || getScopeId(_this2.$parent); // Create the instance\n\n var $toolpop = _this2.$_toolpop = new Component({\n parent: _this2,\n // Pass down the scoped style ID\n _scopeId: scopeId || undefined\n }); // Set the initial data\n\n $toolpop.updateData(_this2.templateData); // Set listeners\n\n $toolpop.$on(EVENT_NAME_SHOW, _this2.onShow);\n $toolpop.$on(EVENT_NAME_SHOWN, _this2.onShown);\n $toolpop.$on(EVENT_NAME_HIDE, _this2.onHide);\n $toolpop.$on(EVENT_NAME_HIDDEN, _this2.onHidden);\n $toolpop.$on(EVENT_NAME_DISABLED, _this2.onDisabled);\n $toolpop.$on(EVENT_NAME_ENABLED, _this2.onEnabled); // Initially disabled?\n\n if (_this2[MODEL_PROP_NAME_ENABLED]) {\n // Initially disabled\n _this2.doDisable();\n } // Listen to open signals from others\n\n\n _this2.$on(EVENT_NAME_OPEN, _this2.doOpen); // Listen to close signals from others\n\n\n _this2.$on(EVENT_NAME_CLOSE, _this2.doClose); // Listen to disable signals from others\n\n\n _this2.$on(EVENT_NAME_DISABLE, _this2.doDisable); // Listen to enable signals from others\n\n\n _this2.$on(EVENT_NAME_ENABLE, _this2.doEnable); // Initially show tooltip?\n\n\n if (_this2.localShow) {\n $toolpop.show();\n }\n });\n },\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVTooltip;\n },\n updateContent: function updateContent() {\n // Overridden by BPopover\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function reference by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setTitle(this.normalizeSlot() || this.title);\n },\n // Helper methods for `updateContent()`\n setTitle: function setTitle(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localTitle !== value) {\n this.localTitle = value;\n }\n },\n setContent: function setContent(value) {\n value = isUndefinedOrNull(value) ? '' : value; // We only update the value if it has changed\n\n if (this.localContent !== value) {\n this.localContent = value;\n }\n },\n // --- Template event handlers ---\n onShow: function onShow(bvEvent) {\n // Placeholder\n this.$emit(EVENT_NAME_SHOW, bvEvent);\n\n if (bvEvent) {\n this.localShow = !bvEvent.defaultPrevented;\n }\n },\n onShown: function onShown(bvEvent) {\n // Tip is now showing\n this.localShow = true;\n this.$emit(EVENT_NAME_SHOWN, bvEvent);\n },\n onHide: function onHide(bvEvent) {\n this.$emit(EVENT_NAME_HIDE, bvEvent);\n },\n onHidden: function onHidden(bvEvent) {\n // Tip is no longer showing\n this.$emit(EVENT_NAME_HIDDEN, bvEvent);\n this.localShow = false;\n },\n onDisabled: function onDisabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `disabled` instead of `disable`\n if (bvEvent && bvEvent.type === EVENT_NAME_DISABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, true);\n this.$emit(EVENT_NAME_DISABLED, bvEvent);\n }\n },\n onEnabled: function onEnabled(bvEvent) {\n // Prevent possible endless loop if user mistakenly\n // fires `enabled` instead of `enable`\n if (bvEvent && bvEvent.type === EVENT_NAME_ENABLED) {\n this.$emit(MODEL_EVENT_NAME_ENABLED, false);\n this.$emit(EVENT_NAME_ENABLED, bvEvent);\n }\n },\n // --- Local event listeners ---\n doOpen: function doOpen() {\n !this.localShow && this.$_toolpop && this.$_toolpop.show();\n },\n doClose: function doClose() {\n this.localShow && this.$_toolpop && this.$_toolpop.hide();\n },\n doDisable: function doDisable() {\n this.$_toolpop && this.$_toolpop.disable();\n },\n doEnable: function doEnable() {\n this.$_toolpop && this.$_toolpop.enable();\n }\n },\n render: function render(h) {\n // Always renders a comment node\n // TODO:\n // Future: Possibly render a target slot (single root element)\n // which we can apply the listeners to (pass `this.$el` to BVTooltip)\n return h();\n }\n});","import { Vue } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template'; // @vue/component\n\nexport var BVPopoverTemplate = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_TEMPLATE,\n extends: BVTooltipTemplate,\n computed: {\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n renderTemplate: function renderTemplate(h) {\n var title = this.title,\n content = this.content; // Title and content could be a scoped slot function\n\n var $title = isFunction(title) ? title({}) : title;\n var $content = isFunction(content) ? content({}) : content; // Directive usage only\n\n var titleDomProps = this.html && !isFunction(title) ? {\n innerHTML: title\n } : {};\n var contentDomProps = this.html && !isFunction(content) ? {\n innerHTML: content\n } : {};\n return h('div', {\n staticClass: 'popover b-popover',\n class: this.templateClasses,\n attrs: this.templateAttributes,\n on: this.templateListeners\n }, [h('div', {\n staticClass: 'arrow',\n ref: 'arrow'\n }), isUndefinedOrNull($title) || $title === '' ?\n /* istanbul ignore next */\n h() : h('h3', {\n staticClass: 'popover-header',\n domProps: titleDomProps\n }, [$title]), isUndefinedOrNull($content) || $content === '' ?\n /* istanbul ignore next */\n h() : h('div', {\n staticClass: 'popover-body',\n domProps: contentDomProps\n }, [$content])]);\n }\n }\n});","// Popover \"Class\" (Built as a renderless Vue instance)\n// Inherits from BVTooltip\n//\n// Handles trigger events, etc.\n// Instantiates template on demand\nimport { Vue } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template'; // @vue/component\n\nexport var BVPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER_HELPER,\n extends: BVTooltip,\n computed: {\n // Overwrites BVTooltip\n templateType: function templateType() {\n return 'popover';\n }\n },\n methods: {\n getTemplate: function getTemplate() {\n // Overwrites BVTooltip\n return BVPopoverTemplate;\n }\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_POPOVER } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BTooltip, props as BTooltipProps } from '../tooltip/tooltip';\nimport { BVPopover } from './helpers/bv-popover';\nimport { sortKeys } from '../../utils/object'; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, BTooltipProps), {}, {\n content: makeProp(PROP_TYPE_STRING),\n placement: makeProp(PROP_TYPE_STRING, 'right'),\n triggers: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK)\n})), NAME_POPOVER); // --- Main component ---\n// @vue/component\n\nexport var BPopover = /*#__PURE__*/Vue.extend({\n name: NAME_POPOVER,\n extends: BTooltip,\n inheritAttrs: false,\n props: props,\n methods: {\n getComponent: function getComponent() {\n // Overridden by BPopover\n return BVPopover;\n },\n updateContent: function updateContent() {\n // Tooltip: Default slot is `title`\n // Popover: Default slot is `content`, `title` slot is title\n // We pass a scoped slot function references by default (Vue v2.6x)\n // And pass the title prop as a fallback\n this.setContent(this.normalizeSlot() || this.content);\n this.setTitle(this.normalizeSlot(SLOT_NAME_TITLE) || this.title);\n }\n } // Render function provided by BTooltip\n\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { NAME_POPOVER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_SHOW } from '../../constants/events';\nimport { concat } from '../../utils/array';\nimport { getComponentConfig } from '../../utils/config';\nimport { getScopeId } from '../../utils/get-scope-id';\nimport { identity } from '../../utils/identity';\nimport { isFunction, isNumber, isPlainObject, isString, isUndefined, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { toInteger } from '../../utils/number';\nimport { keys } from '../../utils/object';\nimport { BVPopover } from '../../components/popover/helpers/bv-popover'; // Key which we use to store tooltip object on element\n\nvar BV_POPOVER = '__BV_Popover__'; // Default trigger\n\nvar DefaultTrigger = 'click'; // Valid event triggers\n\nvar validTriggers = {\n focus: true,\n hover: true,\n click: true,\n blur: true,\n manual: true\n}; // Directive modifier test regular expressions. Pre-compile for performance\n\nvar htmlRE = /^html$/i;\nvar noFadeRE = /^nofade$/i;\nvar placementRE = /^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/i;\nvar boundaryRE = /^(window|viewport|scrollParent)$/i;\nvar delayRE = /^d\\d+$/i;\nvar delayShowRE = /^ds\\d+$/i;\nvar delayHideRE = /^dh\\d+$/i;\nvar offsetRE = /^o-?\\d+$/i;\nvar variantRE = /^v-.+$/i;\nvar spacesRE = /\\s+/; // Build a Popover config based on bindings (if any)\n// Arguments and modifiers take precedence over passed value config object\n\nvar parseBindings = function parseBindings(bindings, vnode)\n/* istanbul ignore next: not easy to test */\n{\n // We start out with a basic config\n var config = {\n title: undefined,\n content: undefined,\n trigger: '',\n // Default set below if needed\n placement: 'right',\n fallbackPlacement: 'flip',\n container: false,\n // Default of body\n animation: true,\n offset: 0,\n disabled: false,\n id: null,\n html: false,\n delay: getComponentConfig(NAME_POPOVER, 'delay', 50),\n boundary: String(getComponentConfig(NAME_POPOVER, 'boundary', 'scrollParent')),\n boundaryPadding: toInteger(getComponentConfig(NAME_POPOVER, 'boundaryPadding', 5), 0),\n variant: getComponentConfig(NAME_POPOVER, 'variant'),\n customClass: getComponentConfig(NAME_POPOVER, 'customClass')\n }; // Process `bindings.value`\n\n if (isString(bindings.value) || isNumber(bindings.value)) {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (isFunction(bindings.value)) {\n // Content generator function\n config.content = bindings.value;\n } else if (isPlainObject(bindings.value)) {\n // Value is config object, so merge\n config = _objectSpread(_objectSpread({}, config), bindings.value);\n } // If argument, assume element ID of container element\n\n\n if (bindings.arg) {\n // Element ID specified as arg\n // We must prepend '#' to become a CSS selector\n config.container = \"#\".concat(bindings.arg);\n } // If title is not provided, try title attribute\n\n\n if (isUndefined(config.title)) {\n // Try attribute\n var data = vnode.data || {};\n config.title = data.attrs && !isUndefinedOrNull(data.attrs.title) ? data.attrs.title : undefined;\n } // Normalize delay\n\n\n if (!isPlainObject(config.delay)) {\n config.delay = {\n show: toInteger(config.delay, 0),\n hide: toInteger(config.delay, 0)\n };\n } // Process modifiers\n\n\n keys(bindings.modifiers).forEach(function (mod) {\n if (htmlRE.test(mod)) {\n // Title/content allows HTML\n config.html = true;\n } else if (noFadeRE.test(mod)) {\n // No animation\n config.animation = false;\n } else if (placementRE.test(mod)) {\n // Placement of popover\n config.placement = mod;\n } else if (boundaryRE.test(mod)) {\n // Boundary of popover\n mod = mod === 'scrollparent' ? 'scrollParent' : mod;\n config.boundary = mod;\n } else if (delayRE.test(mod)) {\n // Delay value\n var delay = toInteger(mod.slice(1), 0);\n config.delay.show = delay;\n config.delay.hide = delay;\n } else if (delayShowRE.test(mod)) {\n // Delay show value\n config.delay.show = toInteger(mod.slice(2), 0);\n } else if (delayHideRE.test(mod)) {\n // Delay hide value\n config.delay.hide = toInteger(mod.slice(2), 0);\n } else if (offsetRE.test(mod)) {\n // Offset value, negative allowed\n config.offset = toInteger(mod.slice(1), 0);\n } else if (variantRE.test(mod)) {\n // Variant\n config.variant = mod.slice(2) || null;\n }\n }); // Special handling of event trigger modifiers trigger is\n // a space separated list\n\n var selectedTriggers = {}; // Parse current config object trigger\n\n concat(config.trigger || '').filter(identity).join(' ').trim().toLowerCase().split(spacesRE).forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n }); // Parse modifiers for triggers\n\n keys(bindings.modifiers).forEach(function (mod) {\n mod = mod.toLowerCase();\n\n if (validTriggers[mod]) {\n // If modifier is a valid trigger\n selectedTriggers[mod] = true;\n }\n }); // Sanitize triggers\n\n config.trigger = keys(selectedTriggers).join(' ');\n\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n\n if (!config.trigger) {\n // Use default trigger\n config.trigger = DefaultTrigger;\n }\n\n return config;\n}; // Add or update Popover on our element\n\n\nvar applyPopover = function applyPopover(el, bindings, vnode) {\n if (!IS_BROWSER) {\n /* istanbul ignore next */\n return;\n }\n\n var config = parseBindings(bindings, vnode);\n\n if (!el[BV_POPOVER]) {\n var $parent = vnode.context;\n el[BV_POPOVER] = new BVPopover({\n parent: $parent,\n // Add the parent's scoped style attribute data\n _scopeId: getScopeId($parent, undefined)\n });\n el[BV_POPOVER].__bv_prev_data__ = {};\n el[BV_POPOVER].$on(EVENT_NAME_SHOW, function ()\n /* istanbul ignore next: for now */\n {\n // Before showing the popover, we update the title\n // and content if they are functions\n var data = {};\n\n if (isFunction(config.title)) {\n data.title = config.title(el);\n }\n\n if (isFunction(config.content)) {\n data.content = config.content(el);\n }\n\n if (keys(data).length > 0) {\n el[BV_POPOVER].updateData(data);\n }\n });\n }\n\n var data = {\n title: config.title,\n content: config.content,\n triggers: config.trigger,\n placement: config.placement,\n fallbackPlacement: config.fallbackPlacement,\n variant: config.variant,\n customClass: config.customClass,\n container: config.container,\n boundary: config.boundary,\n delay: config.delay,\n offset: config.offset,\n noFade: !config.animation,\n id: config.id,\n disabled: config.disabled,\n html: config.html\n };\n var oldData = el[BV_POPOVER].__bv_prev_data__;\n el[BV_POPOVER].__bv_prev_data__ = data;\n\n if (!looseEqual(data, oldData)) {\n // We only update the instance if data has changed\n var newData = {\n target: el\n };\n keys(data).forEach(function (prop) {\n // We only pass data properties that have changed\n if (data[prop] !== oldData[prop]) {\n // If title/content is a function, we execute it here\n newData[prop] = (prop === 'title' || prop === 'content') && isFunction(data[prop]) ?\n /* istanbul ignore next */\n data[prop](el) : data[prop];\n }\n });\n el[BV_POPOVER].updateData(newData);\n }\n}; // Remove Popover from our element\n\n\nvar removePopover = function removePopover(el) {\n if (el[BV_POPOVER]) {\n el[BV_POPOVER].$destroy();\n el[BV_POPOVER] = null;\n }\n\n delete el[BV_POPOVER];\n}; // Export our directive\n\n\nexport var VBPopover = {\n bind: function bind(el, bindings, vnode) {\n applyPopover(el, bindings, vnode);\n },\n // We use `componentUpdated` here instead of `update`, as the former\n // waits until the containing component and children have finished updating\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n // Performed in a `$nextTick()` to prevent endless render/update loops\n vnode.context.$nextTick(function () {\n applyPopover(el, bindings, vnode);\n });\n },\n unbind: function unbind(el) {\n removePopover(el);\n }\n};","import { VBPopover } from './popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar VBPopoverPlugin = /*#__PURE__*/pluginFactory({\n directives: {\n VBPopover: VBPopover\n }\n});\nexport { VBPopoverPlugin, VBPopover };","import { BPopover } from './popover';\nimport { VBPopoverPlugin } from '../../directives/popover';\nimport { pluginFactory } from '../../utils/plugins';\nvar PopoverPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BPopover: BPopover\n },\n plugins: {\n VBPopoverPlugin: VBPopoverPlugin\n }\n});\nexport { PopoverPlugin, BPopover };","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; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Helper methods ---\n\nvar computeJustifyContent = function computeJustifyContent(value) {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return \"justify-content-\".concat(value);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul'),\n vertical: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_NAV); // --- Main component ---\n// @vue/component\n\nexport var BNav = /*#__PURE__*/Vue.extend({\n name: NAME_NAV,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n align = props.align,\n cardHeader = props.cardHeader;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: (_class = {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': !vertical && cardHeader && tabs,\n 'card-header-pills': !vertical && cardHeader && pills && !tabs,\n 'flex-column': vertical,\n 'nav-fill': !vertical && props.fill,\n 'nav-justified': !vertical && props.justified\n }, _defineProperty(_class, computeJustifyContent(align), !vertical && align), _defineProperty(_class, \"small\", props.small), _class)\n }), children);\n }\n});","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CHANGED, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_PREV } from '../../constants/events';\nimport { CODE_DOWN, CODE_END, CODE_HOME, CODE_LEFT, CODE_RIGHT, CODE_SPACE, CODE_UP } from '../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_EMPTY, SLOT_NAME_TABS_END, SLOT_NAME_TABS_START, SLOT_NAME_TITLE } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { BNav, props as BNavProps } from '../nav/nav'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Filter function to filter out disabled tabs\n\n\nvar notDisabled = function notDisabled(tab) {\n return !tab.disabled;\n}; // --- Helper components ---\n// @vue/component\n\n\nvar BVTabButton = /*#__PURE__*/Vue.extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n bvTabs: {\n default:\n /* istanbul ignore next */\n function _default() {\n return {};\n }\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n methods: {\n focus: function focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvt: function handleEvt(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n\n var type = event.type,\n keyCode = event.keyCode,\n shiftKey = event.shiftKey;\n\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render: function render(h) {\n var id = this.id,\n tabIndex = this.tabIndex,\n setSize = this.setSize,\n posInSet = this.posInSet,\n controls = this.controls,\n handleEvt = this.handleEvt;\n var _this$tab = this.tab,\n title = _this$tab.title,\n localActive = _this$tab.localActive,\n disabled = _this$tab.disabled,\n titleItemClass = _this$tab.titleItemClass,\n titleLinkClass = _this$tab.titleLinkClass,\n titleLinkAttributes = _this$tab.titleLinkAttributes;\n var $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled: disabled\n }, titleLinkClass, // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled: disabled\n },\n attrs: _objectSpread(_objectSpread({}, titleLinkAttributes), {}, {\n id: id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n }),\n on: {\n click: handleEvt,\n keydown: handleEvt\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n}); // --- Props ---\n\nvar navProps = omit(BNavProps, ['tabs', 'isNavBar', 'cardHeader']);\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), navProps), {}, {\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n card: makeProp(PROP_TYPE_BOOLEAN, false),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n})), NAME_TABS); // --- Main component ---\n// @vue/component\n\nexport var BTabs = /*#__PURE__*/Vue.extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide: function provide() {\n return {\n bvTabs: this\n };\n },\n props: props,\n data: function data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n localNavClass: function localNavClass() {\n var classes = [];\n\n if (this.card && this.vertical) {\n classes.push('card-header', 'h-100', 'border-bottom-0', 'rounded-0');\n }\n\n return [].concat(classes, [this.navClass]);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n var $tab = this.tabs[newValue];\n\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n }), _defineProperty(_watch, \"currentTab\", function currentTab(newValue) {\n var index = -1; // Ensure only one tab is active at most\n\n this.tabs.forEach(function ($tab, i) {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n }); // Update the v-model\n\n this.$emit(MODEL_EVENT_NAME, index);\n }), _defineProperty(_watch, \"tabs\", function tabs(newValue, oldValue) {\n var _this = this;\n\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }), oldValue.map(function ($tab) {\n return $tab[COMPONENT_UID_KEY];\n }))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(function () {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n _this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n }), _defineProperty(_watch, \"registeredTabs\", function registeredTabs() {\n this.updateTabs();\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted: function mounted() {\n this.setObserver(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.setObserver(false); // Ensure no references to child instances exist\n\n this.tabs = [];\n },\n methods: {\n registerTab: function registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab: function unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter(function ($t) {\n return $t !== $tab;\n });\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver: function setObserver() {\n var _this2 = this;\n\n var on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n var handler = function handler() {\n _this2.$nextTick(function () {\n requestAF(function () {\n _this2.updateTabs();\n });\n });\n }; // Watch for changes to `` sub components\n\n\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs: function getTabs() {\n var $tabs = this.registeredTabs.filter(function ($tab) {\n return $tab.$children.filter(function ($t) {\n return $t._isTab;\n }).length === 0;\n }); // DOM Order of Tabs\n\n var order = [];\n /* istanbul ignore next: too difficult to test */\n\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n var selector = $tabs.map(function ($tab) {\n return \"#\".concat($tab.safeId());\n }).join(', ');\n order = selectAll(selector, this.$el).map(function ($el) {\n return $el.id;\n }).filter(identity);\n } // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n\n\n return stableSort($tabs, function (a, b) {\n return order.indexOf(a.safeId()) - order.indexOf(b.safeId());\n });\n },\n updateTabs: function updateTabs() {\n var $tabs = this.getTabs(); // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n\n var tabIndex = $tabs.indexOf($tabs.slice().reverse().find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n })); // Else try setting to `currentTab`\n\n if (tabIndex < 0) {\n var currentTab = this.currentTab;\n\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n } // Else find first non-disabled tab in current tabs\n\n\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n } // Ensure only one tab is active at a time\n\n\n $tabs.forEach(function ($tab, index) {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab: function getButtonForTab($tab) {\n return (this.$refs.buttons || []).find(function ($btn) {\n return $btn.tab === $tab;\n });\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton: function updateButton($tab) {\n var $button = this.getButtonForTab($tab);\n\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab: function activateTab($tab) {\n var currentTab = this.currentTab,\n $tabs = this.tabs;\n var result = false;\n\n if ($tab) {\n var index = $tabs.indexOf($tab);\n\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n var tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n } // Couldn't set tab, so ensure v-model is up to date\n\n /* istanbul ignore next: should rarely happen */\n\n\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab: function deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter(function ($t) {\n return $t !== $tab;\n }).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n\n\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton: function focusButton($tab) {\n var _this3 = this;\n\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(function () {\n attemptFocus(_this3.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick: function emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab: function clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab: function firstTab(focus) {\n var $tab = this.tabs.find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab: function previousTab(focus) {\n var currentIndex = mathMax(this.currentTab, 0);\n var $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab: function nextTab(focus) {\n var currentIndex = mathMax(this.currentTab, -1);\n var $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab: function lastTab(focus) {\n var $tab = this.tabs.slice().reverse().find(notDisabled);\n\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render: function render(h) {\n var _this4 = this;\n\n var align = this.align,\n card = this.card,\n end = this.end,\n fill = this.fill,\n firstTab = this.firstTab,\n justified = this.justified,\n lastTab = this.lastTab,\n nextTab = this.nextTab,\n noKeyNav = this.noKeyNav,\n noNavStyle = this.noNavStyle,\n pills = this.pills,\n previousTab = this.previousTab,\n small = this.small,\n $tabs = this.tabs,\n vertical = this.vertical; // Currently active tab\n\n var $activeTab = $tabs.find(function ($tab) {\n return $tab.localActive && !$tab.disabled;\n }); // Tab button to allow focusing when no active tab found (keynav only)\n\n var $fallbackTab = $tabs.find(function ($tab) {\n return !$tab.disabled;\n }); // For each `` found create the tab buttons\n\n var $buttons = $tabs.map(function ($tab, index) {\n var _on;\n\n var safeId = $tab.safeId; // Ensure at least one tab button is focusable when keynav enabled (if possible)\n\n var tabIndex = null;\n\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(\"_BV_tab_button_\") : null),\n noKeyNav: noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex: tabIndex\n },\n on: (_on = {}, _defineProperty(_on, EVENT_NAME_CLICK, function (event) {\n _this4.clickTab($tab, event);\n }), _defineProperty(_on, EVENT_NAME_FIRST, firstTab), _defineProperty(_on, EVENT_NAME_PREV, previousTab), _defineProperty(_on, EVENT_NAME_NEXT, nextTab), _defineProperty(_on, EVENT_NAME_LAST, lastTab), _on),\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n refInFor: true\n });\n });\n var $nav = h(BNav, {\n class: this.localNavClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill: fill,\n justified: justified,\n align: align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n vertical: vertical,\n small: small,\n cardHeader: card && !vertical\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: [{\n 'card-header': card && !vertical && !end,\n 'card-footer': card && !vertical && end,\n 'col-auto': vertical\n }, this.navWrapperClass],\n key: 'bv-tabs-nav'\n }, [$nav]);\n var $children = this.normalizeSlot() || [];\n var $empty = h();\n\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active', {\n 'card-body': card\n }],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n\n var $content = h('div', {\n staticClass: 'tab-content',\n class: [{\n col: vertical\n }, this.contentClass],\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]); // Render final output\n\n return h(this.tag, {\n staticClass: 'tabs',\n class: {\n row: vertical,\n 'no-gutters': vertical && card\n },\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});","var _objectSpread2, _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar MODEL_PROP_NAME_ACTIVE = 'active';\nvar MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE; // --- Props ---\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, idProps), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, MODEL_PROP_NAME_ACTIVE, makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"buttonId\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"disabled\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"lazy\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"noBody\", makeProp(PROP_TYPE_BOOLEAN, false)), _defineProperty(_objectSpread2, \"tag\", makeProp(PROP_TYPE_STRING, 'div')), _defineProperty(_objectSpread2, \"title\", makeProp(PROP_TYPE_STRING)), _defineProperty(_objectSpread2, \"titleItemClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _defineProperty(_objectSpread2, \"titleLinkAttributes\", makeProp(PROP_TYPE_OBJECT)), _defineProperty(_objectSpread2, \"titleLinkClass\", makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)), _objectSpread2))), NAME_TAB); // --- Main component ---\n// @vue/component\n\nexport var BTab = /*#__PURE__*/Vue.extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n bvTabs: {\n default: function _default() {\n return {};\n }\n }\n },\n props: props,\n data: function data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n // For parent sniffing of child\n _isTab: function _isTab() {\n return true;\n },\n tabClasses: function tabClasses() {\n var active = this.localActive,\n disabled = this.disabled;\n return [{\n active: active,\n disabled: disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n }, // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade: function computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy: function computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME_ACTIVE, function (newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n }), _defineProperty(_watch, \"disabled\", function disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n var firstTab = this.bvTabs.firstTab;\n\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n }), _defineProperty(_watch, \"localActive\", function localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }), _watch),\n mounted: function mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated: function updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n var updateButton = this.bvTabs.updateButton;\n\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab: function registerTab() {\n // Inform `` of our presence\n var registerTab = this.bvTabs.registerTab;\n\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab: function unregisterTab() {\n // Inform `` of our departure\n var unregisterTab = this.bvTabs.unregisterTab;\n\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate: function activate() {\n // Not inside a `` component or tab is disabled\n var activateTab = this.bvTabs.activateTab;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate: function deactivate() {\n // Not inside a `` component or not active to begin with\n var deactivateTab = this.bvTabs.deactivateTab;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render: function render(h) {\n var localActive = this.localActive;\n var $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n }, // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nexport var stableSort = function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n};","import { BTabs } from './tabs';\nimport { BTab } from './tab';\nimport { pluginFactory } from '../../utils/plugins';\nvar TabsPlugin = /*#__PURE__*/pluginFactory({\n components: {\n BTabs: BTabs,\n BTab: BTab\n }\n});\nexport { TabsPlugin, BTabs, BTab };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\n// Generic Bootstrap v4 fade (no-fade) transition component\n//\n// Assumes that `show` class is not required when\n// the transition has finished the enter transition\n// (show and fade classes are only applied during transition)\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_TRANSITION } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';\nimport { isPlainObject } from '../../utils/inspect';\nimport { makeProp } from '../../utils/props'; // --- Constants ---\n\nvar NO_FADE_PROPS = {\n name: '',\n enterClass: '',\n enterActiveClass: '',\n enterToClass: 'show',\n leaveClass: 'show',\n leaveActiveClass: '',\n leaveToClass: ''\n};\n\nvar FADE_PROPS = _objectSpread(_objectSpread({}, NO_FADE_PROPS), {}, {\n enterActiveClass: 'fade',\n leaveActiveClass: 'fade'\n}); // --- Props ---\n\n\nexport var props = {\n // Has no effect if `trans-props` provided\n appear: makeProp(PROP_TYPE_BOOLEAN, false),\n // Can be overridden by user supplied `trans-props`\n mode: makeProp(PROP_TYPE_STRING),\n // Only applicable to the built in transition\n // Has no effect if `trans-props` provided\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // For user supplied transitions (if needed)\n transProps: makeProp(PROP_TYPE_OBJECT)\n}; // --- Main component ---\n// @vue/component\n\nexport var BVTransition = /*#__PURE__*/Vue.extend({\n name: NAME_TRANSITION,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var children = _ref.children,\n data = _ref.data,\n props = _ref.props;\n var transProps = props.transProps;\n\n if (!isPlainObject(transProps)) {\n transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;\n\n if (props.appear) {\n // Default the appear classes to equal the enter classes\n transProps = _objectSpread(_objectSpread({}, transProps), {}, {\n appear: true,\n appearClass: transProps.enterClass,\n appearActiveClass: transProps.enterActiveClass,\n appearToClass: transProps.enterToClass\n });\n }\n }\n\n transProps = _objectSpread(_objectSpread({\n mode: props.mode\n }, transProps), {}, {\n // We always need `css` true\n css: true\n });\n return h('transition', // Any transition event listeners will get merged here\n mergeData(data, {\n props: transProps\n }), children);\n }\n});","// Component names\nexport var NAME_ALERT = 'BAlert';\nexport var NAME_ASPECT = 'BAspect';\nexport var NAME_AVATAR = 'BAvatar';\nexport var NAME_AVATAR_GROUP = 'BAvatarGroup';\nexport var NAME_BADGE = 'BBadge';\nexport var NAME_BREADCRUMB = 'BBreadcrumb';\nexport var NAME_BREADCRUMB_ITEM = 'BBreadcrumbItem';\nexport var NAME_BREADCRUMB_LINK = 'BBreadcrumbLink';\nexport var NAME_BUTTON = 'BButton';\nexport var NAME_BUTTON_CLOSE = 'BButtonClose';\nexport var NAME_BUTTON_GROUP = 'BButtonGroup';\nexport var NAME_BUTTON_TOOLBAR = 'BButtonToolbar';\nexport var NAME_CALENDAR = 'BCalendar';\nexport var NAME_CARD = 'BCard';\nexport var NAME_CARD_BODY = 'BCardBody';\nexport var NAME_CARD_FOOTER = 'BCardFooter';\nexport var NAME_CARD_GROUP = 'BCardGroup';\nexport var NAME_CARD_HEADER = 'BCardHeader';\nexport var NAME_CARD_IMG = 'BCardImg';\nexport var NAME_CARD_IMG_LAZY = 'BCardImgLazy';\nexport var NAME_CARD_SUB_TITLE = 'BCardSubTitle';\nexport var NAME_CARD_TEXT = 'BCardText';\nexport var NAME_CARD_TITLE = 'BCardTitle';\nexport var NAME_CAROUSEL = 'BCarousel';\nexport var NAME_CAROUSEL_SLIDE = 'BCarouselSlide';\nexport var NAME_COL = 'BCol';\nexport var NAME_COLLAPSE = 'BCollapse';\nexport var NAME_CONTAINER = 'BContainer';\nexport var NAME_DROPDOWN = 'BDropdown';\nexport var NAME_DROPDOWN_DIVIDER = 'BDropdownDivider';\nexport var NAME_DROPDOWN_FORM = 'BDropdownForm';\nexport var NAME_DROPDOWN_GROUP = 'BDropdownGroup';\nexport var NAME_DROPDOWN_HEADER = 'BDropdownHeader';\nexport var NAME_DROPDOWN_ITEM = 'BDropdownItem';\nexport var NAME_DROPDOWN_ITEM_BUTTON = 'BDropdownItemButton';\nexport var NAME_DROPDOWN_TEXT = 'BDropdownText';\nexport var NAME_EMBED = 'BEmbed';\nexport var NAME_FORM = 'BForm';\nexport var NAME_FORM_CHECKBOX = 'BFormCheckbox';\nexport var NAME_FORM_CHECKBOX_GROUP = 'BFormCheckboxGroup';\nexport var NAME_FORM_DATALIST = 'BFormDatalist';\nexport var NAME_FORM_DATEPICKER = 'BFormDatepicker';\nexport var NAME_FORM_FILE = 'BFormFile';\nexport var NAME_FORM_GROUP = 'BFormGroup';\nexport var NAME_FORM_INPUT = 'BFormInput';\nexport var NAME_FORM_INVALID_FEEDBACK = 'BFormInvalidFeedback';\nexport var NAME_FORM_RADIO = 'BFormRadio';\nexport var NAME_FORM_RADIO_GROUP = 'BFormRadioGroup';\nexport var NAME_FORM_RATING = 'BFormRating';\nexport var NAME_FORM_ROW = 'BFormRow';\nexport var NAME_FORM_SELECT = 'BFormSelect';\nexport var NAME_FORM_SELECT_OPTION = 'BFormSelectOption';\nexport var NAME_FORM_SELECT_OPTION_GROUP = 'BFormSelectOptionGroup';\nexport var NAME_FORM_SPINBUTTON = 'BFormSpinbutton';\nexport var NAME_FORM_TAG = 'BFormTag';\nexport var NAME_FORM_TAGS = 'BFormTags';\nexport var NAME_FORM_TEXT = 'BFormText';\nexport var NAME_FORM_TEXTAREA = 'BFormTextarea';\nexport var NAME_FORM_TIMEPICKER = 'BFormTimepicker';\nexport var NAME_FORM_VALID_FEEDBACK = 'BFormValidFeedback';\nexport var NAME_ICON = 'BIcon';\nexport var NAME_ICONSTACK = 'BIconstack';\nexport var NAME_ICON_BASE = 'BIconBase';\nexport var NAME_IMG = 'BImg';\nexport var NAME_IMG_LAZY = 'BImgLazy';\nexport var NAME_INPUT_GROUP = 'BInputGroup';\nexport var NAME_INPUT_GROUP_ADDON = 'BInputGroupAddon';\nexport var NAME_INPUT_GROUP_APPEND = 'BInputGroupAppend';\nexport var NAME_INPUT_GROUP_PREPEND = 'BInputGroupPrepend';\nexport var NAME_INPUT_GROUP_TEXT = 'BInputGroupText';\nexport var NAME_JUMBOTRON = 'BJumbotron';\nexport var NAME_LINK = 'BLink';\nexport var NAME_LIST_GROUP = 'BListGroup';\nexport var NAME_LIST_GROUP_ITEM = 'BListGroupItem';\nexport var NAME_MEDIA = 'BMedia';\nexport var NAME_MEDIA_ASIDE = 'BMediaAside';\nexport var NAME_MEDIA_BODY = 'BMediaBody';\nexport var NAME_MODAL = 'BModal';\nexport var NAME_MSG_BOX = 'BMsgBox';\nexport var NAME_NAV = 'BNav';\nexport var NAME_NAVBAR = 'BNavbar';\nexport var NAME_NAVBAR_BRAND = 'BNavbarBrand';\nexport var NAME_NAVBAR_NAV = 'BNavbarNav';\nexport var NAME_NAVBAR_TOGGLE = 'BNavbarToggle';\nexport var NAME_NAV_FORM = 'BNavForm';\nexport var NAME_NAV_ITEM = 'BNavItem';\nexport var NAME_NAV_ITEM_DROPDOWN = 'BNavItemDropdown';\nexport var NAME_NAV_TEXT = 'BNavText';\nexport var NAME_OVERLAY = 'BOverlay';\nexport var NAME_PAGINATION = 'BPagination';\nexport var NAME_PAGINATION_NAV = 'BPaginationNav';\nexport var NAME_POPOVER = 'BPopover';\nexport var NAME_PROGRESS = 'BProgress';\nexport var NAME_PROGRESS_BAR = 'BProgressBar';\nexport var NAME_ROW = 'BRow';\nexport var NAME_SIDEBAR = 'BSidebar';\nexport var NAME_SKELETON = 'BSkeleton';\nexport var NAME_SKELETON_ICON = 'BSkeletonIcon';\nexport var NAME_SKELETON_IMG = 'BSkeletonImg';\nexport var NAME_SKELETON_TABLE = 'BSkeletonTable';\nexport var NAME_SKELETON_WRAPPER = 'BSkeletonWrapper';\nexport var NAME_SPINNER = 'BSpinner';\nexport var NAME_TAB = 'BTab';\nexport var NAME_TABLE = 'BTable';\nexport var NAME_TABLE_CELL = 'BTableCell';\nexport var NAME_TABLE_LITE = 'BTableLite';\nexport var NAME_TABLE_SIMPLE = 'BTableSimple';\nexport var NAME_TABS = 'BTabs';\nexport var NAME_TBODY = 'BTbody';\nexport var NAME_TFOOT = 'BTfoot';\nexport var NAME_TH = 'BTh';\nexport var NAME_THEAD = 'BThead';\nexport var NAME_TIME = 'BTime';\nexport var NAME_TOAST = 'BToast';\nexport var NAME_TOASTER = 'BToaster';\nexport var NAME_TOOLTIP = 'BTooltip';\nexport var NAME_TR = 'BTr'; // Helper component names\n\nexport var NAME_COLLAPSE_HELPER = 'BVCollapse';\nexport var NAME_FORM_BUTTON_LABEL_CONTROL = 'BVFormBtnLabelControl';\nexport var NAME_FORM_RATING_STAR = 'BVFormRatingStar';\nexport var NAME_POPOVER_HELPER = 'BVPopover';\nexport var NAME_POPOVER_TEMPLATE = 'BVPopoverTemplate';\nexport var NAME_POPPER = 'BVPopper';\nexport var NAME_TAB_BUTTON_HELPER = 'BVTabButton';\nexport var NAME_TOAST_POP = 'BVToastPop';\nexport var NAME_TOOLTIP_HELPER = 'BVTooltip';\nexport var NAME_TOOLTIP_TEMPLATE = 'BVTooltipTemplate';\nexport var NAME_TRANSITION = 'BVTransition';\nexport var NAME_TRANSPORTER = 'BVTransporter';\nexport var NAME_TRANSPORTER_TARGET = 'BVTransporterTarget';","export var NAME = 'BvConfig';\nexport var PROP_NAME = '$bvConfig';\nexport var DEFAULT_BREAKPOINT = ['xs', 'sm', 'md', 'lg', 'xl'];","export var HAS_WINDOW_SUPPORT = typeof window !== 'undefined';\nexport var HAS_DOCUMENT_SUPPORT = typeof document !== 'undefined';\nexport var HAS_NAVIGATOR_SUPPORT = typeof navigator !== 'undefined';\nexport var HAS_PROMISE_SUPPORT = typeof Promise !== 'undefined';\n/* istanbul ignore next: JSDOM always returns false */\n\nexport var HAS_MUTATION_OBSERVER_SUPPORT = typeof MutationObserver !== 'undefined' || typeof WebKitMutationObserver !== 'undefined' || typeof MozMutationObserver !== 'undefined';\nexport var IS_BROWSER = HAS_WINDOW_SUPPORT && HAS_DOCUMENT_SUPPORT && HAS_NAVIGATOR_SUPPORT;\nexport var WINDOW = HAS_WINDOW_SUPPORT ? window : {};\nexport var DOCUMENT = HAS_DOCUMENT_SUPPORT ? document : {};\nexport var NAVIGATOR = HAS_NAVIGATOR_SUPPORT ? navigator : {};\nexport var USER_AGENT = (NAVIGATOR.userAgent || '').toLowerCase();\nexport var IS_JSDOM = USER_AGENT.indexOf('jsdom') > 0;\nexport var IS_IE = /msie|trident/.test(USER_AGENT); // Determine if the browser supports the option passive for events\n\nexport var HAS_PASSIVE_EVENT_SUPPORT = function () {\n var passiveEventSupported = false;\n\n if (IS_BROWSER) {\n try {\n var options = {\n // This function will be called when the browser\n // attempts to access the passive property\n get passive() {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = true;\n }\n\n };\n WINDOW.addEventListener('test', options, options);\n WINDOW.removeEventListener('test', options, options);\n } catch (_unused) {\n /* istanbul ignore next: will never be called in JSDOM */\n passiveEventSupported = false;\n }\n }\n\n return passiveEventSupported;\n}();\nexport var HAS_TOUCH_SUPPORT = IS_BROWSER && ('ontouchstart' in DOCUMENT.documentElement || NAVIGATOR.maxTouchPoints > 0);\nexport var HAS_POINTER_EVENT_SUPPORT = IS_BROWSER && Boolean(WINDOW.PointerEvent || WINDOW.MSPointerEvent);\n/* istanbul ignore next: JSDOM only checks for 'IntersectionObserver' */\n\nexport var HAS_INTERACTION_OBSERVER_SUPPORT = IS_BROWSER && 'IntersectionObserver' in WINDOW && 'IntersectionObserverEntry' in WINDOW && // Edge 15 and UC Browser lack support for `isIntersecting`\n// but we an use `intersectionRatio > 0` instead\n// 'isIntersecting' in window.IntersectionObserverEntry.prototype &&\n'intersectionRatio' in WINDOW.IntersectionObserverEntry.prototype;","export var EVENT_NAME_ACTIVATE_TAB = 'activate-tab';\nexport var EVENT_NAME_BLUR = 'blur';\nexport var EVENT_NAME_CANCEL = 'cancel';\nexport var EVENT_NAME_CHANGE = 'change';\nexport var EVENT_NAME_CHANGED = 'changed';\nexport var EVENT_NAME_CLICK = 'click';\nexport var EVENT_NAME_CLOSE = 'close';\nexport var EVENT_NAME_CONTEXT = 'context';\nexport var EVENT_NAME_CONTEXT_CHANGED = 'context-changed';\nexport var EVENT_NAME_DESTROYED = 'destroyed';\nexport var EVENT_NAME_DISABLE = 'disable';\nexport var EVENT_NAME_DISABLED = 'disabled';\nexport var EVENT_NAME_DISMISSED = 'dismissed';\nexport var EVENT_NAME_DISMISS_COUNT_DOWN = 'dismiss-count-down';\nexport var EVENT_NAME_ENABLE = 'enable';\nexport var EVENT_NAME_ENABLED = 'enabled';\nexport var EVENT_NAME_FILTERED = 'filtered';\nexport var EVENT_NAME_FIRST = 'first';\nexport var EVENT_NAME_FOCUSIN = 'focusin';\nexport var EVENT_NAME_FOCUSOUT = 'focusout';\nexport var EVENT_NAME_HEAD_CLICKED = 'head-clicked';\nexport var EVENT_NAME_HIDDEN = 'hidden';\nexport var EVENT_NAME_HIDE = 'hide';\nexport var EVENT_NAME_IMG_ERROR = 'img-error';\nexport var EVENT_NAME_INPUT = 'input';\nexport var EVENT_NAME_LAST = 'last';\nexport var EVENT_NAME_MOUSEENTER = 'mouseenter';\nexport var EVENT_NAME_MOUSELEAVE = 'mouseleave';\nexport var EVENT_NAME_NEXT = 'next';\nexport var EVENT_NAME_OK = 'ok';\nexport var EVENT_NAME_OPEN = 'open';\nexport var EVENT_NAME_PAGE_CLICK = 'page-click';\nexport var EVENT_NAME_PAUSED = 'paused';\nexport var EVENT_NAME_PREV = 'prev';\nexport var EVENT_NAME_REFRESH = 'refresh';\nexport var EVENT_NAME_REFRESHED = 'refreshed';\nexport var EVENT_NAME_REMOVE = 'remove';\nexport var EVENT_NAME_ROW_CLICKED = 'row-clicked';\nexport var EVENT_NAME_ROW_CONTEXTMENU = 'row-contextmenu';\nexport var EVENT_NAME_ROW_DBLCLICKED = 'row-dblclicked';\nexport var EVENT_NAME_ROW_HOVERED = 'row-hovered';\nexport var EVENT_NAME_ROW_MIDDLE_CLICKED = 'row-middle-clicked';\nexport var EVENT_NAME_ROW_SELECTED = 'row-selected';\nexport var EVENT_NAME_ROW_UNHOVERED = 'row-unhovered';\nexport var EVENT_NAME_SELECTED = 'selected';\nexport var EVENT_NAME_SHOW = 'show';\nexport var EVENT_NAME_SHOWN = 'shown';\nexport var EVENT_NAME_SLIDING_END = 'sliding-end';\nexport var EVENT_NAME_SLIDING_START = 'sliding-start';\nexport var EVENT_NAME_SORT_CHANGED = 'sort-changed';\nexport var EVENT_NAME_TAG_STATE = 'tag-state';\nexport var EVENT_NAME_TOGGLE = 'toggle';\nexport var EVENT_NAME_UNPAUSED = 'unpaused';\nexport var EVENT_NAME_UPDATE = 'update';\nexport var HOOK_EVENT_NAME_BEFORE_DESTROY = 'hook:beforeDestroy';\nexport var HOOK_EVENT_NAME_DESTROYED = 'hook:destroyed';\nexport var MODEL_EVENT_NAME_PREFIX = 'update:';\nexport var ROOT_EVENT_NAME_PREFIX = 'bv';\nexport var ROOT_EVENT_NAME_SEPARATOR = '::';\nexport var EVENT_OPTIONS_PASSIVE = {\n passive: true\n};\nexport var EVENT_OPTIONS_NO_CAPTURE = {\n passive: true,\n capture: false\n};","export var CODE_BACKSPACE = 8;\nexport var CODE_BREAK = 19;\nexport var CODE_DELETE = 46;\nexport var CODE_DOWN = 40;\nexport var CODE_END = 35;\nexport var CODE_ENTER = 13;\nexport var CODE_ESC = 27;\nexport var CODE_HOME = 36;\nexport var CODE_LEFT = 37;\nexport var CODE_PAGEDOWN = 34;\nexport var CODE_PAGEUP = 33;\nexport var CODE_RIGHT = 39;\nexport var CODE_SPACE = 32;\nexport var CODE_UP = 38;","// General types\nexport var PROP_TYPE_ANY = undefined;\nexport var PROP_TYPE_ARRAY = Array;\nexport var PROP_TYPE_BOOLEAN = Boolean;\nexport var PROP_TYPE_DATE = Date;\nexport var PROP_TYPE_FUNCTION = Function;\nexport var PROP_TYPE_NUMBER = Number;\nexport var PROP_TYPE_OBJECT = Object;\nexport var PROP_TYPE_REG_EXP = RegExp;\nexport var PROP_TYPE_STRING = String; // Multiple types\n\nexport var PROP_TYPE_ARRAY_FUNCTION = [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_ARRAY_OBJECT = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT];\nexport var PROP_TYPE_ARRAY_OBJECT_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_ARRAY_STRING = [PROP_TYPE_ARRAY, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_NUMBER = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER];\nexport var PROP_TYPE_BOOLEAN_NUMBER_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_BOOLEAN_STRING = [PROP_TYPE_BOOLEAN, PROP_TYPE_STRING];\nexport var PROP_TYPE_DATE_STRING = [PROP_TYPE_DATE, PROP_TYPE_STRING];\nexport var PROP_TYPE_FUNCTION_STRING = [PROP_TYPE_FUNCTION, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_STRING];\nexport var PROP_TYPE_NUMBER_OBJECT_STRING = [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING];\nexport var PROP_TYPE_OBJECT_FUNCTION = [PROP_TYPE_OBJECT, PROP_TYPE_FUNCTION];\nexport var PROP_TYPE_OBJECT_STRING = [PROP_TYPE_OBJECT, PROP_TYPE_STRING];","// --- General ---\nexport var RX_ARRAY_NOTATION = /\\[(\\d+)]/g;\nexport var RX_BV_PREFIX = /^(BV?)/;\nexport var RX_DIGITS = /^\\d+$/;\nexport var RX_EXTENSION = /^\\..+/;\nexport var RX_HASH = /^#/;\nexport var RX_HASH_ID = /^#[A-Za-z]+[\\w\\-:.]*$/;\nexport var RX_HTML_TAGS = /(<([^>]+)>)/gi;\nexport var RX_HYPHENATE = /\\B([A-Z])/g;\nexport var RX_LOWER_UPPER = /([a-z])([A-Z])/g;\nexport var RX_NUMBER = /^[0-9]*\\.?[0-9]+$/;\nexport var RX_PLUS = /\\+/g;\nexport var RX_REGEXP_REPLACE = /[-/\\\\^$*+?.()|[\\]{}]/g;\nexport var RX_SPACES = /[\\s\\uFEFF\\xA0]+/g;\nexport var RX_SPACE_SPLIT = /\\s+/;\nexport var RX_STAR = /\\/\\*$/;\nexport var RX_START_SPACE_WORD = /(\\s|^)(\\w)/g;\nexport var RX_TRIM_LEFT = /^\\s+/;\nexport var RX_TRIM_RIGHT = /\\s+$/;\nexport var RX_UNDERSCORE = /_/g;\nexport var RX_UN_KEBAB = /-(\\w)/g; // --- Date ---\n// Loose YYYY-MM-DD matching, ignores any appended time inforation\n// Matches '1999-12-20', '1999-1-1', '1999-01-20T22:51:49.118Z', '1999-01-02 13:00:00'\n\nexport var RX_DATE = /^\\d+-\\d\\d?-\\d\\d?(?:\\s|T|$)/; // Used to split off the date parts of the YYYY-MM-DD string\n\nexport var RX_DATE_SPLIT = /-|\\s|T/; // Time string RegEx (optional seconds)\n\nexport var RX_TIME = /^([0-1]?[0-9]|2[0-3]):[0-5]?[0-9](:[0-5]?[0-9])?$/; // --- URL ---\n// HREFs must end with a hash followed by at least one non-hash character\n\nexport var RX_HREF = /^.*(#[^#]+)$/;\nexport var RX_ENCODED_COMMA = /%2C/g;\nexport var RX_ENCODE_REVERSE = /[!'()*]/g;\nexport var RX_QUERY_START = /^(\\?|#|&)/; // --- Aspect ---\n\nexport var RX_ASPECT = /^\\d+(\\.\\d*)?[/:]\\d+(\\.\\d*)?$/;\nexport var RX_ASPECT_SEPARATOR = /[/:]/; // --- Grid ---\n\nexport var RX_COL_CLASS = /^col-/; // --- Icon ---\n\nexport var RX_ICON_PREFIX = /^BIcon/; // --- Locale ---\n\nexport var RX_STRIP_LOCALE_MODS = /-u-.+/;","function _typeof(obj) { \"@babel/helpers - typeof\"; 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); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport { HAS_WINDOW_SUPPORT, WINDOW } from './env';\n/* istanbul ignore next */\n\nexport var Element = HAS_WINDOW_SUPPORT ? WINDOW.Element : /*#__PURE__*/function (_Object) {\n _inherits(Element, _Object);\n\n var _super = _createSuper(Element);\n\n function Element() {\n _classCallCheck(this, Element);\n\n return _super.apply(this, arguments);\n }\n\n return Element;\n}( /*#__PURE__*/_wrapNativeSuper(Object));\n/* istanbul ignore next */\n\nexport var HTMLElement = HAS_WINDOW_SUPPORT ? WINDOW.HTMLElement : /*#__PURE__*/function (_Element) {\n _inherits(HTMLElement, _Element);\n\n var _super2 = _createSuper(HTMLElement);\n\n function HTMLElement() {\n _classCallCheck(this, HTMLElement);\n\n return _super2.apply(this, arguments);\n }\n\n return HTMLElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var SVGElement = HAS_WINDOW_SUPPORT ? WINDOW.SVGElement : /*#__PURE__*/function (_Element2) {\n _inherits(SVGElement, _Element2);\n\n var _super3 = _createSuper(SVGElement);\n\n function SVGElement() {\n _classCallCheck(this, SVGElement);\n\n return _super3.apply(this, arguments);\n }\n\n return SVGElement;\n}(Element);\n/* istanbul ignore next */\n\nexport var File = HAS_WINDOW_SUPPORT ? WINDOW.File : /*#__PURE__*/function (_Object2) {\n _inherits(File, _Object2);\n\n var _super4 = _createSuper(File);\n\n function File() {\n _classCallCheck(this, File);\n\n return _super4.apply(this, arguments);\n }\n\n return File;\n}( /*#__PURE__*/_wrapNativeSuper(Object));","export var SLOT_NAME_ADD_BUTTON_TEXT = 'add-button-text';\nexport var SLOT_NAME_APPEND = 'append';\nexport var SLOT_NAME_ASIDE = 'aside';\nexport var SLOT_NAME_BADGE = 'badge';\nexport var SLOT_NAME_BOTTOM_ROW = 'bottom-row';\nexport var SLOT_NAME_BUTTON_CONTENT = 'button-content';\nexport var SLOT_NAME_CUSTOM_FOOT = 'custom-foot';\nexport var SLOT_NAME_DECREMENT = 'decrement';\nexport var SLOT_NAME_DEFAULT = 'default';\nexport var SLOT_NAME_DESCRIPTION = 'description';\nexport var SLOT_NAME_DISMISS = 'dismiss';\nexport var SLOT_NAME_DROP_PLACEHOLDER = 'drop-placeholder';\nexport var SLOT_NAME_ELLIPSIS_TEXT = 'ellipsis-text';\nexport var SLOT_NAME_EMPTY = 'empty';\nexport var SLOT_NAME_EMPTYFILTERED = 'emptyfiltered';\nexport var SLOT_NAME_FILE_NAME = 'file-name';\nexport var SLOT_NAME_FIRST = 'first';\nexport var SLOT_NAME_FIRST_TEXT = 'first-text';\nexport var SLOT_NAME_FOOTER = 'footer';\nexport var SLOT_NAME_HEADER = 'header';\nexport var SLOT_NAME_HEADER_CLOSE = 'header-close';\nexport var SLOT_NAME_ICON_CLEAR = 'icon-clear';\nexport var SLOT_NAME_ICON_EMPTY = 'icon-empty';\nexport var SLOT_NAME_ICON_FULL = 'icon-full';\nexport var SLOT_NAME_ICON_HALF = 'icon-half';\nexport var SLOT_NAME_IMG = 'img';\nexport var SLOT_NAME_INCREMENT = 'increment';\nexport var SLOT_NAME_INVALID_FEEDBACK = 'invalid-feedback';\nexport var SLOT_NAME_LABEL = 'label';\nexport var SLOT_NAME_LAST_TEXT = 'last-text';\nexport var SLOT_NAME_LEAD = 'lead';\nexport var SLOT_NAME_LOADING = 'loading';\nexport var SLOT_NAME_MODAL_BACKDROP = 'modal-backdrop';\nexport var SLOT_NAME_MODAL_CANCEL = 'modal-cancel';\nexport var SLOT_NAME_MODAL_FOOTER = 'modal-footer';\nexport var SLOT_NAME_MODAL_HEADER = 'modal-header';\nexport var SLOT_NAME_MODAL_HEADER_CLOSE = 'modal-header-close';\nexport var SLOT_NAME_MODAL_OK = 'modal-ok';\nexport var SLOT_NAME_MODAL_TITLE = 'modal-title';\nexport var SLOT_NAME_NAV_NEXT_DECADE = 'nav-next-decade';\nexport var SLOT_NAME_NAV_NEXT_MONTH = 'nav-next-month';\nexport var SLOT_NAME_NAV_NEXT_YEAR = 'nav-next-year';\nexport var SLOT_NAME_NAV_PEV_DECADE = 'nav-prev-decade';\nexport var SLOT_NAME_NAV_PEV_MONTH = 'nav-prev-month';\nexport var SLOT_NAME_NAV_PEV_YEAR = 'nav-prev-year';\nexport var SLOT_NAME_NAV_THIS_MONTH = 'nav-this-month';\nexport var SLOT_NAME_NEXT_TEXT = 'next-text';\nexport var SLOT_NAME_OVERLAY = 'overlay';\nexport var SLOT_NAME_PAGE = 'page';\nexport var SLOT_NAME_PLACEHOLDER = 'placeholder';\nexport var SLOT_NAME_PREPEND = 'prepend';\nexport var SLOT_NAME_PREV_TEXT = 'prev-text';\nexport var SLOT_NAME_ROW_DETAILS = 'row-details';\nexport var SLOT_NAME_TABLE_BUSY = 'table-busy';\nexport var SLOT_NAME_TABLE_CAPTION = 'table-caption';\nexport var SLOT_NAME_TABLE_COLGROUP = 'table-colgroup';\nexport var SLOT_NAME_TABS_END = 'tabs-end';\nexport var SLOT_NAME_TABS_START = 'tabs-start';\nexport var SLOT_NAME_TEXT = 'text';\nexport var SLOT_NAME_THEAD_TOP = 'thead-top';\nexport var SLOT_NAME_TITLE = 'title';\nexport var SLOT_NAME_TOAST_TITLE = 'toast-title';\nexport var SLOT_NAME_TOP_ROW = 'top-row';\nexport var SLOT_NAME_VALID_FEEDBACK = 'valid-feedback';","import { makePropCacheMixin } from '../utils/cache';\nexport var attrsMixin = makePropCacheMixin('$attrs', 'bvAttrs');","// SSR safe client-side ID attribute generation\n// ID's can only be generated client-side, after mount\n// `this._uid` is not synched between server and client\nimport { COMPONENT_UID_KEY, Vue } from '../vue';\nimport { PROP_TYPE_STRING } from '../constants/props';\nimport { makeProp } from '../utils/props'; // --- Props ---\n\nexport var props = {\n id: makeProp(PROP_TYPE_STRING)\n}; // --- Mixin ---\n// @vue/component\n\nexport var idMixin = Vue.extend({\n props: props,\n data: function data() {\n return {\n localId_: null\n };\n },\n computed: {\n safeId: function safeId() {\n // Computed property that returns a dynamic function for creating the ID\n // Reacts to changes in both `.id` and `.localId_` and regenerates a new function\n var id = this.id || this.localId_; // We return a function that accepts an optional suffix string\n // So this computed prop looks and works like a method\n // but benefits from Vue's computed prop caching\n\n var fn = function fn(suffix) {\n if (!id) {\n return null;\n }\n\n suffix = String(suffix || '').replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n };\n\n return fn;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n // `mounted()` only occurs client-side\n this.$nextTick(function () {\n // Update DOM with auto-generated ID after mount\n // to prevent SSR hydration errors\n _this.localId_ = \"__BVID__\".concat(_this[COMPONENT_UID_KEY]);\n });\n }\n});","import { Vue } from '../vue';\nimport { HOOK_EVENT_NAME_BEFORE_DESTROY } from '../constants/events'; // @vue/component\n\nexport var listenOnRootMixin = Vue.extend({\n methods: {\n /**\n * Safely register event listeners on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback\n *\n * When registering a `$root` listener, it also registers a listener on\n * the component's `beforeDestroy()` hook to automatically remove the\n * event listener from the `$root` instance\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n var _this = this;\n\n this.$root.$on(event, callback);\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this.$root.$off(event, callback);\n });\n },\n\n /**\n * Safely register a `$once()` event listener on the root Vue node\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback\n *\n * When registering a $root listener, it also registers a listener on\n * the component's `beforeDestroy` hook to automatically remove the\n * event listener from the $root instance.\n *\n * @param {string} event\n * @param {function} callback\n */\n listenOnRootOnce: function listenOnRootOnce(event, callback) {\n var _this2 = this;\n\n this.$root.$once(event, callback);\n this.$on(HOOK_EVENT_NAME_BEFORE_DESTROY, function () {\n _this2.$root.$off(event, callback);\n });\n },\n\n /**\n * Convenience method for calling `vm.$emit()` on `vm.$root`\n *\n * @param {string} event\n * @param {*} args\n */\n emitOnRoot: function emitOnRoot(event) {\n var _this$$root;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_this$$root = this.$root).$emit.apply(_this$$root, [event].concat(args));\n }\n }\n});","import { Vue } from '../vue';\nimport { SLOT_NAME_DEFAULT } from '../constants/slots';\nimport { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';\nimport { concat } from '../utils/array'; // @vue/component\n\nexport var normalizeSlotMixin = Vue.extend({\n methods: {\n // Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name\n // `name` can be a string name or an array of names\n hasNormalizedSlot: function hasNormalizedSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;\n var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;\n return _hasNormalizedSlot(name, scopedSlots, slots);\n },\n // Returns an array of rendered VNodes if slot found, otherwise `undefined`\n // `name` can be a string name or an array of names\n normalizeSlot: function normalizeSlot() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;\n var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;\n\n var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);\n\n return vNodes ? concat(vNodes) : vNodes;\n }\n }\n});","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; }\n\nimport { Vue } from '../vue';\nimport { getScopeId } from '../utils/get-scope-id'; // @vue/component\n\nexport var scopedStyleMixin = Vue.extend({\n computed: {\n scopedStyleAttrs: function scopedStyleAttrs() {\n var scopeId = getScopeId(this.$parent);\n return scopeId ? _defineProperty({}, scopeId, '') : {};\n }\n }\n});","import { isFunction } from './inspect'; // --- Static ---\n\nexport var from = function from() {\n return Array.from.apply(Array, arguments);\n}; // --- Instance ---\n\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var concat = function concat() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply([], args);\n}; // --- Utilities ---\n\nexport var createArray = function createArray(length, fillFn) {\n var mapFn = isFunction(fillFn) ? fillFn : function () {\n return fillFn;\n };\n return Array.apply(null, {\n length: length\n }).map(mapFn);\n};\nexport var flatten = function flatten(array) {\n return array.reduce(function (result, item) {\n return concat(result, item);\n }, []);\n};\nexport var flattenDeep = function flattenDeep(array) {\n return array.reduce(function (result, item) {\n return concat(result, Array.isArray(item) ? flattenDeep(item) : item);\n }, []);\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from './object';\nexport var BvEvent = /*#__PURE__*/function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor\n if (!type) {\n /* istanbul ignore next */\n throw new TypeError(\"Failed to construct '\".concat(this.constructor.name, \"'. 1 argument required, \").concat(arguments.length, \" given.\"));\n } // Merge defaults first, the eventInit, and the type last\n // so it can't be overwritten\n\n\n assign(this, BvEvent.Defaults, this.constructor.Defaults, eventInit, {\n type: type\n }); // Freeze some props as readonly, but leave them enumerable\n\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor(),\n componentId: readonlyDescriptor()\n }); // Create a private variable using closure scoping\n\n var defaultPrevented = false; // Recreate preventDefault method. One way setter\n\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n }; // Create `defaultPrevented` publicly accessible prop that\n // can only be altered by the preventDefault method\n\n\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: \"Defaults\",\n get: function get() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null,\n componentId: null\n };\n }\n }]);\n\n return BvEvent;\n}();","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; }\n\nimport { Vue } from '../vue';\nimport { cloneDeep } from './clone-deep';\nimport { looseEqual } from './loose-equal';\nimport { hasOwnProperty, keys } from './object';\n\nvar isEmpty = function isEmpty(value) {\n return !value || keys(value).length === 0;\n};\n\nexport var makePropWatcher = function makePropWatcher(propName) {\n return {\n handler: function handler(newValue, oldValue) {\n if (looseEqual(newValue, oldValue)) {\n return;\n }\n\n if (isEmpty(newValue) || isEmpty(oldValue)) {\n this[propName] = cloneDeep(newValue);\n return;\n }\n\n for (var key in oldValue) {\n if (!hasOwnProperty(newValue, key)) {\n this.$delete(this.$data[propName], key);\n }\n }\n\n for (var _key in newValue) {\n this.$set(this.$data[propName], _key, newValue[_key]);\n }\n }\n };\n};\nexport var makePropCacheMixin = function makePropCacheMixin(propName, proxyPropName) {\n return Vue.extend({\n data: function data() {\n return _defineProperty({}, proxyPropName, cloneDeep(this[propName]));\n },\n watch: _defineProperty({}, propName, makePropWatcher(proxyPropName))\n });\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { isArray, isPlainObject } from './inspect';\nimport { keys } from './object';\nexport var cloneDeep = function cloneDeep(obj) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : obj;\n\n if (isArray(obj)) {\n return obj.reduce(function (result, val) {\n return [].concat(_toConsumableArray(result), [cloneDeep(val, val)]);\n }, []);\n }\n\n if (isPlainObject(obj)) {\n return keys(obj).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, cloneDeep(obj[key], obj[key])));\n }, {});\n }\n\n return defaultValue;\n};","import { create } from './object';\nexport var memoize = function memoize(fn) {\n var cache = create(null);\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsKey = JSON.stringify(args);\n return cache[argsKey] = cache[argsKey] || fn.apply(null, args);\n };\n};","import { Vue } from '../vue';\nimport { DEFAULT_BREAKPOINT, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { memoize } from './memoize'; // --- Constants ---\n\nvar VueProto = Vue.prototype; // --- Getter methods ---\n// All methods return a deep clone (immutable) copy of the config value,\n// to prevent mutation of the user config object\n// Get the current config\n\nexport var getConfig = function getConfig() {\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfig() : {};\n}; // Method to grab a config value based on a dotted/array notation key\n\nexport var getConfigValue = function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var bvConfig = VueProto[PROP_NAME];\n return bvConfig ? bvConfig.getConfigValue(key, defaultValue) : cloneDeep(defaultValue);\n}; // Method to grab a config value for a particular component\n\nexport var getComponentConfig = function getComponentConfig(key) {\n var propKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Return the particular config value for key if specified,\n // otherwise we return the full config (or an empty object if not found)\n return propKey ? getConfigValue(\"\".concat(key, \".\").concat(propKey), defaultValue) : getConfigValue(key, {});\n}; // Get all breakpoint names\n\nexport var getBreakpoints = function getBreakpoints() {\n return getConfigValue('breakpoints', DEFAULT_BREAKPOINT);\n}; // Private method for caching breakpoint names\n\nvar _getBreakpointsCached = memoize(function () {\n return getBreakpoints();\n}); // Get all breakpoint names (cached)\n\n\nexport var getBreakpointsCached = function getBreakpointsCached() {\n return cloneDeep(_getBreakpointsCached());\n}; // Get breakpoints with the smallest breakpoint set as ''\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUp = function getBreakpointsUp() {\n var breakpoints = getBreakpoints();\n breakpoints[0] = '';\n return breakpoints;\n}; // Get breakpoints with the smallest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\nexport var getBreakpointsUpCached = memoize(function () {\n var breakpoints = getBreakpointsCached();\n breakpoints[0] = '';\n return breakpoints;\n}); // Get breakpoints with the largest breakpoint set as ''\n\nexport var getBreakpointsDown = function getBreakpointsDown() {\n var breakpoints = getBreakpoints();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n}; // Get breakpoints with the largest breakpoint set as '' (cached)\n// Useful for components that create breakpoint specific props\n\n/* istanbul ignore next: we don't use this method anywhere, yet */\n\nexport var getBreakpointsDownCached = function getBreakpointsDownCached() {\n var breakpoints = getBreakpointsCached();\n breakpoints[breakpoints.length - 1] = '';\n return breakpoints;\n};","import { DOCUMENT, WINDOW } from '../constants/env';\nimport { Element } from '../constants/safe-types';\nimport { from as arrayFrom } from './array';\nimport { isFunction, isNull } from './inspect';\nimport { toFloat } from './number';\nimport { toString } from './string'; // --- Constants ---\n\nvar ELEMENT_PROTO = Element.prototype;\nvar TABABLE_SELECTOR = ['button', '[href]:not(.disabled)', 'input', 'select', 'textarea', '[tabindex]', '[contenteditable]'].map(function (s) {\n return \"\".concat(s, \":not(:disabled):not([disabled])\");\n}).join(', '); // --- Normalization utils ---\n// See: https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n\n/* istanbul ignore next */\n\nexport var matchesEl = ELEMENT_PROTO.matches || ELEMENT_PROTO.msMatchesSelector || ELEMENT_PROTO.webkitMatchesSelector; // See: https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n\n/* istanbul ignore next */\n\nexport var closestEl = ELEMENT_PROTO.closest || function (sel) {\n var el = this;\n\n do {\n // Use our \"patched\" matches function\n if (matches(el, sel)) {\n return el;\n }\n\n el = el.parentElement || el.parentNode;\n } while (!isNull(el) && el.nodeType === Node.ELEMENT_NODE);\n\n return null;\n}; // `requestAnimationFrame()` convenience method\n\n/* istanbul ignore next: JSDOM always returns the first option */\n\nexport var requestAF = WINDOW.requestAnimationFrame || WINDOW.webkitRequestAnimationFrame || WINDOW.mozRequestAnimationFrame || WINDOW.msRequestAnimationFrame || WINDOW.oRequestAnimationFrame || // Fallback, but not a true polyfill\n// Only needed for Opera Mini\n\n/* istanbul ignore next */\nfunction (cb) {\n return setTimeout(cb, 16);\n};\nexport var MutationObs = WINDOW.MutationObserver || WINDOW.WebKitMutationObserver || WINDOW.MozMutationObserver || null; // --- Utils ---\n// Remove a node from DOM\n\nexport var removeNode = function removeNode(el) {\n return el && el.parentNode && el.parentNode.removeChild(el);\n}; // Determine if an element is an HTML element\n\nexport var isElement = function isElement(el) {\n return !!(el && el.nodeType === Node.ELEMENT_NODE);\n}; // Get the currently active HTML element\n\nexport var getActiveElement = function getActiveElement() {\n var excludes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var activeElement = DOCUMENT.activeElement;\n return activeElement && !excludes.some(function (el) {\n return el === activeElement;\n }) ? activeElement : null;\n}; // Returns `true` if a tag's name equals `name`\n\nexport var isTag = function isTag(tag, name) {\n return toString(tag).toLowerCase() === toString(name).toLowerCase();\n}; // Determine if an HTML element is the currently active element\n\nexport var isActiveElement = function isActiveElement(el) {\n return isElement(el) && el === getActiveElement();\n}; // Determine if an HTML element is visible - Faster than CSS check\n\nexport var isVisible = function isVisible(el) {\n if (!isElement(el) || !el.parentNode || !contains(DOCUMENT.body, el)) {\n // Note this can fail for shadow dom elements since they\n // are not a direct descendant of document.body\n return false;\n }\n\n if (getStyle(el, 'display') === 'none') {\n // We do this check to help with vue-test-utils when using v-show\n\n /* istanbul ignore next */\n return false;\n } // All browsers support getBoundingClientRect(), except JSDOM as it returns all 0's for values :(\n // So any tests that need isVisible will fail in JSDOM\n // Except when we override the getBCR prototype in some tests\n\n\n var bcr = getBCR(el);\n return !!(bcr && bcr.height > 0 && bcr.width > 0);\n}; // Determine if an element is disabled\n\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || hasAttr(el, 'disabled') || hasClass(el, 'disabled');\n}; // Cause/wait-for an element to reflow its content (adjusting its height/width)\n\nexport var reflow = function reflow(el) {\n // Requesting an elements offsetHight will trigger a reflow of the element content\n\n /* istanbul ignore next: reflow doesn't happen in JSDOM */\n return isElement(el) && el.offsetHeight;\n}; // Select all elements matching selector. Returns `[]` if none found\n\nexport var selectAll = function selectAll(selector, root) {\n return arrayFrom((isElement(root) ? root : DOCUMENT).querySelectorAll(selector));\n}; // Select a single element, returns `null` if not found\n\nexport var select = function select(selector, root) {\n return (isElement(root) ? root : DOCUMENT).querySelector(selector) || null;\n}; // Determine if an element matches a selector\n\nexport var matches = function matches(el, selector) {\n return isElement(el) ? matchesEl.call(el, selector) : false;\n}; // Finds closest element matching selector. Returns `null` if not found\n\nexport var closest = function closest(selector, root) {\n var includeRoot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!isElement(root)) {\n return null;\n }\n\n var el = closestEl.call(root, selector); // Native closest behaviour when `includeRoot` is truthy,\n // else emulate jQuery closest and return `null` if match is\n // the passed in root element when `includeRoot` is falsey\n\n return includeRoot ? el : el === root ? null : el;\n}; // Returns true if the parent element contains the child element\n\nexport var contains = function contains(parent, child) {\n return parent && isFunction(parent.contains) ? parent.contains(child) : false;\n}; // Get an element given an ID\n\nexport var getById = function getById(id) {\n return DOCUMENT.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n}; // Add a class to an element\n\nexport var addClass = function addClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.add(className);\n }\n}; // Remove a class from an element\n\nexport var removeClass = function removeClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n el.classList.remove(className);\n }\n}; // Test if an element has a class\n\nexport var hasClass = function hasClass(el, className) {\n // We are checking for `el.classList` existence here since IE 11\n // returns `undefined` for some elements (e.g. SVG elements)\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2713\n if (className && isElement(el) && el.classList) {\n return el.classList.contains(className);\n }\n\n return false;\n}; // Set an attribute on an element\n\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n}; // Remove an attribute from an element\n\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n}; // Get an attribute value from an element\n// Returns `null` if not found\n\nexport var getAttr = function getAttr(el, attr) {\n return attr && isElement(el) ? el.getAttribute(attr) : null;\n}; // Determine if an attribute exists on an element\n// Returns `true` or `false`, or `null` if element not found\n\nexport var hasAttr = function hasAttr(el, attr) {\n return attr && isElement(el) ? el.hasAttribute(attr) : null;\n}; // Set an style property on an element\n\nexport var setStyle = function setStyle(el, prop, value) {\n if (prop && isElement(el)) {\n el.style[prop] = value;\n }\n}; // Remove an style property from an element\n\nexport var removeStyle = function removeStyle(el, prop) {\n if (prop && isElement(el)) {\n el.style[prop] = '';\n }\n}; // Get an style property value from an element\n// Returns `null` if not found\n\nexport var getStyle = function getStyle(el, prop) {\n return prop && isElement(el) ? el.style[prop] || null : null;\n}; // Return the Bounding Client Rect of an element\n// Returns `null` if not an element\n\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n}; // Get computed style object for an element\n\n/* istanbul ignore next: getComputedStyle() doesn't work in JSDOM */\n\nexport var getCS = function getCS(el) {\n var getComputedStyle = WINDOW.getComputedStyle;\n return getComputedStyle && isElement(el) ? getComputedStyle(el) : {};\n}; // Returns a `Selection` object representing the range of text selected\n// Returns `null` if no window support is given\n\n/* istanbul ignore next: getSelection() doesn't work in JSDOM */\n\nexport var getSel = function getSel() {\n var getSelection = WINDOW.getSelection;\n return getSelection ? WINDOW.getSelection() : null;\n}; // Return an element's offset with respect to document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\n\nexport var offset = function offset(el)\n/* istanbul ignore next: getBoundingClientRect(), getClientRects() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el) || el.getClientRects().length === 0) {\n return _offset;\n }\n\n var bcr = getBCR(el);\n\n if (bcr) {\n var win = el.ownerDocument.defaultView;\n _offset.top = bcr.top + win.pageYOffset;\n _offset.left = bcr.left + win.pageXOffset;\n }\n\n return _offset;\n}; // Return an element's offset with respect to to its offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\n\nexport var position = function position(el)\n/* istanbul ignore next: getBoundingClientRect() doesn't work in JSDOM */\n{\n var _offset = {\n top: 0,\n left: 0\n };\n\n if (!isElement(el)) {\n return _offset;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var elStyles = getCS(el);\n\n if (elStyles.position === 'fixed') {\n _offset = getBCR(el) || _offset;\n } else {\n _offset = offset(el);\n var doc = el.ownerDocument;\n var offsetParent = el.offsetParent || doc.documentElement;\n\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n var offsetParentStyles = getCS(offsetParent);\n parentOffset.top += toFloat(offsetParentStyles.borderTopWidth, 0);\n parentOffset.left += toFloat(offsetParentStyles.borderLeftWidth, 0);\n }\n }\n\n return {\n top: _offset.top - parentOffset.top - toFloat(elStyles.marginTop, 0),\n left: _offset.left - parentOffset.left - toFloat(elStyles.marginLeft, 0)\n };\n}; // Find all tabable elements in the given element\n// Assumes users have not used `tabindex` > `0` on elements\n\nexport var getTabables = function getTabables() {\n var rootEl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n return selectAll(TABABLE_SELECTOR, rootEl).filter(isVisible).filter(function (el) {\n return el.tabIndex > -1 && !el.disabled;\n });\n}; // Attempt to focus an element, and return `true` if successful\n\nexport var attemptFocus = function attemptFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n try {\n el.focus(options);\n } catch (_unused) {}\n\n return isActiveElement(el);\n}; // Attempt to blur an element, and return `true` if successful\n\nexport var attemptBlur = function attemptBlur(el) {\n try {\n el.blur();\n } catch (_unused2) {}\n\n return !isActiveElement(el);\n};","import { HAS_PASSIVE_EVENT_SUPPORT } from '../constants/env';\nimport { ROOT_EVENT_NAME_PREFIX, ROOT_EVENT_NAME_SEPARATOR } from '../constants/events';\nimport { RX_BV_PREFIX } from '../constants/regex';\nimport { isObject } from './inspect';\nimport { kebabCase } from './string'; // --- Utils ---\n// Normalize event options based on support of passive option\n// Exported only for testing purposes\n\nexport var parseEventOptions = function parseEventOptions(options) {\n /* istanbul ignore else: can't test in JSDOM, as it supports passive */\n if (HAS_PASSIVE_EVENT_SUPPORT) {\n return isObject(options) ? options : {\n capture: !!options || false\n };\n } else {\n // Need to translate to actual Boolean value\n return !!(isObject(options) ? options.capture : options);\n }\n}; // Attach an event listener to an element\n\nexport var eventOn = function eventOn(el, eventName, handler, options) {\n if (el && el.addEventListener) {\n el.addEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Remove an event listener from an element\n\nexport var eventOff = function eventOff(el, eventName, handler, options) {\n if (el && el.removeEventListener) {\n el.removeEventListener(eventName, handler, parseEventOptions(options));\n }\n}; // Utility method to add/remove a event listener based on first argument (boolean)\n// It passes all other arguments to the `eventOn()` or `eventOff` method\n\nexport var eventOnOff = function eventOnOff(on) {\n var method = on ? eventOn : eventOff;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n method.apply(void 0, args);\n}; // Utility method to prevent the default event handling and propagation\n\nexport var stopEvent = function stopEvent(event) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault,\n _ref$propagation = _ref.propagation,\n propagation = _ref$propagation === void 0 ? true : _ref$propagation,\n _ref$immediatePropaga = _ref.immediatePropagation,\n immediatePropagation = _ref$immediatePropaga === void 0 ? false : _ref$immediatePropaga;\n\n if (preventDefault) {\n event.preventDefault();\n }\n\n if (propagation) {\n event.stopPropagation();\n }\n\n if (immediatePropagation) {\n event.stopImmediatePropagation();\n }\n}; // Helper method to convert a component/directive name to a base event name\n// `getBaseEventName('BNavigationItem')` => 'navigation-item'\n// `getBaseEventName('BVToggle')` => 'toggle'\n\nvar getBaseEventName = function getBaseEventName(value) {\n return kebabCase(value.replace(RX_BV_PREFIX, ''));\n}; // Get a root event name by component/directive and event name\n// `getBaseEventName('BModal', 'show')` => 'bv::modal::show'\n\n\nexport var getRootEventName = function getRootEventName(name, eventName) {\n return [ROOT_EVENT_NAME_PREFIX, getBaseEventName(name), eventName].join(ROOT_EVENT_NAME_SEPARATOR);\n}; // Get a root action event name by component/directive and action name\n// `getRootActionEventName('BModal', 'show')` => 'bv::show::modal'\n\nexport var getRootActionEventName = function getRootActionEventName(name, actionName) {\n return [ROOT_EVENT_NAME_PREFIX, actionName, getBaseEventName(name)].join(ROOT_EVENT_NAME_SEPARATOR);\n};","// This method returns a component's scoped style attribute name: `data-v-xxxxxxx`\n// The `_scopeId` options property is added by vue-loader when using scoped styles\n// and will be `undefined` if no scoped styles are in use\nexport var getScopeId = function getScopeId(vm) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return vm ? vm.$options._scopeId || defaultValue : defaultValue;\n};","import { RX_HTML_TAGS } from '../constants/regex'; // Removes anything that looks like an HTML tag from the supplied string\n\nexport var stripTags = function stripTags() {\n var text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return String(text).replace(RX_HTML_TAGS, '');\n}; // Generate a `domProps` object for either `innerHTML`, `textContent` or an empty object\n\nexport var htmlOrText = function htmlOrText(innerHTML, textContent) {\n return innerHTML ? {\n innerHTML: innerHTML\n } : textContent ? {\n textContent: textContent\n } : {};\n};","export var identity = function identity(x) {\n return x;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; 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); }\n\nimport { RX_NUMBER } from '../constants/regex';\nimport { File } from '../constants/safe-types'; // --- Convenience inspection utilities ---\n\nexport var toType = function toType(value) {\n return _typeof(value);\n};\nexport var toRawType = function toRawType(value) {\n return Object.prototype.toString.call(value).slice(8, -1);\n};\nexport var toRawTypeLC = function toRawTypeLC(value) {\n return toRawType(value).toLowerCase();\n};\nexport var isUndefined = function isUndefined(value) {\n return value === undefined;\n};\nexport var isNull = function isNull(value) {\n return value === null;\n};\nexport var isEmptyString = function isEmptyString(value) {\n return value === '';\n};\nexport var isUndefinedOrNull = function isUndefinedOrNull(value) {\n return isUndefined(value) || isNull(value);\n};\nexport var isUndefinedOrNullOrEmpty = function isUndefinedOrNullOrEmpty(value) {\n return isUndefinedOrNull(value) || isEmptyString(value);\n};\nexport var isFunction = function isFunction(value) {\n return toType(value) === 'function';\n};\nexport var isBoolean = function isBoolean(value) {\n return toType(value) === 'boolean';\n};\nexport var isString = function isString(value) {\n return toType(value) === 'string';\n};\nexport var isNumber = function isNumber(value) {\n return toType(value) === 'number';\n};\nexport var isNumeric = function isNumeric(value) {\n return RX_NUMBER.test(String(value));\n};\nexport var isPrimitive = function isPrimitive(value) {\n return isBoolean(value) || isString(value) || isNumber(value);\n};\nexport var isArray = function isArray(value) {\n return Array.isArray(value);\n}; // Quick object check\n// This is primarily used to tell Objects from primitive values\n// when we know the value is a JSON-compliant type\n// Note object could be a complex type like array, Date, etc.\n\nexport var isObject = function isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}; // Strict object type check\n// Only returns true for plain JavaScript objects\n\nexport var isPlainObject = function isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n};\nexport var isDate = function isDate(value) {\n return value instanceof Date;\n};\nexport var isEvent = function isEvent(value) {\n return value instanceof Event;\n};\nexport var isFile = function isFile(value) {\n return value instanceof File;\n};\nexport var isRegExp = function isRegExp(value) {\n return toRawType(value) === 'RegExp';\n};\nexport var isPromise = function isPromise(value) {\n return !isUndefinedOrNull(value) && isFunction(value.then) && isFunction(value.catch);\n};","import { hasOwnProperty, keys } from './object';\nimport { isArray, isDate, isObject } from './inspect'; // Assumes both a and b are arrays!\n// Handles when arrays are \"sparse\" (array.every(...) doesn't handle sparse)\n\nvar compareArrays = function compareArrays(a, b) {\n if (a.length !== b.length) {\n return false;\n }\n\n var equal = true;\n\n for (var i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n\n return equal;\n};\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\n\n\nexport var looseEqual = function looseEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n var aValidType = isDate(a);\n var bValidType = isDate(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n\n aValidType = isArray(a);\n bValidType = isArray(b);\n\n if (aValidType || bValidType) {\n return aValidType && bValidType ? compareArrays(a, b) : false;\n }\n\n aValidType = isObject(a);\n bValidType = isObject(b);\n\n if (aValidType || bValidType) {\n /* istanbul ignore if: this if will probably never be called */\n if (!aValidType || !bValidType) {\n return false;\n }\n\n var aKeysCount = keys(a).length;\n var bKeysCount = keys(b).length;\n\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n\n for (var key in a) {\n var aHasKey = hasOwnProperty(a, key);\n var bHasKey = hasOwnProperty(b, key);\n\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n\n return String(a) === String(b);\n};","// Math utilty functions\nexport var mathMin = Math.min;\nexport var mathMax = Math.max;\nexport var mathAbs = Math.abs;\nexport var mathCeil = Math.ceil;\nexport var mathFloor = Math.floor;\nexport var mathPow = Math.pow;\nexport var mathRound = Math.round;","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; }\n\nimport { Vue } from '../vue';\nimport { EVENT_NAME_INPUT } from '../constants/events';\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { makeProp } from './props';\nexport var makeModelMixin = function makeModelMixin(prop) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$type = _ref.type,\n type = _ref$type === void 0 ? PROP_TYPE_ANY : _ref$type,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? undefined : _ref$defaultValue,\n _ref$validator = _ref.validator,\n validator = _ref$validator === void 0 ? undefined : _ref$validator,\n _ref$event = _ref.event,\n event = _ref$event === void 0 ? EVENT_NAME_INPUT : _ref$event;\n\n var props = _defineProperty({}, prop, makeProp(type, defaultValue, validator)); // @vue/component\n\n\n var mixin = Vue.extend({\n model: {\n prop: prop,\n event: event\n },\n props: props\n });\n return {\n mixin: mixin,\n props: props,\n prop: prop,\n event: event\n };\n};","import { concat } from './array';\nimport { identity } from './identity';\nimport { isFunction } from './inspect'; // Note for functional components:\n// In functional components, `slots` is a function so it must be called\n// first before passing to the below methods. `scopedSlots` is always an\n// object and may be undefined (for Vue < 2.6.x)\n\n/**\n * Returns true if either scoped or unscoped named slot exists\n *\n * @param {String, Array} name or name[]\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var hasNormalizedSlot = function hasNormalizedSlot(names) {\n var $scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // Ensure names is an array\n names = concat(names).filter(identity); // Returns true if the either a $scopedSlot or $slot exists with the specified name\n\n return names.some(function (name) {\n return $scopedSlots[name] || $slots[name];\n });\n};\n/**\n * Returns VNodes for named slot either scoped or unscoped\n *\n * @param {String, Array} name or name[]\n * @param {String} scope\n * @param {Object} scopedSlots\n * @param {Object} slots\n * @returns {Array|undefined} VNodes\n */\n\nexport var normalizeSlot = function normalizeSlot(names) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var $scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var $slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n // Ensure names is an array\n names = concat(names).filter(identity);\n var slot;\n\n for (var i = 0; i < names.length && !slot; i++) {\n var name = names[i];\n slot = $scopedSlots[name] || $slots[name];\n } // Note: in Vue 2.6.x, all named slots are also scoped slots\n\n\n return isFunction(slot) ? slot(scope) : slot;\n};","// Number utilities\n// Converts a value (string, number, etc.) to an integer number\n// Assumes radix base 10\nexport var toInteger = function toInteger(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var integer = parseInt(value, 10);\n return isNaN(integer) ? defaultValue : integer;\n}; // Converts a value (string, number, etc.) to a number\n\nexport var toFloat = function toFloat(value) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n var float = parseFloat(value);\n return isNaN(float) ? defaultValue : float;\n}; // Converts a value (string, number, etc.) to a string\n// representation with `precision` digits after the decimal\n// Returns the string 'NaN' if the value cannot be converted\n\nexport var toFixed = function toFixed(val, precision) {\n return toFloat(val).toFixed(toInteger(precision, 0));\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { isObject } from './inspect'; // --- Static ---\n\nexport var assign = function assign() {\n return Object.assign.apply(Object, arguments);\n};\nexport var create = function create(proto, optionalProps) {\n return Object.create(proto, optionalProps);\n};\nexport var defineProperties = function defineProperties(obj, props) {\n return Object.defineProperties(obj, props);\n};\nexport var defineProperty = function defineProperty(obj, prop, descriptor) {\n return Object.defineProperty(obj, prop, descriptor);\n};\nexport var freeze = function freeze(obj) {\n return Object.freeze(obj);\n};\nexport var getOwnPropertyNames = function getOwnPropertyNames(obj) {\n return Object.getOwnPropertyNames(obj);\n};\nexport var getOwnPropertyDescriptor = function getOwnPropertyDescriptor(obj, prop) {\n return Object.getOwnPropertyDescriptor(obj, prop);\n};\nexport var getOwnPropertySymbols = function getOwnPropertySymbols(obj) {\n return Object.getOwnPropertySymbols(obj);\n};\nexport var getPrototypeOf = function getPrototypeOf(obj) {\n return Object.getPrototypeOf(obj);\n};\nexport var is = function is(value1, value2) {\n return Object.is(value1, value2);\n};\nexport var isFrozen = function isFrozen(obj) {\n return Object.isFrozen(obj);\n};\nexport var keys = function keys(obj) {\n return Object.keys(obj);\n}; // --- \"Instance\" ---\n\nexport var hasOwnProperty = function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n};\nexport var toString = function toString(obj) {\n return Object.prototype.toString.call(obj);\n}; // --- Utilities ---\n// Shallow copy an object\n\nexport var clone = function clone(obj) {\n return _objectSpread({}, obj);\n}; // Return a shallow copy of object with the specified properties only\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var pick = function pick(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) !== -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Return a shallow copy of object with the specified properties omitted\n// See: https://gist.github.com/bisubus/2da8af7e801ffd813fab7ac221aa7afc\n\nexport var omit = function omit(obj, props) {\n return keys(obj).filter(function (key) {\n return props.indexOf(key) === -1;\n }).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Merges two object deeply together\n// See: https://gist.github.com/Salakar/1d7137de9cb8b704e48a\n\nexport var mergeDeep = function mergeDeep(target, source) {\n if (isObject(target) && isObject(source)) {\n keys(source).forEach(function (key) {\n if (isObject(source[key])) {\n if (!target[key] || !isObject(target[key])) {\n target[key] = source[key];\n }\n\n mergeDeep(target[key], source[key]);\n } else {\n assign(target, _defineProperty({}, key, source[key]));\n }\n });\n }\n\n return target;\n}; // Returns a shallow copy of the object with keys in sorted order\n\nexport var sortKeys = function sortKeys(obj) {\n return keys(obj).sort().reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, obj[key]));\n }, {});\n}; // Convenience method to create a read-only descriptor\n\nexport var readonlyDescriptor = function readonlyDescriptor() {\n return {\n enumerable: true,\n configurable: false,\n writable: false\n };\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { MutationObs, isElement } from './dom';\nimport { warnNoMutationObserverSupport } from './warn';\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [options={childList: true, subtree: true}] observe options\n * @see https://stackoverflow.com/questions/3219758\n */\n\nexport var observeDom = function observeDom(el, callback, options)\n/* istanbul ignore next: difficult to test in JSDOM */\n{\n // Handle cases where we might be passed a Vue instance\n el = el ? el.$el || el : null; // Early exit when we have no element\n\n /* istanbul ignore next: difficult to test in JSDOM */\n\n if (!isElement(el)) {\n return null;\n } // Exit and throw a warning when `MutationObserver` isn't available\n\n\n if (warnNoMutationObserverSupport('observeDom')) {\n return null;\n } // Define a new observer\n\n\n var obs = new MutationObs(function (mutations) {\n var changed = false; // A mutation can contain several change records, so we loop\n // through them to see what has changed\n // We break out of the loop early if any \"significant\" change\n // has been detected\n\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The mutation record\n var mutation = mutations[i]; // Mutation type\n\n var type = mutation.type; // DOM node (could be any DOM node type - HTMLElement, Text, comment, etc.)\n\n var target = mutation.target; // Detect whether a change happened based on type and target\n\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXT (i.e. comments, etc.)\n // as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and text nodes being\n // added/removed/re-arranged\n changed = true;\n }\n } // We only call the callback if a change that could affect\n // layout/size truly happened\n\n\n if (changed) {\n callback();\n }\n }); // Have the observer observe foo for changes in children, etc\n\n obs.observe(el, _objectSpread({\n childList: true,\n subtree: true\n }, options)); // We return a reference to the observer so that `obs.disconnect()`\n // can be called if necessary\n // To reduce overhead when the root element is hidden\n\n return obs;\n};","import { RX_ARRAY_NOTATION } from '../constants/regex';\nimport { identity } from './identity';\nimport { isArray, isNull, isObject, isUndefinedOrNull } from './inspect';\n/**\n * Get property defined by dot/array notation in string, returns undefined if not found\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @return {*}\n */\n\nexport var getRaw = function getRaw(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n // Handle array of path values\n path = isArray(path) ? path.join('.') : path; // If no path or no object passed\n\n if (!path || !isObject(obj)) {\n return defaultValue;\n } // Handle edge case where user has dot(s) in top-level item field key\n // See https://github.com/bootstrap-vue/bootstrap-vue/issues/2762\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n if (path in obj) {\n return obj[path];\n } // Handle string array notation (numeric indices only)\n\n\n path = String(path).replace(RX_ARRAY_NOTATION, '.$1');\n var steps = path.split('.').filter(identity); // Handle case where someone passes a string of only dots\n\n if (steps.length === 0) {\n return defaultValue;\n } // Traverse path in object to find result\n // Switched to `in` operator vs `hasOwnProperty` to handle obj.prototype getters\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3463\n\n\n return steps.every(function (step) {\n return isObject(obj) && step in obj && !isUndefinedOrNull(obj = obj[step]);\n }) ? obj : isNull(obj) ? null : defaultValue;\n};\n/**\n * Get property defined by dot/array notation in string.\n *\n * @link https://gist.github.com/jeneg/9767afdcca45601ea44930ea03e0febf#gistcomment-1935901\n *\n * @param {Object} obj\n * @param {string|Array} path\n * @param {*} defaultValue (optional)\n * @return {*}\n */\n\nexport var get = function get(obj, path) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var value = getRaw(obj, path);\n return isUndefinedOrNull(value) ? defaultValue : value;\n};","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport { Vue as OurVue } from '../vue';\nimport { NAME, PROP_NAME } from '../constants/config';\nimport { cloneDeep } from './clone-deep';\nimport { getRaw } from './get';\nimport { isArray, isPlainObject, isString, isUndefined } from './inspect';\nimport { getOwnPropertyNames } from './object';\nimport { warn } from './warn'; // Config manager class\n\nvar BvConfig = /*#__PURE__*/function () {\n function BvConfig() {\n _classCallCheck(this, BvConfig);\n\n this.$_config = {};\n } // Method to merge in user config parameters\n\n\n _createClass(BvConfig, [{\n key: \"setConfig\",\n value: function setConfig() {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* istanbul ignore next */\n if (!isPlainObject(config)) {\n return;\n }\n\n var configKeys = getOwnPropertyNames(config);\n configKeys.forEach(function (key) {\n /* istanbul ignore next */\n var subConfig = config[key];\n\n if (key === 'breakpoints') {\n /* istanbul ignore if */\n if (!isArray(subConfig) || subConfig.length < 2 || subConfig.some(function (b) {\n return !isString(b) || b.length === 0;\n })) {\n warn('\"breakpoints\" must be an array of at least 2 breakpoint names', NAME);\n } else {\n _this.$_config[key] = cloneDeep(subConfig);\n }\n } else if (isPlainObject(subConfig)) {\n // Component prop defaults\n _this.$_config[key] = getOwnPropertyNames(subConfig).reduce(function (config, prop) {\n if (!isUndefined(subConfig[prop])) {\n config[prop] = cloneDeep(subConfig[prop]);\n }\n\n return config;\n }, _this.$_config[key] || {});\n }\n });\n } // Clear the config\n\n }, {\n key: \"resetConfig\",\n value: function resetConfig() {\n this.$_config = {};\n } // Returns a deep copy of the user config\n\n }, {\n key: \"getConfig\",\n value: function getConfig() {\n return cloneDeep(this.$_config);\n } // Returns a deep copy of the config value\n\n }, {\n key: \"getConfigValue\",\n value: function getConfigValue(key) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n return cloneDeep(getRaw(this.$_config, key, defaultValue));\n }\n }]);\n\n return BvConfig;\n}(); // Method for applying a global config\n\n\nexport var setConfig = function setConfig() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var Vue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OurVue;\n // Ensure we have a `$bvConfig` Object on the Vue prototype\n // We set on Vue and OurVue just in case consumer has not set an alias of `vue`\n Vue.prototype[PROP_NAME] = OurVue.prototype[PROP_NAME] = Vue.prototype[PROP_NAME] || OurVue.prototype[PROP_NAME] || new BvConfig(); // Apply the config values\n\n Vue.prototype[PROP_NAME].setConfig(config);\n}; // Method for resetting the user config\n// Exported for testing purposes only\n\nexport var resetConfig = function resetConfig() {\n if (OurVue.prototype[PROP_NAME] && OurVue.prototype[PROP_NAME].resetConfig) {\n OurVue.prototype[PROP_NAME].resetConfig();\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { Vue as OurVue } from '../vue';\nimport { HAS_WINDOW_SUPPORT, IS_JSDOM } from '../constants/env';\nimport { setConfig } from './config-set';\nimport { warn } from './warn';\n/**\n * Checks if there are multiple instances of Vue, and warns (once) about possible issues.\n * @param {object} Vue\n */\n\nexport var checkMultipleVue = function () {\n var checkMultipleVueWarned = false;\n var MULTIPLE_VUE_WARNING = ['Multiple instances of Vue detected!', 'You may need to set up an alias for Vue in your bundler config.', 'See: https://bootstrap-vue.org/docs#using-module-bundlers'].join('\\n');\n return function (Vue) {\n /* istanbul ignore next */\n if (!checkMultipleVueWarned && OurVue !== Vue && !IS_JSDOM) {\n warn(MULTIPLE_VUE_WARNING);\n }\n\n checkMultipleVueWarned = true;\n };\n}();\n/**\n * Plugin install factory function.\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactory = function installFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref.components,\n directives = _ref.directives,\n plugins = _ref.plugins;\n\n var install = function install(Vue) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n setConfig(config, Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin install factory function (no plugin config option).\n * @param {object} { components, directives }\n * @returns {function} plugin install function\n */\n\nexport var installFactoryNoConfig = function installFactoryNoConfig() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n components = _ref2.components,\n directives = _ref2.directives,\n plugins = _ref2.plugins;\n\n var install = function install(Vue) {\n if (install.installed) {\n /* istanbul ignore next */\n return;\n }\n\n install.installed = true;\n checkMultipleVue(Vue);\n registerComponents(Vue, components);\n registerDirectives(Vue, directives);\n registerPlugins(Vue, plugins);\n };\n\n install.installed = false;\n return install;\n};\n/**\n * Plugin object factory function.\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactory = function pluginFactory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactory(options)\n });\n};\n/**\n * Plugin object factory function (no config option).\n * @param {object} { components, directives, plugins }\n * @returns {object} plugin install object\n */\n\nexport var pluginFactoryNoConfig = function pluginFactoryNoConfig() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var extend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return _objectSpread(_objectSpread({}, extend), {}, {\n install: installFactoryNoConfig(options)\n });\n};\n/**\n * Load a group of plugins.\n * @param {object} Vue\n * @param {object} Plugin definitions\n */\n\nexport var registerPlugins = function registerPlugins(Vue) {\n var plugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var plugin in plugins) {\n if (plugin && plugins[plugin]) {\n Vue.use(plugins[plugin]);\n }\n }\n};\n/**\n * Load a component.\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\n\nexport var registerComponent = function registerComponent(Vue, name, def) {\n if (Vue && name && def) {\n Vue.component(name, def);\n }\n};\n/**\n * Load a group of components.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\n\nexport var registerComponents = function registerComponents(Vue) {\n var components = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n};\n/**\n * Load a directive.\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\n\nexport var registerDirective = function registerDirective(Vue, name, def) {\n if (Vue && name && def) {\n // Ensure that any leading V is removed from the\n // name, as Vue adds it automatically\n Vue.directive(name.replace(/^VB/, 'B'), def);\n }\n};\n/**\n * Load a group of directives.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\n\nexport var registerDirectives = function registerDirectives(Vue) {\n var directives = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n};\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\n\nexport var vueUse = function vueUse(VuePlugin) {\n /* istanbul ignore next */\n if (HAS_WINDOW_SUPPORT && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n /* istanbul ignore next */\n\n\n if (HAS_WINDOW_SUPPORT && VuePlugin.NAME) {\n window[VuePlugin.NAME] = VuePlugin;\n }\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _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; }\n\nimport { PROP_TYPE_ANY } from '../constants/props';\nimport { cloneDeep } from './clone-deep';\nimport { getComponentConfig } from './config';\nimport { identity } from './identity';\nimport { isArray, isFunction, isObject, isUndefined } from './inspect';\nimport { clone, hasOwnProperty, keys } from './object';\nimport { lowerFirst, upperFirst } from './string'; // Prefix a property\n\nexport var prefixPropName = function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}; // Remove a prefix from a property\n\nexport var unprefixPropName = function unprefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}; // Suffix can be a falsey value so nothing is appended to string\n// (helps when looping over props & some shouldn't change)\n// Use data last parameters to allow for currying\n\nexport var suffixPropName = function suffixPropName(suffix, value) {\n return value + (suffix ? upperFirst(suffix) : '');\n}; // Generates a prop object\n\nexport var makeProp = function makeProp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : PROP_TYPE_ANY;\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var requiredOrValidator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n var validator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;\n var required = requiredOrValidator === true;\n validator = required ? validator : requiredOrValidator;\n return _objectSpread(_objectSpread(_objectSpread({}, type ? {\n type: type\n } : {}), required ? {\n required: required\n } : isUndefined(value) ? {} : {\n default: isObject(value) ? function () {\n return value;\n } : value\n }), isUndefined(validator) ? {} : {\n validator: validator\n });\n}; // Copies props from one array/object to a new array/object\n// Prop values are also cloned as new references to prevent possible\n// mutation of original prop object values\n// Optionally accepts a function to transform the prop name\n\nexport var copyProps = function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n\n var copied = {};\n\n for (var prop in props) {\n /* istanbul ignore else */\n if (hasOwnProperty(props, prop)) {\n // If the prop value is an object, do a shallow clone\n // to prevent potential mutations to the original object\n copied[transformFn(prop)] = isObject(props[prop]) ? clone(props[prop]) : props[prop];\n }\n }\n\n return copied;\n}; // Given an array of properties or an object of property keys,\n// plucks all the values off the target object, returning a new object\n// that has props that reference the original prop values\n\nexport var pluckProps = function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n memo[transformFn(prop)] = objToPluck[prop];\n return memo;\n }, {});\n}; // Make a prop object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropConfigurable = function makePropConfigurable(prop, key, componentKey) {\n return _objectSpread(_objectSpread({}, cloneDeep(prop)), {}, {\n default: function bvConfigurablePropDefault() {\n var value = getComponentConfig(componentKey, key, prop.default);\n return isFunction(value) ? value() : value;\n }\n });\n}; // Make a props object configurable by global configuration\n// Replaces the current `default` key of each prop with a `getComponentConfig()`\n// call that falls back to the current default value of the prop\n\nexport var makePropsConfigurable = function makePropsConfigurable(props, componentKey) {\n return keys(props).reduce(function (result, key) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, key, makePropConfigurable(props[key], key, componentKey)));\n }, {});\n}; // Get function name we use in `makePropConfigurable()`\n// for the prop default value override to compare\n// against in `hasPropFunction()`\n\nvar configurablePropDefaultFnName = makePropConfigurable({}, '', '').default.name; // Detect wether the given value is currently a function\n// and isn't the props default function\n\nexport var hasPropFunction = function hasPropFunction(fn) {\n return isFunction(fn) && fn.name !== configurablePropDefaultFnName;\n};","import { RX_ENCODED_COMMA, RX_ENCODE_REVERSE, RX_PLUS, RX_QUERY_START } from '../constants/regex';\nimport { isTag } from './dom';\nimport { isArray, isNull, isPlainObject, isString, isUndefined } from './inspect';\nimport { keys } from './object';\nimport { toString } from './string';\nvar ANCHOR_TAG = 'a'; // Method to replace reserved chars\n\nvar encodeReserveReplacer = function encodeReserveReplacer(c) {\n return '%' + c.charCodeAt(0).toString(16);\n}; // Fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\n\n\nvar encode = function encode(str) {\n return encodeURIComponent(toString(str)).replace(RX_ENCODE_REVERSE, encodeReserveReplacer).replace(RX_ENCODED_COMMA, ',');\n};\n\nvar decode = decodeURIComponent; // Stringifies an object of query parameters\n// See: https://github.com/vuejs/vue-router/blob/dev/src/util/query.js\n\nexport var stringifyQueryObj = function stringifyQueryObj(obj) {\n if (!isPlainObject(obj)) {\n return '';\n }\n\n var query = keys(obj).map(function (key) {\n var value = obj[key];\n\n if (isUndefined(value)) {\n return '';\n } else if (isNull(value)) {\n return encode(key);\n } else if (isArray(value)) {\n return value.reduce(function (results, value2) {\n if (isNull(value2)) {\n results.push(encode(key));\n } else if (!isUndefined(value2)) {\n // Faster than string interpolation\n results.push(encode(key) + '=' + encode(value2));\n }\n\n return results;\n }, []).join('&');\n } // Faster than string interpolation\n\n\n return encode(key) + '=' + encode(value);\n })\n /* must check for length, as we only want to filter empty strings, not things that look falsey! */\n .filter(function (x) {\n return x.length > 0;\n }).join('&');\n return query ? \"?\".concat(query) : '';\n};\nexport var parseQuery = function parseQuery(query) {\n var parsed = {};\n query = toString(query).trim().replace(RX_QUERY_START, '');\n\n if (!query) {\n return parsed;\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(RX_PLUS, ' ').split('=');\n var key = decode(parts.shift());\n var value = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (isUndefined(parsed[key])) {\n parsed[key] = value;\n } else if (isArray(parsed[key])) {\n parsed[key].push(value);\n } else {\n parsed[key] = [parsed[key], value];\n }\n });\n return parsed;\n};\nexport var isLink = function isLink(props) {\n return !!(props.href || props.to);\n};\nexport var isRouterLink = function isRouterLink(tag) {\n return !!(tag && !isTag(tag, 'a'));\n};\nexport var computeTag = function computeTag(_ref, thisOrParent) {\n var to = _ref.to,\n disabled = _ref.disabled,\n routerComponentName = _ref.routerComponentName;\n var hasRouter = !!thisOrParent.$router;\n\n if (!hasRouter || hasRouter && (disabled || !to)) {\n return ANCHOR_TAG;\n } // TODO:\n // Check registered components for existence of user supplied router link component name\n // We would need to check PascalCase, kebab-case, and camelCase versions of name:\n // const name = routerComponentName\n // const names = [name, PascalCase(name), KebabCase(name), CamelCase(name)]\n // exists = names.some(name => !!thisOrParent.$options.components[name])\n // And may want to cache the result for performance or we just let the render fail\n // if the component is not registered\n\n\n return routerComponentName || (thisOrParent.$nuxt ? 'nuxt-link' : 'router-link');\n};\nexport var computeRel = function computeRel() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n target = _ref2.target,\n rel = _ref2.rel;\n\n return target === '_blank' && isNull(rel) ? 'noopener' : rel || null;\n};\nexport var computeHref = function computeHref() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n href = _ref3.href,\n to = _ref3.to;\n\n var tag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ANCHOR_TAG;\n var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '#';\n var toFallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/';\n\n // Return `href` when explicitly provided\n if (href) {\n return href;\n } // We've checked for `$router` in `computeTag()`, so `isRouterLink()` indicates a live router\n // When deferring to Vue Router's ``, don't use the `href` attribute at all\n // We return `null`, and then remove `href` from the attributes passed to ``\n\n\n if (isRouterLink(tag)) {\n return null;\n } // Fallback to `to` prop (if `to` is a string)\n\n\n if (isString(to)) {\n return to || toFallback;\n } // Fallback to `to.path' + `to.query` + `to.hash` prop (if `to` is an object)\n\n\n if (isPlainObject(to) && (to.path || to.query || to.hash)) {\n var path = toString(to.path);\n var query = stringifyQueryObj(to.query);\n var hash = toString(to.hash);\n hash = !hash || hash.charAt(0) === '#' ? hash : \"#\".concat(hash);\n return \"\".concat(path).concat(query).concat(hash) || toFallback;\n } // If nothing is provided return the fallback\n\n\n return fallback;\n};","// String utilities\nimport { RX_HYPHENATE, RX_LOWER_UPPER, RX_REGEXP_REPLACE, RX_START_SPACE_WORD, RX_TRIM_LEFT, RX_TRIM_RIGHT, RX_UNDERSCORE, RX_UN_KEBAB } from '../constants/regex';\nimport { isArray, isPlainObject, isString, isUndefinedOrNull } from './inspect'; // --- Utilities ---\n// Converts PascalCase or camelCase to kebab-case\n\nexport var kebabCase = function kebabCase(str) {\n return str.replace(RX_HYPHENATE, '-$1').toLowerCase();\n}; // Converts a kebab-case or camelCase string to PascalCase\n\nexport var pascalCase = function pascalCase(str) {\n str = kebabCase(str).replace(RX_UN_KEBAB, function (_, c) {\n return c ? c.toUpperCase() : '';\n });\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Converts a string, including strings in camelCase or snake_case, into Start Case\n// It keeps original single quote and hyphen in the word\n// https://github.com/UrbanCompass/to-start-case\n\nexport var startCase = function startCase(str) {\n return str.replace(RX_UNDERSCORE, ' ').replace(RX_LOWER_UPPER, function (str, $1, $2) {\n return $1 + ' ' + $2;\n }).replace(RX_START_SPACE_WORD, function (str, $1, $2) {\n return $1 + $2.toUpperCase();\n });\n}; // Lowercases the first letter of a string and returns a new string\n\nexport var lowerFirst = function lowerFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n}; // Uppercases the first letter of a string and returns a new string\n\nexport var upperFirst = function upperFirst(str) {\n str = isString(str) ? str.trim() : String(str);\n return str.charAt(0).toUpperCase() + str.slice(1);\n}; // Escape characters to be used in building a regular expression\n\nexport var escapeRegExp = function escapeRegExp(str) {\n return str.replace(RX_REGEXP_REPLACE, '\\\\$&');\n}; // Convert a value to a string that can be rendered\n// `undefined`/`null` will be converted to `''`\n// Plain objects and arrays will be JSON stringified\n\nexport var toString = function toString(val) {\n var spaces = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return isUndefinedOrNull(val) ? '' : isArray(val) || isPlainObject(val) && val.toString === Object.prototype.toString ? JSON.stringify(val, null, spaces) : String(val);\n}; // Remove leading white space from a string\n\nexport var trimLeft = function trimLeft(str) {\n return toString(str).replace(RX_TRIM_LEFT, '');\n}; // Remove Trailing white space from a string\n\nexport var trimRight = function trimRight(str) {\n return toString(str).replace(RX_TRIM_RIGHT, '');\n}; // Remove leading and trailing white space from a string\n\nexport var trim = function trim(str) {\n return toString(str).trim();\n}; // Lower case a string\n\nexport var lowerCase = function lowerCase(str) {\n return toString(str).toLowerCase();\n}; // Upper case a string\n\nexport var upperCase = function upperCase(str) {\n return toString(str).toUpperCase();\n};","/**\n * Utilities to get information about the current environment\n */\nexport var getEnv = function getEnv(key) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var env = typeof process !== 'undefined' && process ? process.env || {} : {};\n\n if (!key) {\n /* istanbul ignore next */\n return env;\n }\n\n return env[key] || fallback;\n};\nexport var getNoWarn = function getNoWarn() {\n return getEnv('BOOTSTRAP_VUE_NO_WARN') || getEnv('NODE_ENV') === 'production';\n};","import { IS_BROWSER, HAS_PROMISE_SUPPORT, HAS_MUTATION_OBSERVER_SUPPORT } from '../constants/env';\nimport { getNoWarn } from './env';\n/**\n * Log a warning message to the console with BootstrapVue formatting\n * @param {string} message\n */\n\nexport var warn = function warn(message)\n/* istanbul ignore next */\n{\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (!getNoWarn()) {\n console.warn(\"[BootstrapVue warn]: \".concat(source ? \"\".concat(source, \" - \") : '').concat(message));\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNotClient = function warnNotClient(source) {\n /* istanbul ignore else */\n if (IS_BROWSER) {\n return false;\n } else {\n warn(\"\".concat(source, \": Can not be called during SSR.\"));\n return true;\n }\n};\n/**\n * Warn when no Promise support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoPromiseSupport = function warnNoPromiseSupport(source) {\n /* istanbul ignore else */\n if (HAS_PROMISE_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires Promise support.\"));\n return true;\n }\n};\n/**\n * Warn when no MutationObserver support is given\n * @param {string} source\n * @returns {boolean} warned\n */\n\nexport var warnNoMutationObserverSupport = function warnNoMutationObserverSupport(source) {\n /* istanbul ignore else */\n if (HAS_MUTATION_OBSERVER_SUPPORT) {\n return false;\n } else {\n warn(\"\".concat(source, \": Requires MutationObserver support.\"));\n return true;\n }\n};","import Vue from 'vue';\nimport { mergeData } from 'vue-functional-data-merge'; // --- Constants ---\n\nvar COMPONENT_UID_KEY = '_uid';\nexport { COMPONENT_UID_KEY, Vue, mergeData };","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n const $element = $(this._element)\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($element.is(':visible') && $element.css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval()\n\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, event => this.pause(event))\n .on(EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, e => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, event => start(event))\n $(this._element).on(EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, event => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, event => move(event))\n $(this._element).on(EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) :\n []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _updateInterval() {\n const element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n if (!element) {\n return\n }\n\n const elementInterval = parseInt(element.getAttribute('data-interval'), 10)\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = elementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n this._activeElement = nextElement\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Totally disable Popper for Dropdowns in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT) ?\n PLACEMENT_TOPEND :\n PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...(this._config.offset(data.offsets, this._element) || {})\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter(item => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.6.0'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = $.Event(EVENT_SHOW)\n\n $(this._element).trigger(showEvent)\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._clearTimeout()\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n $(this._element).trigger(EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n Util.reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._close()\n }\n\n dispose() {\n this._clearTimeout()\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, () => this.hide())\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n $(this._element).trigger(EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _clearTimeout() {\n clearTimeout(this._timeout)\n this._timeout = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/*!\n * bsCustomFileInput v1.3.4 (https://github.com/Johann-S/bs-custom-file-input)\n * Copyright 2018 - 2020 Johann-S \n * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.bsCustomFileInput = factory());\n}(this, (function () { 'use strict';\n\n var Selector = {\n CUSTOMFILE: '.custom-file input[type=\"file\"]',\n CUSTOMFILELABEL: '.custom-file-label',\n FORM: 'form',\n INPUT: 'input'\n };\n\n var textNodeType = 3;\n\n var getDefaultText = function getDefaultText(input) {\n var defaultText = '';\n var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n if (label) {\n defaultText = label.textContent;\n }\n\n return defaultText;\n };\n\n var findFirstChildNode = function findFirstChildNode(element) {\n if (element.childNodes.length > 0) {\n var childNodes = [].slice.call(element.childNodes);\n\n for (var i = 0; i < childNodes.length; i++) {\n var node = childNodes[i];\n\n if (node.nodeType !== textNodeType) {\n return node;\n }\n }\n }\n\n return element;\n };\n\n var restoreDefaultText = function restoreDefaultText(input) {\n var defaultText = input.bsCustomFileInput.defaultText;\n var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n if (label) {\n var element = findFirstChildNode(label);\n element.textContent = defaultText;\n }\n };\n\n var fileApi = !!window.File;\n var FAKE_PATH = 'fakepath';\n var FAKE_PATH_SEPARATOR = '\\\\';\n\n var getSelectedFiles = function getSelectedFiles(input) {\n if (input.hasAttribute('multiple') && fileApi) {\n return [].slice.call(input.files).map(function (file) {\n return file.name;\n }).join(', ');\n }\n\n if (input.value.indexOf(FAKE_PATH) !== -1) {\n var splittedValue = input.value.split(FAKE_PATH_SEPARATOR);\n return splittedValue[splittedValue.length - 1];\n }\n\n return input.value;\n };\n\n function handleInputChange() {\n var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL);\n\n if (label) {\n var element = findFirstChildNode(label);\n var inputValue = getSelectedFiles(this);\n\n if (inputValue.length) {\n element.textContent = inputValue;\n } else {\n restoreDefaultText(this);\n }\n }\n }\n\n function handleFormReset() {\n var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) {\n return !!input.bsCustomFileInput;\n });\n\n for (var i = 0, len = customFileList.length; i < len; i++) {\n restoreDefaultText(customFileList[i]);\n }\n }\n\n var customProperty = 'bsCustomFileInput';\n var Event = {\n FORMRESET: 'reset',\n INPUTCHANGE: 'change'\n };\n var bsCustomFileInput = {\n init: function init(inputSelector, formSelector) {\n if (inputSelector === void 0) {\n inputSelector = Selector.CUSTOMFILE;\n }\n\n if (formSelector === void 0) {\n formSelector = Selector.FORM;\n }\n\n var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector));\n var formList = [].slice.call(document.querySelectorAll(formSelector));\n\n for (var i = 0, len = customFileInputList.length; i < len; i++) {\n var input = customFileInputList[i];\n Object.defineProperty(input, customProperty, {\n value: {\n defaultText: getDefaultText(input)\n },\n writable: true\n });\n handleInputChange.call(input);\n input.addEventListener(Event.INPUTCHANGE, handleInputChange);\n }\n\n for (var _i = 0, _len = formList.length; _i < _len; _i++) {\n formList[_i].addEventListener(Event.FORMRESET, handleFormReset);\n\n Object.defineProperty(formList[_i], customProperty, {\n value: true,\n writable: true\n });\n }\n },\n destroy: function destroy() {\n var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) {\n return !!form.bsCustomFileInput;\n });\n var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) {\n return !!input.bsCustomFileInput;\n });\n\n for (var i = 0, len = customFileInputList.length; i < len; i++) {\n var input = customFileInputList[i];\n restoreDefaultText(input);\n input[customProperty] = undefined;\n input.removeEventListener(Event.INPUTCHANGE, handleInputChange);\n }\n\n for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) {\n formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset);\n\n formList[_i2][customProperty] = undefined;\n }\n }\n };\n\n return bsCustomFileInput;\n\n})));\n//# sourceMappingURL=bs-custom-file-input.js.map\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name parseJSON\n * @category Common Helpers\n * @summary Parse a JSON date string\n *\n * @description\n * Converts a complete ISO date string in UTC time, the typical format for transmitting\n * a date in JSON, to a JavaScript `Date` instance.\n *\n * This is a minimal implementation for converting dates retrieved from a JSON API to\n * a `Date` instance which can be used with other functions in the `date-fns` library.\n * The following formats are supported:\n *\n * - `2000-03-15T05:20:10.123Z`: The output of `.toISOString()` and `JSON.stringify(new Date())`\n * - `2000-03-15T05:20:10Z`: Without milliseconds\n * - `2000-03-15T05:20:10+00:00`: With a zero offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+05:45`: With a positive or negative offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+0000`: With a zero offset without a colon\n * - `2000-03-15T05:20:10`: Without a trailing 'Z' symbol\n * - `2000-03-15T05:20:10.1234567`: Up to 7 digits in milliseconds field. Only first 3 are taken into account since JS does not allow fractional milliseconds\n * - `2000-03-15 05:20:10`: With a space instead of a 'T' separator for APIs returning a SQL date without reformatting\n *\n * For convenience and ease of use these other input types are also supported\n * via [toDate]{@link https://date-fns.org/docs/toDate}:\n *\n * - A `Date` instance will be cloned\n * - A `number` will be treated as a timestamp\n *\n * Any other input type or invalid date strings will return an `Invalid Date`.\n *\n * @param {String|Number|Date} argument A fully formed ISO8601 date string to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n */\n\nexport default function parseJSON(argument) {\n requiredArgs(1, arguments);\n\n if (typeof argument === 'string') {\n var parts = argument.match(/(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:Z|(.)(\\d{2}):?(\\d{2})?)?/);\n\n if (parts) {\n // Group 8 matches the sign\n return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4] - (+parts[9] || 0) * (parts[8] == '-' ? -1 : 1), +parts[5] - (+parts[10] || 0) * (parts[8] == '-' ? -1 : 1), +parts[6], +((parts[7] || '0') + '00').substring(0, 3)));\n }\n\n return new Date(NaN);\n }\n\n return toDate(argument);\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","const FuzzySet = function(arr, useLevenshtein, gramSizeLower, gramSizeUpper) {\n var fuzzyset = {\n\n };\n\n // default options\n arr = arr || [];\n fuzzyset.gramSizeLower = gramSizeLower || 2;\n fuzzyset.gramSizeUpper = gramSizeUpper || 3;\n fuzzyset.useLevenshtein = (typeof useLevenshtein !== 'boolean') ? true : useLevenshtein;\n\n // define all the object functions and attributes\n fuzzyset.exactSet = {};\n fuzzyset.matchDict = {};\n fuzzyset.items = {};\n\n // helper functions\n var levenshtein = function(str1, str2) {\n var current = [], prev, value;\n\n for (var i = 0; i <= str2.length; i++)\n for (var j = 0; j <= str1.length; j++) {\n if (i && j)\n if (str1.charAt(j - 1) === str2.charAt(i - 1))\n value = prev;\n else\n value = Math.min(current[j], current[j - 1], prev) + 1;\n else\n value = i + j;\n\n prev = current[j];\n current[j] = value;\n }\n\n return current.pop();\n };\n\n // return an edit distance from 0 to 1\n var _distance = function(str1, str2) {\n if (str1 === null && str2 === null) throw 'Trying to compare two null values';\n if (str1 === null || str2 === null) return 0;\n str1 = String(str1); str2 = String(str2);\n\n var distance = levenshtein(str1, str2);\n if (str1.length > str2.length) {\n return 1 - distance / str1.length;\n } else {\n return 1 - distance / str2.length;\n }\n };\n\n // u00C0-u00FF is latin characters\n // u0621-u064a is arabic letters\n // u0660-u0669 is arabic numerals\n // TODO: figure out way to do this for more languages\n var _nonWordRe = /[^a-zA-Z0-9\\u00C0-\\u00FF\\u0621-\\u064A\\u0660-\\u0669, ]+/g;\n\n var _iterateGrams = function(value, gramSize) {\n gramSize = gramSize || 2;\n var simplified = '-' + value.toLowerCase().replace(_nonWordRe, '') + '-',\n lenDiff = gramSize - simplified.length,\n results = [];\n if (lenDiff > 0) {\n for (var i = 0; i < lenDiff; ++i) {\n simplified += '-';\n }\n }\n for (var i = 0; i < simplified.length - gramSize + 1; ++i) {\n results.push(simplified.slice(i, i + gramSize));\n }\n return results;\n };\n\n var _gramCounter = function(value, gramSize) {\n // return an object where key=gram, value=number of occurrences\n gramSize = gramSize || 2;\n var result = {},\n grams = _iterateGrams(value, gramSize),\n i = 0;\n for (i; i < grams.length; ++i) {\n if (grams[i] in result) {\n result[grams[i]] += 1;\n } else {\n result[grams[i]] = 1;\n }\n }\n return result;\n };\n\n // the main functions\n fuzzyset.get = function(value, defaultValue, minMatchScore) {\n // check for value in set, returning defaultValue or null if none found\n if (minMatchScore === undefined) {\n minMatchScore = .33;\n }\n var result = this._get(value, minMatchScore);\n if (!result && typeof defaultValue !== 'undefined') {\n return defaultValue;\n }\n return result;\n };\n\n fuzzyset._get = function(value, minMatchScore) {\n var results = [];\n // start with high gram size and if there are no results, go to lower gram sizes\n for (var gramSize = this.gramSizeUpper; gramSize >= this.gramSizeLower; --gramSize) {\n results = this.__get(value, gramSize, minMatchScore);\n if (results && results.length > 0) {\n return results;\n }\n }\n return null;\n };\n\n fuzzyset.__get = function(value, gramSize, minMatchScore) {\n var normalizedValue = this._normalizeStr(value),\n matches = {},\n gramCounts = _gramCounter(normalizedValue, gramSize),\n items = this.items[gramSize],\n sumOfSquareGramCounts = 0,\n gram,\n gramCount,\n i,\n index,\n otherGramCount;\n\n for (gram in gramCounts) {\n gramCount = gramCounts[gram];\n sumOfSquareGramCounts += Math.pow(gramCount, 2);\n if (gram in this.matchDict) {\n for (i = 0; i < this.matchDict[gram].length; ++i) {\n index = this.matchDict[gram][i][0];\n otherGramCount = this.matchDict[gram][i][1];\n if (index in matches) {\n matches[index] += gramCount * otherGramCount;\n } else {\n matches[index] = gramCount * otherGramCount;\n }\n }\n }\n }\n\n function isEmptyObject(obj) {\n for(var prop in obj) {\n if(obj.hasOwnProperty(prop))\n return false;\n }\n return true;\n }\n\n if (isEmptyObject(matches)) {\n return null;\n }\n\n var vectorNormal = Math.sqrt(sumOfSquareGramCounts),\n results = [],\n matchScore;\n // build a results list of [score, str]\n for (var matchIndex in matches) {\n matchScore = matches[matchIndex];\n results.push([matchScore / (vectorNormal * items[matchIndex][0]), items[matchIndex][1]]);\n }\n var sortDescending = function(a, b) {\n if (a[0] < b[0]) {\n return 1;\n } else if (a[0] > b[0]) {\n return -1;\n } else {\n return 0;\n }\n };\n results.sort(sortDescending);\n if (this.useLevenshtein) {\n var newResults = [],\n endIndex = Math.min(50, results.length);\n // truncate somewhat arbitrarily to 50\n for (var i = 0; i < endIndex; ++i) {\n newResults.push([_distance(results[i][1], normalizedValue), results[i][1]]);\n }\n results = newResults;\n results.sort(sortDescending);\n }\n newResults = [];\n results.forEach(function(scoreWordPair) {\n if (scoreWordPair[0] >= minMatchScore) {\n newResults.push([scoreWordPair[0], this.exactSet[scoreWordPair[1]]]);\n }\n }.bind(this));\n return newResults;\n };\n\n fuzzyset.add = function(value) {\n var normalizedValue = this._normalizeStr(value);\n if (normalizedValue in this.exactSet) {\n return false;\n }\n\n var i = this.gramSizeLower;\n for (i; i < this.gramSizeUpper + 1; ++i) {\n this._add(value, i);\n }\n };\n\n fuzzyset._add = function(value, gramSize) {\n var normalizedValue = this._normalizeStr(value),\n items = this.items[gramSize] || [],\n index = items.length;\n\n items.push(0);\n var gramCounts = _gramCounter(normalizedValue, gramSize),\n sumOfSquareGramCounts = 0,\n gram, gramCount;\n for (gram in gramCounts) {\n gramCount = gramCounts[gram];\n sumOfSquareGramCounts += Math.pow(gramCount, 2);\n if (gram in this.matchDict) {\n this.matchDict[gram].push([index, gramCount]);\n } else {\n this.matchDict[gram] = [[index, gramCount]];\n }\n }\n var vectorNormal = Math.sqrt(sumOfSquareGramCounts);\n items[index] = [vectorNormal, normalizedValue];\n this.items[gramSize] = items;\n this.exactSet[normalizedValue] = value;\n };\n\n fuzzyset._normalizeStr = function(str) {\n if (Object.prototype.toString.call(str) !== '[object String]') throw 'Must use a string as argument to FuzzySet functions';\n return str.toLowerCase();\n };\n\n // return length of items in set\n fuzzyset.length = function() {\n var count = 0,\n prop;\n for (prop in this.exactSet) {\n if (this.exactSet.hasOwnProperty(prop)) {\n count += 1;\n }\n }\n return count;\n };\n\n // return is set is empty\n fuzzyset.isEmpty = function() {\n for (var prop in this.exactSet) {\n if (this.exactSet.hasOwnProperty(prop)) {\n return false;\n }\n }\n return true;\n };\n\n // return list of values loaded into set\n fuzzyset.values = function() {\n var values = [],\n prop;\n for (prop in this.exactSet) {\n if (this.exactSet.hasOwnProperty(prop)) {\n values.push(this.exactSet[prop]);\n }\n }\n return values;\n };\n\n\n // initialization\n var i = fuzzyset.gramSizeLower;\n for (i; i < fuzzyset.gramSizeUpper + 1; ++i) {\n fuzzyset.items[i] = [];\n }\n // add all the items to the set\n for (i = 0; i < arr.length; ++i) {\n fuzzyset.add(arr[i]);\n }\n\n return fuzzyset;\n};\n\nexport default FuzzySet;\n","/*!\n * jQuery UI :data 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: :data Selector\n//>>group: Core\n//>>description: Selects elements which have data stored under the specified key.\n//>>docs: http://api.jqueryui.com/data-selector/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.extend( $.expr.pseudos, {\n\tdata: $.expr.createPseudo ?\n\t\t$.expr.createPseudo( function( dataName ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn !!$.data( elem, dataName );\n\t\t\t};\n\t\t} ) :\n\n\t\t// Support: jQuery <1.8\n\t\tfunction( elem, i, match ) {\n\t\t\treturn !!$.data( elem, match[ 3 ] );\n\t\t}\n} );\n} );\n","/*!\n * jQuery UI Disable Selection 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: disableSelection\n//>>group: Core\n//>>description: Disable selection of text content within the set of matched elements.\n//>>docs: http://api.jqueryui.com/disableSelection/\n\n// This file is deprecated\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.fn.extend( {\n\tdisableSelection: ( function() {\n\t\tvar eventType = \"onselectstart\" in document.createElement( \"div\" ) ?\n\t\t\t\"selectstart\" :\n\t\t\t\"mousedown\";\n\n\t\treturn function() {\n\t\t\treturn this.on( eventType + \".ui-disableSelection\", function( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t} );\n\t\t};\n\t} )(),\n\n\tenableSelection: function() {\n\t\treturn this.off( \".ui-disableSelection\" );\n\t}\n} );\n\n} );\n","( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n// This file is deprecated\nreturn $.ui.ie = !!/msie [\\w.]+/.exec( navigator.userAgent.toLowerCase() );\n} );\n","/*!\n * jQuery UI Scroll Parent 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: scrollParent\n//>>group: Core\n//>>description: Get the closest ancestor element that is scrollable.\n//>>docs: http://api.jqueryui.com/scrollParent/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.fn.scrollParent = function( includeHidden ) {\n\tvar position = this.css( \"position\" ),\n\t\texcludeStaticParent = position === \"absolute\",\n\t\toverflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,\n\t\tscrollParent = this.parents().filter( function() {\n\t\t\tvar parent = $( this );\n\t\t\tif ( excludeStaticParent && parent.css( \"position\" ) === \"static\" ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn overflowRegex.test( parent.css( \"overflow\" ) + parent.css( \"overflow-y\" ) +\n\t\t\t\tparent.css( \"overflow-x\" ) );\n\t\t} ).eq( 0 );\n\n\treturn position === \"fixed\" || !scrollParent.length ?\n\t\t$( this[ 0 ].ownerDocument || document ) :\n\t\tscrollParent;\n};\n\n} );\n","( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\n$.ui = $.ui || {};\n\nreturn $.ui.version = \"1.13.2\";\n\n} );\n","/*!\n * jQuery UI Widget 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: http://api.jqueryui.com/jQuery.widget/\n//>>demos: http://jqueryui.com/widget/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [ \"jquery\", \"./version\" ], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nvar widgetUuid = 0;\nvar widgetHasOwnProperty = Array.prototype.hasOwnProperty;\nvar widgetSlice = Array.prototype.slice;\n\n$.cleanData = ( function( orig ) {\n\treturn function( elems ) {\n\t\tvar events, elem, i;\n\t\tfor ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {\n\n\t\t\t// Only trigger remove when necessary to save time\n\t\t\tevents = $._data( elem, \"events\" );\n\t\t\tif ( events && events.remove ) {\n\t\t\t\t$( elem ).triggerHandler( \"remove\" );\n\t\t\t}\n\t\t}\n\t\torig( elems );\n\t};\n} )( $.cleanData );\n\n$.widget = function( name, base, prototype ) {\n\tvar existingConstructor, constructor, basePrototype;\n\n\t// ProxiedPrototype allows the provided prototype to remain unmodified\n\t// so that it can be used as a mixin for multiple widgets (#8876)\n\tvar proxiedPrototype = {};\n\n\tvar namespace = name.split( \".\" )[ 0 ];\n\tname = name.split( \".\" )[ 1 ];\n\tvar fullName = namespace + \"-\" + name;\n\n\tif ( !prototype ) {\n\t\tprototype = base;\n\t\tbase = $.Widget;\n\t}\n\n\tif ( Array.isArray( prototype ) ) {\n\t\tprototype = $.extend.apply( null, [ {} ].concat( prototype ) );\n\t}\n\n\t// Create selector for plugin\n\t$.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) {\n\t\treturn !!$.data( elem, fullName );\n\t};\n\n\t$[ namespace ] = $[ namespace ] || {};\n\texistingConstructor = $[ namespace ][ name ];\n\tconstructor = $[ namespace ][ name ] = function( options, element ) {\n\n\t\t// Allow instantiation without \"new\" keyword\n\t\tif ( !this || !this._createWidget ) {\n\t\t\treturn new constructor( options, element );\n\t\t}\n\n\t\t// Allow instantiation without initializing for simple inheritance\n\t\t// must use \"new\" keyword (the code above always passes args)\n\t\tif ( arguments.length ) {\n\t\t\tthis._createWidget( options, element );\n\t\t}\n\t};\n\n\t// Extend with the existing constructor to carry over any static properties\n\t$.extend( constructor, existingConstructor, {\n\t\tversion: prototype.version,\n\n\t\t// Copy the object used to create the prototype in case we need to\n\t\t// redefine the widget later\n\t\t_proto: $.extend( {}, prototype ),\n\n\t\t// Track widgets that inherit from this widget in case this widget is\n\t\t// redefined after a widget inherits from it\n\t\t_childConstructors: []\n\t} );\n\n\tbasePrototype = new base();\n\n\t// We need to make the options hash a property directly on the new instance\n\t// otherwise we'll modify the options hash on the prototype that we're\n\t// inheriting from\n\tbasePrototype.options = $.widget.extend( {}, basePrototype.options );\n\t$.each( prototype, function( prop, value ) {\n\t\tif ( typeof value !== \"function\" ) {\n\t\t\tproxiedPrototype[ prop ] = value;\n\t\t\treturn;\n\t\t}\n\t\tproxiedPrototype[ prop ] = ( function() {\n\t\t\tfunction _super() {\n\t\t\t\treturn base.prototype[ prop ].apply( this, arguments );\n\t\t\t}\n\n\t\t\tfunction _superApply( args ) {\n\t\t\t\treturn base.prototype[ prop ].apply( this, args );\n\t\t\t}\n\n\t\t\treturn function() {\n\t\t\t\tvar __super = this._super;\n\t\t\t\tvar __superApply = this._superApply;\n\t\t\t\tvar returnValue;\n\n\t\t\t\tthis._super = _super;\n\t\t\t\tthis._superApply = _superApply;\n\n\t\t\t\treturnValue = value.apply( this, arguments );\n\n\t\t\t\tthis._super = __super;\n\t\t\t\tthis._superApply = __superApply;\n\n\t\t\t\treturn returnValue;\n\t\t\t};\n\t\t} )();\n\t} );\n\tconstructor.prototype = $.widget.extend( basePrototype, {\n\n\t\t// TODO: remove support for widgetEventPrefix\n\t\t// always use the name + a colon as the prefix, e.g., draggable:start\n\t\t// don't prefix for widgets that aren't DOM-based\n\t\twidgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name\n\t}, proxiedPrototype, {\n\t\tconstructor: constructor,\n\t\tnamespace: namespace,\n\t\twidgetName: name,\n\t\twidgetFullName: fullName\n\t} );\n\n\t// If this widget is being redefined then we need to find all widgets that\n\t// are inheriting from it and redefine all of them so that they inherit from\n\t// the new version of this widget. We're essentially trying to replace one\n\t// level in the prototype chain.\n\tif ( existingConstructor ) {\n\t\t$.each( existingConstructor._childConstructors, function( i, child ) {\n\t\t\tvar childPrototype = child.prototype;\n\n\t\t\t// Redefine the child widget using the same prototype that was\n\t\t\t// originally used, but inherit from the new version of the base\n\t\t\t$.widget( childPrototype.namespace + \".\" + childPrototype.widgetName, constructor,\n\t\t\t\tchild._proto );\n\t\t} );\n\n\t\t// Remove the list of existing child constructors from the old constructor\n\t\t// so the old child constructors can be garbage collected\n\t\tdelete existingConstructor._childConstructors;\n\t} else {\n\t\tbase._childConstructors.push( constructor );\n\t}\n\n\t$.widget.bridge( name, constructor );\n\n\treturn constructor;\n};\n\n$.widget.extend = function( target ) {\n\tvar input = widgetSlice.call( arguments, 1 );\n\tvar inputIndex = 0;\n\tvar inputLength = input.length;\n\tvar key;\n\tvar value;\n\n\tfor ( ; inputIndex < inputLength; inputIndex++ ) {\n\t\tfor ( key in input[ inputIndex ] ) {\n\t\t\tvalue = input[ inputIndex ][ key ];\n\t\t\tif ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) {\n\n\t\t\t\t// Clone objects\n\t\t\t\tif ( $.isPlainObject( value ) ) {\n\t\t\t\t\ttarget[ key ] = $.isPlainObject( target[ key ] ) ?\n\t\t\t\t\t\t$.widget.extend( {}, target[ key ], value ) :\n\n\t\t\t\t\t\t// Don't extend strings, arrays, etc. with objects\n\t\t\t\t\t\t$.widget.extend( {}, value );\n\n\t\t\t\t// Copy everything else by reference\n\t\t\t\t} else {\n\t\t\t\t\ttarget[ key ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn target;\n};\n\n$.widget.bridge = function( name, object ) {\n\tvar fullName = object.prototype.widgetFullName || name;\n\t$.fn[ name ] = function( options ) {\n\t\tvar isMethodCall = typeof options === \"string\";\n\t\tvar args = widgetSlice.call( arguments, 1 );\n\t\tvar returnValue = this;\n\n\t\tif ( isMethodCall ) {\n\n\t\t\t// If this is an empty collection, we need to have the instance method\n\t\t\t// return undefined instead of the jQuery instance\n\t\t\tif ( !this.length && options === \"instance\" ) {\n\t\t\t\treturnValue = undefined;\n\t\t\t} else {\n\t\t\t\tthis.each( function() {\n\t\t\t\t\tvar methodValue;\n\t\t\t\t\tvar instance = $.data( this, fullName );\n\n\t\t\t\t\tif ( options === \"instance\" ) {\n\t\t\t\t\t\treturnValue = instance;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !instance ) {\n\t\t\t\t\t\treturn $.error( \"cannot call methods on \" + name +\n\t\t\t\t\t\t\t\" prior to initialization; \" +\n\t\t\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof instance[ options ] !== \"function\" ||\n\t\t\t\t\t\toptions.charAt( 0 ) === \"_\" ) {\n\t\t\t\t\t\treturn $.error( \"no such method '\" + options + \"' for \" + name +\n\t\t\t\t\t\t\t\" widget instance\" );\n\t\t\t\t\t}\n\n\t\t\t\t\tmethodValue = instance[ options ].apply( instance, args );\n\n\t\t\t\t\tif ( methodValue !== instance && methodValue !== undefined ) {\n\t\t\t\t\t\treturnValue = methodValue && methodValue.jquery ?\n\t\t\t\t\t\t\treturnValue.pushStack( methodValue.get() ) :\n\t\t\t\t\t\t\tmethodValue;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// Allow multiple hashes to be passed on init\n\t\t\tif ( args.length ) {\n\t\t\t\toptions = $.widget.extend.apply( null, [ options ].concat( args ) );\n\t\t\t}\n\n\t\t\tthis.each( function() {\n\t\t\t\tvar instance = $.data( this, fullName );\n\t\t\t\tif ( instance ) {\n\t\t\t\t\tinstance.option( options || {} );\n\t\t\t\t\tif ( instance._init ) {\n\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.data( this, fullName, new object( options, this ) );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn returnValue;\n\t};\n};\n\n$.Widget = function( /* options, element */ ) {};\n$.Widget._childConstructors = [];\n\n$.Widget.prototype = {\n\twidgetName: \"widget\",\n\twidgetEventPrefix: \"\",\n\tdefaultElement: \"
\",\n\n\toptions: {\n\t\tclasses: {},\n\t\tdisabled: false,\n\n\t\t// Callbacks\n\t\tcreate: null\n\t},\n\n\t_createWidget: function( options, element ) {\n\t\telement = $( element || this.defaultElement || this )[ 0 ];\n\t\tthis.element = $( element );\n\t\tthis.uuid = widgetUuid++;\n\t\tthis.eventNamespace = \".\" + this.widgetName + this.uuid;\n\n\t\tthis.bindings = $();\n\t\tthis.hoverable = $();\n\t\tthis.focusable = $();\n\t\tthis.classesElementLookup = {};\n\n\t\tif ( element !== this ) {\n\t\t\t$.data( element, this.widgetFullName, this );\n\t\t\tthis._on( true, this.element, {\n\t\t\t\tremove: function( event ) {\n\t\t\t\t\tif ( event.target === element ) {\n\t\t\t\t\t\tthis.destroy();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.document = $( element.style ?\n\n\t\t\t\t// Element within the document\n\t\t\t\telement.ownerDocument :\n\n\t\t\t\t// Element is window or document\n\t\t\t\telement.document || element );\n\t\t\tthis.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );\n\t\t}\n\n\t\tthis.options = $.widget.extend( {},\n\t\t\tthis.options,\n\t\t\tthis._getCreateOptions(),\n\t\t\toptions );\n\n\t\tthis._create();\n\n\t\tif ( this.options.disabled ) {\n\t\t\tthis._setOptionDisabled( this.options.disabled );\n\t\t}\n\n\t\tthis._trigger( \"create\", null, this._getCreateEventData() );\n\t\tthis._init();\n\t},\n\n\t_getCreateOptions: function() {\n\t\treturn {};\n\t},\n\n\t_getCreateEventData: $.noop,\n\n\t_create: $.noop,\n\n\t_init: $.noop,\n\n\tdestroy: function() {\n\t\tvar that = this;\n\n\t\tthis._destroy();\n\t\t$.each( this.classesElementLookup, function( key, value ) {\n\t\t\tthat._removeClass( value, key );\n\t\t} );\n\n\t\t// We can probably remove the unbind calls in 2.0\n\t\t// all event bindings should go through this._on()\n\t\tthis.element\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeData( this.widgetFullName );\n\t\tthis.widget()\n\t\t\t.off( this.eventNamespace )\n\t\t\t.removeAttr( \"aria-disabled\" );\n\n\t\t// Clean up events and states\n\t\tthis.bindings.off( this.eventNamespace );\n\t},\n\n\t_destroy: $.noop,\n\n\twidget: function() {\n\t\treturn this.element;\n\t},\n\n\toption: function( key, value ) {\n\t\tvar options = key;\n\t\tvar parts;\n\t\tvar curOption;\n\t\tvar i;\n\n\t\tif ( arguments.length === 0 ) {\n\n\t\t\t// Don't return a reference to the internal hash\n\t\t\treturn $.widget.extend( {}, this.options );\n\t\t}\n\n\t\tif ( typeof key === \"string\" ) {\n\n\t\t\t// Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n\t\t\toptions = {};\n\t\t\tparts = key.split( \".\" );\n\t\t\tkey = parts.shift();\n\t\t\tif ( parts.length ) {\n\t\t\t\tcurOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );\n\t\t\t\tfor ( i = 0; i < parts.length - 1; i++ ) {\n\t\t\t\t\tcurOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};\n\t\t\t\t\tcurOption = curOption[ parts[ i ] ];\n\t\t\t\t}\n\t\t\t\tkey = parts.pop();\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn curOption[ key ] === undefined ? null : curOption[ key ];\n\t\t\t\t}\n\t\t\t\tcurOption[ key ] = value;\n\t\t\t} else {\n\t\t\t\tif ( arguments.length === 1 ) {\n\t\t\t\t\treturn this.options[ key ] === undefined ? null : this.options[ key ];\n\t\t\t\t}\n\t\t\t\toptions[ key ] = value;\n\t\t\t}\n\t\t}\n\n\t\tthis._setOptions( options );\n\n\t\treturn this;\n\t},\n\n\t_setOptions: function( options ) {\n\t\tvar key;\n\n\t\tfor ( key in options ) {\n\t\t\tthis._setOption( key, options[ key ] );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tif ( key === \"classes\" ) {\n\t\t\tthis._setOptionClasses( value );\n\t\t}\n\n\t\tthis.options[ key ] = value;\n\n\t\tif ( key === \"disabled\" ) {\n\t\t\tthis._setOptionDisabled( value );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_setOptionClasses: function( value ) {\n\t\tvar classKey, elements, currentElements;\n\n\t\tfor ( classKey in value ) {\n\t\t\tcurrentElements = this.classesElementLookup[ classKey ];\n\t\t\tif ( value[ classKey ] === this.options.classes[ classKey ] ||\n\t\t\t\t\t!currentElements ||\n\t\t\t\t\t!currentElements.length ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// We are doing this to create a new jQuery object because the _removeClass() call\n\t\t\t// on the next line is going to destroy the reference to the current elements being\n\t\t\t// tracked. We need to save a copy of this collection so that we can add the new classes\n\t\t\t// below.\n\t\t\telements = $( currentElements.get() );\n\t\t\tthis._removeClass( currentElements, classKey );\n\n\t\t\t// We don't use _addClass() here, because that uses this.options.classes\n\t\t\t// for generating the string of classes. We want to use the value passed in from\n\t\t\t// _setOption(), this is the new value of the classes option which was passed to\n\t\t\t// _setOption(). We pass this value directly to _classes().\n\t\t\telements.addClass( this._classes( {\n\t\t\t\telement: elements,\n\t\t\t\tkeys: classKey,\n\t\t\t\tclasses: value,\n\t\t\t\tadd: true\n\t\t\t} ) );\n\t\t}\n\t},\n\n\t_setOptionDisabled: function( value ) {\n\t\tthis._toggleClass( this.widget(), this.widgetFullName + \"-disabled\", null, !!value );\n\n\t\t// If the widget is becoming disabled, then nothing is interactive\n\t\tif ( value ) {\n\t\t\tthis._removeClass( this.hoverable, null, \"ui-state-hover\" );\n\t\t\tthis._removeClass( this.focusable, null, \"ui-state-focus\" );\n\t\t}\n\t},\n\n\tenable: function() {\n\t\treturn this._setOptions( { disabled: false } );\n\t},\n\n\tdisable: function() {\n\t\treturn this._setOptions( { disabled: true } );\n\t},\n\n\t_classes: function( options ) {\n\t\tvar full = [];\n\t\tvar that = this;\n\n\t\toptions = $.extend( {\n\t\t\telement: this.element,\n\t\t\tclasses: this.options.classes || {}\n\t\t}, options );\n\n\t\tfunction bindRemoveEvent() {\n\t\t\tvar nodesToBind = [];\n\n\t\t\toptions.element.each( function( _, element ) {\n\t\t\t\tvar isTracked = $.map( that.classesElementLookup, function( elements ) {\n\t\t\t\t\treturn elements;\n\t\t\t\t} )\n\t\t\t\t\t.some( function( elements ) {\n\t\t\t\t\t\treturn elements.is( element );\n\t\t\t\t\t} );\n\n\t\t\t\tif ( !isTracked ) {\n\t\t\t\t\tnodesToBind.push( element );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthat._on( $( nodesToBind ), {\n\t\t\t\tremove: \"_untrackClassesElement\"\n\t\t\t} );\n\t\t}\n\n\t\tfunction processClassString( classes, checkOption ) {\n\t\t\tvar current, i;\n\t\t\tfor ( i = 0; i < classes.length; i++ ) {\n\t\t\t\tcurrent = that.classesElementLookup[ classes[ i ] ] || $();\n\t\t\t\tif ( options.add ) {\n\t\t\t\t\tbindRemoveEvent();\n\t\t\t\t\tcurrent = $( $.uniqueSort( current.get().concat( options.element.get() ) ) );\n\t\t\t\t} else {\n\t\t\t\t\tcurrent = $( current.not( options.element ).get() );\n\t\t\t\t}\n\t\t\t\tthat.classesElementLookup[ classes[ i ] ] = current;\n\t\t\t\tfull.push( classes[ i ] );\n\t\t\t\tif ( checkOption && options.classes[ classes[ i ] ] ) {\n\t\t\t\t\tfull.push( options.classes[ classes[ i ] ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( options.keys ) {\n\t\t\tprocessClassString( options.keys.match( /\\S+/g ) || [], true );\n\t\t}\n\t\tif ( options.extra ) {\n\t\t\tprocessClassString( options.extra.match( /\\S+/g ) || [] );\n\t\t}\n\n\t\treturn full.join( \" \" );\n\t},\n\n\t_untrackClassesElement: function( event ) {\n\t\tvar that = this;\n\t\t$.each( that.classesElementLookup, function( key, value ) {\n\t\t\tif ( $.inArray( event.target, value ) !== -1 ) {\n\t\t\t\tthat.classesElementLookup[ key ] = $( value.not( event.target ).get() );\n\t\t\t}\n\t\t} );\n\n\t\tthis._off( $( event.target ) );\n\t},\n\n\t_removeClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, false );\n\t},\n\n\t_addClass: function( element, keys, extra ) {\n\t\treturn this._toggleClass( element, keys, extra, true );\n\t},\n\n\t_toggleClass: function( element, keys, extra, add ) {\n\t\tadd = ( typeof add === \"boolean\" ) ? add : extra;\n\t\tvar shift = ( typeof element === \"string\" || element === null ),\n\t\t\toptions = {\n\t\t\t\textra: shift ? keys : extra,\n\t\t\t\tkeys: shift ? element : keys,\n\t\t\t\telement: shift ? this.element : element,\n\t\t\t\tadd: add\n\t\t\t};\n\t\toptions.element.toggleClass( this._classes( options ), add );\n\t\treturn this;\n\t},\n\n\t_on: function( suppressDisabledCheck, element, handlers ) {\n\t\tvar delegateElement;\n\t\tvar instance = this;\n\n\t\t// No suppressDisabledCheck flag, shuffle arguments\n\t\tif ( typeof suppressDisabledCheck !== \"boolean\" ) {\n\t\t\thandlers = element;\n\t\t\telement = suppressDisabledCheck;\n\t\t\tsuppressDisabledCheck = false;\n\t\t}\n\n\t\t// No element argument, shuffle and use this.element\n\t\tif ( !handlers ) {\n\t\t\thandlers = element;\n\t\t\telement = this.element;\n\t\t\tdelegateElement = this.widget();\n\t\t} else {\n\t\t\telement = delegateElement = $( element );\n\t\t\tthis.bindings = this.bindings.add( element );\n\t\t}\n\n\t\t$.each( handlers, function( event, handler ) {\n\t\t\tfunction handlerProxy() {\n\n\t\t\t\t// Allow widgets to customize the disabled handling\n\t\t\t\t// - disabled as an array instead of boolean\n\t\t\t\t// - disabled class as method for disabling individual parts\n\t\t\t\tif ( !suppressDisabledCheck &&\n\t\t\t\t\t\t( instance.options.disabled === true ||\n\t\t\t\t\t\t$( this ).hasClass( \"ui-state-disabled\" ) ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t\t.apply( instance, arguments );\n\t\t\t}\n\n\t\t\t// Copy the guid so direct unbinding works\n\t\t\tif ( typeof handler !== \"string\" ) {\n\t\t\t\thandlerProxy.guid = handler.guid =\n\t\t\t\t\thandler.guid || handlerProxy.guid || $.guid++;\n\t\t\t}\n\n\t\t\tvar match = event.match( /^([\\w:-]*)\\s*(.*)$/ );\n\t\t\tvar eventName = match[ 1 ] + instance.eventNamespace;\n\t\t\tvar selector = match[ 2 ];\n\n\t\t\tif ( selector ) {\n\t\t\t\tdelegateElement.on( eventName, selector, handlerProxy );\n\t\t\t} else {\n\t\t\t\telement.on( eventName, handlerProxy );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_off: function( element, eventName ) {\n\t\teventName = ( eventName || \"\" ).split( \" \" ).join( this.eventNamespace + \" \" ) +\n\t\t\tthis.eventNamespace;\n\t\telement.off( eventName );\n\n\t\t// Clear the stack to avoid memory leaks (#10056)\n\t\tthis.bindings = $( this.bindings.not( element ).get() );\n\t\tthis.focusable = $( this.focusable.not( element ).get() );\n\t\tthis.hoverable = $( this.hoverable.not( element ).get() );\n\t},\n\n\t_delay: function( handler, delay ) {\n\t\tfunction handlerProxy() {\n\t\t\treturn ( typeof handler === \"string\" ? instance[ handler ] : handler )\n\t\t\t\t.apply( instance, arguments );\n\t\t}\n\t\tvar instance = this;\n\t\treturn setTimeout( handlerProxy, delay || 0 );\n\t},\n\n\t_hoverable: function( element ) {\n\t\tthis.hoverable = this.hoverable.add( element );\n\t\tthis._on( element, {\n\t\t\tmouseenter: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t},\n\t\t\tmouseleave: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-hover\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_focusable: function( element ) {\n\t\tthis.focusable = this.focusable.add( element );\n\t\tthis._on( element, {\n\t\t\tfocusin: function( event ) {\n\t\t\t\tthis._addClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t},\n\t\t\tfocusout: function( event ) {\n\t\t\t\tthis._removeClass( $( event.currentTarget ), null, \"ui-state-focus\" );\n\t\t\t}\n\t\t} );\n\t},\n\n\t_trigger: function( type, event, data ) {\n\t\tvar prop, orig;\n\t\tvar callback = this.options[ type ];\n\n\t\tdata = data || {};\n\t\tevent = $.Event( event );\n\t\tevent.type = ( type === this.widgetEventPrefix ?\n\t\t\ttype :\n\t\t\tthis.widgetEventPrefix + type ).toLowerCase();\n\n\t\t// The original event may come from any element\n\t\t// so we need to reset the target on the new event\n\t\tevent.target = this.element[ 0 ];\n\n\t\t// Copy original event properties over to the new event\n\t\torig = event.originalEvent;\n\t\tif ( orig ) {\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tif ( !( prop in event ) ) {\n\t\t\t\t\tevent[ prop ] = orig[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.element.trigger( event, data );\n\t\treturn !( typeof callback === \"function\" &&\n\t\t\tcallback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||\n\t\t\tevent.isDefaultPrevented() );\n\t}\n};\n\n$.each( { show: \"fadeIn\", hide: \"fadeOut\" }, function( method, defaultEffect ) {\n\t$.Widget.prototype[ \"_\" + method ] = function( element, options, callback ) {\n\t\tif ( typeof options === \"string\" ) {\n\t\t\toptions = { effect: options };\n\t\t}\n\n\t\tvar hasOptions;\n\t\tvar effectName = !options ?\n\t\t\tmethod :\n\t\t\toptions === true || typeof options === \"number\" ?\n\t\t\t\tdefaultEffect :\n\t\t\t\toptions.effect || defaultEffect;\n\n\t\toptions = options || {};\n\t\tif ( typeof options === \"number\" ) {\n\t\t\toptions = { duration: options };\n\t\t} else if ( options === true ) {\n\t\t\toptions = {};\n\t\t}\n\n\t\thasOptions = !$.isEmptyObject( options );\n\t\toptions.complete = callback;\n\n\t\tif ( options.delay ) {\n\t\t\telement.delay( options.delay );\n\t\t}\n\n\t\tif ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {\n\t\t\telement[ method ]( options );\n\t\t} else if ( effectName !== method && element[ effectName ] ) {\n\t\t\telement[ effectName ]( options.duration, options.easing, callback );\n\t\t} else {\n\t\t\telement.queue( function( next ) {\n\t\t\t\t$( this )[ method ]();\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback.call( element[ 0 ] );\n\t\t\t\t}\n\t\t\t\tnext();\n\t\t\t} );\n\t\t}\n\t};\n} );\n\nreturn $.widget;\n\n} );\n","/*!\n * jQuery UI Mouse 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Mouse\n//>>group: Widgets\n//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.\n//>>docs: http://api.jqueryui.com/mouse/\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"../ie\",\n\t\t\t\"../version\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nvar mouseHandled = false;\n$( document ).on( \"mouseup\", function() {\n\tmouseHandled = false;\n} );\n\nreturn $.widget( \"ui.mouse\", {\n\tversion: \"1.13.2\",\n\toptions: {\n\t\tcancel: \"input, textarea, button, select, option\",\n\t\tdistance: 1,\n\t\tdelay: 0\n\t},\n\t_mouseInit: function() {\n\t\tvar that = this;\n\n\t\tthis.element\n\t\t\t.on( \"mousedown.\" + this.widgetName, function( event ) {\n\t\t\t\treturn that._mouseDown( event );\n\t\t\t} )\n\t\t\t.on( \"click.\" + this.widgetName, function( event ) {\n\t\t\t\tif ( true === $.data( event.target, that.widgetName + \".preventClickEvent\" ) ) {\n\t\t\t\t\t$.removeData( event.target, that.widgetName + \".preventClickEvent\" );\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\n\t\tthis.started = false;\n\t},\n\n\t// TODO: make sure destroying one instance of mouse doesn't mess with\n\t// other instances of mouse\n\t_mouseDestroy: function() {\n\t\tthis.element.off( \".\" + this.widgetName );\n\t\tif ( this._mouseMoveDelegate ) {\n\t\t\tthis.document\n\t\t\t\t.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t\t.off( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\t\t}\n\t},\n\n\t_mouseDown: function( event ) {\n\n\t\t// don't let more than one widget handle mouseStart\n\t\tif ( mouseHandled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._mouseMoved = false;\n\n\t\t// We may have missed mouseup (out of window)\n\t\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseUp( event );\n\t\t}\n\n\t\tthis._mouseDownEvent = event;\n\n\t\tvar that = this,\n\t\t\tbtnIsLeft = ( event.which === 1 ),\n\n\t\t\t// event.target.nodeName works around a bug in IE 8 with\n\t\t\t// disabled inputs (#7620)\n\t\t\telIsCancel = ( typeof this.options.cancel === \"string\" && event.target.nodeName ?\n\t\t\t\t$( event.target ).closest( this.options.cancel ).length : false );\n\t\tif ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.mouseDelayMet = !this.options.delay;\n\t\tif ( !this.mouseDelayMet ) {\n\t\t\tthis._mouseDelayTimer = setTimeout( function() {\n\t\t\t\tthat.mouseDelayMet = true;\n\t\t\t}, this.options.delay );\n\t\t}\n\n\t\tif ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {\n\t\t\tthis._mouseStarted = ( this._mouseStart( event ) !== false );\n\t\t\tif ( !this._mouseStarted ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\t// Click event may never have fired (Gecko & Opera)\n\t\tif ( true === $.data( event.target, this.widgetName + \".preventClickEvent\" ) ) {\n\t\t\t$.removeData( event.target, this.widgetName + \".preventClickEvent\" );\n\t\t}\n\n\t\t// These delegates are required to keep context\n\t\tthis._mouseMoveDelegate = function( event ) {\n\t\t\treturn that._mouseMove( event );\n\t\t};\n\t\tthis._mouseUpDelegate = function( event ) {\n\t\t\treturn that._mouseUp( event );\n\t\t};\n\n\t\tthis.document\n\t\t\t.on( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.on( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tevent.preventDefault();\n\n\t\tmouseHandled = true;\n\t\treturn true;\n\t},\n\n\t_mouseMove: function( event ) {\n\n\t\t// Only check for mouseups outside the document if you've moved inside the document\n\t\t// at least once. This prevents the firing of mouseup in the case of IE<9, which will\n\t\t// fire a mousemove event if content is placed under the cursor. See #7778\n\t\t// Support: IE <9\n\t\tif ( this._mouseMoved ) {\n\n\t\t\t// IE mouseup check - mouseup happened when mouse was out of window\n\t\t\tif ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&\n\t\t\t\t\t!event.button ) {\n\t\t\t\treturn this._mouseUp( event );\n\n\t\t\t// Iframe mouseup check - mouseup occurred in another document\n\t\t\t} else if ( !event.which ) {\n\n\t\t\t\t// Support: Safari <=8 - 9\n\t\t\t\t// Safari sets which to 0 if you press any of the following keys\n\t\t\t\t// during a drag (#14461)\n\t\t\t\tif ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||\n\t\t\t\t\t\tevent.originalEvent.metaKey || event.originalEvent.shiftKey ) {\n\t\t\t\t\tthis.ignoreMissingWhich = true;\n\t\t\t\t} else if ( !this.ignoreMissingWhich ) {\n\t\t\t\t\treturn this._mouseUp( event );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( event.which || event.button ) {\n\t\t\tthis._mouseMoved = true;\n\t\t}\n\n\t\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseDrag( event );\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {\n\t\t\tthis._mouseStarted =\n\t\t\t\t( this._mouseStart( this._mouseDownEvent, event ) !== false );\n\t\t\tif ( this._mouseStarted ) {\n\t\t\t\tthis._mouseDrag( event );\n\t\t\t} else {\n\t\t\t\tthis._mouseUp( event );\n\t\t\t}\n\t\t}\n\n\t\treturn !this._mouseStarted;\n\t},\n\n\t_mouseUp: function( event ) {\n\t\tthis.document\n\t\t\t.off( \"mousemove.\" + this.widgetName, this._mouseMoveDelegate )\n\t\t\t.off( \"mouseup.\" + this.widgetName, this._mouseUpDelegate );\n\n\t\tif ( this._mouseStarted ) {\n\t\t\tthis._mouseStarted = false;\n\n\t\t\tif ( event.target === this._mouseDownEvent.target ) {\n\t\t\t\t$.data( event.target, this.widgetName + \".preventClickEvent\", true );\n\t\t\t}\n\n\t\t\tthis._mouseStop( event );\n\t\t}\n\n\t\tif ( this._mouseDelayTimer ) {\n\t\t\tclearTimeout( this._mouseDelayTimer );\n\t\t\tdelete this._mouseDelayTimer;\n\t\t}\n\n\t\tthis.ignoreMissingWhich = false;\n\t\tmouseHandled = false;\n\t\tevent.preventDefault();\n\t},\n\n\t_mouseDistanceMet: function( event ) {\n\t\treturn ( Math.max(\n\t\t\t\tMath.abs( this._mouseDownEvent.pageX - event.pageX ),\n\t\t\t\tMath.abs( this._mouseDownEvent.pageY - event.pageY )\n\t\t\t) >= this.options.distance\n\t\t);\n\t},\n\n\t_mouseDelayMet: function( /* event */ ) {\n\t\treturn this.mouseDelayMet;\n\t},\n\n\t// These are placeholder methods, to be overriden by extending plugin\n\t_mouseStart: function( /* event */ ) {},\n\t_mouseDrag: function( /* event */ ) {},\n\t_mouseStop: function( /* event */ ) {},\n\t_mouseCapture: function( /* event */ ) {\n\t\treturn true;\n\t}\n} );\n\n} );\n","/*!\n * jQuery UI Sortable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n\n//>>label: Sortable\n//>>group: Interactions\n//>>description: Enables items in a list to be sorted using the mouse.\n//>>docs: http://api.jqueryui.com/sortable/\n//>>demos: http://jqueryui.com/sortable/\n//>>css.structure: ../../themes/base/sortable.css\n\n( function( factory ) {\n\t\"use strict\";\n\n\tif ( typeof define === \"function\" && define.amd ) {\n\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( [\n\t\t\t\"jquery\",\n\t\t\t\"./mouse\",\n\t\t\t\"../data\",\n\t\t\t\"../ie\",\n\t\t\t\"../scroll-parent\",\n\t\t\t\"../version\",\n\t\t\t\"../widget\"\n\t\t], factory );\n\t} else {\n\n\t\t// Browser globals\n\t\tfactory( jQuery );\n\t}\n} )( function( $ ) {\n\"use strict\";\n\nreturn $.widget( \"ui.sortable\", $.ui.mouse, {\n\tversion: \"1.13.2\",\n\twidgetEventPrefix: \"sort\",\n\tready: false,\n\toptions: {\n\t\tappendTo: \"parent\",\n\t\taxis: false,\n\t\tconnectWith: false,\n\t\tcontainment: false,\n\t\tcursor: \"auto\",\n\t\tcursorAt: false,\n\t\tdropOnEmpty: true,\n\t\tforcePlaceholderSize: false,\n\t\tforceHelperSize: false,\n\t\tgrid: false,\n\t\thandle: false,\n\t\thelper: \"original\",\n\t\titems: \"> *\",\n\t\topacity: false,\n\t\tplaceholder: false,\n\t\trevert: false,\n\t\tscroll: true,\n\t\tscrollSensitivity: 20,\n\t\tscrollSpeed: 20,\n\t\tscope: \"default\",\n\t\ttolerance: \"intersect\",\n\t\tzIndex: 1000,\n\n\t\t// Callbacks\n\t\tactivate: null,\n\t\tbeforeStop: null,\n\t\tchange: null,\n\t\tdeactivate: null,\n\t\tout: null,\n\t\tover: null,\n\t\treceive: null,\n\t\tremove: null,\n\t\tsort: null,\n\t\tstart: null,\n\t\tstop: null,\n\t\tupdate: null\n\t},\n\n\t_isOverAxis: function( x, reference, size ) {\n\t\treturn ( x >= reference ) && ( x < ( reference + size ) );\n\t},\n\n\t_isFloating: function( item ) {\n\t\treturn ( /left|right/ ).test( item.css( \"float\" ) ) ||\n\t\t\t( /inline|table-cell/ ).test( item.css( \"display\" ) );\n\t},\n\n\t_create: function() {\n\t\tthis.containerCache = {};\n\t\tthis._addClass( \"ui-sortable\" );\n\n\t\t//Get the items\n\t\tthis.refresh();\n\n\t\t//Let's determine the parent's offset\n\t\tthis.offset = this.element.offset();\n\n\t\t//Initialize mouse events for interaction\n\t\tthis._mouseInit();\n\n\t\tthis._setHandleClassName();\n\n\t\t//We're ready to go\n\t\tthis.ready = true;\n\n\t},\n\n\t_setOption: function( key, value ) {\n\t\tthis._super( key, value );\n\n\t\tif ( key === \"handle\" ) {\n\t\t\tthis._setHandleClassName();\n\t\t}\n\t},\n\n\t_setHandleClassName: function() {\n\t\tvar that = this;\n\t\tthis._removeClass( this.element.find( \".ui-sortable-handle\" ), \"ui-sortable-handle\" );\n\t\t$.each( this.items, function() {\n\t\t\tthat._addClass(\n\t\t\t\tthis.instance.options.handle ?\n\t\t\t\t\tthis.item.find( this.instance.options.handle ) :\n\t\t\t\t\tthis.item,\n\t\t\t\t\"ui-sortable-handle\"\n\t\t\t);\n\t\t} );\n\t},\n\n\t_destroy: function() {\n\t\tthis._mouseDestroy();\n\n\t\tfor ( var i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\tthis.items[ i ].item.removeData( this.widgetName + \"-item\" );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_mouseCapture: function( event, overrideHandle ) {\n\t\tvar currentItem = null,\n\t\t\tvalidHandle = false,\n\t\t\tthat = this;\n\n\t\tif ( this.reverting ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( this.options.disabled || this.options.type === \"static\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t//We have to refresh the items data once first\n\t\tthis._refreshItems( event );\n\n\t\t//Find out if the clicked node (or one of its parents) is a actual item in this.items\n\t\t$( event.target ).parents().each( function() {\n\t\t\tif ( $.data( this, that.widgetName + \"-item\" ) === that ) {\n\t\t\t\tcurrentItem = $( this );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} );\n\t\tif ( $.data( event.target, that.widgetName + \"-item\" ) === that ) {\n\t\t\tcurrentItem = $( event.target );\n\t\t}\n\n\t\tif ( !currentItem ) {\n\t\t\treturn false;\n\t\t}\n\t\tif ( this.options.handle && !overrideHandle ) {\n\t\t\t$( this.options.handle, currentItem ).find( \"*\" ).addBack().each( function() {\n\t\t\t\tif ( this === event.target ) {\n\t\t\t\t\tvalidHandle = true;\n\t\t\t\t}\n\t\t\t} );\n\t\t\tif ( !validHandle ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tthis.currentItem = currentItem;\n\t\tthis._removeCurrentsFromItems();\n\t\treturn true;\n\n\t},\n\n\t_mouseStart: function( event, overrideHandle, noActivation ) {\n\n\t\tvar i, body,\n\t\t\to = this.options;\n\n\t\tthis.currentContainer = this;\n\n\t\t//We only need to call refreshPositions, because the refreshItems call has been moved to\n\t\t// mouseCapture\n\t\tthis.refreshPositions();\n\n\t\t//Prepare the dragged items parent\n\t\tthis.appendTo = $( o.appendTo !== \"parent\" ?\n\t\t\t\to.appendTo :\n\t\t\t\tthis.currentItem.parent() );\n\n\t\t//Create and append the visible helper\n\t\tthis.helper = this._createHelper( event );\n\n\t\t//Cache the helper size\n\t\tthis._cacheHelperProportions();\n\n\t\t/*\n\t\t * - Position generation -\n\t\t * This block generates everything position related - it's the core of draggables.\n\t\t */\n\n\t\t//Cache the margins of the original element\n\t\tthis._cacheMargins();\n\n\t\t//The element's absolute position on the page minus margins\n\t\tthis.offset = this.currentItem.offset();\n\t\tthis.offset = {\n\t\t\ttop: this.offset.top - this.margins.top,\n\t\t\tleft: this.offset.left - this.margins.left\n\t\t};\n\n\t\t$.extend( this.offset, {\n\t\t\tclick: { //Where the click happened, relative to the element\n\t\t\t\tleft: event.pageX - this.offset.left,\n\t\t\t\ttop: event.pageY - this.offset.top\n\t\t\t},\n\n\t\t\t// This is a relative to absolute position minus the actual position calculation -\n\t\t\t// only used for relative positioned helper\n\t\t\trelative: this._getRelativeOffset()\n\t\t} );\n\n\t\t// After we get the helper offset, but before we get the parent offset we can\n\t\t// change the helper's position to absolute\n\t\t// TODO: Still need to figure out a way to make relative sorting possible\n\t\tthis.helper.css( \"position\", \"absolute\" );\n\t\tthis.cssPosition = this.helper.css( \"position\" );\n\n\t\t//Adjust the mouse offset relative to the helper if \"cursorAt\" is supplied\n\t\tif ( o.cursorAt ) {\n\t\t\tthis._adjustOffsetFromHelper( o.cursorAt );\n\t\t}\n\n\t\t//Cache the former DOM position\n\t\tthis.domPosition = {\n\t\t\tprev: this.currentItem.prev()[ 0 ],\n\t\t\tparent: this.currentItem.parent()[ 0 ]\n\t\t};\n\n\t\t// If the helper is not the original, hide the original so it's not playing any role during\n\t\t// the drag, won't cause anything bad this way\n\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\tthis.currentItem.hide();\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthis._createPlaceholder();\n\n\t\t//Get the next scrolling parent\n\t\tthis.scrollParent = this.placeholder.scrollParent();\n\n\t\t$.extend( this.offset, {\n\t\t\tparent: this._getParentOffset()\n\t\t} );\n\n\t\t//Set a containment if given in the options\n\t\tif ( o.containment ) {\n\t\t\tthis._setContainment();\n\t\t}\n\n\t\tif ( o.cursor && o.cursor !== \"auto\" ) { // cursor option\n\t\t\tbody = this.document.find( \"body\" );\n\n\t\t\t// Support: IE\n\t\t\tthis.storedCursor = body.css( \"cursor\" );\n\t\t\tbody.css( \"cursor\", o.cursor );\n\n\t\t\tthis.storedStylesheet =\n\t\t\t\t$( \"\" ).appendTo( body );\n\t\t}\n\n\t\t// We need to make sure to grab the zIndex before setting the\n\t\t// opacity, because setting the opacity to anything lower than 1\n\t\t// causes the zIndex to change from \"auto\" to 0.\n\t\tif ( o.zIndex ) { // zIndex option\n\t\t\tif ( this.helper.css( \"zIndex\" ) ) {\n\t\t\t\tthis._storedZIndex = this.helper.css( \"zIndex\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"zIndex\", o.zIndex );\n\t\t}\n\n\t\tif ( o.opacity ) { // opacity option\n\t\t\tif ( this.helper.css( \"opacity\" ) ) {\n\t\t\t\tthis._storedOpacity = this.helper.css( \"opacity\" );\n\t\t\t}\n\t\t\tthis.helper.css( \"opacity\", o.opacity );\n\t\t}\n\n\t\t//Prepare scrolling\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"start\", event, this._uiHash() );\n\n\t\t//Recache the helper size\n\t\tif ( !this._preserveHelperProportions ) {\n\t\t\tthis._cacheHelperProportions();\n\t\t}\n\n\t\t//Post \"activate\" events to possible containers\n\t\tif ( !noActivation ) {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"activate\", event, this._uiHash( this ) );\n\t\t\t}\n\t\t}\n\n\t\t//Prepare possible droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.current = this;\n\t\t}\n\n\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t}\n\n\t\tthis.dragging = true;\n\n\t\tthis._addClass( this.helper, \"ui-sortable-helper\" );\n\n\t\t//Move the helper, if needed\n\t\tif ( !this.helper.parent().is( this.appendTo ) ) {\n\t\t\tthis.helper.detach().appendTo( this.appendTo );\n\n\t\t\t//Update position\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\t//Generate the original position\n\t\tthis.position = this.originalPosition = this._generatePosition( event );\n\t\tthis.originalPageX = event.pageX;\n\t\tthis.originalPageY = event.pageY;\n\t\tthis.lastPositionAbs = this.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\tthis._mouseDrag( event );\n\n\t\treturn true;\n\n\t},\n\n\t_scroll: function( event ) {\n\t\tvar o = this.options,\n\t\t\tscrolled = false;\n\n\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\n\t\t\tif ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -\n\t\t\t\t\tevent.pageY < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;\n\t\t\t} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollTop =\n\t\t\t\t\tscrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;\n\t\t\t}\n\n\t\t\tif ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -\n\t\t\t\t\tevent.pageX < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;\n\t\t\t} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {\n\t\t\t\tthis.scrollParent[ 0 ].scrollLeft = scrolled =\n\t\t\t\t\tthis.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );\n\t\t\t} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <\n\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );\n\t\t\t}\n\n\t\t\tif ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\tthis.document.scrollLeft() - o.scrollSpeed\n\t\t\t\t);\n\t\t\t} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <\n\t\t\t\t\to.scrollSensitivity ) {\n\t\t\t\tscrolled = this.document.scrollLeft(\n\t\t\t\t\tthis.document.scrollLeft() + o.scrollSpeed\n\t\t\t\t);\n\t\t\t}\n\n\t\t}\n\n\t\treturn scrolled;\n\t},\n\n\t_mouseDrag: function( event ) {\n\t\tvar i, item, itemElement, intersection,\n\t\t\to = this.options;\n\n\t\t//Compute the helpers position\n\t\tthis.position = this._generatePosition( event );\n\t\tthis.positionAbs = this._convertPositionTo( \"absolute\" );\n\n\t\t//Set the helper position\n\t\tif ( !this.options.axis || this.options.axis !== \"y\" ) {\n\t\t\tthis.helper[ 0 ].style.left = this.position.left + \"px\";\n\t\t}\n\t\tif ( !this.options.axis || this.options.axis !== \"x\" ) {\n\t\t\tthis.helper[ 0 ].style.top = this.position.top + \"px\";\n\t\t}\n\n\t\t//Do scrolling\n\t\tif ( o.scroll ) {\n\t\t\tif ( this._scroll( event ) !== false ) {\n\n\t\t\t\t//Update item positions used in position checks\n\t\t\t\tthis._refreshItemPositions( true );\n\n\t\t\t\tif ( $.ui.ddmanager && !o.dropBehaviour ) {\n\t\t\t\t\t$.ui.ddmanager.prepareOffsets( this, event );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.dragDirection = {\n\t\t\tvertical: this._getDragVerticalDirection(),\n\t\t\thorizontal: this._getDragHorizontalDirection()\n\t\t};\n\n\t\t//Rearrange\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\n\t\t\t//Cache variables and intersection, continue if no intersection\n\t\t\titem = this.items[ i ];\n\t\t\titemElement = item.item[ 0 ];\n\t\t\tintersection = this._intersectsWithPointer( item );\n\t\t\tif ( !intersection ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Only put the placeholder inside the current Container, skip all\n\t\t\t// items from other containers. This works because when moving\n\t\t\t// an item from one container to another the\n\t\t\t// currentContainer is switched before the placeholder is moved.\n\t\t\t//\n\t\t\t// Without this, moving items in \"sub-sortables\" can cause\n\t\t\t// the placeholder to jitter between the outer and inner container.\n\t\t\tif ( item.instance !== this.currentContainer ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Cannot intersect with itself\n\t\t\t// no useless actions that have been done before\n\t\t\t// no action if the item moved is the parent of the item checked\n\t\t\tif ( itemElement !== this.currentItem[ 0 ] &&\n\t\t\t\tthis.placeholder[ intersection === 1 ?\n\t\t\t\t\"next\" : \"prev\" ]()[ 0 ] !== itemElement &&\n\t\t\t\t!$.contains( this.placeholder[ 0 ], itemElement ) &&\n\t\t\t\t( this.options.type === \"semi-dynamic\" ?\n\t\t\t\t\t!$.contains( this.element[ 0 ], itemElement ) :\n\t\t\t\t\ttrue\n\t\t\t\t)\n\t\t\t) {\n\n\t\t\t\tthis.direction = intersection === 1 ? \"down\" : \"up\";\n\n\t\t\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\t\t\t\tthis._intersectsWithSides( item ) ) {\n\t\t\t\t\tthis._rearrange( event, item );\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tthis._contactContainers( event );\n\n\t\t//Interconnect with droppables\n\t\tif ( $.ui.ddmanager ) {\n\t\t\t$.ui.ddmanager.drag( this, event );\n\t\t}\n\n\t\t//Call callbacks\n\t\tthis._trigger( \"sort\", event, this._uiHash() );\n\n\t\tthis.lastPositionAbs = this.positionAbs;\n\t\treturn false;\n\n\t},\n\n\t_mouseStop: function( event, noPropagation ) {\n\n\t\tif ( !event ) {\n\t\t\treturn;\n\t\t}\n\n\t\t//If we are using droppables, inform the manager about the drop\n\t\tif ( $.ui.ddmanager && !this.options.dropBehaviour ) {\n\t\t\t$.ui.ddmanager.drop( this, event );\n\t\t}\n\n\t\tif ( this.options.revert ) {\n\t\t\tvar that = this,\n\t\t\t\tcur = this.placeholder.offset(),\n\t\t\t\taxis = this.options.axis,\n\t\t\t\tanimation = {};\n\n\t\t\tif ( !axis || axis === \"x\" ) {\n\t\t\t\tanimation.left = cur.left - this.offset.parent.left - this.margins.left +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollLeft\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tif ( !axis || axis === \"y\" ) {\n\t\t\t\tanimation.top = cur.top - this.offset.parent.top - this.margins.top +\n\t\t\t\t\t( this.offsetParent[ 0 ] === this.document[ 0 ].body ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\tthis.offsetParent[ 0 ].scrollTop\n\t\t\t\t\t);\n\t\t\t}\n\t\t\tthis.reverting = true;\n\t\t\t$( this.helper ).animate(\n\t\t\t\tanimation,\n\t\t\t\tparseInt( this.options.revert, 10 ) || 500,\n\t\t\t\tfunction() {\n\t\t\t\t\tthat._clear( event );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tthis._clear( event, noPropagation );\n\t\t}\n\n\t\treturn false;\n\n\t},\n\n\tcancel: function() {\n\n\t\tif ( this.dragging ) {\n\n\t\t\tthis._mouseUp( new $.Event( \"mouseup\", { target: null } ) );\n\n\t\t\tif ( this.options.helper === \"original\" ) {\n\t\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t\t} else {\n\t\t\t\tthis.currentItem.show();\n\t\t\t}\n\n\t\t\t//Post deactivating events to containers\n\t\t\tfor ( var i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tthis.containers[ i ]._trigger( \"deactivate\", null, this._uiHash( this ) );\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", null, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.placeholder ) {\n\n\t\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t\t// it unbinds ALL events from the original node!\n\t\t\tif ( this.placeholder[ 0 ].parentNode ) {\n\t\t\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\t\t\t}\n\t\t\tif ( this.options.helper !== \"original\" && this.helper &&\n\t\t\t\t\tthis.helper[ 0 ].parentNode ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\n\t\t\t$.extend( this, {\n\t\t\t\thelper: null,\n\t\t\t\tdragging: false,\n\t\t\t\treverting: false,\n\t\t\t\t_noFinalSort: null\n\t\t\t} );\n\n\t\t\tif ( this.domPosition.prev ) {\n\t\t\t\t$( this.domPosition.prev ).after( this.currentItem );\n\t\t\t} else {\n\t\t\t\t$( this.domPosition.parent ).prepend( this.currentItem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tserialize: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tstr = [];\n\t\to = o || {};\n\n\t\t$( items ).each( function() {\n\t\t\tvar res = ( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" )\n\t\t\t\t.match( o.expression || ( /(.+)[\\-=_](.+)/ ) );\n\t\t\tif ( res ) {\n\t\t\t\tstr.push(\n\t\t\t\t\t( o.key || res[ 1 ] + \"[]\" ) +\n\t\t\t\t\t\"=\" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );\n\t\t\t}\n\t\t} );\n\n\t\tif ( !str.length && o.key ) {\n\t\t\tstr.push( o.key + \"=\" );\n\t\t}\n\n\t\treturn str.join( \"&\" );\n\n\t},\n\n\ttoArray: function( o ) {\n\n\t\tvar items = this._getItemsAsjQuery( o && o.connected ),\n\t\t\tret = [];\n\n\t\to = o || {};\n\n\t\titems.each( function() {\n\t\t\tret.push( $( o.item || this ).attr( o.attribute || \"id\" ) || \"\" );\n\t\t} );\n\t\treturn ret;\n\n\t},\n\n\t/* Be careful with the following core functions */\n\t_intersectsWith: function( item ) {\n\n\t\tvar x1 = this.positionAbs.left,\n\t\t\tx2 = x1 + this.helperProportions.width,\n\t\t\ty1 = this.positionAbs.top,\n\t\t\ty2 = y1 + this.helperProportions.height,\n\t\t\tl = item.left,\n\t\t\tr = l + item.width,\n\t\t\tt = item.top,\n\t\t\tb = t + item.height,\n\t\t\tdyClick = this.offset.click.top,\n\t\t\tdxClick = this.offset.click.left,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) || ( ( y1 + dyClick ) > t &&\n\t\t\t\t( y1 + dyClick ) < b ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) || ( ( x1 + dxClick ) > l &&\n\t\t\t\t( x1 + dxClick ) < r ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( this.options.tolerance === \"pointer\" ||\n\t\t\tthis.options.forcePointerForContainers ||\n\t\t\t( this.options.tolerance !== \"pointer\" &&\n\t\t\t\tthis.helperProportions[ this.floating ? \"width\" : \"height\" ] >\n\t\t\t\titem[ this.floating ? \"width\" : \"height\" ] )\n\t\t) {\n\t\t\treturn isOverElement;\n\t\t} else {\n\n\t\t\treturn ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half\n\t\t\t\tx2 - ( this.helperProportions.width / 2 ) < r && // Left Half\n\t\t\t\tt < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half\n\t\t\t\ty2 - ( this.helperProportions.height / 2 ) < b ); // Top Half\n\n\t\t}\n\t},\n\n\t_intersectsWithPointer: function( item ) {\n\t\tvar verticalDirection, horizontalDirection,\n\t\t\tisOverElementHeight = ( this.options.axis === \"x\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.top + this.offset.click.top, item.top, item.height ),\n\t\t\tisOverElementWidth = ( this.options.axis === \"y\" ) ||\n\t\t\t\tthis._isOverAxis(\n\t\t\t\t\tthis.positionAbs.left + this.offset.click.left, item.left, item.width ),\n\t\t\tisOverElement = isOverElementHeight && isOverElementWidth;\n\n\t\tif ( !isOverElement ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tverticalDirection = this.dragDirection.vertical;\n\t\thorizontalDirection = this.dragDirection.horizontal;\n\n\t\treturn this.floating ?\n\t\t\t( ( horizontalDirection === \"right\" || verticalDirection === \"down\" ) ? 2 : 1 ) :\n\t\t\t( verticalDirection && ( verticalDirection === \"down\" ? 2 : 1 ) );\n\n\t},\n\n\t_intersectsWithSides: function( item ) {\n\n\t\tvar isOverBottomHalf = this._isOverAxis( this.positionAbs.top +\n\t\t\t\tthis.offset.click.top, item.top + ( item.height / 2 ), item.height ),\n\t\t\tisOverRightHalf = this._isOverAxis( this.positionAbs.left +\n\t\t\t\tthis.offset.click.left, item.left + ( item.width / 2 ), item.width ),\n\t\t\tverticalDirection = this.dragDirection.vertical,\n\t\t\thorizontalDirection = this.dragDirection.horizontal;\n\n\t\tif ( this.floating && horizontalDirection ) {\n\t\t\treturn ( ( horizontalDirection === \"right\" && isOverRightHalf ) ||\n\t\t\t\t( horizontalDirection === \"left\" && !isOverRightHalf ) );\n\t\t} else {\n\t\t\treturn verticalDirection && ( ( verticalDirection === \"down\" && isOverBottomHalf ) ||\n\t\t\t\t( verticalDirection === \"up\" && !isOverBottomHalf ) );\n\t\t}\n\n\t},\n\n\t_getDragVerticalDirection: function() {\n\t\tvar delta = this.positionAbs.top - this.lastPositionAbs.top;\n\t\treturn delta !== 0 && ( delta > 0 ? \"down\" : \"up\" );\n\t},\n\n\t_getDragHorizontalDirection: function() {\n\t\tvar delta = this.positionAbs.left - this.lastPositionAbs.left;\n\t\treturn delta !== 0 && ( delta > 0 ? \"right\" : \"left\" );\n\t},\n\n\trefresh: function( event ) {\n\t\tthis._refreshItems( event );\n\t\tthis._setHandleClassName();\n\t\tthis.refreshPositions();\n\t\treturn this;\n\t},\n\n\t_connectWith: function() {\n\t\tvar options = this.options;\n\t\treturn options.connectWith.constructor === String ?\n\t\t\t[ options.connectWith ] :\n\t\t\toptions.connectWith;\n\t},\n\n\t_getItemsAsjQuery: function( connected ) {\n\n\t\tvar i, j, cur, inst,\n\t\t\titems = [],\n\t\t\tqueries = [],\n\t\t\tconnectWith = this._connectWith();\n\n\t\tif ( connectWith && connected ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ typeof inst.options.items === \"function\" ?\n\t\t\t\t\t\t\tinst.options.items.call( inst.element ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t\t\t\t\t.not( \".ui-sortable-placeholder\" ), inst ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tqueries.push( [ typeof this.options.items === \"function\" ?\n\t\t\tthis.options.items\n\t\t\t\t.call( this.element, null, { options: this.options, item: this.currentItem } ) :\n\t\t\t$( this.options.items, this.element )\n\t\t\t\t.not( \".ui-sortable-helper\" )\n\t\t\t\t.not( \".ui-sortable-placeholder\" ), this ] );\n\n\t\tfunction addItems() {\n\t\t\titems.push( this );\n\t\t}\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\tqueries[ i ][ 0 ].each( addItems );\n\t\t}\n\n\t\treturn $( items );\n\n\t},\n\n\t_removeCurrentsFromItems: function() {\n\n\t\tvar list = this.currentItem.find( \":data(\" + this.widgetName + \"-item)\" );\n\n\t\tthis.items = $.grep( this.items, function( item ) {\n\t\t\tfor ( var j = 0; j < list.length; j++ ) {\n\t\t\t\tif ( list[ j ] === item.item[ 0 ] ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} );\n\n\t},\n\n\t_refreshItems: function( event ) {\n\n\t\tthis.items = [];\n\t\tthis.containers = [ this ];\n\n\t\tvar i, j, cur, inst, targetData, _queries, item, queriesLength,\n\t\t\titems = this.items,\n\t\t\tqueries = [ [ typeof this.options.items === \"function\" ?\n\t\t\t\tthis.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t$( this.options.items, this.element ), this ] ],\n\t\t\tconnectWith = this._connectWith();\n\n\t\t//Shouldn't be run the first time through due to massive slow-down\n\t\tif ( connectWith && this.ready ) {\n\t\t\tfor ( i = connectWith.length - 1; i >= 0; i-- ) {\n\t\t\t\tcur = $( connectWith[ i ], this.document[ 0 ] );\n\t\t\t\tfor ( j = cur.length - 1; j >= 0; j-- ) {\n\t\t\t\t\tinst = $.data( cur[ j ], this.widgetFullName );\n\t\t\t\t\tif ( inst && inst !== this && !inst.options.disabled ) {\n\t\t\t\t\t\tqueries.push( [ typeof inst.options.items === \"function\" ?\n\t\t\t\t\t\t\tinst.options.items\n\t\t\t\t\t\t\t\t.call( inst.element[ 0 ], event, { item: this.currentItem } ) :\n\t\t\t\t\t\t\t$( inst.options.items, inst.element ), inst ] );\n\t\t\t\t\t\tthis.containers.push( inst );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor ( i = queries.length - 1; i >= 0; i-- ) {\n\t\t\ttargetData = queries[ i ][ 1 ];\n\t\t\t_queries = queries[ i ][ 0 ];\n\n\t\t\tfor ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {\n\t\t\t\titem = $( _queries[ j ] );\n\n\t\t\t\t// Data for target checking (mouse manager)\n\t\t\t\titem.data( this.widgetName + \"-item\", targetData );\n\n\t\t\t\titems.push( {\n\t\t\t\t\titem: item,\n\t\t\t\t\tinstance: targetData,\n\t\t\t\t\twidth: 0, height: 0,\n\t\t\t\t\tleft: 0, top: 0\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t},\n\n\t_refreshItemPositions: function( fast ) {\n\t\tvar i, item, t, p;\n\n\t\tfor ( i = this.items.length - 1; i >= 0; i-- ) {\n\t\t\titem = this.items[ i ];\n\n\t\t\t//We ignore calculating positions of all connected containers when we're not over them\n\t\t\tif ( this.currentContainer && item.instance !== this.currentContainer &&\n\t\t\t\t\titem.item[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tt = this.options.toleranceElement ?\n\t\t\t\t$( this.options.toleranceElement, item.item ) :\n\t\t\t\titem.item;\n\n\t\t\tif ( !fast ) {\n\t\t\t\titem.width = t.outerWidth();\n\t\t\t\titem.height = t.outerHeight();\n\t\t\t}\n\n\t\t\tp = t.offset();\n\t\t\titem.left = p.left;\n\t\t\titem.top = p.top;\n\t\t}\n\t},\n\n\trefreshPositions: function( fast ) {\n\n\t\t// Determine whether items are being displayed horizontally\n\t\tthis.floating = this.items.length ?\n\t\t\tthis.options.axis === \"x\" || this._isFloating( this.items[ 0 ].item ) :\n\t\t\tfalse;\n\n\t\t// This has to be redone because due to the item being moved out/into the offsetParent,\n\t\t// the offsetParent's position will change\n\t\tif ( this.offsetParent && this.helper ) {\n\t\t\tthis.offset.parent = this._getParentOffset();\n\t\t}\n\n\t\tthis._refreshItemPositions( fast );\n\n\t\tvar i, p;\n\n\t\tif ( this.options.custom && this.options.custom.refreshContainers ) {\n\t\t\tthis.options.custom.refreshContainers.call( this );\n\t\t} else {\n\t\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\t\tp = this.containers[ i ].element.offset();\n\t\t\t\tthis.containers[ i ].containerCache.left = p.left;\n\t\t\t\tthis.containers[ i ].containerCache.top = p.top;\n\t\t\t\tthis.containers[ i ].containerCache.width =\n\t\t\t\t\tthis.containers[ i ].element.outerWidth();\n\t\t\t\tthis.containers[ i ].containerCache.height =\n\t\t\t\t\tthis.containers[ i ].element.outerHeight();\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\t_createPlaceholder: function( that ) {\n\t\tthat = that || this;\n\t\tvar className, nodeName,\n\t\t\to = that.options;\n\n\t\tif ( !o.placeholder || o.placeholder.constructor === String ) {\n\t\t\tclassName = o.placeholder;\n\t\t\tnodeName = that.currentItem[ 0 ].nodeName.toLowerCase();\n\t\t\to.placeholder = {\n\t\t\t\telement: function() {\n\n\t\t\t\t\tvar element = $( \"<\" + nodeName + \">\", that.document[ 0 ] );\n\n\t\t\t\t\tthat._addClass( element, \"ui-sortable-placeholder\",\n\t\t\t\t\t\t\tclassName || that.currentItem[ 0 ].className )\n\t\t\t\t\t\t._removeClass( element, \"ui-sortable-helper\" );\n\n\t\t\t\t\tif ( nodeName === \"tbody\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder(\n\t\t\t\t\t\t\tthat.currentItem.find( \"tr\" ).eq( 0 ),\n\t\t\t\t\t\t\t$( \"\", that.document[ 0 ] ).appendTo( element )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( nodeName === \"tr\" ) {\n\t\t\t\t\t\tthat._createTrPlaceholder( that.currentItem, element );\n\t\t\t\t\t} else if ( nodeName === \"img\" ) {\n\t\t\t\t\t\telement.attr( \"src\", that.currentItem.attr( \"src\" ) );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !className ) {\n\t\t\t\t\t\telement.css( \"visibility\", \"hidden\" );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn element;\n\t\t\t\t},\n\t\t\t\tupdate: function( container, p ) {\n\n\t\t\t\t\t// 1. If a className is set as 'placeholder option, we don't force sizes -\n\t\t\t\t\t// the class is responsible for that\n\t\t\t\t\t// 2. The option 'forcePlaceholderSize can be enabled to force it even if a\n\t\t\t\t\t// class name is specified\n\t\t\t\t\tif ( className && !o.forcePlaceholderSize ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If the element doesn't have a actual height or width by itself (without\n\t\t\t\t\t// styles coming from a stylesheet), it receives the inline height and width\n\t\t\t\t\t// from the dragged item. Or, if it's a tbody or tr, it's going to have a height\n\t\t\t\t\t// anyway since we're populating them with s above, but they're unlikely to\n\t\t\t\t\t// be the correct height on their own if the row heights are dynamic, so we'll\n\t\t\t\t\t// always assign the height of the dragged item given forcePlaceholderSize\n\t\t\t\t\t// is true.\n\t\t\t\t\tif ( !p.height() || ( o.forcePlaceholderSize &&\n\t\t\t\t\t\t\t( nodeName === \"tbody\" || nodeName === \"tr\" ) ) ) {\n\t\t\t\t\t\tp.height(\n\t\t\t\t\t\t\tthat.currentItem.innerHeight() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingTop\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingBottom\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t\tif ( !p.width() ) {\n\t\t\t\t\t\tp.width(\n\t\t\t\t\t\t\tthat.currentItem.innerWidth() -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingLeft\" ) || 0, 10 ) -\n\t\t\t\t\t\t\tparseInt( that.currentItem.css( \"paddingRight\" ) || 0, 10 ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t//Create the placeholder\n\t\tthat.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );\n\n\t\t//Append it after the actual current item\n\t\tthat.currentItem.after( that.placeholder );\n\n\t\t//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)\n\t\to.placeholder.update( that, that.placeholder );\n\n\t},\n\n\t_createTrPlaceholder: function( sourceTr, targetTr ) {\n\t\tvar that = this;\n\n\t\tsourceTr.children().each( function() {\n\t\t\t$( \" \", that.document[ 0 ] )\n\t\t\t\t.attr( \"colspan\", $( this ).attr( \"colspan\" ) || 1 )\n\t\t\t\t.appendTo( targetTr );\n\t\t} );\n\t},\n\n\t_contactContainers: function( event ) {\n\t\tvar i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,\n\t\t\tfloating, axis,\n\t\t\tinnermostContainer = null,\n\t\t\tinnermostIndex = null;\n\n\t\t// Get innermost container that intersects with item\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\n\t\t\t// Never consider a container that's located within the item itself\n\t\t\tif ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( this._intersectsWith( this.containers[ i ].containerCache ) ) {\n\n\t\t\t\t// If we've already found a container and it's more \"inner\" than this, then continue\n\t\t\t\tif ( innermostContainer &&\n\t\t\t\t\t\t$.contains(\n\t\t\t\t\t\t\tthis.containers[ i ].element[ 0 ],\n\t\t\t\t\t\t\tinnermostContainer.element[ 0 ] ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tinnermostContainer = this.containers[ i ];\n\t\t\t\tinnermostIndex = i;\n\n\t\t\t} else {\n\n\t\t\t\t// container doesn't intersect. trigger \"out\" event if necessary\n\t\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\t\tthis.containers[ i ]._trigger( \"out\", event, this._uiHash( this ) );\n\t\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t// If no intersecting containers found, return\n\t\tif ( !innermostContainer ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Move the item into the container if it's not there already\n\t\tif ( this.containers.length === 1 ) {\n\t\t\tif ( !this.containers[ innermostIndex ].containerCache.over ) {\n\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// When entering a new container, we will find the item with the least distance and\n\t\t\t// append our item near it\n\t\t\tdist = 10000;\n\t\t\titemWithLeastDistance = null;\n\t\t\tfloating = innermostContainer.floating || this._isFloating( this.currentItem );\n\t\t\tposProperty = floating ? \"left\" : \"top\";\n\t\t\tsizeProperty = floating ? \"width\" : \"height\";\n\t\t\taxis = floating ? \"pageX\" : \"pageY\";\n\n\t\t\tfor ( j = this.items.length - 1; j >= 0; j-- ) {\n\t\t\t\tif ( !$.contains(\n\t\t\t\t\t\tthis.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcur = this.items[ j ].item.offset()[ posProperty ];\n\t\t\t\tnearBottom = false;\n\t\t\t\tif ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {\n\t\t\t\t\tnearBottom = true;\n\t\t\t\t}\n\n\t\t\t\tif ( Math.abs( event[ axis ] - cur ) < dist ) {\n\t\t\t\t\tdist = Math.abs( event[ axis ] - cur );\n\t\t\t\t\titemWithLeastDistance = this.items[ j ];\n\t\t\t\t\tthis.direction = nearBottom ? \"up\" : \"down\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//Check if dropOnEmpty is enabled\n\t\t\tif ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( this.currentContainer === this.containers[ innermostIndex ] ) {\n\t\t\t\tif ( !this.currentContainer.containerCache.over ) {\n\t\t\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash() );\n\t\t\t\t\tthis.currentContainer.containerCache.over = 1;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( itemWithLeastDistance ) {\n\t\t\t\tthis._rearrange( event, itemWithLeastDistance, null, true );\n\t\t\t} else {\n\t\t\t\tthis._rearrange( event, null, this.containers[ innermostIndex ].element, true );\n\t\t\t}\n\t\t\tthis._trigger( \"change\", event, this._uiHash() );\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"change\", event, this._uiHash( this ) );\n\t\t\tthis.currentContainer = this.containers[ innermostIndex ];\n\n\t\t\t//Update the placeholder\n\t\t\tthis.options.placeholder.update( this.currentContainer, this.placeholder );\n\n\t\t\t//Update scrollParent\n\t\t\tthis.scrollParent = this.placeholder.scrollParent();\n\n\t\t\t//Update overflowOffset\n\t\t\tif ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t\tthis.scrollParent[ 0 ].tagName !== \"HTML\" ) {\n\t\t\t\tthis.overflowOffset = this.scrollParent.offset();\n\t\t\t}\n\n\t\t\tthis.containers[ innermostIndex ]._trigger( \"over\", event, this._uiHash( this ) );\n\t\t\tthis.containers[ innermostIndex ].containerCache.over = 1;\n\t\t}\n\n\t},\n\n\t_createHelper: function( event ) {\n\n\t\tvar o = this.options,\n\t\t\thelper = typeof o.helper === \"function\" ?\n\t\t\t\t$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :\n\t\t\t\t( o.helper === \"clone\" ? this.currentItem.clone() : this.currentItem );\n\n\t\t//Add the helper to the DOM if that didn't happen already\n\t\tif ( !helper.parents( \"body\" ).length ) {\n\t\t\tthis.appendTo[ 0 ].appendChild( helper[ 0 ] );\n\t\t}\n\n\t\tif ( helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tthis._storedCSS = {\n\t\t\t\twidth: this.currentItem[ 0 ].style.width,\n\t\t\t\theight: this.currentItem[ 0 ].style.height,\n\t\t\t\tposition: this.currentItem.css( \"position\" ),\n\t\t\t\ttop: this.currentItem.css( \"top\" ),\n\t\t\t\tleft: this.currentItem.css( \"left\" )\n\t\t\t};\n\t\t}\n\n\t\tif ( !helper[ 0 ].style.width || o.forceHelperSize ) {\n\t\t\thelper.width( this.currentItem.width() );\n\t\t}\n\t\tif ( !helper[ 0 ].style.height || o.forceHelperSize ) {\n\t\t\thelper.height( this.currentItem.height() );\n\t\t}\n\n\t\treturn helper;\n\n\t},\n\n\t_adjustOffsetFromHelper: function( obj ) {\n\t\tif ( typeof obj === \"string\" ) {\n\t\t\tobj = obj.split( \" \" );\n\t\t}\n\t\tif ( Array.isArray( obj ) ) {\n\t\t\tobj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };\n\t\t}\n\t\tif ( \"left\" in obj ) {\n\t\t\tthis.offset.click.left = obj.left + this.margins.left;\n\t\t}\n\t\tif ( \"right\" in obj ) {\n\t\t\tthis.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;\n\t\t}\n\t\tif ( \"top\" in obj ) {\n\t\t\tthis.offset.click.top = obj.top + this.margins.top;\n\t\t}\n\t\tif ( \"bottom\" in obj ) {\n\t\t\tthis.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;\n\t\t}\n\t},\n\n\t_getParentOffset: function() {\n\n\t\t//Get the offsetParent and cache its position\n\t\tthis.offsetParent = this.helper.offsetParent();\n\t\tvar po = this.offsetParent.offset();\n\n\t\t// This is a special case where we need to modify a offset calculated on start, since the\n\t\t// following happened:\n\t\t// 1. The position of the helper is absolute, so it's position is calculated based on the\n\t\t// next positioned parent\n\t\t// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't\n\t\t// the document, which means that the scroll is included in the initial calculation of the\n\t\t// offset of the parent, and never recalculated upon drag\n\t\tif ( this.cssPosition === \"absolute\" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {\n\t\t\tpo.left += this.scrollParent.scrollLeft();\n\t\t\tpo.top += this.scrollParent.scrollTop();\n\t\t}\n\n\t\t// This needs to be actually done for all browsers, since pageX/pageY includes this\n\t\t// information with an ugly IE fix\n\t\tif ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||\n\t\t\t\t( this.offsetParent[ 0 ].tagName &&\n\t\t\t\tthis.offsetParent[ 0 ].tagName.toLowerCase() === \"html\" && $.ui.ie ) ) {\n\t\t\tpo = { top: 0, left: 0 };\n\t\t}\n\n\t\treturn {\n\t\t\ttop: po.top + ( parseInt( this.offsetParent.css( \"borderTopWidth\" ), 10 ) || 0 ),\n\t\t\tleft: po.left + ( parseInt( this.offsetParent.css( \"borderLeftWidth\" ), 10 ) || 0 )\n\t\t};\n\n\t},\n\n\t_getRelativeOffset: function() {\n\n\t\tif ( this.cssPosition === \"relative\" ) {\n\t\t\tvar p = this.currentItem.position();\n\t\t\treturn {\n\t\t\t\ttop: p.top - ( parseInt( this.helper.css( \"top\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollTop(),\n\t\t\t\tleft: p.left - ( parseInt( this.helper.css( \"left\" ), 10 ) || 0 ) +\n\t\t\t\t\tthis.scrollParent.scrollLeft()\n\t\t\t};\n\t\t} else {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t},\n\n\t_cacheMargins: function() {\n\t\tthis.margins = {\n\t\t\tleft: ( parseInt( this.currentItem.css( \"marginLeft\" ), 10 ) || 0 ),\n\t\t\ttop: ( parseInt( this.currentItem.css( \"marginTop\" ), 10 ) || 0 )\n\t\t};\n\t},\n\n\t_cacheHelperProportions: function() {\n\t\tthis.helperProportions = {\n\t\t\twidth: this.helper.outerWidth(),\n\t\t\theight: this.helper.outerHeight()\n\t\t};\n\t},\n\n\t_setContainment: function() {\n\n\t\tvar ce, co, over,\n\t\t\to = this.options;\n\t\tif ( o.containment === \"parent\" ) {\n\t\t\to.containment = this.helper[ 0 ].parentNode;\n\t\t}\n\t\tif ( o.containment === \"document\" || o.containment === \"window\" ) {\n\t\t\tthis.containment = [\n\t\t\t\t0 - this.offset.relative.left - this.offset.parent.left,\n\t\t\t\t0 - this.offset.relative.top - this.offset.parent.top,\n\t\t\t\to.containment === \"document\" ?\n\t\t\t\t\tthis.document.width() :\n\t\t\t\t\tthis.window.width() - this.helperProportions.width - this.margins.left,\n\t\t\t\t( o.containment === \"document\" ?\n\t\t\t\t\t( this.document.height() || document.body.parentNode.scrollHeight ) :\n\t\t\t\t\tthis.window.height() || this.document[ 0 ].body.parentNode.scrollHeight\n\t\t\t\t) - this.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t\tif ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {\n\t\t\tce = $( o.containment )[ 0 ];\n\t\t\tco = $( o.containment ).offset();\n\t\t\tover = ( $( ce ).css( \"overflow\" ) !== \"hidden\" );\n\n\t\t\tthis.containment = [\n\t\t\t\tco.left + ( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingLeft\" ), 10 ) || 0 ) - this.margins.left,\n\t\t\t\tco.top + ( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) +\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingTop\" ), 10 ) || 0 ) - this.margins.top,\n\t\t\t\tco.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderLeftWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingRight\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.width - this.margins.left,\n\t\t\t\tco.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"borderTopWidth\" ), 10 ) || 0 ) -\n\t\t\t\t\t( parseInt( $( ce ).css( \"paddingBottom\" ), 10 ) || 0 ) -\n\t\t\t\t\tthis.helperProportions.height - this.margins.top\n\t\t\t];\n\t\t}\n\n\t},\n\n\t_convertPositionTo: function( d, pos ) {\n\n\t\tif ( !pos ) {\n\t\t\tpos = this.position;\n\t\t}\n\t\tvar mod = d === \"absolute\" ? 1 : -1,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.top\t+\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top * mod -\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpos.left +\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left * mod +\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left * mod\t-\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :\n\t\t\t\t\tscroll.scrollLeft() ) * mod )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_generatePosition: function( event ) {\n\n\t\tvar top, left,\n\t\t\to = this.options,\n\t\t\tpageX = event.pageX,\n\t\t\tpageY = event.pageY,\n\t\t\tscroll = this.cssPosition === \"absolute\" &&\n\t\t\t\t!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\t$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?\n\t\t\t\t\tthis.offsetParent :\n\t\t\t\t\tthis.scrollParent,\n\t\t\t\tscrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );\n\n\t\t// This is another very weird special case that only happens for relative elements:\n\t\t// 1. If the css position is relative\n\t\t// 2. and the scroll parent is the document or similar to the offset parent\n\t\t// we have to refresh the relative offset during the scroll so there are no jumps\n\t\tif ( this.cssPosition === \"relative\" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&\n\t\t\t\tthis.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {\n\t\t\tthis.offset.relative = this._getRelativeOffset();\n\t\t}\n\n\t\t/*\n\t\t * - Position constraining -\n\t\t * Constrain the position to a mix of grid, containment.\n\t\t */\n\n\t\tif ( this.originalPosition ) { //If we are not dragging yet, we won't check for options\n\n\t\t\tif ( this.containment ) {\n\t\t\t\tif ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {\n\t\t\t\t\tpageX = this.containment[ 0 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {\n\t\t\t\t\tpageY = this.containment[ 1 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t\tif ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {\n\t\t\t\t\tpageX = this.containment[ 2 ] + this.offset.click.left;\n\t\t\t\t}\n\t\t\t\tif ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {\n\t\t\t\t\tpageY = this.containment[ 3 ] + this.offset.click.top;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( o.grid ) {\n\t\t\t\ttop = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /\n\t\t\t\t\to.grid[ 1 ] ) * o.grid[ 1 ];\n\t\t\t\tpageY = this.containment ?\n\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] &&\n\t\t\t\t\t\ttop - this.offset.click.top <= this.containment[ 3 ] ) ?\n\t\t\t\t\t\t\ttop :\n\t\t\t\t\t\t\t( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?\n\t\t\t\t\t\t\t\ttop - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :\n\t\t\t\t\t\t\t\ttop;\n\n\t\t\t\tleft = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /\n\t\t\t\t\to.grid[ 0 ] ) * o.grid[ 0 ];\n\t\t\t\tpageX = this.containment ?\n\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] &&\n\t\t\t\t\t\tleft - this.offset.click.left <= this.containment[ 2 ] ) ?\n\t\t\t\t\t\t\tleft :\n\t\t\t\t\t\t\t( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?\n\t\t\t\t\t\t\t\tleft - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :\n\t\t\t\t\t\t\t\tleft;\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttop: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageY -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.top -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.top -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.top +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollTop() :\n\t\t\t\t\t( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )\n\t\t\t),\n\t\t\tleft: (\n\n\t\t\t\t// The absolute mouse position\n\t\t\t\tpageX -\n\n\t\t\t\t// Click offset (relative to the element)\n\t\t\t\tthis.offset.click.left -\n\n\t\t\t\t// Only for relative positioned nodes: Relative offset from element to offset parent\n\t\t\t\tthis.offset.relative.left -\n\n\t\t\t\t// The offsetParent's offset without borders (offset + border)\n\t\t\t\tthis.offset.parent.left +\n\t\t\t\t( ( this.cssPosition === \"fixed\" ?\n\t\t\t\t\t-this.scrollParent.scrollLeft() :\n\t\t\t\t\tscrollIsRootNode ? 0 : scroll.scrollLeft() ) )\n\t\t\t)\n\t\t};\n\n\t},\n\n\t_rearrange: function( event, i, a, hardRefresh ) {\n\n\t\tif ( a ) {\n\t\t\ta[ 0 ].appendChild( this.placeholder[ 0 ] );\n\t\t} else {\n\t\t\ti.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],\n\t\t\t\t( this.direction === \"down\" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );\n\t\t}\n\n\t\t//Various things done here to improve the performance:\n\t\t// 1. we create a setTimeout, that calls refreshPositions\n\t\t// 2. on the instance, we have a counter variable, that get's higher after every append\n\t\t// 3. on the local scope, we copy the counter variable, and check in the timeout,\n\t\t// if it's still the same\n\t\t// 4. this lets only the last addition to the timeout stack through\n\t\tthis.counter = this.counter ? ++this.counter : 1;\n\t\tvar counter = this.counter;\n\n\t\tthis._delay( function() {\n\t\t\tif ( counter === this.counter ) {\n\n\t\t\t\t//Precompute after each DOM insertion, NOT on mousemove\n\t\t\t\tthis.refreshPositions( !hardRefresh );\n\t\t\t}\n\t\t} );\n\n\t},\n\n\t_clear: function( event, noPropagation ) {\n\n\t\tthis.reverting = false;\n\n\t\t// We delay all events that have to be triggered to after the point where the placeholder\n\t\t// has been removed and everything else normalized again\n\t\tvar i,\n\t\t\tdelayedTriggers = [];\n\n\t\t// We first have to update the dom position of the actual currentItem\n\t\t// Note: don't do it if the current item is already removed (by a user), or it gets\n\t\t// reappended (see #4088)\n\t\tif ( !this._noFinalSort && this.currentItem.parent().length ) {\n\t\t\tthis.placeholder.before( this.currentItem );\n\t\t}\n\t\tthis._noFinalSort = null;\n\n\t\tif ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {\n\t\t\tfor ( i in this._storedCSS ) {\n\t\t\t\tif ( this._storedCSS[ i ] === \"auto\" || this._storedCSS[ i ] === \"static\" ) {\n\t\t\t\t\tthis._storedCSS[ i ] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.currentItem.css( this._storedCSS );\n\t\t\tthis._removeClass( this.currentItem, \"ui-sortable-helper\" );\n\t\t} else {\n\t\t\tthis.currentItem.show();\n\t\t}\n\n\t\tif ( this.fromOutside && !noPropagation ) {\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"receive\", event, this._uiHash( this.fromOutside ) );\n\t\t\t} );\n\t\t}\n\t\tif ( ( this.fromOutside ||\n\t\t\t\tthis.domPosition.prev !==\n\t\t\t\tthis.currentItem.prev().not( \".ui-sortable-helper\" )[ 0 ] ||\n\t\t\t\tthis.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {\n\n\t\t\t// Trigger update callback if the DOM position has changed\n\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\tthis._trigger( \"update\", event, this._uiHash() );\n\t\t\t} );\n\t\t}\n\n\t\t// Check if the items Container has Changed and trigger appropriate\n\t\t// events.\n\t\tif ( this !== this.currentContainer ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( function( event ) {\n\t\t\t\t\tthis._trigger( \"remove\", event, this._uiHash() );\n\t\t\t\t} );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"receive\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t\tdelayedTriggers.push( ( function( c ) {\n\t\t\t\t\treturn function( event ) {\n\t\t\t\t\t\tc._trigger( \"update\", event, this._uiHash( this ) );\n\t\t\t\t\t};\n\t\t\t\t} ).call( this, this.currentContainer ) );\n\t\t\t}\n\t\t}\n\n\t\t//Post events to containers\n\t\tfunction delayEvent( type, instance, container ) {\n\t\t\treturn function( event ) {\n\t\t\t\tcontainer._trigger( type, event, instance._uiHash( instance ) );\n\t\t\t};\n\t\t}\n\t\tfor ( i = this.containers.length - 1; i >= 0; i-- ) {\n\t\t\tif ( !noPropagation ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"deactivate\", this, this.containers[ i ] ) );\n\t\t\t}\n\t\t\tif ( this.containers[ i ].containerCache.over ) {\n\t\t\t\tdelayedTriggers.push( delayEvent( \"out\", this, this.containers[ i ] ) );\n\t\t\t\tthis.containers[ i ].containerCache.over = 0;\n\t\t\t}\n\t\t}\n\n\t\t//Do what was originally in plugins\n\t\tif ( this.storedCursor ) {\n\t\t\tthis.document.find( \"body\" ).css( \"cursor\", this.storedCursor );\n\t\t\tthis.storedStylesheet.remove();\n\t\t}\n\t\tif ( this._storedOpacity ) {\n\t\t\tthis.helper.css( \"opacity\", this._storedOpacity );\n\t\t}\n\t\tif ( this._storedZIndex ) {\n\t\t\tthis.helper.css( \"zIndex\", this._storedZIndex === \"auto\" ? \"\" : this._storedZIndex );\n\t\t}\n\n\t\tthis.dragging = false;\n\n\t\tif ( !noPropagation ) {\n\t\t\tthis._trigger( \"beforeStop\", event, this._uiHash() );\n\t\t}\n\n\t\t//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,\n\t\t// it unbinds ALL events from the original node!\n\t\tthis.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );\n\n\t\tif ( !this.cancelHelperRemoval ) {\n\t\t\tif ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {\n\t\t\t\tthis.helper.remove();\n\t\t\t}\n\t\t\tthis.helper = null;\n\t\t}\n\n\t\tif ( !noPropagation ) {\n\t\t\tfor ( i = 0; i < delayedTriggers.length; i++ ) {\n\n\t\t\t\t// Trigger all delayed events\n\t\t\t\tdelayedTriggers[ i ].call( this, event );\n\t\t\t}\n\t\t\tthis._trigger( \"stop\", event, this._uiHash() );\n\t\t}\n\n\t\tthis.fromOutside = false;\n\t\treturn !this.cancelHelperRemoval;\n\n\t},\n\n\t_trigger: function() {\n\t\tif ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {\n\t\t\tthis.cancel();\n\t\t}\n\t},\n\n\t_uiHash: function( _inst ) {\n\t\tvar inst = _inst || this;\n\t\treturn {\n\t\t\thelper: inst.helper,\n\t\t\tplaceholder: inst.placeholder || $( [] ),\n\t\t\tposition: inst.position,\n\t\t\toriginalPosition: inst.originalPosition,\n\t\t\toffset: inst.positionAbs,\n\t\t\titem: inst.currentItem,\n\t\t\tsender: _inst ? _inst.element : null\n\t\t};\n\t}\n\n} );\n\n} );\n","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"