\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3e7f114a&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3e7f114a&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e7f114a\",\n null\n \n)\n\nexport default component.exports","export function login(action = 'login') {\n if (window._miniLogin_) {\n window._miniLogin_.showComponent({\n show_type: action\n }) // 显示登录组件\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3e7f114a&prod&scoped=true&lang=scss\"","module.exports = \"data:image/png;base64,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\"","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array