diff --git a/js/dist/forum.js b/js/dist/forum.js index 1cfcdde4f..c0fb4f4eb 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -20445,6 +20445,240 @@ var DiscussionsUserPage = /*#__PURE__*/function (_UserPage) { +/***/ }), + +/***/ "./src/forum/components/EditUserModal.tsx": +/*!************************************************!*\ + !*** ./src/forum/components/EditUserModal.tsx ***! + \************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return EditUserModal; }); +/* harmony import */ var _babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/possibleConstructorReturn */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"); +/* harmony import */ var _babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/getPrototypeOf */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js"); +/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ "./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js"); +/* harmony import */ var _common_components_Modal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../common/components/Modal */ "./src/common/components/Modal.tsx"); +/* harmony import */ var _common_components_Button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/components/Button */ "./src/common/components/Button.tsx"); +/* harmony import */ var _common_components_GroupBadge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/components/GroupBadge */ "./src/common/components/GroupBadge.ts"); +/* harmony import */ var _common_models_Group__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../common/models/Group */ "./src/common/models/Group.ts"); +/* harmony import */ var _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../common/utils/ItemList */ "./src/common/utils/ItemList.ts"); + + + + +function _createSuper(Derived) { return function () { var Super = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__["default"])(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = Object(_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_1__["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return Object(_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_0__["default"])(this, result); }; } + +function _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; } } + + + + + + + +/** + * The `EditUserModal` component displays a modal dialog with a login form. + */ +var EditUserModal = /*#__PURE__*/function (_Modal) { + Object(_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__["default"])(EditUserModal, _Modal); + + var _super = _createSuper(EditUserModal); + + function EditUserModal() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _Modal.call.apply(_Modal, [this].concat(args)) || this; + _this.username = void 0; + _this.email = void 0; + _this.isEmailConfirmed = void 0; + _this.setPassword = void 0; + _this.password = void 0; + _this.groups = {}; + return _this; + } + + var _proto = EditUserModal.prototype; + + _proto.oninit = function oninit(vnode) { + var _this2 = this; + + _Modal.prototype.oninit.call(this, vnode); + + var user = this.props.user; + this.username = m.prop(user.username() || ''); + this.email = m.prop(user.email() || ''); + this.isEmailConfirmed = m.prop(user.isEmailConfirmed() || false); + this.setPassword = m.prop(false); + this.password = m.prop(user.password() || ''); + this.groups = {}; + app.store.all('groups').filter(function (group) { + return [_common_models_Group__WEBPACK_IMPORTED_MODULE_6__["default"].GUEST_ID, _common_models_Group__WEBPACK_IMPORTED_MODULE_6__["default"].MEMBER_ID].indexOf(group.id()) === -1; + }).forEach(function (group) { + return _this2.groups[group.id()] = m.prop(user.groups().indexOf(group) !== -1); + }); + }; + + _proto.className = function className() { + return 'EditUserModal Modal--small'; + }; + + _proto.title = function title() { + return app.translator.transText('core.forum.edit_user.title'); + }; + + _proto.content = function content() { + return m("div", { + className: "Modal-body" + }, m("div", { + className: "Form" + }, this.fields().toArray())); + }; + + _proto.fields = function fields() { + var _this3 = this; + + var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_7__["default"](); + items.add('username', m("div", { + className: "Form-group" + }, m("label", null, app.translator.transText('core.forum.edit_user.username_heading')), m("input", { + className: "FormControl", + placeholder: app.translator.transText('core.forum.edit_user.username_label'), + bidi: this.username + })), 40); + + if (app.session.user !== this.props.user) { + items.add('email', m("div", { + className: "Form-group" + }, m("label", null, app.translator.trans('core.forum.edit_user.email_heading')), m("div", null, m("input", { + className: "FormControl", + placeholder: app.translator.transText('core.forum.edit_user.email_label'), + bidi: this.email + })), !this.isEmailConfirmed() && m("div", null, _common_components_Button__WEBPACK_IMPORTED_MODULE_4__["default"].component({ + className: 'Button Button--block', + children: app.translator.trans('core.forum.edit_user.activate_button'), + loading: this.loading, + onclick: this.activate.bind(this) + }))), 30); + items.add('password', m("div", { + className: "Form-group" + }, m("label", null, app.translator.trans('core.forum.edit_user.password_heading')), m("div", null, m("label", { + className: "checkbox" + }, m("input", { + type: "checkbox", + onchange: function onchange(e) { + _this3.setPassword(e.target.checked); + + m.redraw(); + if (e.target.checked) _this3.$('[name=password]').select(); + } + }), app.translator.trans('core.forum.edit_user.set_password_label')), this.setPassword() && m("input", { + className: "FormControl", + type: "password", + name: "password", + placeholder: app.translator.transText('core.forum.edit_user.password_label'), + bidi: this.password + }))), 20); + } + + items.add('groups', m("div", { + className: "Form-group EditUserModal-groups" + }, m("label", null, app.translator.trans('core.forum.edit_user.groups_heading')), m("div", null, Object.keys(this.groups).map(function (id) { + return app.store.getById('groups', id); + }).map(function (group) { + return m("label", { + className: "checkbox" + }, m("input", { + type: "checkbox", + bidi: _this3.groups[group.id()], + disabled: _this3.props.user.id() === '1' && group.id() === _common_models_Group__WEBPACK_IMPORTED_MODULE_6__["default"].ADMINISTRATOR_ID + }), m(_common_components_GroupBadge__WEBPACK_IMPORTED_MODULE_5__["default"], { + group: group, + label: '' + }), " ", group.nameSingular()); + }))), 10); + items.add('submit', m("div", { + className: "Form-group" + }, _common_components_Button__WEBPACK_IMPORTED_MODULE_4__["default"].component({ + className: 'Button Button--primary', + type: 'submit', + loading: this.loading, + children: app.translator.trans('core.forum.edit_user.submit_button') + })), -10); + return items; + }; + + _proto.activate = function activate() { + var _this4 = this; + + this.loading = true; + var data = { + username: this.username(), + isEmailConfirmed: true + }; + return this.props.user.save(data, { + errorHandler: this.onerror.bind(this) + }).then(function () { + _this4.isEmailConfirmed(true); + + _this4.loading = false; + m.redraw(); + }).catch(function () { + _this4.loading = false; + m.redraw(); + }); + }; + + _proto.data = function data() { + var _this5 = this; + + var groups = Object.keys(this.groups).filter(function (id) { + return _this5.groups[id](); + }).map(function (id) { + return app.store.getById('groups', id); + }); + var data = { + username: this.username(), + relationships: { + groups: groups + } + }; + + if (app.session.user !== this.props.user) { + data.email = this.email(); + } + + if (this.setPassword()) { + data.password = this.password(); + } + + return data; + }; + + _proto.onsubmit = function onsubmit(e) { + var _this6 = this; + + e.preventDefault(); + this.loading = true; + this.props.user.save(this.data(), { + errorHandler: this.onerror.bind(this) + }).then(this.hide.bind(this)).catch(function () { + _this6.loading = false; + m.redraw(); + }); + }; + + return EditUserModal; +}(_common_components_Modal__WEBPACK_IMPORTED_MODULE_3__["default"]); + + + /***/ }), /***/ "./src/forum/components/EventPost.tsx": @@ -26396,11 +26630,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _common_components_Alert__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../common/components/Alert */ "./src/common/components/Alert.tsx"); /* harmony import */ var _common_components_Button__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../common/components/Button */ "./src/common/components/Button.tsx"); /* harmony import */ var _common_components_Separator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../common/components/Separator */ "./src/common/components/Separator.tsx"); -/* harmony import */ var _components_UserPage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/UserPage */ "./src/forum/components/UserPage.tsx"); -/* harmony import */ var _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../common/utils/ItemList */ "./src/common/utils/ItemList.ts"); +/* harmony import */ var _components_EditUserModal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/EditUserModal */ "./src/forum/components/EditUserModal.tsx"); +/* harmony import */ var _components_UserPage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/UserPage */ "./src/forum/components/UserPage.tsx"); +/* harmony import */ var _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../common/utils/ItemList */ "./src/common/utils/ItemList.ts"); + - // import EditUserModal from '../components/EditUserModal'; @@ -26420,7 +26655,7 @@ __webpack_require__.r(__webpack_exports__); controls: function controls(user, context) { var _this = this; - var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_4__["default"](); + var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__["default"](); ['user', 'moderation', 'destructive'].forEach(function (section) { var controls = _this[section](user, context).toArray(); @@ -26438,14 +26673,14 @@ __webpack_require__.r(__webpack_exports__); * Get controls for a user pertaining to the current user (e.g. poke, follow). */ user: function user() { - return new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_4__["default"](); + return new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__["default"](); }, /** * Get controls for a user pertaining to moderation (e.g. suspend, edit). */ moderation: function moderation(user) { - var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_4__["default"](); + var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__["default"](); if (user.canEdit()) { items.add('edit', _common_components_Button__WEBPACK_IMPORTED_MODULE_1__["default"].component({ @@ -26462,7 +26697,7 @@ __webpack_require__.r(__webpack_exports__); * Get controls for a user which are destructive (e.g. delete). */ destructive: function destructive(user) { - var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_4__["default"](); + var items = new _common_utils_ItemList__WEBPACK_IMPORTED_MODULE_5__["default"](); if (user.id() !== '1' && user.canDelete()) { items.add('delete', _common_components_Button__WEBPACK_IMPORTED_MODULE_1__["default"].component({ @@ -26488,7 +26723,7 @@ __webpack_require__.r(__webpack_exports__); user.delete().then(function () { _this2.showDeletionAlert(user, 'success'); - if (app.current instanceof _components_UserPage__WEBPACK_IMPORTED_MODULE_3__["default"] && app.current.user === user) { + if (app.current instanceof _components_UserPage__WEBPACK_IMPORTED_MODULE_4__["default"] && app.current.user === user) { app.history.back(); } else { window.location.reload(); @@ -26519,7 +26754,7 @@ __webpack_require__.r(__webpack_exports__); * Edit the user. */ editAction: function editAction(user) { - app.modal.show(EditUserModal, { + app.modal.show(_components_EditUserModal__WEBPACK_IMPORTED_MODULE_3__["default"], { user: user }); } diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index 9704da54c..dab00ec35 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://@flarum/core/webpack/bootstrap","webpack://@flarum/core/./forum.ts","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://@flarum/core/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@flarum/core/./node_modules/zepto/dist/zepto.js","webpack://@flarum/core/./node_modules/classNames/index.js","webpack://@flarum/core/./node_modules/colorthief/dist/color-thief.umd.js","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js","webpack://@flarum/core/./node_modules/m.attrs.bidi/bidi.js","webpack://@flarum/core/./node_modules/mithril/index.js","webpack://@flarum/core/./node_modules/mousetrap/mousetrap.js","webpack://@flarum/core/./node_modules/bootstrap/js/dropdown.js","webpack://@flarum/core/./node_modules/bootstrap/js/transition.js","webpack://@flarum/core/./node_modules/dayjs/plugin/localizedFormat.js","webpack://@flarum/core/./node_modules/dayjs/plugin/relativeTime.js","webpack://@flarum/core/./node_modules/colorthief/dist/color-thief.umd.js-exposed","webpack://@flarum/core/./node_modules/mousetrap/mousetrap.js-exposed","webpack://@flarum/core/./node_modules/classNames/index.js-exposed","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js-exposed","webpack://@flarum/core/./node_modules/zepto/dist/zepto.js-exposed","webpack://@flarum/core/./node_modules/mithril/index.js-exposed","webpack://@flarum/core/./node_modules/m.attrs.bidi/bidi.js-exposed","webpack://@flarum/core/./node_modules/dayjs/dayjs.min.js-exposed?da0f","webpack://@flarum/core/./node_modules/hc-sticky/dist/hc-sticky.js","webpack://@flarum/core/./node_modules/jump.js/dist/jump.module.js","webpack://@flarum/core/./node_modules/lodash/_Symbol.js","webpack://@flarum/core/./node_modules/lodash/_arrayPush.js","webpack://@flarum/core/./node_modules/lodash/_baseFlatten.js","webpack://@flarum/core/./node_modules/lodash/_baseGetTag.js","webpack://@flarum/core/./node_modules/lodash/_baseIsArguments.js","webpack://@flarum/core/./node_modules/lodash/_freeGlobal.js","webpack://@flarum/core/./node_modules/lodash/_getRawTag.js","webpack://@flarum/core/./node_modules/lodash/_isFlattenable.js","webpack://@flarum/core/./node_modules/lodash/_objectToString.js","webpack://@flarum/core/./node_modules/lodash/_root.js","webpack://@flarum/core/./node_modules/lodash/flattenDeep.js","webpack://@flarum/core/./node_modules/lodash/isArguments.js","webpack://@flarum/core/./node_modules/lodash/isArray.js","webpack://@flarum/core/./node_modules/lodash/isObjectLike.js","webpack://@flarum/core/./node_modules/micromodal/dist/micromodal.es.js","webpack://@flarum/core/./node_modules/mithril/api/mount-redraw.js","webpack://@flarum/core/./node_modules/mithril/api/router.js","webpack://@flarum/core/./node_modules/mithril/hyperscript.js","webpack://@flarum/core/./node_modules/mithril/mount-redraw.js","webpack://@flarum/core/./node_modules/mithril/pathname/assign.js","webpack://@flarum/core/./node_modules/mithril/pathname/build.js","webpack://@flarum/core/./node_modules/mithril/pathname/compileTemplate.js","webpack://@flarum/core/./node_modules/mithril/pathname/parse.js","webpack://@flarum/core/./node_modules/mithril/promise/polyfill.js","webpack://@flarum/core/./node_modules/mithril/promise/promise.js","webpack://@flarum/core/./node_modules/mithril/querystring/build.js","webpack://@flarum/core/./node_modules/mithril/querystring/parse.js","webpack://@flarum/core/./node_modules/mithril/render.js","webpack://@flarum/core/./node_modules/mithril/render/fragment.js","webpack://@flarum/core/./node_modules/mithril/render/hyperscript.js","webpack://@flarum/core/./node_modules/mithril/render/hyperscriptVnode.js","webpack://@flarum/core/./node_modules/mithril/render/render.js","webpack://@flarum/core/./node_modules/mithril/render/trust.js","webpack://@flarum/core/./node_modules/mithril/render/vnode.js","webpack://@flarum/core/./node_modules/mithril/request.js","webpack://@flarum/core/./node_modules/mithril/request/request.js","webpack://@flarum/core/./node_modules/mithril/route.js","webpack://@flarum/core/./node_modules/mithril/stream.js","webpack://@flarum/core/./node_modules/mithril/stream/stream.js","webpack://@flarum/core/../../src/utils/isBrowser.js","webpack://@flarum/core/../../src/utils/debounce.js","webpack://@flarum/core/../../src/utils/isFunction.js","webpack://@flarum/core/../../src/utils/getStyleComputedProperty.js","webpack://@flarum/core/../../src/utils/getParentNode.js","webpack://@flarum/core/../../src/utils/getScrollParent.js","webpack://@flarum/core/../../src/utils/getReferenceNode.js","webpack://@flarum/core/../../src/utils/isIE.js","webpack://@flarum/core/../../src/utils/getOffsetParent.js","webpack://@flarum/core/../../src/utils/isOffsetContainer.js","webpack://@flarum/core/../../src/utils/getRoot.js","webpack://@flarum/core/../../src/utils/findCommonOffsetParent.js","webpack://@flarum/core/../../src/utils/getScroll.js","webpack://@flarum/core/../../src/utils/includeScroll.js","webpack://@flarum/core/../../src/utils/getBordersSize.js","webpack://@flarum/core/../../src/utils/getWindowSizes.js","webpack://@flarum/core/../../src/utils/getClientRect.js","webpack://@flarum/core/../../src/utils/getBoundingClientRect.js","webpack://@flarum/core/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://@flarum/core/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://@flarum/core/../../src/utils/isFixed.js","webpack://@flarum/core/../../src/utils/getFixedPositionOffsetParent.js","webpack://@flarum/core/../../src/utils/getBoundaries.js","webpack://@flarum/core/../../src/utils/computeAutoPlacement.js","webpack://@flarum/core/../../src/utils/getReferenceOffsets.js","webpack://@flarum/core/../../src/utils/getOuterSizes.js","webpack://@flarum/core/../../src/utils/getOppositePlacement.js","webpack://@flarum/core/../../src/utils/getPopperOffsets.js","webpack://@flarum/core/../../src/utils/find.js","webpack://@flarum/core/../../src/utils/findIndex.js","webpack://@flarum/core/../../src/utils/runModifiers.js","webpack://@flarum/core/../../src/methods/update.js","webpack://@flarum/core/../../src/utils/isModifierEnabled.js","webpack://@flarum/core/../../src/utils/getSupportedPropertyName.js","webpack://@flarum/core/../../src/methods/destroy.js","webpack://@flarum/core/../../src/utils/getWindow.js","webpack://@flarum/core/../../src/utils/setupEventListeners.js","webpack://@flarum/core/../../src/methods/enableEventListeners.js","webpack://@flarum/core/../../src/utils/removeEventListeners.js","webpack://@flarum/core/../../src/methods/disableEventListeners.js","webpack://@flarum/core/../../src/utils/isNumeric.js","webpack://@flarum/core/../../src/utils/setStyles.js","webpack://@flarum/core/../../src/utils/setAttributes.js","webpack://@flarum/core/../../src/modifiers/applyStyle.js","webpack://@flarum/core/../../src/utils/getRoundedOffsets.js","webpack://@flarum/core/../../src/modifiers/computeStyle.js","webpack://@flarum/core/../../src/utils/isModifierRequired.js","webpack://@flarum/core/../../src/modifiers/arrow.js","webpack://@flarum/core/../../src/utils/getOppositeVariation.js","webpack://@flarum/core/../../src/methods/placements.js","webpack://@flarum/core/../../src/utils/clockwise.js","webpack://@flarum/core/../../src/modifiers/flip.js","webpack://@flarum/core/../../src/modifiers/keepTogether.js","webpack://@flarum/core/../../src/modifiers/offset.js","webpack://@flarum/core/../../src/modifiers/preventOverflow.js","webpack://@flarum/core/../../src/modifiers/shift.js","webpack://@flarum/core/../../src/modifiers/hide.js","webpack://@flarum/core/../../src/modifiers/inner.js","webpack://@flarum/core/../../src/modifiers/index.js","webpack://@flarum/core/../../src/methods/defaults.js","webpack://@flarum/core/../../src/index.js","webpack://@flarum/core/./node_modules/process/browser.js","webpack://@flarum/core/./node_modules/setimmediate/setImmediate.js","webpack://@flarum/core/./node_modules/spin.js/spin.js","webpack://@flarum/core/./node_modules/timers-browserify/main.js","webpack://@flarum/core/../../../popper/src/utils/isFunction.js","webpack://@flarum/core/(webpack)/buildin/amd-options.js","webpack://@flarum/core/(webpack)/buildin/global.js","webpack://@flarum/core/(webpack)/buildin/harmony-module.js","webpack://@flarum/core/./node_modules/zepto/src/data.js","webpack://@flarum/core/./node_modules/zepto/src/fx.js","webpack://@flarum/core/./node_modules/zepto/src/fx_methods.js","webpack://@flarum/core/./node_modules/zepto/src/selector.js","webpack://@flarum/core/./src/common/Application.ts","webpack://@flarum/core/./src/common/Component.ts","webpack://@flarum/core/./src/common/Model.ts","webpack://@flarum/core/./src/common/Session.ts","webpack://@flarum/core/./src/common/Store.ts","webpack://@flarum/core/./src/common/Translator.ts","webpack://@flarum/core/./src/common/compat.ts","webpack://@flarum/core/./src/common/components/Alert.tsx","webpack://@flarum/core/./src/common/components/AlertManager.tsx","webpack://@flarum/core/./src/common/components/Badge.tsx","webpack://@flarum/core/./src/common/components/Button.tsx","webpack://@flarum/core/./src/common/components/Checkbox.tsx","webpack://@flarum/core/./src/common/components/Dropdown.tsx","webpack://@flarum/core/./src/common/components/FieldSet.tsx","webpack://@flarum/core/./src/common/components/GroupBadge.ts","webpack://@flarum/core/./src/common/components/LinkButton.tsx","webpack://@flarum/core/./src/common/components/LoadingIndicator.tsx","webpack://@flarum/core/./src/common/components/Modal.tsx","webpack://@flarum/core/./src/common/components/ModalManager.tsx","webpack://@flarum/core/./src/common/components/Placeholder.tsx","webpack://@flarum/core/./src/common/components/RequestErrorModal.tsx","webpack://@flarum/core/./src/common/components/SelectDropdown.tsx","webpack://@flarum/core/./src/common/components/Separator.tsx","webpack://@flarum/core/./src/common/components/SplitDropdown.tsx","webpack://@flarum/core/./src/common/components/Switch.tsx","webpack://@flarum/core/./src/common/extend.ts","webpack://@flarum/core/./src/common/helpers/avatar.tsx","webpack://@flarum/core/./src/common/helpers/fullTime.tsx","webpack://@flarum/core/./src/common/helpers/highlight.ts","webpack://@flarum/core/./src/common/helpers/humanTime.tsx","webpack://@flarum/core/./src/common/helpers/icon.tsx","webpack://@flarum/core/./src/common/helpers/listItems.tsx","webpack://@flarum/core/./src/common/helpers/userOnline.tsx","webpack://@flarum/core/./src/common/helpers/username.tsx","webpack://@flarum/core/./src/common/index.ts","webpack://@flarum/core/./src/common/models/Discussion.tsx","webpack://@flarum/core/./src/common/models/Forum.ts","webpack://@flarum/core/./src/common/models/Group.ts","webpack://@flarum/core/./src/common/models/Notification.ts","webpack://@flarum/core/./src/common/models/Post.ts","webpack://@flarum/core/./src/common/models/User.ts","webpack://@flarum/core/./src/common/utils/Drawer.ts","webpack://@flarum/core/./src/common/utils/Evented.ts","webpack://@flarum/core/./src/common/utils/ItemList.ts","webpack://@flarum/core/./src/common/utils/RequestError.ts","webpack://@flarum/core/./src/common/utils/ScrollListener.ts","webpack://@flarum/core/./src/common/utils/SubtreeRetainer.ts","webpack://@flarum/core/./src/common/utils/abbreviateNumber.tsx","webpack://@flarum/core/./src/common/utils/anchorScroll.ts","webpack://@flarum/core/./src/common/utils/computed.ts","webpack://@flarum/core/./src/common/utils/extract.ts","webpack://@flarum/core/./src/common/utils/extractText.ts","webpack://@flarum/core/./src/common/utils/formatNumber.ts","webpack://@flarum/core/./src/common/utils/humanTime.ts","webpack://@flarum/core/./src/common/utils/mapRoutes.ts","webpack://@flarum/core/./src/common/utils/patchMithril.ts","webpack://@flarum/core/./src/common/utils/patchZepto.ts","webpack://@flarum/core/./src/common/utils/string.ts","webpack://@flarum/core/./src/common/utils/stringToColor.ts","webpack://@flarum/core/./src/forum/Forum.ts","webpack://@flarum/core/./src/forum/app.ts","webpack://@flarum/core/./src/forum/compat.ts","webpack://@flarum/core/./src/forum/components/AvatarEditor.tsx","webpack://@flarum/core/./src/forum/components/ChangeEmailModal.tsx","webpack://@flarum/core/./src/forum/components/ChangePasswordModal.tsx","webpack://@flarum/core/./src/forum/components/CommentPost.tsx","webpack://@flarum/core/./src/forum/components/DiscussionHero.tsx","webpack://@flarum/core/./src/forum/components/DiscussionList.tsx","webpack://@flarum/core/./src/forum/components/DiscussionListItem.tsx","webpack://@flarum/core/./src/forum/components/DiscussionPage.tsx","webpack://@flarum/core/./src/forum/components/DiscussionRenamedPost.tsx","webpack://@flarum/core/./src/forum/components/DiscussionsSearchSource.tsx","webpack://@flarum/core/./src/forum/components/DiscussionsUserPage.tsx","webpack://@flarum/core/./src/forum/components/EventPost.tsx","webpack://@flarum/core/./src/forum/components/HeaderPrimary.tsx","webpack://@flarum/core/./src/forum/components/HeaderSecondary.tsx","webpack://@flarum/core/./src/forum/components/IndexPage.tsx","webpack://@flarum/core/./src/forum/components/LoadingPost.tsx","webpack://@flarum/core/./src/forum/components/LogInButtons.tsx","webpack://@flarum/core/./src/forum/components/LogInModal.tsx","webpack://@flarum/core/./src/forum/components/NotificationGrid.tsx","webpack://@flarum/core/./src/forum/components/NotificationList.tsx","webpack://@flarum/core/./src/forum/components/NotificationsDropdown.tsx","webpack://@flarum/core/./src/forum/components/Page.tsx","webpack://@flarum/core/./src/forum/components/Post.tsx","webpack://@flarum/core/./src/forum/components/PostEdited.tsx","webpack://@flarum/core/./src/forum/components/PostMeta.tsx","webpack://@flarum/core/./src/forum/components/PostStream.tsx","webpack://@flarum/core/./src/forum/components/PostStreamScrubber.tsx","webpack://@flarum/core/./src/forum/components/PostUser.tsx","webpack://@flarum/core/./src/forum/components/PostsUserPage.tsx","webpack://@flarum/core/./src/forum/components/RenameDiscussionModal.tsx","webpack://@flarum/core/./src/forum/components/ReplyPlaceholder.tsx","webpack://@flarum/core/./src/forum/components/Search.tsx","webpack://@flarum/core/./src/forum/components/SearchSource.ts","webpack://@flarum/core/./src/forum/components/SessionDropdown.tsx","webpack://@flarum/core/./src/forum/components/SettingsPage.tsx","webpack://@flarum/core/./src/forum/components/SignUpModal.tsx","webpack://@flarum/core/./src/forum/components/TerminalPost.tsx","webpack://@flarum/core/./src/forum/components/UserCard.tsx","webpack://@flarum/core/./src/forum/components/UserPage.tsx","webpack://@flarum/core/./src/forum/components/UsersSearchSource.tsx","webpack://@flarum/core/./src/forum/components/WelcomeHero.tsx","webpack://@flarum/core/./src/forum/index.ts","webpack://@flarum/core/./src/forum/routes.ts","webpack://@flarum/core/./src/forum/utils/DiscussionControls.tsx","webpack://@flarum/core/./src/forum/utils/History.ts","webpack://@flarum/core/./src/forum/utils/KeyboardNavigatable.ts","webpack://@flarum/core/./src/forum/utils/PostControls.tsx","webpack://@flarum/core/./src/forum/utils/UserControls.ts","webpack://@flarum/core/./src/forum/utils/affixSidebar.ts","webpack://@flarum/core/external \"m\""],"names":["_assertThisInitialized","self","ReferenceError","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","constructor","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","_possibleConstructorReturn","_typeof","assertThisInitialized","obj","Symbol","iterator","global","factory","define","window","Zepto","undefined","$","classList","emptyArray","concat","filter","slice","document","elementDisplay","classCache","cssNumber","fragmentRE","singleTagRE","tagExpanderRE","rootNodeRE","capitalRE","methodAttributes","adjacencyOperators","table","createElement","tableRow","containers","readyRE","simpleSelectorRE","class2type","toString","zepto","camelize","uniq","tempParent","propMap","isArray","Array","object","matches","element","selector","nodeType","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","match","parent","parentNode","temp","appendChild","qsa","removeChild","type","String","isFunction","value","isWindow","isDocument","DOCUMENT_NODE","isObject","isPlainObject","likeArray","compact","array","item","flatten","fn","str","replace","chr","toUpperCase","dasherize","toLowerCase","idx","classRE","name","RegExp","maybeAddPx","defaultDisplay","nodeName","display","body","getComputedStyle","getPropertyValue","children","map","childNodes","node","Z","dom","len","fragment","html","properties","nodes","container","test","$1","innerHTML","each","attr","isZ","init","context","trim","find","ready","extend","deep","args","shift","forEach","arg","found","maybeID","maybeClass","nameOnly","isSimple","getElementById","getElementsByClassName","getElementsByTagName","querySelectorAll","filtered","contains","documentElement","funcArg","payload","setAttribute","removeAttribute","className","klass","svg","baseVal","deserializeValue","parseJSON","e","isEmptyObject","isNumeric","val","num","Number","isNaN","isFinite","inArray","elem","camelCase","uuid","support","expr","noop","elements","callback","values","push","grep","JSON","parse","split","reduce","sort","splice","toArray","el","readyState","addEventListener","get","size","remove","every","not","add","is","excludes","has","eq","first","last","result","$this","some","closest","collection","_","parents","ancestors","pluck","contents","contentDocument","siblings","child","empty","property","show","style","replaceWith","newContent","before","wrap","structure","func","clone","index","wrapAll","cloneNode","append","wrapInner","unwrap","hide","css","toggle","setting","prev","next","originHtml","text","newText","textContent","join","getAttribute","removeAttr","attribute","prop","removeProp","data","attrName","multiple","selected","offset","coordinates","coords","parentOffset","offsetParent","props","top","left","getBoundingClientRect","pageXOffset","pageYOffset","width","Math","round","height","computedStyle","removeProperty","cssText","hasClass","addClass","cls","newName","removeClass","toggleClass","when","names","scrollTop","hasScrollTop","scrollTo","scrollX","scrollLeft","hasScrollLeft","scrollY","position","parseFloat","detach","dimension","dimensionProperty","m","traverseNode","fun","operator","operatorIndex","inside","argType","arr","copyByClone","nextSibling","firstChild","parentInDocument","insertBefore","src","ownerDocument","defaultView","_zid","isString","handlers","specialEvents","focusinSupported","focus","blur","hover","mouseenter","mouseleave","click","mousedown","mouseup","mousemove","zid","findHandlers","event","ns","matcher","matcherFor","handler","sel","parts","eventCapture","captureSetting","del","realEvent","events","delegator","capture","id","set","related","relatedTarget","proxy","compatible","isImmediatePropagationStopped","_args","preventDefault","stopPropagation","removeEventListener","proxyFn","unshift","TypeError","bind","on","unbind","off","one","returnTrue","returnFalse","ignoreProperties","eventMethods","stopImmediatePropagation","isDefaultPrevented","predicate","sourceMethod","timeStamp","Date","now","defaultPrevented","returnValue","getPreventDefault","createProxy","originalEvent","delegate","undelegate","live","die","autoRemove","evt","currentTarget","liveFired","trigger","Event","dispatchEvent","triggerHandler","createEvent","bubbles","initEvent","jsonpID","rscript","scriptTypeRE","xmlTypeRE","jsonType","htmlType","blankRE","originAnchor","href","location","triggerAndReturn","eventName","triggerGlobal","settings","active","ajaxStart","ajaxStop","ajaxBeforeSend","xhr","beforeSend","ajaxSuccess","deferred","status","success","resolveWith","ajaxComplete","ajaxError","error","rejectWith","complete","ajaxDataFilter","dataFilter","ajaxJSONP","options","ajax","_callbackName","jsonpCallback","callbackName","script","originalCallback","responseData","abort","errorType","abortTimeout","promise","clearTimeout","url","head","timeout","setTimeout","ajaxSettings","XMLHttpRequest","accepts","json","xml","crossDomain","processData","cache","mimeToDataType","mime","appendQuery","query","serializeData","param","traditional","dataType","Deferred","urlAnchor","hashIndex","protocol","host","hasPlaceholder","jsonp","headers","setHeader","nativeSetHeader","setRequestHeader","mimeType","overrideMimeType","contentType","onreadystatechange","getResponseHeader","responseType","response","responseText","eval","responseXML","statusText","async","open","username","password","xhrFields","send","parseArguments","post","getJSON","load","escape","encodeURIComponent","serialize","params","scope","hash","serializeArray","field","disabled","checked","elm","submit","nativeGetComputedStyle","pseudoElement","hasOwn","classNames","classes","inner","module","exports","default","t","r","n","naturalOrder","sum","max","peek","pop","debug","u","r1","r2","g1","g2","b1","b2","histo","a","vboxes","vbox","count","volume","s","copy","h","c","f","v","l","min","_volume","_count_set","_count","avg","_avg","gval","bval","color","palette","nearest","sqrt","pow","forcebw","quantize","g","p","d","canvas","getContext","drawImage","getImageData","getColor","getPalette","colorCount","quality","isInteger","Error","getColorFromUrl","onload","Uint8Array","fromCharCode","btoa","getColorAsync","z","utcOffset","abs","floor","year","month","ceil","M","y","w","D","ms","Q","weekdays","months","format","pl","date","locale","$L","utc","$u","$offset","$d","NaN","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","day","hour","minute","second","millisecond","unix","valueOf","getTime","toDate","$locale","weekStart","$set","daysInMonth","subtract","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","isDayjs","en","Ls","_package","bidi","tag","attrs","multi","onchange","selectedOptions","x","oninput","option","view","ctrl","hyperscript","require","request","mountRedraw","trust","mount","route","render","redraw","parseQueryString","buildQueryString","parsePathname","buildPathname","vnode","PromisePolyfill","_MAP","_KEYCODE_MAP","_SHIFT_MAP","_SPECIAL_ALIASES","navigator","platform","_REVERSE_MAP","_addEvent","attachEvent","_characterFromEvent","character","which","shiftKey","_modifiersMatch","modifiers1","modifiers2","_eventModifiers","modifiers","altKey","ctrlKey","metaKey","_preventDefault","_stopPropagation","cancelBubble","_isModifier","_getReverseMap","_pickBestAction","action","_keysFromString","combination","_getKeyInfo","_belongsTo","ancestor","Mousetrap","targetElement","_callbacks","_directMap","_sequenceLevels","_resetTimer","_ignoreNextKeyup","_ignoreNextKeypress","_nextExpectedAction","_resetSequences","doNotReset","activeSequences","_getMatches","sequenceName","level","seq","deleteCombo","combo","deleteSequence","_fireCallback","sequence","stopCallback","srcElement","_handleKey","callbacks","maxLevel","processedSequenceCallback","ignoreThisKeypress","_handleKeyEvent","keyCode","handleKey","_resetSequenceTimer","_bindSequence","_increaseSequence","nextAction","_callbackAndReset","isFinal","wrappedCallback","_bindSingle","info","_bindMultiple","combinations","reset","composedPath","initialEventTarget","tagName","isContentEditable","addKeycodes","documentMousetrap","method","charAt","backdrop","Dropdown","VERSION","getParent","$parent","clearMenus","isActive","insertAfter","keydown","desc","$items","Plugin","old","dropdown","Constructor","noConflict","jQuery","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","end","emulateTransitionEnd","duration","called","$el","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","LTS","LT","L","LL","LLL","LLLL","formats","relativeTime","future","past","yy","to","from","toNow","fromNow","U","Y","bottom","bottomEnd","innerTop","innerSticker","stickyClass","stickTo","followScroll","responsive","mobileFirst","onStart","onStop","onBeforeResize","onResize","resizeDebounce","disable","queries","queryFlow","console","log","X","querySelector","Helpers","getStyle","innerWidth","stick","isAttached","attach","offsetLeft","release","stop","parseInt","positionLeft","marginLeft","b","S","k","E","T","j","O","C","getCascadedStyle","offsetHeight","right","verticalAlign","boxSizing","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","float","cssFloat","MozBoxSizing","offsetWidth","HTMLDocument","Document","clientHeight","scrollHeight","innerHeight","offsetTop","N","R","B","I","q","F","P","debounce","W","V","refresh","update","destroy","triggerMethod","reinit","hcSticky","defineProperty","writable","configurable","handleEvent","detachEvent","currentStyle","borderTopWidth","borderLeftWidth","margin","easeInOutQuad","jumper","start","easing","a11y","distance","timeStart","timeElapsed","loop","timeCurrent","requestAnimationFrame","done","jump","singleton","root","arrayPush","isFlattenable","baseFlatten","depth","isStrict","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","toStringTag","baseGetTag","isObjectLike","argsTag","baseIsArguments","freeGlobal","objectProto","nativeObjectToString","isOwn","unmasked","isArguments","spreadableSymbol","isConcatSpreadable","freeSelf","Function","INFINITY","flattenDeep","propertyIsEnumerable","_classCallCheck","instance","_defineProperties","descriptor","enumerable","_createClass","protoProps","staticProps","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","arr2","MicroModal","FOCUSABLE_ELEMENTS","Modal","_ref","targetModal","_ref$triggers","triggers","_ref$onShow","onShow","_ref$onClose","onClose","_ref$openTrigger","openTrigger","_ref$closeTrigger","closeTrigger","_ref$openClass","openClass","_ref$disableScroll","disableScroll","_ref$disableFocus","disableFocus","_ref$awaitCloseAnimat","awaitCloseAnimation","_ref$awaitOpenAnimati","awaitOpenAnimation","_ref$debugMode","debugMode","modal","config","registerTriggers","onClick","onKeydown","_this","_len","_key","Boolean","showModal","_this2","activeElement","scrollBehaviour","addEventListeners","setFocusToFirstNode","closeModal","removeEventListeners","closeModalById","overflow","hasAttribute","retainFocus","getFocusableNodes","_this3","focusableNodes","nodesWhichAreNotCloseTargets","focusedItemIndex","activeModal","generateTriggerMap","triggerAttr","triggerMap","attributes","validateModalPresence","warn","validateTriggerPresence","validateArgs","close","Vnode","schedule","subscriptions","rendering","pending","sync","component","Promise","compileTemplate","sentinel","$window","fireAsync","setPath","path","state","title","history","replaceState","prefix","pushState","currentResolver","currentPath","lastUpdate","SKIP","defaultRoute","routes","compiled","SyntaxError","check","callAsync","setImmediate","resolve","scheduled","onremove","defaultData","resolveRoute","search","pathname","decodeURIComponent","fail","matchedRoute","localComp","comp","onmatch","then","onbeforeupdate","oncreate","Link","onclick","oninit","onupdate","onbeforeremove","button","template","queryIndex","queryEnd","pathEnd","resolved","variadic","newQueryIndex","newHashIndex","newQueryEnd","newPathEnd","querystring","templateData","templateKeys","regexp","extra","exec","executor","resolvers","rejectors","resolveCurrent","rejectCurrent","_instance","list","shouldAbsorb","execute","executeOnce","retry","runs","run","onerror","onFulfilled","onRejection","resolveNext","rejectNext","reject","catch","finally","reason","all","total","consume","race","destructure","string","entries","counters","entry","levels","cursor","nextLevel","isNumber","getOwnPropertyDescriptor","hyperscriptVnode","normalizeChildren","selectorParser","selectorCache","isEmpty","compileSelector","attrValue","execSelector","class","newAttrs","$doc","currentRedraw","nameSpace","math","getNameSpace","xmlns","checkState","original","callHook","createNodes","vnodes","hooks","createNode","initLifecycle","createText","createHTML","createFragment","createComponent","createTextNode","insertNode","possibleParents","caption","thead","tbody","tfoot","tr","th","td","colgroup","col","domSize","createDocumentFragment","createElementNS","setAttrs","maybeSetContentEditable","setLateSelectAttrs","initComponent","$$reentrantLock$$","normalize","updateNodes","removeNodes","isOldKeyed","isKeyed","oldStart","commonLength","getNextSibling","removeNode","updateNode","oldEnd","oe","ve","topSibling","moveNodes","originalNextSibling","vnodesLength","oldIndices","li","pos","matched","lisIndices","getKeyMap","oldIndex","makeLisIndices","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","nodeValue","removeHTML","updateAttrs","lisTemp","il","frag","moveChildToFrag","contenteditable","contentEditable","content","mask","stateResult","attrsResult","reallyRemove","setAttr","isLifecycleMethod","isFormAttribute","updateEvent","setAttributeNS","updateStyle","hasPropertyKey","selectedIndex","nsLastIndex","normalized","uppercaseRegex","capital","normalizeKey","setProperty","EventDict","ev","force","namespace","namespaceURI","prevRedraw","input","oncompletion","callbackCount","PromiseProxy","makeRequest","background","hasHeader","assumeJSON","FormData","extract","aborted","replacedAbort","user","deserialize","withCredentials","message","code","stringify","random","callbackKey","Stream","lift","scan","merge","combine","scanMerge","warnedHalt","dependentStreams","dependentFns","stream","_changing","_state","_parents","_map","ignoreInitial","createEnd","_unregisterChild","s1","s2","childIndex","streams","changed","mappers","endStream","mapper","acc","origin","tuples","seed","tuple","timeoutDuration","longerTimeoutBrowsers","isBrowser","supportsMicroTasks","getType","functionToCheck","getStyleComputedProperty","overflowX","overflowY","getScrollParent","getParentNode","reference","isIE11","isIE10","version","noOffsetParent","isIE","getOffsetParent","getRoot","element1","element2","order","Node","range","commonAncestorContainer","isOffsetContainer","element1root","findCommonOffsetParent","side","upperSide","scrollingElement","getScroll","modifier","sideA","axis","sideB","styles","getSize","offsets","rect","sizes","getWindowSizes","horizScrollbar","vertScrollbar","getBordersSize","getClientRect","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","includeScroll","excludeScroll","relativeOffset","getOffsetRectRelativeToArbitraryNode","isFixed","boundaries","getFixedPositionOffsetParent","getReferenceNode","boundariesElement","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","popper","padding","isPaddingNumber","placement","getBoundaries","rects","refRect","sortedAreas","getArea","filteredAreas","computedPlacement","variation","commonOffsetParent","popperRect","getOuterSizes","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","referenceOffsets","getOppositePlacement","cur","modifiersToRun","ends","findIndex","getReferenceOffsets","computeAutoPlacement","getPopperOffsets","runModifiers","enabled","prefixes","upperProp","toCheck","isModifierEnabled","getSupportedPropertyName","isBody","passive","scrollElement","setupEventListeners","unit","noRound","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","requesting","isRequired","requested","isModifierRequired","arrowElement","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","validPlacements","placements","counter","BEHAVIORS","placementOpposite","flipOrder","clockwise","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flippedVariationByContent","flippedVariation","getOppositeVariation","useHeight","fragments","divider","splitRegex","ops","mergeWithPrevious","toValue","op","index2","basePlacement","parseOffset","transformProp","popperStyles","transform","shiftvariation","shiftOffsets","bound","subtractLength","keepTogether","Popper","modifierOptions","eventsEnabled","enableEventListeners","disableEventListeners","Utils","PopperUtils","Defaults","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","nextTick","Item","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","nextHandle","tasksByHandle","currentlyRunningATask","doc","registerImmediate","task","clearImmediate","runIfPresent","installNextTickImplementation","canUsePostMessage","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","installPostMessageImplementation","messagePrefix","onGlobalMessage","installMessageChannelImplementation","channel","MessageChannel","port1","port2","installReadyStateChangeImplementation","installSetTimeoutImplementation","attachTo","__assign","defaults","lines","radius","scale","corners","fadeColor","animation","rotate","direction","speed","zIndex","shadow","Spinner","opts","spin","drawLines","cancelAnimationFrame","animateId","borderRadius","shadows","parseBoxShadow","degrees","backgroundLine","transformOrigin","delay","line","boxShadow","normalizeShadow","regex","_i","_a","xUnits","yUnits","shadows_1","xy","convertOffset","radians","PI","sin","cos","Timeout","setInterval","clearInterval","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","onTimeout","_onTimeout","DEFAULT_OPTIONS","Tooltip","allowHtml","tooltipGenerator","tooltipNode","titleNode","arrowSelector","directEvents","oppositeEvents","computedDelay","isSet","lastTitle","dispose","updateTitleContent","_events","_setTooltipNodeEvent","relatedreference","relatedreference2","evt2","originalModule","webpackPolyfill","dataAttr","exp","expando","getData","store","setData","camelName","attributeData","hasData","removeData","methodName","origFn","eventPrefix","vendors","Webkit","Moz","testEl","supportedTransforms","transitionProperty","transitionDuration","transitionTiming","transitionDelay","animationName","animationDuration","animationTiming","animationDelay","cssReset","normalizeEvent","vendor","fx","speeds","_default","fast","slow","cssPrefix","animationEnd","animate","ease","anim","cssValues","cssProperties","transforms","that","endEvent","fired","clientLeft","docElem","origShow","origHide","origToggle","opacity","fadeTo","fadeIn","fadeOut","fadeToggle","oldQsa","oldMatches","visible","filters","hidden","filterRe","childRe","classTag","taggedParent","Application","forum","initializers","ItemList","session","translator","Translator","Store","forums","Forum","users","User","discussions","Discussion","posts","Post","groups","Group","notifications","Notification","booted","requestError","titleCount","drawer","Drawer","alerts","boot","initializer","pushPayload","resources","getById","Session","userId","csrfToken","bootExtensions","extensions","extension","extenders","extender","basePath","$modal","$alerts","$content","ModalManager","AlertManager","mapRoutes","ScrollListener","$app","preloadedApiDocument","apiDocument","results","setTitle","updateTitle","setTitleCount","queryString","originalOptions","errorHandler","RequestError","app","dismiss","alert","res","errors","detail","trans","isDebug","Alert","controls","Button","showDebug","RequestErrorModal","Component","setProps","$element","componentProps","initProps","Model","freshness","exists","pushData","innerKey","getIdentifier","pushAttributes","save","relationships","model","oldData","copyData","meta","apiEndpoint","delete","hasOne","relationship","hasMany","transformDate","login","logout","models","included","pushObject","createRecord","getBy","records","translations","addTranslations","parameters","translation","transText","extractText","transChoice","number","pluralize","hydrated","part","sPluralRegex","cPluralRegex","iPluralRegex","standardRules","explicitRules","rule","leftNumber","convertNumber","rightNumber","pluralPosition","NEGATIVE_INFINITY","POSITIVE_INFINITY","Evented","humanTime","computed","anchorScroll","abbreviateNumber","SubtreeRetainer","stringToColor","patchMithril","formatNumber","Switch","Badge","LoadingIndicator","Placeholder","Separator","SplitDropdown","FieldSet","LinkButton","Checkbox","SelectDropdown","GroupBadge","fullTime","avatar","icon","humanTimeHelper","highlight","userOnline","listItems","dismissible","ondismiss","dismissControl","components","clear","iconName","label","tooltip","loading","getButtonContent","withAttr","getDisplay","showing","buttonClassName","menuClassName","caretIcon","items","getButton","getMenu","onshow","$menu","isRight","onhide","group","backgroundColor","nameSingular","vdom","sizeOptions","isDismissible","onsubmit","onready","select","loaded","pointer","hideTimeout","modalProps","appendTo","activeChild","defaultLabel","isListItem","getFirstChild","buttonProps","override","newMethod","hasTitle","displayName","avatarUrl","time","mo","dayjs","datetime","full","phrase","highlighted","truncate","ago","humanTimeUtil","fontClass","isSeparator","withoutUnnecessarySeparators","newItems","prevItem","itemClassName","itemName","lastSeenAt","isOnline","localizedFormat","slug","createdAt","firstPost","lastPostedAt","lastPostedUser","lastPost","lastPostNumber","commentCount","replyCount","mostRelevantPost","lastReadAt","lastReadPostNumber","isUnread","unreadCount","isRead","hiddenAt","hiddenUser","isHidden","canReply","canRename","canHide","canDelete","removePost","markedAllAsReadAt","badges","postIds","link","namePlural","ADMINISTRATOR_ID","GUEST_ID","MEMBER_ID","fromUser","subject","discussion","contentHtml","contentPlain","getPlainContent","editedAt","editedUser","isEdited","canEdit","email","isEmailConfirmed","preferences","joinTime","unreadNotificationCount","newNotificationCount","discussionCount","avatarColor","calculateAvatarColor","image","Image","colorThief","ColorThief","crossOrigin","savePreferences","newPreferences","$backdrop","isOpen","getHandlers","wrapper","priority","later","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","ticking","relativeScroll","dependentKeys","compute","dependentValues","computedValue","recompute","maximumSignificantDigits","toLocaleString","routeName","_m","cb","includes","Dimension","sides","leave","animateScrollTop","slideUp","bindBeforeSpecialEvents","specialEvent","_init","originalHandler","$target","setup","substring","removeSelectors","ucfirst","hsvToRgb","charCodeAt","hue","rgb","History","postComponents","comment","CommentPost","discussionRenamed","DiscussionRenamedPost","previous","current","defaultAction","HeaderPrimary","HeaderSecondary","home","compat","IndexPage","AvatarEditor","isDraggedOver","quickUpload","enableDragover","disableDragover","dropUpload","controlItems","openPicker","upload","dataTransfer","files","$input","file","raw","failure","ChangeEmailModal","ChangePasswordModal","revealContent","postUser","subtree","cardVisible","isEditing","headerItems","configPreview","isInitialized","preview","updatePreview","composer","s9e","TextFormatter","updateInterval","onunload","toggleContent","DiscussionHero","DiscussionList","moreResults","loadMore","DiscussionListItem","requestParams","include","sortMap","relevance","latest","newest","oldest","loadResults","parseResults","preloadedDiscussions","page","links","removeDiscussion","addDiscussion","highlightRegExp","showUnread","showRepliesCount","jumpTo","DiscussionControls","markAsRead","infoItems","slidableInstance","slidable","idParam","showFirstPost","excerpt","TerminalPost","DiscussionPage","near","scrubber","includedPosts","discussionList","bodyClass","goToNumber","postStream","positionChanged","oncreatePane","sidebarItems","preloadedDiscussion","discussionId","record","$list","$discussion","listTop","listBottom","outerHeight","discussionTop","discussionBottom","startNumber","endNumber","Page","description","renamed","oldName","descriptionData","oldTitle","newTitle","new","EventPost","DiscussionsSearchSource","limit","SearchSource","DiscussionsUserPage","loadUser","UserPage","usernameHelper","descriptionKey","Search","locales","reload","cookie","SignUpModal","LogInModal","lastDiscussion","hero","viewItems","actionItems","oldHeroHeight","heroHeight","scroll","indexTop","indexBottom","canStartDiscussion","newDiscussionAction","navItems","stickyParams","sortOptions","changeSort","markAllAsRead","searching","clearSearch","confirmation","confirm","LoadingPost","LogInButtons","identification","remember","footer","fields","forgotPassword","signUp","ForgotPasswordModal","NotificationGrid","methods","notificationMethods","inputs","types","notificationTypes","preferenceKey","preference","toggleMethod","toggleType","control","NotificationList","$scrollParent","scrollHandler","pages","notification","NotificationComponent","notificationComponents","$notifications","viewportHeight","contentTop","contentHeight","NotificationsDropdown","newNotifications","getNewCount","unread","getUnreadCount","menuClick","goToRoute","controlsOpen","PostControls","footerItems","$actions","$controls","existing","PostEdited","shouldUpdateTooltip","oldEditedInfo","editedInfo","PostMeta","permalink","getPermalink","touch","selectPermalink","ipAddress","PostStream","paused","scrollListener","onscroll","loadPageTimeouts","pagesLoading","calculatePositionTimeout","visibleStart","visibleEnd","viewingEnd","noAnimation","goToLast","flashItem","loadNearNumber","scrollToNumber","unpause","goToIndex","backwards","loadNearIndex","scrollToIndex","goToFirst","loadRange","sanitizeIndex","loadCount","fadedIn","lastTime","PostComponent","dt","period","loadNext","ReplyPlaceholder","getMarginTop","viewportTop","loadAheadDistance","$item","loadPrevious","calculatePosition","twoPagesAway","loadPage","anchorIndex","loadIds","scrollToItem","$container","itemTop","itemBottom","scrollBottom","PostStreamScrubber","dragging","mouseStart","indexStart","unreadPercent","viewing","styleUnread","newStyle","oldStyle","renderScrollbar","streamWasUnpaused","visibleTop","visibleBottom","visiblePost","ondestroy","onresize","resize","onmousedown","onmousemove","onmouseup","percentPerPost","$scrubber","heights","after","$part","minPercentVisible","percentPerVisiblePost","scrollbar","TouchEvent","touches","clientY","deltaPixels","deltaPercent","deltaIndex","newIndex","intIndex","$scrollbar","offsetPixels","offsetPercent","offsetIndex","PostUser","card","UserCard","controlsButtonClassName","showCard","hideCard","PostsUserPage","loadLimit","RenameDiscussionModal","currentTitle","reply","replyAction","oncreatePreview","anchorToBottom","hasFocus","sources","loadingSources","searched","KeyboardNavigatable","searchTimeout","currentSearch","getCurrentSearch","sourceItems","setIndex","getCurrentNumericIndex","selectableItems","onUp","onDown","onSelect","selectResult","onCancel","bindTo","getItem","UsersSearchSource","$dropdown","fixedIndex","dropdownScroll","dropdownTop","dropdownBottom","SessionDropdown","SettingsPage","settingsItems","accountItems","notificationsItems","privacyItems","preferenceSaver","discloseOnline","isProvided","provided","token","logIn","submitData","UserControls","editable","online","affixSidebar","lassName","lowercaseUsername","lastIndexOf","localeCompare","WelcomeHero","localStorage","setItem","hasNear","section","moderation","renameAction","destructive","hideAction","restoreAction","deleteAction","forceRefresh","composingReplyTo","ReplyComposer","viewingDiscussion","isFullScreen","back","stack","getCurrent","getPrevious","secondTop","canGoBack","backUrl","whenCallback","onRemove","selectionStart","selectionEnd","navigate","keyCallback","editAction","EditPostComposer","showDeletionAlert","EditUserModal","$sidebar","$header","$affixElement"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./forum.ts\");\n","/*\n * This file is part of Flarum.\n *\n * (c) Toby Zerner \n *\n * For the full copyright and license information, please view the LICENSE\n * file that was distributed with this source code.\n */\n\nexport * from './src/common';\nexport * from './src/forum';\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","/*** IMPORTS FROM imports-loader ***/\n(function() {\n\n/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n(function(global, factory) {\n if (typeof define === 'function' && define.amd)\n define(function() { return factory(global) })\n else\n factory(global)\n}(this, function(window) {\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('
').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n ((type != 'radio' && type != 'checkbox') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n })\n return result.join('&')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind('submit', callback)\n else if (this.length) {\n var event = $.Event('submit')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n return Zepto\n}))\n\n}.call(window));","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","!function(t,r){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=r():\"function\"==typeof define&&define.amd?define(r):t.ColorThief=r()}(this,function(){if(!t)var t={map:function(t,r){var n={};return r?t.map(function(t,o){return n.index=o,r.call(n,t)}):t.slice()},naturalOrder:function(t,r){return tr?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,o,e){return n.index=e,t+r.call(n,o)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r,o=1e3;function e(t,n,o){return(t<<2*r)+(n<f/2){for(e=n.copy(),i=n.copy(),u=(r=a-n[s])<=(o=n[h]-a)?Math.min(n[h]-1,~~(a+o/2)):Math.max(n[s],~~(a-1-r/2));!v[u];)u++;for(c=l[u];!c&&v[u-1];)c=l[--u];return e[h]=u,i[s]=e[h]+1,[e,i]}}(u==o?\"r\":u==i?\"g\":\"b\")}}return u.prototype={volume:function(t){return this._volume&&!t||(this._volume=(this.r2-this.r1+1)*(this.g2-this.g1+1)*(this.b2-this.b1+1)),this._volume},count:function(t){var r=this.histo;if(!this._count_set||t){var n,o,i,u=0;for(n=this.r1;n<=this.r2;n++)for(o=this.g1;o<=this.g2;o++)for(i=this.b1;i<=this.b2;i++)u+=r[e(n,o,i)]||0;this._count=u,this._count_set=!0}return this._count},copy:function(){return new u(this.r1,this.r2,this.g1,this.g2,this.b1,this.b2,this.histo)},avg:function(t){var n=this.histo;if(!this._avg||t){var o,i,u,a,s=0,h=1<<8-r,c=0,f=0,v=0;for(i=this.r1;i<=this.r2;i++)for(u=this.g1;u<=this.g2;u++)for(a=this.b1;a<=this.b2;a++)s+=o=n[e(i,u,a)]||0,c+=o*(i+.5)*h,f+=o*(u+.5)*h,v+=o*(a+.5)*h;this._avg=s?[~~(c/s),~~(f/s),~~(v/s)]:[~~(h*(this.r1+this.r2+1)/2),~~(h*(this.g1+this.g2+1)/2),~~(h*(this.b1+this.b2+1)/2)]}return this._avg},contains:function(t){var r=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,r>=this.r1&&r<=this.r2&&gval>=this.g1&&gval<=this.g2&&bval>=this.b1&&bval<=this.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&e[1]>251&&e[2]>251&&(r[o].color=[255,255,255])}},{quantize:function(h,c){if(!h.length||c<2||c>256)return!1;var f=function(t){var o,i=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),i[o]=(i[o]||0)+1}),i}(h);f.forEach(function(){});var v=function(t,r){var o,e,i,a=1e6,s=0,h=1e6,c=0,f=1e6,v=0;return t.forEach(function(t){(o=t[0]>>n)s&&(s=o),(e=t[1]>>n)c&&(c=e),(i=t[2]>>n)v&&(v=i)}),new u(a,s,h,c,f,v,r)}(h,f),l=new i(function(r,n){return t.naturalOrder(r.count(),n.count())});function g(t,r){for(var n,e=t.size(),i=0;i=r)return;if(i++>o)return;if((n=t.pop()).count()){var u=s(f,n),a=u[0],h=u[1];if(!a)return;t.push(a),h&&(t.push(h),e++)}else t.push(n),i++}}l.push(v),g(l,.75*c);for(var p=new i(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});l.size();)p.push(l.pop());g(p,c);for(var d=new a;p.size();)d.push(p.pop());return d}}}().quantize,n=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.width,this.height=this.canvas.height=t.height,this.context.drawImage(t,0,0,this.width,this.height)};n.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var o=function(){};return o.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},o.prototype.getPalette=function(t,o,e){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return void 0===n||Number.isInteger(n)?n=10:n<1&&(n=10),{colorCount:r,quality:n}}({colorCount:o,quality:e}),u=new n(t),a=function(t,r,n){for(var o=t,e=[],i=0,u=void 0,a=void 0,s=void 0,h=void 0,c=void 0;i=125)&&(a>250&&s>250&&h>250||e.push([a,s,h]));return e}(u.getImageData().data,u.width*u.height,i.quality),s=r(a,i.colorCount);return s?s.palette():null},o.prototype.getColorFromUrl=function(t,r,n){var o=document.createElement(\"img\"),e=this;o.addEventListener(\"load\",function(){var i=e.getPalette(o,5,n);r(i[0],t)}),o.src=t},o.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);o=t.length;for(var n=new Array(o),o=0;o=n?t:\"\"+Array(n+1-r.length).join(e)+t},d={s:c,z:function(t){var n=-t.utcOffset(),e=Math.abs(n),r=Math.floor(e/60),i=e%60;return(n<=0?\"+\":\"-\")+c(r,2,\"0\")+\":\"+c(i,2,\"0\")},m:function(t,n){var e=12*(n.year()-t.year())+(n.month()-t.month()),r=t.clone().add(e,u),i=n-r<0,s=t.clone().add(e+(i?-1:1),u);return Number(-(e+(n-r)/(i?r-s:s-r))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(h){return{M:u,y:a,w:s,d:i,D:\"date\",h:r,m:e,s:n,ms:t,Q:o}[h]||String(h||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},$={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},l=\"en\",m={};m[l]=$;var y=function(t){return t instanceof v},M=function(t,n,e){var r;if(!t)return l;if(\"string\"==typeof t)m[t]&&(r=t),n&&(m[t]=n,r=t);else{var i=t.name;m[i]=t,r=i}return!e&&r&&(l=r),r||!e&&l},g=function(t,n,e){if(y(t))return t.clone();var r=n?\"string\"==typeof n?{format:n,pl:e}:n:{};return r.date=t,new v(r)},D=d;D.l=M,D.i=y,D.w=function(t,n){return g(t,{locale:n.$L,utc:n.$u,$offset:n.$offset})};var v=function(){function c(t){this.$L=this.$L||M(t.locale,null,!0),this.parse(t)}var d=c.prototype;return d.parse=function(t){this.$d=function(t){var n=t.date,e=t.utc;if(null===n)return new Date(NaN);if(D.u(n))return new Date;if(n instanceof Date)return new Date(n);if(\"string\"==typeof n&&!/Z$/i.test(n)){var r=n.match(h);if(r)return e?new Date(Date.UTC(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)):new Date(r[1],r[2]-1,r[3]||1,r[4]||0,r[5]||0,r[6]||0,r[7]||0)}return new Date(n)}(t),this.init()},d.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},d.$utils=function(){return D},d.isValid=function(){return!(\"Invalid Date\"===this.$d.toString())},d.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},d.isAfter=function(t,n){return g(t)': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.4.1'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector !== '#' ? $(document).find(selector) : null\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: transition.js v3.4.1\n * https://getbootstrap.com/docs/3.4/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: https://modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // https://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.dayjs_plugin_localizedFormat=t()}(this,function(){\"use strict\";return function(e,t,o){var n=t.prototype,r=n.format,M={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};o.en.formats=M;n.format=function(e){void 0===e&&(e=\"YYYY-MM-DDTHH:mm:ssZ\");var t=this.$locale().formats,o=void 0===t?{}:t,n=e.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(e,t,n){var r=n&&n.toUpperCase();return t||o[n]||M[n]||o[r].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,o){return t||o.slice(1)})});return r.call(this,n)}}});\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.dayjs_plugin_relativeTime=t()}(this,function(){\"use strict\";return function(r,t,e){var n=t.prototype;e.en.relativeTime={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};var o=function(r,t,n,o){for(var d,i,u,a=n.$locale().relativeTime,f=[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],s=f.length,l=0;l0,m<=h.r||!h.r){1===m&&l>0&&(h=f[l-1]);var c=a[h.l];i=\"string\"==typeof c?c.replace(\"%d\",m):c(m,t,h.l,u);break}}return t?i:(u?a.future:a.past).replace(\"%s\",i)};n.to=function(r,t){return o(r,t,this,!0)},n.from=function(r,t){return o(r,t,this)};var d=function(r){return r.$u?e.utc():e()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}});\n","module.exports = global[\"ColorThief\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\color-thief.umd.js\");","module.exports = global[\"Mousetrap\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\mousetrap.js\");","module.exports = global[\"classNames\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\index.js\");","module.exports = global[\"dayjs\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\dayjs.min.js\");","module.exports = global[\"jQuery\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\imports-loader\\\\index.js?this=>window!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\zepto.js\");","module.exports = global[\"m\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\index.js\");","if(!global[\"m\"]) global[\"m\"] = {};\nmodule.exports = global[\"m\"][\"bidi\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\bidi.js\");","module.exports = global[\"moment\"] = require(\"-!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\expose-loader\\\\index.js?dayjs!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js??ref--5!E:\\\\sites\\\\flarum-new\\\\packages\\\\flarum-core\\\\js\\\\node_modules\\\\source-map-loader\\\\index.js!.\\\\dayjs.min.js\");","/*!\n * HC-Sticky\n * =========\n * Version: 2.2.3\n * Author: Some Web Media\n * Author URL: http://somewebmedia.com\n * Plugin URL: https://github.com/somewebmedia/hc-sticky\n * Description: Cross-browser plugin that makes any element on your page visible while you scroll\n * License: MIT\n */\n!function(t,e){\"use strict\";if(\"object\"==typeof module&&\"object\"==typeof module.exports){if(!t.document)throw new Error(\"HC-Sticky requires a browser to run.\");module.exports=e(t)}else\"function\"==typeof define&&define.amd?define(\"hcSticky\",[],e(t)):e(t)}(\"undefined\"!=typeof window?window:this,function(U){\"use strict\";var Y={top:0,bottom:0,bottomEnd:0,innerTop:0,innerSticker:null,stickyClass:\"sticky\",stickTo:null,followScroll:!0,responsive:null,mobileFirst:!1,onStart:null,onStop:null,onBeforeResize:null,onResize:null,resizeDebounce:100,disable:!1,queries:null,queryFlow:\"down\"},$=function(t,e,o){console.log(\"%c! HC Sticky:%c \"+t+\"%c \"+o+\" is now deprecated and will be removed. Use%c \"+e+\"%c instead.\",\"color: red\",\"color: darkviolet\",\"color: black\",\"color: darkviolet\",\"color: black\")},Q=U.document,X=function(n,f){var o=this;if(\"string\"==typeof n&&(n=Q.querySelector(n)),!n)return!1;f.queries&&$(\"queries\",\"responsive\",\"option\"),f.queryFlow&&$(\"queryFlow\",\"mobileFirst\",\"option\");var p={},d=X.Helpers,s=n.parentNode;\"static\"===d.getStyle(s,\"position\")&&(s.style.position=\"relative\");var u=function(){var t=0>>0;if(\"function\"!=typeof t)throw new TypeError(t+\" is not a function\");for(1 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\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 _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n 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}\n\nvar MicroModal = function () {\n\n var FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\n\n var Modal = /*#__PURE__*/function () {\n function Modal(_ref) {\n var targetModal = _ref.targetModal,\n _ref$triggers = _ref.triggers,\n triggers = _ref$triggers === void 0 ? [] : _ref$triggers,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$openTrigger = _ref.openTrigger,\n openTrigger = _ref$openTrigger === void 0 ? 'data-micromodal-trigger' : _ref$openTrigger,\n _ref$closeTrigger = _ref.closeTrigger,\n closeTrigger = _ref$closeTrigger === void 0 ? 'data-micromodal-close' : _ref$closeTrigger,\n _ref$openClass = _ref.openClass,\n openClass = _ref$openClass === void 0 ? 'is-open' : _ref$openClass,\n _ref$disableScroll = _ref.disableScroll,\n disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,\n _ref$disableFocus = _ref.disableFocus,\n disableFocus = _ref$disableFocus === void 0 ? false : _ref$disableFocus,\n _ref$awaitCloseAnimat = _ref.awaitCloseAnimation,\n awaitCloseAnimation = _ref$awaitCloseAnimat === void 0 ? false : _ref$awaitCloseAnimat,\n _ref$awaitOpenAnimati = _ref.awaitOpenAnimation,\n awaitOpenAnimation = _ref$awaitOpenAnimati === void 0 ? false : _ref$awaitOpenAnimati,\n _ref$debugMode = _ref.debugMode,\n debugMode = _ref$debugMode === void 0 ? false : _ref$debugMode;\n\n _classCallCheck(this, Modal);\n\n // Save a reference of the modal\n this.modal = document.getElementById(targetModal); // Save a reference to the passed config\n\n this.config = {\n debugMode: debugMode,\n disableScroll: disableScroll,\n openTrigger: openTrigger,\n closeTrigger: closeTrigger,\n openClass: openClass,\n onShow: onShow,\n onClose: onClose,\n awaitCloseAnimation: awaitCloseAnimation,\n awaitOpenAnimation: awaitOpenAnimation,\n disableFocus: disableFocus\n }; // Register click events only if pre binding eventListeners\n\n if (triggers.length > 0) this.registerTriggers.apply(this, _toConsumableArray(triggers)); // pre bind functions for event listeners\n\n this.onClick = this.onClick.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n }\n /**\n * Loops through all openTriggers and binds click event\n * @param {array} triggers [Array of node elements]\n * @return {void}\n */\n\n\n _createClass(Modal, [{\n key: \"registerTriggers\",\n value: function registerTriggers() {\n var _this = this;\n\n for (var _len = arguments.length, triggers = new Array(_len), _key = 0; _key < _len; _key++) {\n triggers[_key] = arguments[_key];\n }\n\n triggers.filter(Boolean).forEach(function (trigger) {\n trigger.addEventListener('click', function (event) {\n return _this.showModal(event);\n });\n });\n }\n }, {\n key: \"showModal\",\n value: function showModal() {\n var _this2 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.activeElement = document.activeElement;\n this.modal.setAttribute('aria-hidden', 'false');\n this.modal.classList.add(this.config.openClass);\n this.scrollBehaviour('disable');\n this.addEventListeners();\n\n if (this.config.awaitOpenAnimation) {\n var handler = function handler() {\n _this2.modal.removeEventListener('animationend', handler, false);\n\n _this2.setFocusToFirstNode();\n };\n\n this.modal.addEventListener('animationend', handler, false);\n } else {\n this.setFocusToFirstNode();\n }\n\n this.config.onShow(this.modal, this.activeElement, event);\n }\n }, {\n key: \"closeModal\",\n value: function closeModal() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var modal = this.modal;\n this.modal.setAttribute('aria-hidden', 'true');\n this.removeEventListeners();\n this.scrollBehaviour('enable');\n\n if (this.activeElement && this.activeElement.focus) {\n this.activeElement.focus();\n }\n\n this.config.onClose(this.modal, this.activeElement, event);\n\n if (this.config.awaitCloseAnimation) {\n var openClass = this.config.openClass; // <- old school ftw\n\n this.modal.addEventListener('animationend', function handler() {\n modal.classList.remove(openClass);\n modal.removeEventListener('animationend', handler, false);\n }, false);\n } else {\n modal.classList.remove(this.config.openClass);\n }\n }\n }, {\n key: \"closeModalById\",\n value: function closeModalById(targetModal) {\n this.modal = document.getElementById(targetModal);\n if (this.modal) this.closeModal();\n }\n }, {\n key: \"scrollBehaviour\",\n value: function scrollBehaviour(toggle) {\n if (!this.config.disableScroll) return;\n var body = document.querySelector('body');\n\n switch (toggle) {\n case 'enable':\n Object.assign(body.style, {\n overflow: ''\n });\n break;\n\n case 'disable':\n Object.assign(body.style, {\n overflow: 'hidden'\n });\n break;\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.modal.addEventListener('touchstart', this.onClick);\n this.modal.addEventListener('click', this.onClick);\n document.addEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.modal.removeEventListener('touchstart', this.onClick);\n this.modal.removeEventListener('click', this.onClick);\n document.removeEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (event.target.hasAttribute(this.config.closeTrigger)) {\n this.closeModal(event);\n }\n }\n }, {\n key: \"onKeydown\",\n value: function onKeydown(event) {\n if (event.keyCode === 27) this.closeModal(event); // esc\n\n if (event.keyCode === 9) this.retainFocus(event); // tab\n }\n }, {\n key: \"getFocusableNodes\",\n value: function getFocusableNodes() {\n var nodes = this.modal.querySelectorAll(FOCUSABLE_ELEMENTS);\n return Array.apply(void 0, _toConsumableArray(nodes));\n }\n /**\n * Tries to set focus on a node which is not a close trigger\n * if no other nodes exist then focuses on first close trigger\n */\n\n }, {\n key: \"setFocusToFirstNode\",\n value: function setFocusToFirstNode() {\n var _this3 = this;\n\n if (this.config.disableFocus) return;\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return; // remove nodes on whose click, the modal closes\n // could not think of a better name :(\n\n var nodesWhichAreNotCloseTargets = focusableNodes.filter(function (node) {\n return !node.hasAttribute(_this3.config.closeTrigger);\n });\n if (nodesWhichAreNotCloseTargets.length > 0) nodesWhichAreNotCloseTargets[0].focus();\n if (nodesWhichAreNotCloseTargets.length === 0) focusableNodes[0].focus();\n }\n }, {\n key: \"retainFocus\",\n value: function retainFocus(event) {\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return;\n /**\n * Filters nodes which are hidden to prevent\n * focus leak outside modal\n */\n\n focusableNodes = focusableNodes.filter(function (node) {\n return node.offsetParent !== null;\n }); // if disableFocus is true\n\n if (!this.modal.contains(document.activeElement)) {\n focusableNodes[0].focus();\n } else {\n var focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableNodes[focusableNodes.length - 1].focus();\n event.preventDefault();\n }\n\n if (!event.shiftKey && focusableNodes.length > 0 && focusedItemIndex === focusableNodes.length - 1) {\n focusableNodes[0].focus();\n event.preventDefault();\n }\n }\n }\n }]);\n\n return Modal;\n }();\n /**\n * Modal prototype ends.\n * Here on code is responsible for detecting and\n * auto binding event handlers on modal triggers\n */\n // Keep a reference to the opened modal\n\n\n var activeModal = null;\n /**\n * Generates an associative array of modals and it's\n * respective triggers\n * @param {array} triggers An array of all triggers\n * @param {string} triggerAttr The data-attribute which triggers the module\n * @return {array}\n */\n\n var generateTriggerMap = function generateTriggerMap(triggers, triggerAttr) {\n var triggerMap = [];\n triggers.forEach(function (trigger) {\n var targetModal = trigger.attributes[triggerAttr].value;\n if (triggerMap[targetModal] === undefined) triggerMap[targetModal] = [];\n triggerMap[targetModal].push(trigger);\n });\n return triggerMap;\n };\n /**\n * Validates whether a modal of the given id exists\n * in the DOM\n * @param {number} id The id of the modal\n * @return {boolean}\n */\n\n\n var validateModalPresence = function validateModalPresence(id) {\n if (!document.getElementById(id)) {\n console.warn(\"MicroModal: \\u2757Seems like you have missed %c'\".concat(id, \"'\"), 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'ID somewhere in your code. Refer example below to resolve it.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"
\"));\n return false;\n }\n };\n /**\n * Validates if there are modal triggers present\n * in the DOM\n * @param {array} triggers An array of data-triggers\n * @return {boolean}\n */\n\n\n var validateTriggerPresence = function validateTriggerPresence(triggers) {\n if (triggers.length <= 0) {\n console.warn(\"MicroModal: \\u2757Please specify at least one %c'micromodal-trigger'\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'data attribute.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"\");\n return false;\n }\n };\n /**\n * Checks if triggers and their corresponding modals\n * are present in the DOM\n * @param {array} triggers Array of DOM nodes which have data-triggers\n * @param {array} triggerMap Associative array of modals and their triggers\n * @return {boolean}\n */\n\n\n var validateArgs = function validateArgs(triggers, triggerMap) {\n validateTriggerPresence(triggers);\n if (!triggerMap) return true;\n\n for (var id in triggerMap) {\n validateModalPresence(id);\n }\n\n return true;\n };\n /**\n * Binds click handlers to all modal triggers\n * @param {object} config [description]\n * @return void\n */\n\n\n var init = function init(config) {\n // Create an config object with default openTrigger\n var options = Object.assign({}, {\n openTrigger: 'data-micromodal-trigger'\n }, config); // Collects all the nodes with the trigger\n\n var triggers = _toConsumableArray(document.querySelectorAll(\"[\".concat(options.openTrigger, \"]\"))); // Makes a mappings of modals with their trigger nodes\n\n\n var triggerMap = generateTriggerMap(triggers, options.openTrigger); // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateArgs(triggers, triggerMap) === false) return; // For every target modal creates a new instance\n\n for (var key in triggerMap) {\n var value = triggerMap[key];\n options.targetModal = key;\n options.triggers = _toConsumableArray(value);\n activeModal = new Modal(options); // eslint-disable-line no-new\n }\n };\n /**\n * Shows a particular modal\n * @param {string} targetModal [The id of the modal to display]\n * @param {object} config [The configuration object to pass]\n * @return {void}\n */\n\n\n var show = function show(targetModal, config) {\n var options = config || {};\n options.targetModal = targetModal; // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateModalPresence(targetModal) === false) return; // clear events in case previous modal wasn't close\n\n if (activeModal) activeModal.removeEventListeners(); // stores reference to active modal\n\n activeModal = new Modal(options); // eslint-disable-line no-new\n\n activeModal.showModal();\n };\n /**\n * Closes the active modal\n * @param {string} targetModal [The id of the modal to close]\n * @return {void}\n */\n\n\n var close = function close(targetModal) {\n targetModal ? activeModal.closeModalById(targetModal) : activeModal.closeModal();\n };\n\n return {\n init: init,\n show: show,\n close: close\n };\n}();\nwindow.MicroModal = MicroModal;\n\nexport default MicroModal;\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(render, schedule, console) {\n\tvar subscriptions = []\n\tvar rendering = false\n\tvar pending = false\n\n\tfunction sync() {\n\t\tif (rendering) throw new Error(\"Nested m.redraw.sync() call\")\n\t\trendering = true\n\t\tfor (var i = 0; i < subscriptions.length; i += 2) {\n\t\t\ttry { render(subscriptions[i], Vnode(subscriptions[i + 1]), redraw) }\n\t\t\tcatch (e) { console.error(e) }\n\t\t}\n\t\trendering = false\n\t}\n\n\tfunction redraw() {\n\t\tif (!pending) {\n\t\t\tpending = true\n\t\t\tschedule(function() {\n\t\t\t\tpending = false\n\t\t\t\tsync()\n\t\t\t})\n\t\t}\n\t}\n\n\tredraw.sync = sync\n\n\tfunction mount(root, component) {\n\t\tif (component != null && component.view == null && typeof component !== \"function\") {\n\t\t\tthrow new TypeError(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t}\n\n\t\tvar index = subscriptions.indexOf(root)\n\t\tif (index >= 0) {\n\t\t\tsubscriptions.splice(index, 2)\n\t\t\trender(root, [], redraw)\n\t\t}\n\n\t\tif (component != null) {\n\t\t\tsubscriptions.push(root, component)\n\t\t\trender(root, Vnode(component), redraw)\n\t\t}\n\t}\n\n\treturn {mount: mount, redraw: redraw}\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar m = require(\"../render/hyperscript\")\nvar Promise = require(\"../promise/promise\")\n\nvar buildPathname = require(\"../pathname/build\")\nvar parsePathname = require(\"../pathname/parse\")\nvar compileTemplate = require(\"../pathname/compileTemplate\")\nvar assign = require(\"../pathname/assign\")\n\nvar sentinel = {}\n\nmodule.exports = function($window, mountRedraw) {\n\tvar fireAsync\n\n\tfunction setPath(path, data, options) {\n\t\tpath = buildPathname(path, data)\n\t\tif (fireAsync != null) {\n\t\t\tfireAsync()\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, route.prefix + path)\n\t\t\telse $window.history.pushState(state, title, route.prefix + path)\n\t\t}\n\t\telse {\n\t\t\t$window.location.href = route.prefix + path\n\t\t}\n\t}\n\n\tvar currentResolver = sentinel, component, attrs, currentPath, lastUpdate\n\n\tvar SKIP = route.SKIP = {}\n\n\tfunction route(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\t// 0 = start\n\t\t// 1 = init\n\t\t// 2 = ready\n\t\tvar state = 0\n\n\t\tvar compiled = Object.keys(routes).map(function(route) {\n\t\t\tif (route[0] !== \"/\") throw new SyntaxError(\"Routes must start with a `/`\")\n\t\t\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(route)) {\n\t\t\t\tthrow new SyntaxError(\"Route parameter names must be separated with either `/`, `.`, or `-`\")\n\t\t\t}\n\t\t\treturn {\n\t\t\t\troute: route,\n\t\t\t\tcomponent: routes[route],\n\t\t\t\tcheck: compileTemplate(route),\n\t\t\t}\n\t\t})\n\t\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\t\tvar p = Promise.resolve()\n\t\tvar scheduled = false\n\t\tvar onremove\n\n\t\tfireAsync = null\n\n\t\tif (defaultRoute != null) {\n\t\t\tvar defaultData = parsePathname(defaultRoute)\n\n\t\t\tif (!compiled.some(function (i) { return i.check(defaultData) })) {\n\t\t\t\tthrow new ReferenceError(\"Default route doesn't match any known routes\")\n\t\t\t}\n\t\t}\n\n\t\tfunction resolveRoute() {\n\t\t\tscheduled = false\n\t\t\t// Consider the pathname holistically. The prefix might even be invalid,\n\t\t\t// but that's not our problem.\n\t\t\tvar prefix = $window.location.hash\n\t\t\tif (route.prefix[0] !== \"#\") {\n\t\t\t\tprefix = $window.location.search + prefix\n\t\t\t\tif (route.prefix[0] !== \"?\") {\n\t\t\t\t\tprefix = $window.location.pathname + prefix\n\t\t\t\t\tif (prefix[0] !== \"/\") prefix = \"/\" + prefix\n\t\t\t\t}\n\t\t\t}\n\t\t\t// This seemingly useless `.concat()` speeds up the tests quite a bit,\n\t\t\t// since the representation is consistently a relatively poorly\n\t\t\t// optimized cons string.\n\t\t\tvar path = prefix.concat()\n\t\t\t\t.replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\t\t\t.slice(route.prefix.length)\n\t\t\tvar data = parsePathname(path)\n\n\t\t\tassign(data.params, $window.history.state)\n\n\t\t\tfunction fail() {\n\t\t\t\tif (path === defaultRoute) throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t\t\tsetPath(defaultRoute, null, {replace: true})\n\t\t\t}\n\n\t\t\tloop(0)\n\t\t\tfunction loop(i) {\n\t\t\t\t// 0 = init\n\t\t\t\t// 1 = scheduled\n\t\t\t\t// 2 = done\n\t\t\t\tfor (; i < compiled.length; i++) {\n\t\t\t\t\tif (compiled[i].check(data)) {\n\t\t\t\t\t\tvar payload = compiled[i].component\n\t\t\t\t\t\tvar matchedRoute = compiled[i].route\n\t\t\t\t\t\tvar localComp = payload\n\t\t\t\t\t\tvar update = lastUpdate = function(comp) {\n\t\t\t\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\t\t\t\tif (comp === SKIP) return loop(i + 1)\n\t\t\t\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\t\t\t\tattrs = data.params, currentPath = path, lastUpdate = null\n\t\t\t\t\t\t\tcurrentResolver = payload.render ? payload : null\n\t\t\t\t\t\t\tif (state === 2) mountRedraw.redraw()\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tstate = 2\n\t\t\t\t\t\t\t\tmountRedraw.redraw.sync()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// There's no understating how much I *wish* I could\n\t\t\t\t\t\t// use `async`/`await` here...\n\t\t\t\t\t\tif (payload.view || typeof payload === \"function\") {\n\t\t\t\t\t\t\tpayload = {}\n\t\t\t\t\t\t\tupdate(localComp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (payload.onmatch) {\n\t\t\t\t\t\t\tp.then(function () {\n\t\t\t\t\t\t\t\treturn payload.onmatch(data.params, path, matchedRoute)\n\t\t\t\t\t\t\t}).then(update, fail)\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse update(\"div\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfail()\n\t\t\t}\n\t\t}\n\n\t\t// Set it unconditionally so `m.route.set` and `m.route.Link` both work,\n\t\t// even if neither `pushState` nor `hashchange` are supported. It's\n\t\t// cleared if `hashchange` is used, since that makes it automatically\n\t\t// async.\n\t\tfireAsync = function() {\n\t\t\tif (!scheduled) {\n\t\t\t\tscheduled = true\n\t\t\t\tcallAsync(resolveRoute)\n\t\t\t}\n\t\t}\n\n\t\tif (typeof $window.history.pushState === \"function\") {\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"popstate\", fireAsync, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"popstate\", fireAsync, false)\n\t\t} else if (route.prefix[0] === \"#\") {\n\t\t\tfireAsync = null\n\t\t\tonremove = function() {\n\t\t\t\t$window.removeEventListener(\"hashchange\", resolveRoute, false)\n\t\t\t}\n\t\t\t$window.addEventListener(\"hashchange\", resolveRoute, false)\n\t\t}\n\n\t\treturn mountRedraw.mount(root, {\n\t\t\tonbeforeupdate: function() {\n\t\t\t\tstate = state ? 2 : 1\n\t\t\t\treturn !(!state || sentinel === currentResolver)\n\t\t\t},\n\t\t\toncreate: resolveRoute,\n\t\t\tonremove: onremove,\n\t\t\tview: function() {\n\t\t\t\tif (!state || sentinel === currentResolver) return\n\t\t\t\t// Wrap in a fragment to preserve existing key semantics\n\t\t\t\tvar vnode = [Vnode(component, attrs.key, attrs)]\n\t\t\t\tif (currentResolver) vnode = currentResolver.render(vnode[0])\n\t\t\t\treturn vnode\n\t\t\t},\n\t\t})\n\t}\n\troute.set = function(path, data, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\tsetPath(path, data, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = \"#!\"\n\troute.Link = {\n\t\tview: function(vnode) {\n\t\t\tvar options = vnode.attrs.options\n\t\t\t// Remove these so they don't get overwritten\n\t\t\tvar attrs = {}, onclick, href\n\t\t\tassign(attrs, vnode.attrs)\n\t\t\t// The first two are internal, but the rest are magic attributes\n\t\t\t// that need censored to not screw up rendering.\n\t\t\tattrs.selector = attrs.options = attrs.key = attrs.oninit =\n\t\t\tattrs.oncreate = attrs.onbeforeupdate = attrs.onupdate =\n\t\t\tattrs.onbeforeremove = attrs.onremove = null\n\n\t\t\t// Do this now so we can get the most current `href` and `disabled`.\n\t\t\t// Those attributes may also be specified in the selector, and we\n\t\t\t// should honor that.\n\t\t\tvar child = m(vnode.attrs.selector || \"a\", attrs, vnode.children)\n\n\t\t\t// Let's provide a *right* way to disable a route link, rather than\n\t\t\t// letting people screw up accessibility on accident.\n\t\t\t//\n\t\t\t// The attribute is coerced so users don't get surprised over\n\t\t\t// `disabled: 0` resulting in a button that's somehow routable\n\t\t\t// despite being visibly disabled.\n\t\t\tif (child.attrs.disabled = Boolean(child.attrs.disabled)) {\n\t\t\t\tchild.attrs.href = null\n\t\t\t\tchild.attrs[\"aria-disabled\"] = \"true\"\n\t\t\t\t// If you *really* do want to do this on a disabled link, use\n\t\t\t\t// an `oncreate` hook to add it.\n\t\t\t\tchild.attrs.onclick = null\n\t\t\t} else {\n\t\t\t\tonclick = child.attrs.onclick\n\t\t\t\thref = child.attrs.href\n\t\t\t\tchild.attrs.href = route.prefix + href\n\t\t\t\tchild.attrs.onclick = function(e) {\n\t\t\t\t\tvar result\n\t\t\t\t\tif (typeof onclick === \"function\") {\n\t\t\t\t\t\tresult = onclick.call(e.currentTarget, e)\n\t\t\t\t\t} else if (onclick == null || typeof onclick !== \"object\") {\n\t\t\t\t\t\t// do nothing\n\t\t\t\t\t} else if (typeof onclick.handleEvent === \"function\") {\n\t\t\t\t\t\tonclick.handleEvent(e)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Adapted from React Router's implementation:\n\t\t\t\t\t// https://github.com/ReactTraining/react-router/blob/520a0acd48ae1b066eb0b07d6d4d1790a1d02482/packages/react-router-dom/modules/Link.js\n\t\t\t\t\t//\n\t\t\t\t\t// Try to be flexible and intuitive in how we handle links.\n\t\t\t\t\t// Fun fact: links aren't as obvious to get right as you\n\t\t\t\t\t// would expect. There's a lot more valid ways to click a\n\t\t\t\t\t// link than this, and one might want to not simply click a\n\t\t\t\t\t// link, but right click or command-click it to copy the\n\t\t\t\t\t// link target, etc. Nope, this isn't just for blind people.\n\t\t\t\t\tif (\n\t\t\t\t\t\t// Skip if `onclick` prevented default\n\t\t\t\t\t\tresult !== false && !e.defaultPrevented &&\n\t\t\t\t\t\t// Ignore everything but left clicks\n\t\t\t\t\t\t(e.button === 0 || e.which === 0 || e.which === 1) &&\n\t\t\t\t\t\t// Let the browser handle `target=_blank`, etc.\n\t\t\t\t\t\t(!e.currentTarget.target || e.currentTarget.target === \"_self\") &&\n\t\t\t\t\t\t// No modifier keys\n\t\t\t\t\t\t!e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey\n\t\t\t\t\t) {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\te.redraw = false\n\t\t\t\t\t\troute.set(href, null, options)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn child\n\t\t},\n\t}\n\troute.param = function(key) {\n\t\treturn attrs && key != null ? attrs[key] : attrs\n\t}\n\n\treturn route\n}\n","\"use strict\"\n\nvar hyperscript = require(\"./render/hyperscript\")\n\nhyperscript.trust = require(\"./render/trust\")\nhyperscript.fragment = require(\"./render/fragment\")\n\nmodule.exports = hyperscript\n","\"use strict\"\n\nvar render = require(\"./render\")\n\nmodule.exports = require(\"./api/mount-redraw\")(render, requestAnimationFrame, console)\n","\"use strict\"\n\nmodule.exports = Object.assign || function(target, source) {\n\tif(source) Object.keys(source).forEach(function(key) { target[key] = source[key] })\n}\n","\"use strict\"\n\nvar buildQueryString = require(\"../querystring/build\")\nvar assign = require(\"./assign\")\n\n// Returns `path` from `template` + `params`\nmodule.exports = function(template, params) {\n\tif ((/:([^\\/\\.-]+)(\\.{3})?:/).test(template)) {\n\t\tthrow new SyntaxError(\"Template parameter names *must* be separated\")\n\t}\n\tif (params == null) return template\n\tvar queryIndex = template.indexOf(\"?\")\n\tvar hashIndex = template.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? template.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = template.slice(0, pathEnd)\n\tvar query = {}\n\n\tassign(query, params)\n\n\tvar resolved = path.replace(/:([^\\/\\.-]+)(\\.{3})?/g, function(m, key, variadic) {\n\t\tdelete query[key]\n\t\t// If no such parameter exists, don't interpolate it.\n\t\tif (params[key] == null) return m\n\t\t// Escape normal parameters, but not variadic ones.\n\t\treturn variadic ? params[key] : encodeURIComponent(String(params[key]))\n\t})\n\n\t// In case the template substitution adds new query/hash parameters.\n\tvar newQueryIndex = resolved.indexOf(\"?\")\n\tvar newHashIndex = resolved.indexOf(\"#\")\n\tvar newQueryEnd = newHashIndex < 0 ? resolved.length : newHashIndex\n\tvar newPathEnd = newQueryIndex < 0 ? newQueryEnd : newQueryIndex\n\tvar result = resolved.slice(0, newPathEnd)\n\n\tif (queryIndex >= 0) result += template.slice(queryIndex, queryEnd)\n\tif (newQueryIndex >= 0) result += (queryIndex < 0 ? \"?\" : \"&\") + resolved.slice(newQueryIndex, newQueryEnd)\n\tvar querystring = buildQueryString(query)\n\tif (querystring) result += (queryIndex < 0 && newQueryIndex < 0 ? \"?\" : \"&\") + querystring\n\tif (hashIndex >= 0) result += template.slice(hashIndex)\n\tif (newHashIndex >= 0) result += (hashIndex < 0 ? \"\" : \"&\") + resolved.slice(newHashIndex)\n\treturn result\n}\n","\"use strict\"\n\nvar parsePathname = require(\"./parse\")\n\n// Compiles a template into a function that takes a resolved path (without query\n// strings) and returns an object containing the template parameters with their\n// parsed values. This expects the input of the compiled template to be the\n// output of `parsePathname`. Note that it does *not* remove query parameters\n// specified in the template.\nmodule.exports = function(template) {\n\tvar templateData = parsePathname(template)\n\tvar templateKeys = Object.keys(templateData.params)\n\tvar keys = []\n\tvar regexp = new RegExp(\"^\" + templateData.path.replace(\n\t\t// I escape literal text so people can use things like `:file.:ext` or\n\t\t// `:lang-:locale` in routes. This is all merged into one pass so I\n\t\t// don't also accidentally escape `-` and make it harder to detect it to\n\t\t// ban it from template parameters.\n\t\t/:([^\\/.-]+)(\\.{3}|\\.(?!\\.)|-)?|[\\\\^$*+.()|\\[\\]{}]/g,\n\t\tfunction(m, key, extra) {\n\t\t\tif (key == null) return \"\\\\\" + m\n\t\t\tkeys.push({k: key, r: extra === \"...\"})\n\t\t\tif (extra === \"...\") return \"(.*)\"\n\t\t\tif (extra === \".\") return \"([^/]+)\\\\.\"\n\t\t\treturn \"([^/]+)\" + (extra || \"\")\n\t\t}\n\t) + \"$\")\n\treturn function(data) {\n\t\t// First, check the params. Usually, there isn't any, and it's just\n\t\t// checking a static set.\n\t\tfor (var i = 0; i < templateKeys.length; i++) {\n\t\t\tif (templateData.params[templateKeys[i]] !== data.params[templateKeys[i]]) return false\n\t\t}\n\t\t// If no interpolations exist, let's skip all the ceremony\n\t\tif (!keys.length) return regexp.test(data.path)\n\t\tvar values = regexp.exec(data.path)\n\t\tif (values == null) return false\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tdata.params[keys[i].k] = keys[i].r ? values[i + 1] : decodeURIComponent(values[i + 1])\n\t\t}\n\t\treturn true\n\t}\n}\n","\"use strict\"\n\nvar parseQueryString = require(\"../querystring/parse\")\n\n// Returns `{path, params}` from `url`\nmodule.exports = function(url) {\n\tvar queryIndex = url.indexOf(\"?\")\n\tvar hashIndex = url.indexOf(\"#\")\n\tvar queryEnd = hashIndex < 0 ? url.length : hashIndex\n\tvar pathEnd = queryIndex < 0 ? queryEnd : queryIndex\n\tvar path = url.slice(0, pathEnd).replace(/\\/{2,}/g, \"/\")\n\n\tif (!path) path = \"/\"\n\telse {\n\t\tif (path[0] !== \"/\") path = \"/\" + path\n\t\tif (path.length > 1 && path[path.length - 1] === \"/\") path = path.slice(0, -1)\n\t}\n\treturn {\n\t\tpath: path,\n\t\tparams: queryIndex < 0\n\t\t\t? {}\n\t\t\t: parseQueryString(url.slice(queryIndex + 1, queryEnd)),\n\t}\n}\n","\"use strict\"\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.prototype.finally = function(callback) {\n\treturn this.then(\n\t\tfunction(value) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn value\n\t\t\t})\n\t\t},\n\t\tfunction(reason) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn PromisePolyfill.reject(reason);\n\t\t\t})\n\t\t}\n\t)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\n\nmodule.exports = PromisePolyfill\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./polyfill\")\n\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") {\n\t\twindow.Promise = PromisePolyfill\n\t} else if (!window.Promise.prototype.finally) {\n\t\twindow.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") {\n\t\tglobal.Promise = PromisePolyfill\n\t} else if (!global.Promise.prototype.finally) {\n\t\tglobal.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tmodule.exports = global.Promise\n} else {\n\tmodule.exports = PromisePolyfill\n}\n","\"use strict\"\n\nmodule.exports = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\n\tvar args = []\n\tfor (var key in object) {\n\t\tdestructure(key, object[key])\n\t}\n\n\treturn args.join(\"&\")\n\n\tfunction destructure(key, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\n","\"use strict\"\n\nmodule.exports = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\n\tvar entries = string.split(\"&\"), counters = {}, data = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key = decodeURIComponent(entry[0])\n\t\tvar value = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\n\t\tif (value === \"true\") value = true\n\t\telse if (value === \"false\") value = false\n\n\t\tvar levels = key.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data\n\t\tif (key.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j = 0; j < levels.length; j++) {\n\t\t\tvar level = levels[j], nextLevel = levels[j + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key = levels.slice(0, j).join()\n\t\t\t\tif (counters[key] == null) {\n\t\t\t\t\tcounters[key] = Array.isArray(cursor) ? cursor.length : 0\n\t\t\t\t}\n\t\t\t\tlevel = counters[key]++\n\t\t\t}\n\t\t\t// Disallow direct prototype pollution\n\t\t\telse if (level === \"__proto__\") break\n\t\t\tif (j === levels.length - 1) cursor[level] = value\n\t\t\telse {\n\t\t\t\t// Read own properties exclusively to disallow indirect\n\t\t\t\t// prototype pollution\n\t\t\t\tvar desc = Object.getOwnPropertyDescriptor(cursor, level)\n\t\t\t\tif (desc != null) desc = desc.value\n\t\t\t\tif (desc == null) cursor[level] = desc = isNumber ? [] : {}\n\t\t\t\tcursor = desc\n\t\t\t}\n\t\t}\n\t}\n\treturn data\n}\n","\"use strict\"\n\nmodule.exports = require(\"./render/render\")(window)\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nmodule.exports = function() {\n\tvar vnode = hyperscriptVnode.apply(0, arguments)\n\n\tvnode.tag = \"[\"\n\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\treturn vnode\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\nvar hyperscriptVnode = require(\"./hyperscriptVnode\")\n\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\n\nfunction isEmpty(object) {\n\tfor (var key in object) if (hasOwn.call(object, key)) return false\n\treturn true\n}\n\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\n\nfunction execSelector(state, vnode) {\n\tvar attrs = vnode.attrs\n\tvar children = Vnode.normalizeChildren(vnode.children)\n\tvar hasClass = hasOwn.call(attrs, \"class\")\n\tvar className = hasClass ? attrs.class : attrs.className\n\n\tvnode.tag = state.tag\n\tvnode.attrs = null\n\tvnode.children = undefined\n\n\tif (!isEmpty(state.attrs) && !isEmpty(attrs)) {\n\t\tvar newAttrs = {}\n\n\t\tfor (var key in attrs) {\n\t\t\tif (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key]\n\t\t}\n\n\t\tattrs = newAttrs\n\t}\n\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key) && key !== \"className\" && !hasOwn.call(attrs, key)){\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className != null || state.attrs.className != null) attrs.className =\n\t\tclassName != null\n\t\t\t? state.attrs.className != null\n\t\t\t\t? String(state.attrs.className) + \" \" + String(className)\n\t\t\t\t: className\n\t\t\t: state.attrs.className != null\n\t\t\t\t? state.attrs.className\n\t\t\t\t: null\n\n\tif (hasClass) attrs.class = null\n\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\tvnode.attrs = attrs\n\t\t\tbreak\n\t\t}\n\t}\n\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\tvnode.text = children[0].children\n\t} else {\n\t\tvnode.children = children\n\t}\n\n\treturn vnode\n}\n\nfunction hyperscript(selector) {\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\n\tvar vnode = hyperscriptVnode.apply(1, arguments)\n\n\tif (typeof selector === \"string\") {\n\t\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\t\tif (selector !== \"[\") return execSelector(selectorCache[selector] || compileSelector(selector), vnode)\n\t}\n\n\tvnode.tag = selector\n\treturn vnode\n}\n\nmodule.exports = hyperscript\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\n// Call via `hyperscriptVnode.apply(startOffset, arguments)`\n//\n// The reason I do it this way, forwarding the arguments and passing the start\n// offset in `this`, is so I don't have to create a temporary array in a\n// performance-critical path.\n//\n// In native ES6, I'd instead add a final `...args` parameter to the\n// `hyperscript` and `fragment` factories and define this as\n// `hyperscriptVnode(...args)`, since modern engines do optimize that away. But\n// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury,\n// and engines aren't nearly intelligent enough to do either of these:\n//\n// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to\n// another function only to be indexed.\n// 2. Elide an `arguments` allocation when it's passed to any function other\n// than `Function.prototype.apply` or `Reflect.apply`.\n//\n// In ES6, it'd probably look closer to this (I'd need to profile it, though):\n// module.exports = function(attrs, ...children) {\n// if (attrs == null || typeof attrs === \"object\" && attrs.tag == null && !Array.isArray(attrs)) {\n// if (children.length === 1 && Array.isArray(children[0])) children = children[0]\n// } else {\n// children = children.length === 0 && Array.isArray(attrs) ? attrs : [attrs, ...children]\n// attrs = undefined\n// }\n//\n// if (attrs == null) attrs = {}\n// return Vnode(\"\", attrs.key, attrs, children)\n// }\nmodule.exports = function() {\n\tvar attrs = arguments[this], start = this + 1, children\n\n\tif (attrs == null) {\n\t\tattrs = {}\n\t} else if (typeof attrs !== \"object\" || attrs.tag != null || Array.isArray(attrs)) {\n\t\tattrs = {}\n\t\tstart = this\n\t}\n\n\tif (arguments.length === start + 1) {\n\t\tchildren = arguments[start]\n\t\tif (!Array.isArray(children)) children = [children]\n\t} else {\n\t\tchildren = []\n\t\twhile (start < arguments.length) children.push(arguments[start++])\n\t}\n\n\treturn Vnode(\"\", attrs.key, attrs, children)\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function($window) {\n\tvar $doc = $window && $window.document\n\tvar currentRedraw\n\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\n\tfunction getNameSpace(vnode) {\n\t\treturn vnode.attrs && vnode.attrs.xmlns || nameSpace[vnode.tag]\n\t}\n\n\t//sanity check to discourage people from doing `vnode.state = ...`\n\tfunction checkState(vnode, original) {\n\t\tif (vnode.state !== original) throw new Error(\"`vnode.state` must not be modified\")\n\t}\n\n\t//Note: the hook is passed as the `this` argument to allow proxying the\n\t//arguments without requiring a full array allocation to do so. It also\n\t//takes advantage of the fact the current `vnode` is the first argument in\n\t//all lifecycle methods.\n\tfunction callHook(vnode) {\n\t\tvar original = vnode.state\n\t\ttry {\n\t\t\treturn this.apply(original, arguments)\n\t\t} finally {\n\t\t\tcheckState(vnode, original)\n\t\t}\n\t}\n\n\t// IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when\n\t// inside an iframe. Catch and swallow this error, and heavy-handidly return null.\n\tfunction activeElement() {\n\t\ttry {\n\t\t\treturn $doc.activeElement\n\t\t} catch (e) {\n\t\t\treturn null\n\t\t}\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) {\n\t\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode.state = {}\n\t\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": createText(parent, vnode, nextSibling); break\n\t\t\t\tcase \"<\": createHTML(parent, vnode, ns, nextSibling); break\n\t\t\t\tcase \"[\": createFragment(parent, vnode, hooks, ns, nextSibling); break\n\t\t\t\tdefault: createElement(parent, vnode, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse createComponent(parent, vnode, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode, nextSibling) {\n\t\tvnode.dom = $doc.createTextNode(vnode.children)\n\t\tinsertNode(parent, vnode.dom, nextSibling)\n\t}\n\tvar possibleParents = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}\n\tfunction createHTML(parent, vnode, ns, nextSibling) {\n\t\tvar match = vnode.children.match(/^\\s*?<(\\w+)/im) || []\n\t\t// not using the proper parent makes the child element(s) vanish.\n\t\t// var div = document.createElement(\"div\")\n\t\t// div.innerHTML = \"ij\"\n\t\t// console.log(div.innerHTML)\n\t\t// --> \"ij\", no in sight.\n\t\tvar temp = $doc.createElement(possibleParents[match[1]] || \"div\")\n\t\tif (ns === \"http://www.w3.org/2000/svg\") {\n\t\t\ttemp.innerHTML = \"\" + vnode.children + \"\"\n\t\t\ttemp = temp.firstChild\n\t\t} else {\n\t\t\ttemp.innerHTML = vnode.children\n\t\t}\n\t\tvnode.dom = temp.firstChild\n\t\tvnode.domSize = temp.childNodes.length\n\t\t// Capture nodes to remove, so we don't confuse them.\n\t\tvnode.instance = []\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tvnode.instance.push(child)\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createFragment(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode.children != null) {\n\t\t\tvar children = vnode.children\n\t\t\tcreateNodes(fragment, children, 0, children.length, hooks, null, ns)\n\t\t}\n\t\tvnode.dom = fragment.firstChild\n\t\tvnode.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createElement(parent, vnode, hooks, ns, nextSibling) {\n\t\tvar tag = vnode.tag\n\t\tvar attrs = vnode.attrs\n\t\tvar is = attrs && attrs.is\n\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode.dom = element\n\n\t\tif (attrs != null) {\n\t\t\tsetAttrs(vnode, attrs, ns)\n\t\t}\n\n\t\tinsertNode(parent, element, nextSibling)\n\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (vnode.text != null) {\n\t\t\t\tif (vnode.text !== \"\") element.textContent = vnode.text\n\t\t\t\telse vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode.children != null) {\n\t\t\t\tvar children = vnode.children\n\t\t\t\tcreateNodes(element, children, 0, children.length, hooks, null, ns)\n\t\t\t\tif (vnode.tag === \"select\" && attrs != null) setLateSelectAttrs(vnode, attrs)\n\t\t\t}\n\t\t}\n\t}\n\tfunction initComponent(vnode, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode.tag.view === \"function\") {\n\t\t\tvnode.state = Object.create(vnode.tag)\n\t\t\tsentinel = vnode.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode.state = void 0\n\t\t\tsentinel = vnode.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode.state = (vnode.tag.prototype != null && typeof vnode.tag.prototype.view === \"function\") ? new vnode.tag(vnode) : vnode.tag(vnode)\n\t\t}\n\t\tinitLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) initLifecycle(vnode.attrs, vnode, hooks)\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tcreateNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.dom != null ? vnode.instance.domSize : 0\n\t\t}\n\t\telse {\n\t\t\tvnode.domSize = 0\n\t\t}\n\t}\n\n\t//update\n\t/**\n\t * @param {Element|Fragment} parent - the parent element\n\t * @param {Vnode[] | null} old - the list of vnodes of the last `render()` call for\n\t * this part of the tree\n\t * @param {Vnode[] | null} vnodes - as above, but for the current `render()` call.\n\t * @param {Function[]} hooks - an accumulator of post-render hooks (oncreate/onupdate)\n\t * @param {Element | null} nextSibling - the next DOM node if we're dealing with a\n\t * fragment that is not the last item in its\n\t * parent\n\t * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any\n\t * @returns void\n\t */\n\t// This function diffs and patches lists of vnodes, both keyed and unkeyed.\n\t//\n\t// We will:\n\t//\n\t// 1. describe its general structure\n\t// 2. focus on the diff algorithm optimizations\n\t// 3. discuss DOM node operations.\n\n\t// ## Overview:\n\t//\n\t// The updateNodes() function:\n\t// - deals with trivial cases\n\t// - determines whether the lists are keyed or unkeyed based on the first non-null node\n\t// of each list.\n\t// - diffs them and patches the DOM if needed (that's the brunt of the code)\n\t// - manages the leftovers: after diffing, are there:\n\t// - old nodes left to remove?\n\t// \t - new nodes to insert?\n\t// \t deal with them!\n\t//\n\t// The lists are only iterated over once, with an exception for the nodes in `old` that\n\t// are visited in the fourth part of the diff and in the `removeNodes` loop.\n\n\t// ## Diffing\n\t//\n\t// Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837\n\t// may be good for context on longest increasing subsequence-based logic for moving nodes.\n\t//\n\t// In order to diff keyed lists, one has to\n\t//\n\t// 1) match nodes in both lists, per key, and update them accordingly\n\t// 2) create the nodes present in the new list, but absent in the old one\n\t// 3) remove the nodes present in the old list, but absent in the new one\n\t// 4) figure out what nodes in 1) to move in order to minimize the DOM operations.\n\t//\n\t// To achieve 1) one can create a dictionary of keys => index (for the old list), then iterate\n\t// over the new list and for each new vnode, find the corresponding vnode in the old list using\n\t// the map.\n\t// 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new\n\t// and must be created.\n\t// For the removals, we actually remove the nodes that have been updated from the old list.\n\t// The nodes that remain in that list after 1) and 2) have been performed can be safely removed.\n\t// The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS)\n\t// algorithm.\n\t//\n\t// the longest increasing subsequence is the list of nodes that can remain in place. Imagine going\n\t// from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices\n\t// corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would\n\t// match the above lists, for example).\n\t//\n\t// In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We\n\t// can update those nodes without moving them, and only call `insertNode` on `4` and `5`.\n\t//\n\t// @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually\n\t// the longest increasing subsequence *of old nodes still present in the new list*).\n\t//\n\t// It is a general algorithm that is fireproof in all circumstances, but it requires the allocation\n\t// and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`,\n\t// the `LIS` and a temporary one to create the LIS).\n\t//\n\t// So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of\n\t// the LIS and can be updated without moving them.\n\t//\n\t// If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with\n\t// the exception of the last node if the list is fully reversed).\n\t//\n\t// ## Finding the next sibling.\n\t//\n\t// `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations.\n\t// When the list is being traversed top-down, at any index, the DOM nodes up to the previous\n\t// vnode reflect the content of the new list, whereas the rest of the DOM nodes reflect the old\n\t// list. The next sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`.\n\t//\n\t// In the other scenarios (swaps, upwards traversal, map-based diff),\n\t// the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the\n\t// bottom part of the new vnodes list, and we can use the `v.dom` value of the previous node\n\t// as the next sibling (cached in the `nextSibling` variable).\n\n\n\t// ## DOM node moves\n\t//\n\t// In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However,\n\t// this is not the case if the node moved (second and fourth part of the diff algo). We move\n\t// the old DOM nodes before updateNode runs because it enables us to use the cached `nextSibling`\n\t// variable rather than fetching it using `getNextSibling()`.\n\t//\n\t// The fourth part of the diff currently inserts nodes unconditionally, leading to issues\n\t// like #1791 and #1999. We need to be smarter about those situations where adjascent old\n\t// nodes remain together in the new list in a way that isn't covered by parts one and\n\t// three of the diff algo.\n\n\tfunction updateNodes(parent, old, vnodes, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null || vnodes.length === 0) removeNodes(parent, old, 0, old.length)\n\t\telse {\n\t\t\tvar isOldKeyed = old[0] != null && old[0].key != null\n\t\t\tvar isKeyed = vnodes[0] != null && vnodes[0].key != null\n\t\t\tvar start = 0, oldStart = 0\n\t\t\tif (!isOldKeyed) while (oldStart < old.length && old[oldStart] == null) oldStart++\n\t\t\tif (!isKeyed) while (start < vnodes.length && vnodes[start] == null) start++\n\t\t\tif (isKeyed === null && isOldKeyed == null) return // both lists are full of nulls\n\t\t\tif (isOldKeyed !== isKeyed) {\n\t\t\t\tremoveNodes(parent, old, oldStart, old.length)\n\t\t\t\tcreateNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else if (!isKeyed) {\n\t\t\t\t// Don't index past the end of either list (causes deopts).\n\t\t\t\tvar commonLength = old.length < vnodes.length ? old.length : vnodes.length\n\t\t\t\t// Rewind if necessary to the first non-null index on either side.\n\t\t\t\t// We could alternatively either explicitly create or remove nodes when `start !== oldStart`\n\t\t\t\t// but that would be optimizing for sparse lists which are more rare than dense ones.\n\t\t\t\tstart = start < oldStart ? start : oldStart\n\t\t\t\tfor (; start < commonLength; start++) {\n\t\t\t\t\to = old[start]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o === v || o == null && v == null) continue\n\t\t\t\t\telse if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling))\n\t\t\t\t\telse if (v == null) removeNode(parent, o)\n\t\t\t\t\telse updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\tif (old.length > commonLength) removeNodes(parent, old, start, old.length)\n\t\t\t\tif (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else {\n\t\t\t\t// keyed diff\n\t\t\t\tvar oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling\n\n\t\t\t\t// bottom-up\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t}\n\t\t\t\t// top-down\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o.key !== v.key) break\n\t\t\t\t\toldStart++, start++\n\t\t\t\t\tif (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\t// swaps and list reversals\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (start === end) break\n\t\t\t\t\tif (o.key !== ve.key || oe.key !== v.key) break\n\t\t\t\t\ttopSibling = getNextSibling(old, oldStart, nextSibling)\n\t\t\t\t\tmoveNodes(parent, oe, topSibling)\n\t\t\t\t\tif (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns)\n\t\t\t\t\tif (++start <= --end) moveNodes(parent, o, nextSibling)\n\t\t\t\t\tif (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldStart++; oldEnd--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t}\n\t\t\t\t// bottom up once again\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (oe.key !== ve.key) break\n\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\toldEnd--, end--\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t}\n\t\t\t\tif (start > end) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\telse if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\telse {\n\t\t\t\t\t// inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul\n\t\t\t\t\tvar originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices\n\t\t\t\t\tfor (i = 0; i < vnodesLength; i++) oldIndices[i] = -1\n\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\tif (map == null) map = getKeyMap(old, oldStart, oldEnd + 1)\n\t\t\t\t\t\tve = vnodes[i]\n\t\t\t\t\t\tvar oldIndex = map[ve.key]\n\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\tpos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered\n\t\t\t\t\t\t\toldIndices[i-start] = oldIndex\n\t\t\t\t\t\t\toe = old[oldIndex]\n\t\t\t\t\t\t\told[oldIndex] = null\n\t\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\t\tmatched++\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnextSibling = originalNextSibling\n\t\t\t\t\tif (matched !== oldEnd - oldStart + 1) removeNodes(parent, old, oldStart, oldEnd + 1)\n\t\t\t\t\tif (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\t// the indices of the indices of the items that are part of the\n\t\t\t\t\t\t\t// longest increasing subsequence in the oldIndices list\n\t\t\t\t\t\t\tlisIndices = makeLisIndices(oldIndices)\n\t\t\t\t\t\t\tli = lisIndices.length - 1\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif (lisIndices[li] === i - start) li--\n\t\t\t\t\t\t\t\t\telse moveNodes(parent, v, nextSibling)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\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\tfunction updateNode(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode.state = old.state\n\t\t\tvnode.events = old.events\n\t\t\tif (shouldNotUpdate(vnode, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode.attrs != null) {\n\t\t\t\t\tupdateLifecycle(vnode.attrs, vnode, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode, ns, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode, hooks, nextSibling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(parent, old)\n\t\t\tcreateNode(parent, vnode, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode) {\n\t\tif (old.children.toString() !== vnode.children.toString()) {\n\t\t\told.dom.nodeValue = vnode.children\n\t\t}\n\t\tvnode.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode, ns, nextSibling) {\n\t\tif (old.children !== vnode.children) {\n\t\t\tremoveHTML(parent, old)\n\t\t\tcreateHTML(parent, vnode, ns, nextSibling)\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t\tvnode.instance = old.instance\n\t\t}\n\t}\n\tfunction updateFragment(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode.children, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children = vnode.children\n\t\tvnode.dom = null\n\t\tif (children != null) {\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode.dom == null) vnode.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode, hooks, ns) {\n\t\tvar element = vnode.dom = old.dom\n\t\tns = getNameSpace(vnode) || ns\n\n\t\tif (vnode.tag === \"textarea\") {\n\t\t\tif (vnode.attrs == null) vnode.attrs = {}\n\t\t\tif (vnode.text != null) {\n\t\t\t\tvnode.attrs.value = vnode.text //FIXME handle multiple children\n\t\t\t\tvnode.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode, old.attrs, vnode.attrs, ns)\n\t\tif (!maybeSetContentEditable(vnode)) {\n\t\t\tif (old.text != null && vnode.text != null && vnode.text !== \"\") {\n\t\t\t\tif (old.text.toString() !== vnode.text.toString()) old.dom.firstChild.nodeValue = vnode.text\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\t\tif (vnode.text != null) vnode.children = [Vnode(\"#\", undefined, undefined, vnode.text, undefined, undefined)]\n\t\t\t\tupdateNodes(element, old.children, vnode.children, hooks, null, ns)\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode, hooks, nextSibling, ns) {\n\t\tvnode.instance = Vnode.normalize(callHook.call(vnode.state.view, vnode))\n\t\tif (vnode.instance === vnode) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tupdateLifecycle(vnode.state, vnode, hooks)\n\t\tif (vnode.attrs != null) updateLifecycle(vnode.attrs, vnode, hooks)\n\t\tif (vnode.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode.instance, hooks, nextSibling, ns)\n\t\t\tvnode.dom = vnode.instance.dom\n\t\t\tvnode.domSize = vnode.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(parent, old.instance)\n\t\t\tvnode.dom = undefined\n\t\t\tvnode.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode.dom = old.dom\n\t\t\tvnode.domSize = old.domSize\n\t\t}\n\t}\n\tfunction getKeyMap(vnodes, start, end) {\n\t\tvar map = Object.create(null)\n\t\tfor (; start < end; start++) {\n\t\t\tvar vnode = vnodes[start]\n\t\t\tif (vnode != null) {\n\t\t\t\tvar key = vnode.key\n\t\t\t\tif (key != null) map[key] = start\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\t// Lifted from ivi https://github.com/ivijs/ivi/\n\t// takes a list of unique numbers (-1 is special and can\n\t// occur multiple times) and returns an array with the indices\n\t// of the items that are part of the longest increasing\n\t// subsequece\n\tvar lisTemp = []\n\tfunction makeLisIndices(a) {\n\t\tvar result = [0]\n\t\tvar u = 0, v = 0, i = 0\n\t\tvar il = lisTemp.length = a.length\n\t\tfor (var i = 0; i < il; i++) lisTemp[i] = a[i]\n\t\tfor (var i = 0; i < il; ++i) {\n\t\t\tif (a[i] === -1) continue\n\t\t\tvar j = result[result.length - 1]\n\t\t\tif (a[j] < a[i]) {\n\t\t\t\tlisTemp[i] = j\n\t\t\t\tresult.push(i)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tu = 0\n\t\t\tv = result.length - 1\n\t\t\twhile (u < v) {\n\t\t\t\t// Fast integer average without overflow.\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tvar c = (u >>> 1) + (v >>> 1) + (u & v & 1)\n\t\t\t\tif (a[result[c]] < a[i]) {\n\t\t\t\t\tu = c + 1\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tv = c\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (a[i] < a[result[u]]) {\n\t\t\t\tif (u > 0) lisTemp[i] = result[u - 1]\n\t\t\t\tresult[u] = i\n\t\t\t}\n\t\t}\n\t\tu = result.length\n\t\tv = result[u - 1]\n\t\twhile (u-- > 0) {\n\t\t\tresult[u] = v\n\t\t\tv = lisTemp[v]\n\t\t}\n\t\tlisTemp.length = 0\n\t\treturn result\n\t}\n\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\n\t// This covers a really specific edge case:\n\t// - Parent node is keyed and contains child\n\t// - Child is removed, returns unresolved promise in `onbeforeremove`\n\t// - Parent node is moved in keyed diff\n\t// - Remaining children still need moved appropriately\n\t//\n\t// Ideally, I'd track removed nodes as well, but that introduces a lot more\n\t// complexity and I'm not exactly interested in doing that.\n\tfunction moveNodes(parent, vnode, nextSibling) {\n\t\tvar frag = $doc.createDocumentFragment()\n\t\tmoveChildToFrag(parent, frag, vnode)\n\t\tinsertNode(parent, frag, nextSibling)\n\t}\n\tfunction moveChildToFrag(parent, frag, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\t\t\tfrag.appendChild(vnode.instance[i])\n\t\t\t\t}\n\t\t\t} else if (vnode.tag !== \"[\") {\n\t\t\t\t// Don't recurse for text nodes *or* elements, just fragments\n\t\t\t\tfrag.appendChild(vnode.dom)\n\t\t\t} else if (vnode.children.length === 1) {\n\t\t\t\tvnode = vnode.children[0]\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else {\n\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\tif (child != null) moveChildToFrag(parent, frag, child)\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling != null) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\n\tfunction maybeSetContentEditable(vnode) {\n\t\tif (vnode.attrs == null || (\n\t\t\tvnode.attrs.contenteditable == null && // attribute\n\t\t\tvnode.attrs.contentEditable == null // property\n\t\t)) return false\n\t\tvar children = vnode.children\n\t\tif (children != null && children.length === 1 && children[0].tag === \"<\") {\n\t\t\tvar content = children[0].children\n\t\t\tif (vnode.dom.innerHTML !== content) vnode.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode.text != null || children != null && children.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t\treturn true\n\t}\n\n\t//remove\n\tfunction removeNodes(parent, vnodes, start, end) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode = vnodes[i]\n\t\t\tif (vnode != null) removeNode(parent, vnode)\n\t\t}\n\t}\n\tfunction removeNode(parent, vnode) {\n\t\tvar mask = 0\n\t\tvar original = vnode.state\n\t\tvar stateResult, attrsResult\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.state.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\tmask = 1\n\t\t\t\tstateResult = result\n\t\t\t}\n\t\t}\n\t\tif (vnode.attrs && typeof vnode.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode.attrs.onbeforeremove, vnode)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tmask |= 2\n\t\t\t\tattrsResult = result\n\t\t\t}\n\t\t}\n\t\tcheckState(vnode, original)\n\n\t\t// If we can, try to fast-path it and avoid all the overhead of awaiting\n\t\tif (!mask) {\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t} else {\n\t\t\tif (stateResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 1) { mask &= 2; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tstateResult.then(next, next)\n\t\t\t}\n\t\t\tif (attrsResult != null) {\n\t\t\t\tvar next = function () {\n\t\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\t\tif (mask & 2) { mask &= 1; if (!mask) reallyRemove() }\n\t\t\t\t}\n\t\t\t\tattrsResult.then(next, next)\n\t\t\t}\n\t\t}\n\n\t\tfunction reallyRemove() {\n\t\t\tcheckState(vnode, original)\n\t\t\tonremove(vnode)\n\t\t\tremoveChild(parent, vnode)\n\t\t}\n\t}\n\tfunction removeHTML(parent, vnode) {\n\t\tfor (var i = 0; i < vnode.instance.length; i++) {\n\t\t\tparent.removeChild(vnode.instance[i])\n\t\t}\n\t}\n\tfunction removeChild(parent, vnode) {\n\t\t// Dodge the recursion overhead in a few of the most common cases.\n\t\twhile (vnode.dom != null && vnode.dom.parentNode === parent) {\n\t\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\t\tvnode = vnode.instance\n\t\t\t\tif (vnode != null) continue\n\t\t\t} else if (vnode.tag === \"<\") {\n\t\t\t\tremoveHTML(parent, vnode)\n\t\t\t} else {\n\t\t\t\tif (vnode.tag !== \"[\") {\n\t\t\t\t\tparent.removeChild(vnode.dom)\n\t\t\t\t\tif (!Array.isArray(vnode.children)) break\n\t\t\t\t}\n\t\t\t\tif (vnode.children.length === 1) {\n\t\t\t\t\tvnode = vnode.children[0]\n\t\t\t\t\tif (vnode != null) continue\n\t\t\t\t} else {\n\t\t\t\t\tfor (var i = 0; i < vnode.children.length; i++) {\n\t\t\t\t\t\tvar child = vnode.children[i]\n\t\t\t\t\t\tif (child != null) removeChild(parent, child)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\tfunction onremove(vnode) {\n\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onremove === \"function\") callHook.call(vnode.state.onremove, vnode)\n\t\tif (vnode.attrs && typeof vnode.attrs.onremove === \"function\") callHook.call(vnode.attrs.onremove, vnode)\n\t\tif (typeof vnode.tag !== \"string\") {\n\t\t\tif (vnode.instance != null) onremove(vnode.instance)\n\t\t} else {\n\t\t\tvar children = vnode.children\n\t\t\tif (Array.isArray(children)) {\n\t\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\t\tvar child = children[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t//attrs\n\tfunction setAttrs(vnode, attrs, ns) {\n\t\tfor (var key in attrs) {\n\t\t\tsetAttr(vnode, key, null, attrs[key], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode, key, old, value, ns) {\n\t\tif (key === \"key\" || key === \"is\" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode, key)) && typeof value !== \"object\") return\n\t\tif (key[0] === \"o\" && key[1] === \"n\") return updateEvent(vnode, key, value)\n\t\tif (key.slice(0, 6) === \"xlink:\") vnode.dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", key.slice(6), value)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, value)\n\t\telse if (hasPropertyKey(vnode, key, ns)) {\n\t\t\tif (key === \"value\") {\n\t\t\t\t// Only do the coercion if we're actually going to check the value.\n\t\t\t\t/* eslint-disable no-implicit-coercion */\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode.tag === \"input\" || vnode.tag === \"textarea\") && vnode.dom.value === \"\" + value && vnode.dom === activeElement()) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"select\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode.tag === \"option\" && old !== null && vnode.dom.value === \"\" + value) return\n\t\t\t\t/* eslint-enable no-implicit-coercion */\n\t\t\t}\n\t\t\t// If you assign an input type that is not supported by IE 11 with an assignment expression, an error will occur.\n\t\t\tif (vnode.tag === \"input\" && key === \"type\") vnode.dom.setAttribute(key, value)\n\t\t\telse vnode.dom[key] = value\n\t\t} else {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) vnode.dom.setAttribute(key, \"\")\n\t\t\t\telse vnode.dom.removeAttribute(key)\n\t\t\t}\n\t\t\telse vnode.dom.setAttribute(key === \"className\" ? \"class\" : key, value)\n\t\t}\n\t}\n\tfunction removeAttr(vnode, key, old, ns) {\n\t\tif (key === \"key\" || key === \"is\" || old == null || isLifecycleMethod(key)) return\n\t\tif (key[0] === \"o\" && key[1] === \"n\" && !isLifecycleMethod(key)) updateEvent(vnode, key, undefined)\n\t\telse if (key === \"style\") updateStyle(vnode.dom, old, null)\n\t\telse if (\n\t\t\thasPropertyKey(vnode, key, ns)\n\t\t\t&& key !== \"className\"\n\t\t\t&& !(key === \"value\" && (\n\t\t\t\tvnode.tag === \"option\"\n\t\t\t\t|| vnode.tag === \"select\" && vnode.dom.selectedIndex === -1 && vnode.dom === activeElement()\n\t\t\t))\n\t\t\t&& !(vnode.tag === \"input\" && key === \"type\")\n\t\t) {\n\t\t\tvnode.dom[key] = null\n\t\t} else {\n\t\t\tvar nsLastIndex = key.indexOf(\":\")\n\t\t\tif (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1)\n\t\t\tif (old !== false) vnode.dom.removeAttribute(key === \"className\" ? \"class\" : key)\n\t\t}\n\t}\n\tfunction setLateSelectAttrs(vnode, attrs) {\n\t\tif (\"value\" in attrs) {\n\t\t\tif(attrs.value === null) {\n\t\t\t\tif (vnode.dom.selectedIndex !== -1) vnode.dom.value = null\n\t\t\t} else {\n\t\t\t\tvar normalized = \"\" + attrs.value // eslint-disable-line no-implicit-coercion\n\t\t\t\tif (vnode.dom.value !== normalized || vnode.dom.selectedIndex === -1) {\n\t\t\t\t\tvnode.dom.value = normalized\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\"selectedIndex\" in attrs) setAttr(vnode, \"selectedIndex\", null, attrs.selectedIndex, undefined)\n\t}\n\tfunction updateAttrs(vnode, old, attrs, ns) {\n\t\tif (attrs != null) {\n\t\t\tfor (var key in attrs) {\n\t\t\t\tsetAttr(vnode, key, old && old[key], attrs[key], ns)\n\t\t\t}\n\t\t}\n\t\tvar val\n\t\tif (old != null) {\n\t\t\tfor (var key in old) {\n\t\t\t\tif (((val = old[key]) != null) && (attrs == null || attrs[key] == null)) {\n\t\t\t\t\tremoveAttr(vnode, key, val, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode.dom === activeElement() || vnode.tag === \"option\" && vnode.dom.parentNode === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction hasPropertyKey(vnode, key, ns) {\n\t\t// Filter out namespaced keys\n\t\treturn ns === undefined && (\n\t\t\t// If it's a custom element, just keep it.\n\t\t\tvnode.tag.indexOf(\"-\") > -1 || vnode.attrs != null && vnode.attrs.is ||\n\t\t\t// If it's a normal element, let's try to avoid a few browser bugs.\n\t\t\tkey !== \"href\" && key !== \"list\" && key !== \"form\" && key !== \"width\" && key !== \"height\"// && key !== \"type\"\n\t\t\t// Defer the property check until *after* we check everything.\n\t\t) && key in vnode.dom\n\t}\n\n\t//style\n\tvar uppercaseRegex = /[A-Z]/g\n\tfunction toLowerCase(capital) { return \"-\" + capital.toLowerCase() }\n\tfunction normalizeKey(key) {\n\t\treturn key[0] === \"-\" && key[1] === \"-\" ? key :\n\t\t\tkey === \"cssFloat\" ? \"float\" :\n\t\t\t\tkey.replace(uppercaseRegex, toLowerCase)\n\t}\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) {\n\t\t\t// Styles are equivalent, do nothing.\n\t\t} else if (style == null) {\n\t\t\t// New style is missing, just clear it.\n\t\t\telement.style.cssText = \"\"\n\t\t} else if (typeof style !== \"object\") {\n\t\t\t// New style is a string, let engine deal with patching.\n\t\t\telement.style.cssText = style\n\t\t} else if (old == null || typeof old !== \"object\") {\n\t\t\t// `old` is missing or a string, `style` is an object.\n\t\t\telement.style.cssText = \"\"\n\t\t\t// Add new style properties\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null) element.style.setProperty(normalizeKey(key), String(value))\n\t\t\t}\n\t\t} else {\n\t\t\t// Both old & new are (different) objects.\n\t\t\t// Update style properties that have changed\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null && (value = String(value)) !== String(old[key])) {\n\t\t\t\t\telement.style.setProperty(normalizeKey(key), value)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Remove style properties that no longer exist\n\t\t\tfor (var key in old) {\n\t\t\t\tif (old[key] != null && style[key] == null) {\n\t\t\t\t\telement.style.removeProperty(normalizeKey(key))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Here's an explanation of how this works:\n\t// 1. The event names are always (by design) prefixed by `on`.\n\t// 2. The EventListener interface accepts either a function or an object\n\t// with a `handleEvent` method.\n\t// 3. The object does not inherit from `Object.prototype`, to avoid\n\t// any potential interference with that (e.g. setters).\n\t// 4. The event name is remapped to the handler before calling it.\n\t// 5. In function-based event handlers, `ev.target === this`. We replicate\n\t// that below.\n\t// 6. In function-based event handlers, `return false` prevents the default\n\t// action and stops event propagation. We replicate that below.\n\tfunction EventDict() {\n\t\t// Save this, so the current redraw is correctly tracked.\n\t\tthis._ = currentRedraw\n\t}\n\tEventDict.prototype = Object.create(null)\n\tEventDict.prototype.handleEvent = function (ev) {\n\t\tvar handler = this[\"on\" + ev.type]\n\t\tvar result\n\t\tif (typeof handler === \"function\") result = handler.call(ev.currentTarget, ev)\n\t\telse if (typeof handler.handleEvent === \"function\") handler.handleEvent(ev)\n\t\tif (this._ && ev.redraw !== false) (0, this._)()\n\t\tif (result === false) {\n\t\t\tev.preventDefault()\n\t\t\tev.stopPropagation()\n\t\t}\n\t}\n\n\t//event\n\tfunction updateEvent(vnode, key, value) {\n\t\tif (vnode.events != null) {\n\t\t\tif (vnode.events[key] === value) return\n\t\t\tif (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\t\tif (vnode.events[key] == null) vnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = value\n\t\t\t} else {\n\t\t\t\tif (vnode.events[key] != null) vnode.dom.removeEventListener(key.slice(2), vnode.events, false)\n\t\t\t\tvnode.events[key] = undefined\n\t\t\t}\n\t\t} else if (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\tvnode.events = new EventDict()\n\t\t\tvnode.dom.addEventListener(key.slice(2), vnode.events, false)\n\t\t\tvnode.events[key] = value\n\t\t}\n\t}\n\n\t//lifecycle\n\tfunction initLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.oninit === \"function\") callHook.call(source.oninit, vnode)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(callHook.bind(source.oncreate, vnode))\n\t}\n\tfunction updateLifecycle(source, vnode, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(callHook.bind(source.onupdate, vnode))\n\t}\n\tfunction shouldNotUpdate(vnode, old) {\n\t\tdo {\n\t\t\tif (vnode.attrs != null && typeof vnode.attrs.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.attrs.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\tif (typeof vnode.tag !== \"string\" && typeof vnode.state.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode.state.onbeforeupdate, vnode, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\treturn false\n\t\t} while (false); // eslint-disable-line no-constant-condition\n\t\tvnode.dom = old.dom\n\t\tvnode.domSize = old.domSize\n\t\tvnode.instance = old.instance\n\t\t// One would think having the actual latest attributes would be ideal,\n\t\t// but it doesn't let us properly diff based on our current internal\n\t\t// representation. We have to save not only the old DOM info, but also\n\t\t// the attributes used to create it, as we diff *that*, not against the\n\t\t// DOM directly (with a few exceptions in `setAttr`). And, of course, we\n\t\t// need to save the children and text as they are conceptually not\n\t\t// unlike special \"attributes\" internally.\n\t\tvnode.attrs = old.attrs\n\t\tvnode.children = old.children\n\t\tvnode.text = old.text\n\t\treturn true\n\t}\n\n\treturn function(dom, vnodes, redraw) {\n\t\tif (!dom) throw new TypeError(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = activeElement()\n\t\tvar namespace = dom.namespaceURI\n\n\t\t// First time rendering into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\n\t\tvnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes])\n\t\tvar prevRedraw = currentRedraw\n\t\ttry {\n\t\t\tcurrentRedraw = typeof redraw === \"function\" ? redraw : undefined\n\t\t\tupdateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\t} finally {\n\t\t\tcurrentRedraw = prevRedraw\n\t\t}\n\t\tdom.vnodes = vnodes\n\t\t// `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement\n\t\tif (active != null && activeElement() !== active && typeof active.focus === \"function\") active.focus()\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t}\n}\n","\"use strict\"\n\nvar Vnode = require(\"../render/vnode\")\n\nmodule.exports = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\n","\"use strict\"\n\nfunction Vnode(tag, key, attrs, children, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs, children: children, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node == null || typeof node === \"boolean\") return null\n\tif (typeof node === \"object\") return node\n\treturn Vnode(\"#\", undefined, undefined, String(node), undefined, undefined)\n}\nVnode.normalizeChildren = function(input) {\n\tvar children = []\n\tif (input.length) {\n\t\tvar isKeyed = input[0] != null && input[0].key != null\n\t\t// Note: this is a *very* perf-sensitive check.\n\t\t// Fun fact: merging the loop like this is somehow faster than splitting\n\t\t// it, noticeably so.\n\t\tfor (var i = 1; i < input.length; i++) {\n\t\t\tif ((input[i] != null && input[i].key != null) !== isKeyed) {\n\t\t\t\tthrow new TypeError(\"Vnodes must either always have keys or never have keys!\")\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < input.length; i++) {\n\t\t\tchildren[i] = Vnode.normalize(input[i])\n\t\t}\n\t}\n\treturn children\n}\n\nmodule.exports = Vnode\n","\"use strict\"\n\nvar PromisePolyfill = require(\"./promise/promise\")\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./request/request\")(window, PromisePolyfill, mountRedraw.redraw)\n","\"use strict\"\n\nvar buildPathname = require(\"../pathname/build\")\n\nmodule.exports = function($window, Promise, oncompletion) {\n\tvar callbackCount = 0\n\n\tfunction PromiseProxy(executor) {\n\t\treturn new Promise(executor)\n\t}\n\n\t// In case the global Promise is some userland library's where they rely on\n\t// `foo instanceof this.constructor`, `this.constructor.resolve(value)`, or\n\t// similar. Let's *not* break them.\n\tPromiseProxy.prototype = Promise.prototype\n\tPromiseProxy.__proto__ = Promise // eslint-disable-line no-proto\n\n\tfunction makeRequest(factory) {\n\t\treturn function(url, args) {\n\t\t\tif (typeof url !== \"string\") { args = url; url = url.url }\n\t\t\telse if (args == null) args = {}\n\t\t\tvar promise = new Promise(function(resolve, reject) {\n\t\t\t\tfactory(buildPathname(url, args.params), args, function (data) {\n\t\t\t\t\tif (typeof args.type === \"function\") {\n\t\t\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\t\t\t\tdata[i] = new args.type(data[i])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse data = new args.type(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(data)\n\t\t\t\t}, reject)\n\t\t\t})\n\t\t\tif (args.background === true) return promise\n\t\t\tvar count = 0\n\t\t\tfunction complete() {\n\t\t\t\tif (--count === 0 && typeof oncompletion === \"function\") oncompletion()\n\t\t\t}\n\n\t\t\treturn wrap(promise)\n\n\t\t\tfunction wrap(promise) {\n\t\t\t\tvar then = promise.then\n\t\t\t\t// Set the constructor, so engines know to not await or resolve\n\t\t\t\t// this as a native promise. At the time of writing, this is\n\t\t\t\t// only necessary for V8, but their behavior is the correct\n\t\t\t\t// behavior per spec. See this spec issue for more details:\n\t\t\t\t// https://github.com/tc39/ecma262/issues/1577. Also, see the\n\t\t\t\t// corresponding comment in `request/tests/test-request.js` for\n\t\t\t\t// a bit more background on the issue at hand.\n\t\t\t\tpromise.constructor = PromiseProxy\n\t\t\t\tpromise.then = function() {\n\t\t\t\t\tcount++\n\t\t\t\t\tvar next = then.apply(promise, arguments)\n\t\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\t\tcomplete()\n\t\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t\t})\n\t\t\t\t\treturn wrap(next)\n\t\t\t\t}\n\t\t\t\treturn promise\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasHeader(args, name) {\n\t\tfor (var key in args.headers) {\n\t\t\tif ({}.hasOwnProperty.call(args.headers, key) && name.test(key)) return true\n\t\t}\n\t\treturn false\n\t}\n\n\treturn {\n\t\trequest: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar method = args.method != null ? args.method.toUpperCase() : \"GET\"\n\t\t\tvar body = args.body\n\t\t\tvar assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(body instanceof $window.FormData)\n\t\t\tvar responseType = args.responseType || (typeof args.extract === \"function\" ? \"\" : \"json\")\n\n\t\t\tvar xhr = new $window.XMLHttpRequest(), aborted = false\n\t\t\tvar original = xhr, replacedAbort\n\t\t\tvar abort = xhr.abort\n\n\t\t\txhr.abort = function() {\n\t\t\t\taborted = true\n\t\t\t\tabort.call(this)\n\t\t\t}\n\n\t\t\txhr.open(method, url, args.async !== false, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\n\t\t\tif (assumeJSON && body != null && !hasHeader(args, /^content-type$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (typeof args.deserialize !== \"function\" && !hasHeader(args, /^accept$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tif (args.timeout) xhr.timeout = args.timeout\n\t\t\txhr.responseType = responseType\n\n\t\t\tfor (var key in args.headers) {\n\t\t\t\tif ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t\t}\n\t\t\t}\n\n\t\t\txhr.onreadystatechange = function(ev) {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif (aborted) return\n\n\t\t\t\tif (ev.target.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar success = (ev.target.status >= 200 && ev.target.status < 300) || ev.target.status === 304 || (/^file:\\/\\//i).test(url)\n\t\t\t\t\t\t// When the response type isn't \"\" or \"text\",\n\t\t\t\t\t\t// `xhr.responseText` is the wrong thing to use.\n\t\t\t\t\t\t// Browsers do the right thing and throw here, and we\n\t\t\t\t\t\t// should honor that and do the right thing by\n\t\t\t\t\t\t// preferring `xhr.response` where possible/practical.\n\t\t\t\t\t\tvar response = ev.target.response, message\n\n\t\t\t\t\t\tif (responseType === \"json\") {\n\t\t\t\t\t\t\t// For IE and Edge, which don't implement\n\t\t\t\t\t\t\t// `responseType: \"json\"`.\n\t\t\t\t\t\t\tif (!ev.target.responseType && typeof args.extract !== \"function\") response = JSON.parse(ev.target.responseText)\n\t\t\t\t\t\t} else if (!responseType || responseType === \"text\") {\n\t\t\t\t\t\t\t// Only use this default if it's text. If a parsed\n\t\t\t\t\t\t\t// document is needed on old IE and friends (all\n\t\t\t\t\t\t\t// unsupported), the user should use a custom\n\t\t\t\t\t\t\t// `config` instead. They're already using this at\n\t\t\t\t\t\t\t// their own risk.\n\t\t\t\t\t\t\tif (response == null) response = ev.target.responseText\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof args.extract === \"function\") {\n\t\t\t\t\t\t\tresponse = args.extract(ev.target, args)\n\t\t\t\t\t\t\tsuccess = true\n\t\t\t\t\t\t} else if (typeof args.deserialize === \"function\") {\n\t\t\t\t\t\t\tresponse = args.deserialize(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (success) resolve(response)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\ttry { message = ev.target.responseText }\n\t\t\t\t\t\t\tcatch (e) { message = response }\n\t\t\t\t\t\t\tvar error = new Error(message)\n\t\t\t\t\t\t\terror.code = ev.target.status\n\t\t\t\t\t\t\terror.response = response\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof args.config === \"function\") {\n\t\t\t\txhr = args.config(xhr, args, url) || xhr\n\n\t\t\t\t// Propagate the `abort` to any replacement XHR as well.\n\t\t\t\tif (xhr !== original) {\n\t\t\t\t\treplacedAbort = xhr.abort\n\t\t\t\t\txhr.abort = function() {\n\t\t\t\t\t\taborted = true\n\t\t\t\t\t\treplacedAbort.call(this)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (body == null) xhr.send()\n\t\t\telse if (typeof args.serialize === \"function\") xhr.send(args.serialize(body))\n\t\t\telse if (body instanceof $window.FormData) xhr.send(body)\n\t\t\telse xhr.send(JSON.stringify(body))\n\t\t}),\n\t\tjsonp: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(data)\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tdelete $window[callbackName]\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t}\n\t\t\tscript.src = url + (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") +\n\t\t\t\tencodeURIComponent(args.callbackKey || \"callback\") + \"=\" +\n\t\t\t\tencodeURIComponent(callbackName)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t}),\n\t}\n}\n","\"use strict\"\n\nvar mountRedraw = require(\"./mount-redraw\")\n\nmodule.exports = require(\"./api/router\")(window, mountRedraw)\n","\"use strict\"\n\nmodule.exports = require(\"./stream/stream\")\n","/* eslint-disable */\n;(function() {\n\"use strict\"\n/* eslint-enable */\nStream.SKIP = {}\nStream.lift = lift\nStream.scan = scan\nStream.merge = merge\nStream.combine = combine\nStream.scanMerge = scanMerge\nStream[\"fantasy-land/of\"] = Stream\n\nvar warnedHalt = false\nObject.defineProperty(Stream, \"HALT\", {\n\tget: function() {\n\t\twarnedHalt || console.log(\"HALT is deprecated and has been renamed to SKIP\");\n\t\twarnedHalt = true\n\t\treturn Stream.SKIP\n\t}\n})\n\nfunction Stream(value) {\n\tvar dependentStreams = []\n\tvar dependentFns = []\n\n\tfunction stream(v) {\n\t\tif (arguments.length && v !== Stream.SKIP) {\n\t\t\tvalue = v\n\t\t\tif (open(stream)) {\n\t\t\t\tstream._changing()\n\t\t\t\tstream._state = \"active\"\n\t\t\t\tdependentStreams.forEach(function(s, i) { s(dependentFns[i](value)) })\n\t\t\t}\n\t\t}\n\n\t\treturn value\n\t}\n\n\tstream.constructor = Stream\n\tstream._state = arguments.length && value !== Stream.SKIP ? \"active\" : \"pending\"\n\tstream._parents = []\n\n\tstream._changing = function() {\n\t\tif (open(stream)) stream._state = \"changing\"\n\t\tdependentStreams.forEach(function(s) {\n\t\t\ts._changing()\n\t\t})\n\t}\n\n\tstream._map = function(fn, ignoreInitial) {\n\t\tvar target = ignoreInitial ? Stream() : Stream(fn(value))\n\t\ttarget._parents.push(stream)\n\t\tdependentStreams.push(target)\n\t\tdependentFns.push(fn)\n\t\treturn target\n\t}\n\n\tstream.map = function(fn) {\n\t\treturn stream._map(fn, stream._state !== \"active\")\n\t}\n\n\tvar end\n\tfunction createEnd() {\n\t\tend = Stream()\n\t\tend.map(function(value) {\n\t\t\tif (value === true) {\n\t\t\t\tstream._parents.forEach(function (p) {p._unregisterChild(stream)})\n\t\t\t\tstream._state = \"ended\"\n\t\t\t\tstream._parents.length = dependentStreams.length = dependentFns.length = 0\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn end\n\t}\n\n\tstream.toJSON = function() { return value != null && typeof value.toJSON === \"function\" ? value.toJSON() : value }\n\n\tstream[\"fantasy-land/map\"] = stream.map\n\tstream[\"fantasy-land/ap\"] = function(x) { return combine(function(s1, s2) { return s1()(s2()) }, [x, stream]) }\n\n\tstream._unregisterChild = function(child) {\n\t\tvar childIndex = dependentStreams.indexOf(child)\n\t\tif (childIndex !== -1) {\n\t\t\tdependentStreams.splice(childIndex, 1)\n\t\t\tdependentFns.splice(childIndex, 1)\n\t\t}\n\t}\n\n\tObject.defineProperty(stream, \"end\", {\n\t\tget: function() { return end || createEnd() }\n\t})\n\n\treturn stream\n}\n\nfunction combine(fn, streams) {\n\tvar ready = streams.every(function(s) {\n\t\tif (s.constructor !== Stream)\n\t\t\tthrow new Error(\"Ensure that each item passed to stream.combine/stream.merge/lift is a stream\")\n\t\treturn s._state === \"active\"\n\t})\n\tvar stream = ready\n\t\t? Stream(fn.apply(null, streams.concat([streams])))\n\t\t: Stream()\n\n\tvar changed = []\n\n\tvar mappers = streams.map(function(s) {\n\t\treturn s._map(function(value) {\n\t\t\tchanged.push(s)\n\t\t\tif (ready || streams.every(function(s) { return s._state !== \"pending\" })) {\n\t\t\t\tready = true\n\t\t\t\tstream(fn.apply(null, streams.concat([changed])))\n\t\t\t\tchanged = []\n\t\t\t}\n\t\t\treturn value\n\t\t}, true)\n\t})\n\n\tvar endStream = stream.end.map(function(value) {\n\t\tif (value === true) {\n\t\t\tmappers.forEach(function(mapper) { mapper.end(true) })\n\t\t\tendStream.end(true)\n\t\t}\n\t\treturn undefined\n\t})\n\n\treturn stream\n}\n\nfunction merge(streams) {\n\treturn combine(function() { return streams.map(function(s) { return s() }) }, streams)\n}\n\nfunction scan(fn, acc, origin) {\n\tvar stream = origin.map(function(v) {\n\t\tvar next = fn(acc, v)\n\t\tif (next !== Stream.SKIP) acc = next\n\t\treturn next\n\t})\n\tstream(acc)\n\treturn stream\n}\n\nfunction scanMerge(tuples, seed) {\n\tvar streams = tuples.map(function(tuple) { return tuple[0] })\n\n\tvar stream = combine(function() {\n\t\tvar changed = arguments[arguments.length - 1]\n\t\tstreams.forEach(function(stream, i) {\n\t\t\tif (changed.indexOf(stream) > -1)\n\t\t\t\tseed = tuples[i][1](seed, stream())\n\t\t})\n\n\t\treturn seed\n\t}, streams)\n\n\tstream(seed)\n\n\treturn stream\n}\n\nfunction lift() {\n\tvar fn = arguments[0]\n\tvar streams = Array.prototype.slice.call(arguments, 1)\n\treturn merge(streams).map(function(streams) {\n\t\treturn fn.apply(undefined, streams)\n\t})\n}\n\nfunction open(s) {\n\treturn s._state === \"pending\" || s._state === \"active\" || s._state === \"changing\"\n}\n\nif (typeof module !== \"undefined\") module[\"exports\"] = Stream\nelse if (typeof window.m === \"function\" && !(\"stream\" in window.m)) window.m.stream = Stream\nelse window.m = {stream : Stream}\n\n}());\n","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","import Popper from 'popper.js';\nimport isFunction from '../../popper/src/utils/isFunction';\n\nconst DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template:\n '
',\n trigger: 'hover focus',\n offset: 0,\n arrowSelector: '.tooltip-arrow, .tooltip__arrow',\n innerSelector: '.tooltip-inner, .tooltip__inner',\n};\n\nexport default class Tooltip {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement='top'\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {String} [options.arrowSelector='.tooltip-arrow, .tooltip__arrow'] - className used to locate the DOM arrow element in the tooltip.\n * @param {String} [options.innerSelector='.tooltip-inner, .tooltip__inner'] - className used to locate the DOM inner element in the tooltip.\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `textContent`.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {Boolean} options.closeOnClickOutside=false - Close a popper on click outside of the popper and reference element. This has effect only when options.trigger is 'click'.\n * @param {String|HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n constructor(reference, options) {\n // apply user options over default ones\n options = { ...DEFAULT_OPTIONS, ...options };\n\n reference.jquery && (reference = reference[0]);\n\n // cache reference and options\n this.reference = reference;\n this.options = options;\n\n // get events list\n const events =\n typeof options.trigger === 'string'\n ? options.trigger\n .split(' ')\n .filter(\n trigger => ['click', 'hover', 'focus'].indexOf(trigger) !== -1\n )\n : [];\n\n // set initial state\n this._isOpen = false;\n this._popperOptions = {};\n\n // set event listeners\n this._setEventListeners(reference, events, options);\n }\n\n //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n show = () => this._show(this.reference, this.options);\n\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n hide = () => this._hide();\n\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n dispose = () => this._dispose();\n\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n toggle = () => {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n };\n\n /**\n * Updates the tooltip's title content\n * @method Tooltip#updateTitleContent\n * @memberof Tooltip\n * @param {String|HTMLElement} title - The new content to use for the title\n */\n updateTitleContent = (title) => this._updateTitleContent(title);\n\n //\n // Private methods\n //\n\n _events = [];\n\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLElement} tooltipNode\n */\n _create(reference, template, title, allowHtml) {\n // create tooltip element\n const tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n const tooltipNode = tooltipGenerator.childNodes[0];\n\n // add unique ID to our tooltip (needed for accessibility reasons)\n tooltipNode.id = `tooltip_${Math.random()\n .toString(36)\n .substr(2, 10)}`;\n\n // set initial `aria-hidden` state to `false` (it's visible!)\n tooltipNode.setAttribute('aria-hidden', 'false');\n\n // add title to tooltip\n const titleNode = tooltipGenerator.querySelector(this.options.innerSelector);\n this._addTitleContent(reference, title, allowHtml, titleNode);\n\n // return the generated tooltip node\n return tooltipNode;\n }\n\n _addTitleContent(reference, title, allowHtml, titleNode) {\n if (title.nodeType === 1 || title.nodeType === 11) {\n // if title is a element node or document fragment, append it only if allowHtml is true\n allowHtml && titleNode.appendChild(title);\n } else if (isFunction(title)) {\n // Recursively call ourself so that the return value of the function gets handled appropriately - either\n // as a dom node, a string, or even as another function.\n this._addTitleContent(reference, title.call(reference), allowHtml, titleNode);\n } else {\n // if it's just a simple text, set textContent or innerHtml depending by `allowHtml` value\n allowHtml ? (titleNode.innerHTML = title) : (titleNode.textContent = title);\n }\n }\n\n _show(reference, options) {\n // don't show if it's already visible\n // or if it's not being showed\n if (this._isOpen && !this._isOpening) {\n return this;\n }\n this._isOpen = true;\n\n // if the tooltipNode already exists, just show it\n if (this._tooltipNode) {\n this._tooltipNode.style.visibility = 'visible';\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n this.popperInstance.update();\n return this;\n }\n\n // get title\n const title = reference.getAttribute('title') || options.title;\n\n // don't show tooltip if no title is defined\n if (!title) {\n return this;\n }\n\n // create tooltip node\n const tooltipNode = this._create(\n reference,\n options.template,\n title,\n options.html\n );\n\n // Add `aria-describedby` to our reference element for accessibility reasons\n reference.setAttribute('aria-describedby', tooltipNode.id);\n\n // append tooltip to container\n const container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n this._popperOptions = {\n ...options.popperOptions,\n placement: options.placement,\n };\n\n this._popperOptions.modifiers = {\n ...this._popperOptions.modifiers,\n arrow: {\n ...(this._popperOptions.modifiers && this._popperOptions.modifiers.arrow),\n element: options.arrowSelector,\n },\n offset: {\n ...(this._popperOptions.modifiers && this._popperOptions.modifiers.offset),\n offset: options.offset ||\n this._popperOptions.modifiers && this._popperOptions.modifiers.offset && this._popperOptions.modifiers.offset.offset ||\n options.offset,\n },\n };\n\n if (options.boundariesElement) {\n this._popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement,\n };\n }\n\n this.popperInstance = new Popper(\n reference,\n tooltipNode,\n this._popperOptions\n );\n\n this._tooltipNode = tooltipNode;\n\n return this;\n }\n\n _hide(/*reference, options*/) {\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n // hide tooltipNode\n this._tooltipNode.style.visibility = 'hidden';\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n return this;\n }\n\n _dispose() {\n // remove event listeners first to prevent any unexpected behaviour\n this._events.forEach(({ func, event }) => {\n this.reference.removeEventListener(event, func);\n });\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n // destroy instance\n this.popperInstance.destroy();\n\n // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n if (!this.popperInstance.options.removeOnDestroy) {\n this._tooltipNode.parentNode.removeChild(this._tooltipNode);\n this._tooltipNode = null;\n }\n }\n return this;\n }\n\n _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n return container;\n }\n\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltipNode\n * @param {HTMLElement|String|false} container\n */\n _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n\n _setEventListeners(reference, events, options) {\n const directEvents = [];\n const oppositeEvents = [];\n\n events.forEach(event => {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n });\n\n // schedule show tooltip\n directEvents.forEach(event => {\n const func = evt => {\n if (this._isOpening === true) {\n return;\n }\n evt.usedByTooltip = true;\n this._scheduleShow(reference, options.delay, options, evt);\n };\n this._events.push({ event, func });\n reference.addEventListener(event, func);\n });\n\n // schedule hide tooltip\n oppositeEvents.forEach(event => {\n const func = evt => {\n if (evt.usedByTooltip === true) {\n return;\n }\n this._scheduleHide(reference, options.delay, options, evt);\n };\n this._events.push({ event, func });\n reference.addEventListener(event, func);\n if (event === 'click' && options.closeOnClickOutside) {\n document.addEventListener('mousedown', e => {\n if (!this._isOpening) {\n return;\n }\n const popper = this.popperInstance.popper;\n if (reference.contains(e.target) ||\n popper.contains(e.target)) {\n return;\n }\n func(e);\n }, true);\n }\n });\n }\n\n _scheduleShow(reference, delay, options /*, evt */) {\n this._isOpening = true;\n // defaults to 0\n const computedDelay = (delay && delay.show) || delay || 0;\n this._showTimeout = window.setTimeout(\n () => this._show(reference, options),\n computedDelay\n );\n }\n\n _scheduleHide(reference, delay, options, evt) {\n this._isOpening = false;\n // defaults to 0\n const computedDelay = (delay && delay.hide) || delay || 0;\n window.clearTimeout(this._showTimeout);\n window.setTimeout(() => {\n if (this._isOpen === false) {\n return;\n }\n if (!document.body.contains(this._tooltipNode)) {\n return;\n }\n\n // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n if (evt.type === 'mouseleave') {\n const isSet = this._setTooltipNodeEvent(evt, reference, delay, options);\n\n // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n if (isSet) {\n return;\n }\n }\n\n this._hide(reference, options);\n }, computedDelay);\n }\n\n _setTooltipNodeEvent = (evt, reference, delay, options) => {\n const relatedreference =\n evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n const callback = evt2 => {\n const relatedreference2 =\n evt2.relatedreference || evt2.toElement || evt2.relatedTarget;\n\n // Remove event listener after call\n this._tooltipNode.removeEventListener(evt.type, callback);\n\n // If the new reference is not the reference element\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n this._tooltipNode.addEventListener(evt.type, callback);\n return true;\n }\n\n return false;\n };\n\n _updateTitleContent(title) {\n if(typeof this._tooltipNode === 'undefined') {\n if(typeof this.options.title !== 'undefined') {\n this.options.title = title;\n }\n return;\n }\n const titleNode = this._tooltipNode.querySelector(this.options.innerSelector);\n this._clearTitleContent(titleNode, this.options.html, this.reference.getAttribute('title') || this.options.title)\n this._addTitleContent(this.reference, title, this.options.html, titleNode);\n this.options.title = title;\n this.popperInstance.update();\n }\n\n _clearTitleContent(titleNode, allowHtml, lastTitle) {\n if(lastTitle.nodeType === 1 || lastTitle.nodeType === 11) {\n allowHtml && titleNode.removeChild(lastTitle);\n } else {\n allowHtml ? titleNode.innerHTML = '' : titleNode.textContent = '';\n }\n }\n\n}\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a