diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..27485f9d --- /dev/null +++ b/.babelrc @@ -0,0 +1,7 @@ +{ + + "presets": [ + "@babel/preset-env" + ], + "plugins": ["@babel/plugin-syntax-dynamic-import"] +} \ No newline at end of file diff --git a/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf b/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf new file mode 100644 index 00000000..91b74de3 Binary files /dev/null and b/fonts/vendor/element-ui/lib/theme-chalk/element-icons.ttf differ diff --git a/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff b/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff new file mode 100644 index 00000000..02b9a253 Binary files /dev/null and b/fonts/vendor/element-ui/lib/theme-chalk/element-icons.woff differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff new file mode 100644 index 00000000..4ddf3dc5 Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 new file mode 100644 index 00000000..674546e1 Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff new file mode 100644 index 00000000..f34c2146 Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 new file mode 100644 index 00000000..b3723c0f Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff new file mode 100644 index 00000000..d8dd85bf Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 new file mode 100644 index 00000000..2c3f8e76 Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff new file mode 100644 index 00000000..6ef568bf Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff differ diff --git a/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 new file mode 100644 index 00000000..d0fa0cd6 Binary files /dev/null and b/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 differ diff --git a/public/0.17b8d08b9d259577cf6a.js b/public/0.17b8d08b9d259577cf6a.js new file mode 100644 index 00000000..67279288 --- /dev/null +++ b/public/0.17b8d08b9d259577cf6a.js @@ -0,0 +1,859 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[0],{ + +/***/ "./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + true ? module.exports : undefined +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} + + +/***/ }), + +/***/ "./node_modules/@babel/runtime/regenerator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/@babel/runtime/regenerator/index.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js"); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/1.8f721a069933f04e92d7.js b/public/1.8f721a069933f04e92d7.js new file mode 100644 index 00000000..c9640f05 --- /dev/null +++ b/public/1.8f721a069933f04e92d7.js @@ -0,0 +1,336 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'paginator', + props: { + meta: { + type: Object, + default: function _default() { + return { + total: 0, + per_page: 10, + from: 0, + to: 1, + last_page: 1, + current_page: 1 + }; + } + } + }, + computed: { + centerStart: function centerStart() { + if (this.meta.last_page <= 10) { + return 1; + } + + var count = this.meta.last_page - this.meta.current_page <= 4 ? 9 - (this.meta.last_page - this.meta.current_page) : 4; + return this.meta.current_page - count > 1 ? this.meta.current_page - count : 1; + }, + centerEnd: function centerEnd() { + if (this.meta.last_page <= 10) { + return this.meta.last_page; + } + + var count = this.meta.current_page <= 4 ? 9 - (this.meta.current_page - 1) : 4; + return this.meta.current_page + count < this.meta.last_page - 1 ? this.meta.current_page + count : this.meta.last_page; + } + }, + methods: { + range: function range(start, end) { + return Array(end - start + 1).fill().map(function (_, idx) { + return start + idx; + }); + }, + change: function change(page) { + this.meta.current_page = page; + this.$emit('change', page); + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".paginator[data-v-5f72e89e] {\n list-style: none;\n padding: 1em 0;\n}\n.paginator .paginator-item a[data-v-5f72e89e] {\n display: inline-block;\n height: 32px;\n width: 32px;\n text-align: center;\n border-radius: 100%;\n line-height: 32px;\n font-size: 14px;\n margin: 0 0.2em;\n}\n.paginator .paginator-item.active a[data-v-5f72e89e] {\n color: #fff;\n background: rgba(0, 0, 0, 0.5);\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.meta.last_page > 1 + ? _c( + "ul", + { + staticClass: + "paginator d-flex justify-content-center align-items-center" + }, + [ + _vm.centerStart != 1 + ? [ + _c( + "li", + { + staticClass: "paginator-item", + class: { active: 1 == _vm.meta.current_page } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(1) + } + } + }, + [_vm._v("1")] + ) + ] + ), + _vm._v(" "), + _c("li", { staticClass: "paginator-item" }, [ + _c("a", { + staticClass: "text-muted", + attrs: { disabled: "" }, + domProps: { innerHTML: _vm._s("⋯") } + }) + ]) + ] + : _vm._e(), + _vm._v(" "), + _vm._l(_vm.range(_vm.centerStart, _vm.centerEnd), function(i) { + return _c( + "li", + { + key: i, + staticClass: "paginator-item", + class: { active: i == _vm.meta.current_page } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(i) + } + } + }, + [_vm._v(_vm._s(i))] + ) + ] + ) + }), + _vm._v(" "), + _vm.centerEnd != _vm.meta.last_page + ? [ + _c("li", { staticClass: "paginator-item" }, [ + _c("a", { + staticClass: "text-muted", + attrs: { disabled: "" }, + domProps: { innerHTML: _vm._s("⋯") } + }) + ]), + _vm._v(" "), + _c( + "li", + { + staticClass: "paginator-item", + class: { + active: _vm.meta.last_page == _vm.meta.current_page + } + }, + [ + _c( + "a", + { + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + return _vm.change(_vm.meta.last_page) + } + } + }, + [_vm._v(_vm._s(_vm.meta.last_page))] + ) + ] + ) + ] + : _vm._e() + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/paginator.vue": +/*!**************************************!*\ + !*** ./src/components/paginator.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./paginator.vue?vue&type=template&id=5f72e89e&scoped=true& */ "./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&"); +/* harmony import */ var _paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./paginator.vue?vue&type=script&lang=js& */ "./src/components/paginator.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "5f72e89e", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/paginator.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&": +/*!************************************************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& ***! + \************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=style&index=0&id=5f72e89e&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_style_index_0_id_5f72e89e_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&": +/*!*********************************************************************************!*\ + !*** ./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./paginator.vue?vue&type=template&id=5f72e89e&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/paginator.vue?vue&type=template&id=5f72e89e&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_paginator_vue_vue_type_template_id_5f72e89e_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/10.1163691f38c6de464081.js b/public/10.1163691f38c6de464081.js new file mode 100644 index 00000000..6c49f14c --- /dev/null +++ b/public/10.1163691f38c6de464081.js @@ -0,0 +1,932 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CloseIcon", + props: { + title: { + type: String, + default: "Close icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "EmailIcon", + props: { + title: { + type: String, + default: "Email icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon close-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon email-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18C2,19.1 2.9,20 4,20H20C21.1,20 22,19.1 22,18V6C22,4.89 21.1,4 20,4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony import */ var _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Close.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Email.vue?vue&type=template&id=503121c0& */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&"); +/* harmony import */ var _Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Email.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["render"], + _Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Email.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Email.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Email.vue?vue&type=template&id=503121c0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/11.80e35f84831e7eccba12.js b/public/11.80e35f84831e7eccba12.js new file mode 100644 index 00000000..5331289a --- /dev/null +++ b/public/11.80e35f84831e7eccba12.js @@ -0,0 +1,814 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[11],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Close__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Close */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'follow-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + CloseIcon: $icons_Close__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + item: { + type: Object, + required: true + }, + simple: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + hovering: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-item.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-list-item', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + user: { + type: Object + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.currentUser.id && _vm.item.id != _vm.currentUser.id + ? _c( + "relation-btn", + { attrs: { relation: "user", action: "follow", item: _vm.item } }, + [ + _c("template", { slot: "on" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-rounded btn-ghost btn-icon ml-auto", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn btn-rounded btn-outline-teal-blue mx-1", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon"), _vm._v("关注 TA\n ")], + 1 + ) + ]), + _vm._v(" "), + _c("template", { slot: "off" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-icon ml-auto", + class: { + "btn-ghost": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [!_vm.hovering ? _c("check-icon") : _c("close-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn mx-1", + class: { + "btn-teal-blue": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [ + !_vm.hovering ? _c("check-icon") : _c("close-icon"), + _vm._v( + "\n " + + _vm._s(_vm.hovering ? "取消关注" : "正在关注") + + "\n " + ) + ], + 1 + ) + ]) + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=template&id=77d18d70&": +/*!********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-item.vue?vue&type=template&id=77d18d70& ***! + \********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "user-media d-flex align-items-center" }, + [ + _c( + "router-link", + { + attrs: { + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "ml-2" }, [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + tag: "a", + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [ + _c("h5", { staticClass: "mb-0 text-gray-50 d-inline" }, [ + _vm._v(_vm._s(_vm.user.name)) + ]) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "ml-1 text-muted text-12", + attrs: { + tag: "a", + to: { name: "users.show", params: { id: _vm.user.username } } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]), + _vm._v(" "), + _vm._t( + "appends", + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: _vm.user, simple: "" } + }) + ], + { data: _vm.user } + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue": +/*!***********************************************!*\ + !*** ./src/components/buttons/follow-btn.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony import */ var _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/follow-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!******************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-list-item.vue": +/*!*******************************************!*\ + !*** ./src/components/user-list-item.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-list-item.vue?vue&type=template&id=77d18d70& */ "./src/components/user-list-item.vue?vue&type=template&id=77d18d70&"); +/* harmony import */ var _user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-list-item.vue?vue&type=script&lang=js& */ "./src/components/user-list-item.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-list-item.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-list-item.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/user-list-item.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-item.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-list-item.vue?vue&type=template&id=77d18d70&": +/*!**************************************************************************!*\ + !*** ./src/components/user-list-item.vue?vue&type=template&id=77d18d70& ***! + \**************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-item.vue?vue&type=template&id=77d18d70& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-item.vue?vue&type=template&id=77d18d70&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_item_vue_vue_type_template_id_77d18d70___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/12.ffa155942fd31d411257.js b/public/12.ffa155942fd31d411257.js new file mode 100644 index 00000000..bdc6ab00 --- /dev/null +++ b/public/12.ffa155942fd31d411257.js @@ -0,0 +1,751 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FacebookIcon", + props: { + title: { + type: String, + default: "Facebook icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "GithubCircleIcon", + props: { + title: { + type: String, + default: "Github Circle icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "GooglePlusIcon", + props: { + title: { + type: String, + default: "Google Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "QqchatIcon", + props: { + title: { + type: String, + default: "Qqchat icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon facebook-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M17,2V2H17V6H15C14.31,6 14,6.81 14,7.5V10H14L17,10V14H14V22H10V14H7V10H10V6C10,3.79 11.79,2 14,2H17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&": +/*!******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182& ***! + \******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon github-circle-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,2C6.48,2 2,6.48 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12C22,6.48 17.52,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon google-plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M23,11H21V9H19V11H17V13H19V15H21V13H23M8,11V13.4H12C11.8,14.4 10.8,16.4 8,16.4C5.6,16.4 3.7,14.4 3.7,12C3.7,9.6 5.6,7.6 8,7.6C9.4,7.6 10.3,8.2 10.8,8.7L12.7,6.9C11.5,5.7 9.9,5 8,5C4.1,5 1,8.1 1,12C1,15.9 4.1,19 8,19C12,19 14.7,16.2 14.7,12.2C14.7,11.7 14.7,11.4 14.6,11H8Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon qqchat-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3.18,13.54C3.76,12.16 4.57,11.14 5.17,10.92C5.16,10.12 5.31,9.62 5.56,9.22C5.56,9.19 5.5,8.86 5.72,8.45C5.87,4.85 8.21,2 12,2C15.79,2 18.13,4.85 18.28,8.45C18.5,8.86 18.44,9.19 18.44,9.22C18.69,9.62 18.84,10.12 18.83,10.92C19.43,11.14 20.24,12.16 20.82,13.55C21.57,15.31 21.69,17 21.09,17.3C20.68,17.5 20.03,17 19.42,16.12C19.18,17.1 18.58,18 17.73,18.71C18.63,19.04 19.21,19.58 19.21,20.19C19.21,21.19 17.63,22 15.69,22C13.93,22 12.5,21.34 12.21,20.5H11.79C11.5,21.34 10.07,22 8.31,22C6.37,22 4.79,21.19 4.79,20.19C4.79,19.58 5.37,19.04 6.27,18.71C5.42,18 4.82,17.1 4.58,16.12C3.97,17 3.32,17.5 2.91,17.3C2.31,17 2.43,15.31 3.18,13.54Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Facebook.vue?vue&type=template&id=166b381c& */ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&"); +/* harmony import */ var _Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Facebook.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Facebook.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Facebook.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Facebook.vue?vue&type=template&id=166b381c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Facebook.vue?vue&type=template&id=166b381c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Facebook_vue_vue_type_template_id_166b381c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue": +/*!*****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GithubCircle.vue?vue&type=template&id=167b8182& */ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&"); +/* harmony import */ var _GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GithubCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["render"], + _GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/GithubCircle.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js& ***! + \******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./GithubCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&": +/*!************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182& ***! + \************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./GithubCircle.vue?vue&type=template&id=167b8182& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GithubCircle.vue?vue&type=template&id=167b8182&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GithubCircle_vue_vue_type_template_id_167b8182___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GooglePlus.vue?vue&type=template&id=3898311f& */ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&"); +/* harmony import */ var _GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GooglePlus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["render"], + _GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/GooglePlus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./GooglePlus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./GooglePlus.vue?vue&type=template&id=3898311f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/GooglePlus.vue?vue&type=template&id=3898311f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_GooglePlus_vue_vue_type_template_id_3898311f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Qqchat.vue?vue&type=template&id=755a06a4& */ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&"); +/* harmony import */ var _Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Qqchat.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["render"], + _Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Qqchat.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Qqchat.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Qqchat.vue?vue&type=template&id=755a06a4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Qqchat.vue?vue&type=template&id=755a06a4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Qqchat_vue_vue_type_template_id_755a06a4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/13.c7f122518fa549773d41.js b/public/13.c7f122518fa549773d41.js new file mode 100644 index 00000000..f8154c8d --- /dev/null +++ b/public/13.c7f122518fa549773d41.js @@ -0,0 +1,551 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[13],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Twitter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Twitter */ "./node_modules/vue-material-design-icons/Twitter.vue"); +/* harmony import */ var $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/GithubCircle */ "./node_modules/vue-material-design-icons/GithubCircle.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var $icons_Instagram__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Instagram */ "./node_modules/vue-material-design-icons/Instagram.vue"); +/* harmony import */ var $icons_Telegram__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Telegram */ "./node_modules/vue-material-design-icons/Telegram.vue"); +/* harmony import */ var $icons_Steam__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Steam */ "./node_modules/vue-material-design-icons/Steam.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-social-btns', + props: { + user: { + type: Object, + required: true + }, + size: { + type: Number, + default: 16 + }, + spacing: { + type: Number, + default: 8 + } + }, + computed: { + btnClass: function btnClass() { + return "text-".concat(this.size, " spacing-").concat(this.spacing); + } + }, + components: { + TwitterIcon: $icons_Twitter__WEBPACK_IMPORTED_MODULE_0__["default"], + GithubIcon: $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_1__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_2__["default"], + InstagramIcon: $icons_Instagram__WEBPACK_IMPORTED_MODULE_3__["default"], + TelegramIcon: $icons_Telegram__WEBPACK_IMPORTED_MODULE_4__["default"], + SteamIcon: $icons_Steam__WEBPACK_IMPORTED_MODULE_5__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "user-social-btns d-flex justify-content-start flex-wrap" }, + [ + _vm.user.extends.github + ? _c( + "a", + { + staticClass: "btn btn-dark btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://github.com/" + _vm.user.extends.github, + target: "_blank" + } + }, + [_c("github-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.twitter + ? _c( + "a", + { + staticClass: "btn btn-twitter btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://twitter.com/" + _vm.user.extends.twitter, + target: "_blank" + } + }, + [_c("twitter-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.facebook + ? _c( + "a", + { + staticClass: "btn btn-facebook btn-icon", + class: _vm.btnClass, + attrs: { + href: "https://www.facebook.com/" + _vm.user.extends.facebook, + target: "_blank" + } + }, + [_c("facebook-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.instagram + ? _c( + "a", + { + staticClass: "btn btn-orange btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://www.instagram.com/" + _vm.user.extends.instagram, + target: "_blank" + } + }, + [_c("instagram-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.telegram + ? _c( + "a", + { + staticClass: "btn btn-teal-blue btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://t.me/" + _vm.user.extends.telegram, + target: "_blank" + } + }, + [_c("telegram-icon")], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.steam + ? _c( + "a", + { + staticClass: "btn btn-payne-grey btn-icon text-white", + class: _vm.btnClass, + attrs: { + href: "https://steamcommunity.com/id/" + _vm.user.extends.steam, + target: "_blank" + } + }, + [_c("steam-icon")], + 1 + ) + : _vm._e() + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-social-btns.vue": +/*!*********************************************!*\ + !*** ./src/components/user-social-btns.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& */ "./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&"); +/* harmony import */ var _user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=script&lang=js& */ "./src/components/user-social-btns.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "1e242af6", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-social-btns.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&": +/*!*******************************************************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& ***! + \*******************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=style&index=0&id=1e242af6&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_style_index_0_id_1e242af6_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&": +/*!****************************************************************************************!*\ + !*** ./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-social-btns.vue?vue&type=template&id=1e242af6&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_social_btns_vue_vue_type_template_id_1e242af6_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/14.644007cb2e6d0ab3b33b.js b/public/14.644007cb2e6d0ab3b33b.js new file mode 100644 index 00000000..3c5850c3 --- /dev/null +++ b/public/14.644007cb2e6d0ab3b33b.js @@ -0,0 +1,259 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[14],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/oauth.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'oauth', + mounted: function mounted() { + var _this = this; + + var platform = this.$route.params.platform; + + if (this.$route.name === 'auth.oauth_redirect') { + this.$http.get('oauth/redirect-url/' + platform).then(function (redirectUrl) { + window.location = redirectUrl; + }); + } else { + this.$http.get('oauth/callback/' + platform).then(function (response) { + _this.$store.dispatch('setToken', response.token); + + _this.$store.dispatch('setUser', response.user); + + _this.$store.dispatch('loadUser'); + + _this.$message.success('欢迎回来~'); + + if (window.opener) { + window.opener.location.reload(); + window.close(); + } else { + window.location.href = '/'; + } + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "oauth-redirect text-center p-5" }, [ + _vm.$route.name == "auth.oauth_redirect" + ? _c("div", [ + _vm._v("Redirecting to " + _vm._s(_vm.$route.params.platform) + "...") + ]) + : _c("div", [_vm._v("Fetching user info...")]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue": +/*!************************************!*\ + !*** ./src/modules/auth/oauth.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./oauth.vue?vue&type=template&id=eb049ade& */ "./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&"); +/* harmony import */ var _oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./oauth.vue?vue&type=script&lang=js& */ "./src/modules/auth/oauth.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["render"], + _oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/oauth.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/auth/oauth.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./oauth.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&": +/*!*******************************************************************!*\ + !*** ./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./oauth.vue?vue&type=template&id=eb049ade& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/oauth.vue?vue&type=template&id=eb049ade&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_oauth_vue_vue_type_template_id_eb049ade___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/15.556bc6b46922981b0249.js b/public/15.556bc6b46922981b0249.js new file mode 100644 index 00000000..d9176614 --- /dev/null +++ b/public/15.556bc6b46922981b0249.js @@ -0,0 +1,2621 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[15],{ + +/***/ "./node_modules/popper.js/dist/esm/popper.js": +/*!***************************************************!*\ + !*** ./node_modules/popper.js/dist/esm/popper.js ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global) {/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.15.0 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; + +var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; +var timeoutDuration = 0; +for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + timeoutDuration = 1; + break; + } +} + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; + +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; + +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} + +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } + // NOTE: 1 DOM access here + var window = element.ownerDocument.defaultView; + var css = window.getComputedStyle(element, null); + return property ? css[property] : css; +} + +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + return element.parentNode || element.host; +} + +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + case '#document': + return element.body; + } + + // Firefox want us to check `-x` and `-y` variations as well + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); +var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); + +/** + * Determines if the browser is Internet Explorer + * @method + * @memberof Popper.Utils + * @param {Number} version to check + * @returns {Boolean} isIE + */ +function isIE(version) { + if (version === 11) { + return isIE11; + } + if (version === 10) { + return isIE10; + } + return isIE11 || isIE10; +} + +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ +function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + + var noOffsetParent = isIE(10) ? document.body : null; + + // NOTE: 1 DOM access here + var offsetParent = element.offsetParent || null; + // Skip hidden elements which don't have an offsetParent + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + return element ? element.ownerDocument.documentElement : document.documentElement; + } + + // .offsetParent will return the closest TH, TD or TABLE in case + // no offsetParent is present, I hate this job... + if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} + +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} + +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } + + // Here we make sure to give as "start" the element that comes first in the DOM + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; + + // Get common ancestor container + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; + + // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } + + // one of the nodes is inside shadowDOM, find which one + var element1root = getRoot(element1); + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} + +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} + +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} + +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); +} + +function getWindowSizes(document) { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + + + + + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +var _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; +}; + +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} + +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ +function getBoundingClientRect(element) { + var rect = {}; + + // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) {} + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; + + // subtract scrollbar size from sizes + var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.right - result.left; + var height = sizes.height || element.clientHeight || result.bottom - result.top; + + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; + + // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + var isIE10 = isIE(10); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); + + // In cases where the parent is fixed, we must ignore negative scroll in offset calc + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; + + // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; + + // Attach marginTop and marginLeft because in some circumstances we may need them + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + + var scrollTop = !excludeScroll ? getScroll(html) : 0; + var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + + return getClientRect(offset); +} + +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ +function isFixed(element) { + var nodeName = element.nodeName; + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + var parentNode = getParentNode(element); + if (!parentNode) { + return false; + } + return isFixed(parentNode); +} + +/** + * Finds the first parent of an element that has a transformed property defined + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} first transformed parent or documentElement + */ + +function getFixedPositionOffsetParent(element) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + var el = element.parentElement; + while (el && getStyleComputedProperty(el, 'transform') === 'none') { + el = el.parentElement; + } + return el || document.documentElement; +} + +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @param {Boolean} fixedPosition - Is in fixed position mode + * @returns {Object} Coordinates of the boundaries + */ +function getBoundaries(popper, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + + // NOTE: 1 DOM access here + + var boundaries = { top: 0, left: 0 }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); + + // Handle viewport case + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); + + // In case of HTML, we need a different computation + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper.ownerDocument), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } + + // Add paddings + padding = padding || 0; + var isPaddingNumber = typeof padding === 'number'; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + + return width * height; +} + +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + + var variation = placement.split('-')[1]; + + return computedPlacement + (variation ? '-' + variation : ''); +} + +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @param {Element} fixedPosition - is in fixed position mode + * @returns {Object} An object containing the offsets which will be applied to the popper + */ +function getReferenceOffsets(state, popper, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); +} + +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ +function getOuterSizes(element) { + var window = element.ownerDocument.defaultView; + var styles = window.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} + +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ +function getOppositePlacement(placement) { + var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} + +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; + + // Get popper node sizes + var popperRect = getOuterSizes(popper); + + // Add position, width and height to our offsets object + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; + + // depending by the popper placement we have to compute its offsets slightly differently + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} + +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } + + // use `filter` to obtain the same behavior of `find` + return arr.filter(check)[0]; +} + +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } + + // use `find` + `indexOf` if `findIndex` isn't supported + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} + +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + + data = fn(data, modifier); + } + }); + + return data; +} + +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.
+ * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; + + // compute reference element offsets + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); + + // store the computed placement inside `originalPlacement` + data.originalPlacement = data.placement; + + data.positionFixed = this.options.positionFixed; + + // compute the popper offsets + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + + data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; + + // run the modifiers + data = runModifiers(this.modifiers, data); + + // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} + +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} + +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + return null; +} + +/** + * Destroys the popper. + * @method + * @memberof Popper + */ +function destroy() { + this.state.isDestroyed = true; + + // touch DOM only if `applyStyle` modifier is enabled + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style.left = ''; + this.popper.style.right = ''; + this.popper.style.bottom = ''; + this.popper.style.willChange = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); + + // remove the popper if user explicity asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + return this; +} + +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { passive: true }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + scrollParents.push(target); +} + +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); + + // Scroll event listener on scroll parents + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + + return state; +} + +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} + +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); + + // Remove scroll event listener on scroll parents + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); + + // Reset state + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} + +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger `onUpdate` callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} + +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} + +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; + // add unit if the value is numeric and is one of the following + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + element.style[prop] = styles[prop] + unit; + }); +} + +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); + + // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + setAttributes(data.instance.popper, data.attributes); + + // if arrowElement is defined and arrowStyles has some properties + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} + +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper + * @param {Object} options - Popper.js options + */ +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); + + // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + + popper.setAttribute('x-placement', placement); + + // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); + + return options; +} + +/** + * @function + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by `update` method + * @argument {Boolean} shouldRound - If the offsets should be rounded at all + * @returns {Object} The popper's position offsets rounded + * + * The tale of pixel-perfect positioning. It's still not 100% perfect, but as + * good as it can be within reason. + * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 + * + * Low DPI screens cause a popper to be blurry if not using full pixels (Safari + * as well on High DPI screens). + * + * Firefox prefers no rounding for positioning and does not have blurriness on + * high DPI screens. + * + * Only horizontal placement and left/right values need to be considered. + */ +function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var round = Math.round, + floor = Math.floor; + + var noRound = function noRound(v) { + return v; + }; + + var referenceWidth = round(reference.width); + var popperWidth = round(popper.width); + + var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf('-') !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), + top: verticalToInteger(popper.top), + bottom: verticalToInteger(popper.bottom), + right: horizontalToInteger(popper.right) + }; +} + +var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; + + // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); + + // Styles + var styles = { + position: popper.position + }; + + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; + + // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + var prefixedProperty = getSupportedPropertyName('transform'); + + // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + var left = void 0, + top = void 0; + if (sideA === 'bottom') { + // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar) + // and not the bottom of the html element + if (offsetParent.nodeName === 'HTML') { + top = -offsetParent.clientHeight + offsets.bottom; + } else { + top = -offsetParentRect.height + offsets.bottom; + } + } else { + top = offsets.top; + } + if (sideB === 'right') { + if (offsetParent.nodeName === 'HTML') { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } + + // Attributes + var attributes = { + 'x-placement': data.placement + }; + + // Update `data` attributes, styles and arrowStyles + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + + return data; +} + +/** + * Helper used to know if the given modifier depends from another one.
+ * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + return isRequired; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function arrow(data, options) { + var _data$offsets$arrow; + + // arrow depends on keepTogether in order to work + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; + + // if arrowElement is a string, suppose it's a CSS selector + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); + + // if arrowElement is not found, don't run the modifier + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; + + // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjunction + // + + // top/left side + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } + // bottom/right side + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + data.offsets.popper = getClientRect(data.offsets.popper); + + // compute center of the popper + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; + + // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; + + // prevent arrowElement from being placed not contiguously to its popper + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + + return data; +} + +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + return variation; +} + +/** + * List of accepted placements to use as values of the `placement` option.
+ * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-end` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; + +// Get rid of `auto` `auto-start` and `auto-end` +var validPlacements = placements.slice(3); + +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; + + // using floor because the reference offsets may contain decimals we are not going to consider here + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; + + // flip the variation if required + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + + // flips variation if reference element overflows boundaries + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); + + // flips variation if popper content overflows boundaries + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); + + // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} + +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; + + // If it's not a number it's an operator, I guess + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + switch (unit) { + case '%p': + element = popperOffsets; + break; + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} + +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; + + // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; + + // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); + + // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } + + // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; + + // Convert the values with units to absolute pixels to allow our computations + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op + // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) + // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); + + // Loop trough the offsets arrays and execute the operations + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var basePlacement = placement.split('-')[0]; + + var offsets = void 0; + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); + + // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } + + // NOTE: DOM access here + // resets the popper's position so that the document size can be calculated excluding + // the size of the popper element itself + var transformProp = getSupportedPropertyName('transform'); + var popperStyles = data.instance.popper.style; // assignment to help minification + var top = popperStyles.top, + left = popperStyles.left, + transform = popperStyles[transformProp]; + + popperStyles.top = ''; + popperStyles.left = ''; + popperStyles[transformProp] = ''; + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); + + // NOTE: DOM access here + // restores the original style properties after the offsets have been computed + popperStyles.top = top; + popperStyles.left = left; + popperStyles[transformProp] = transform; + + options.boundaries = boundaries; + + var order = options.priority; + var popper = data.offsets.popper; + + var check = { + primary: function primary(placement) { + var value = popper[placement]; + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + return defineProperty({}, mainSide, value); + } + }; + + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + + data.offsets.popper = popper; + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; + + // if shift shiftvariation is specified, run the modifier + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} + +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + + return data; +} + +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.
+ * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.
+ * It will read the variation of the `placement` property.
+ * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unit-less, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.
+ * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the `height`. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.
+ * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.
+ * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: offset, + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * A scenario exists where the reference itself is not within the boundaries.
+ * We can say it has "escaped the boundaries" — or just "escaped".
+ * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: preventOverflow, + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper. This makes sure the popper always has a little padding + * between the edges of its container + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier. Can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near each other + * without leaving any gap between the two. Especially useful when the arrow is + * enabled and you want to ensure that it points to its reference element. + * It cares only about the first axis. You can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjunction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: arrow, + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: flip, + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations) + */ + behavior: 'flip', + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position. + * The popper will never be placed outside of the defined boundaries + * (except if `keepTogether` is enabled) + */ + boundariesElement: 'viewport', + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: computeStyle, + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: true, + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define your own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + /** @prop {ModifierFn} */ + fn: applyStyle, + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: undefined + } +}; + +/** + * The `dataObject` is an object containing all the information used by Popper.js. + * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.
+ * These can be overridden using the `options` argument of Popper.js.
+ * To override an option, simply pass an object with the same + * structure of the `options` object, as the 3rd argument. For example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ +var Defaults = { + /** + * Popper's placement. + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Set this to true if you want popper to position it self in 'fixed' mode + * @prop {Boolean} positionFixed=false + */ + positionFixed: false, + + /** + * Whether events (resize, scroll) are initially enabled. + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated. This callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.
+ * By default, it is set to no-op.
+ * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js. + * @prop {modifiers} + */ + modifiers: modifiers +}; + +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ + +// Utils +// Methods +var Popper = function () { + /** + * Creates a new Popper.js instance. + * @class Popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; + + // make update() debounced, so that it only runs at most once-per-tick + this.update = debounce(this.update.bind(this)); + + // with {} we create a new object with the options inside it + this.options = _extends({}, Popper.Defaults, options); + + // init state + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; + + // get reference and popper elements (allow jQuery wrappers) + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; + + // Deep merge modifiers options + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); + + // Refactoring modifiers' list (Object => Array) + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) + // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); + + // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); + + // fire the first update to position the popper in the right place + this.update(); + + var eventsEnabled = this.options.eventsEnabled; + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } + + // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + + /** + * Schedules an update. It will run on the next UI update available. + * @method scheduleUpdate + * @memberof Popper + */ + + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); + +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.
+ * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10. + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; + +/* harmony default export */ __webpack_exports__["default"] = (Popper); +//# sourceMappingURL=popper.js.map + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/16.f9216c5dee8b80d554c2.js b/public/16.f9216c5dee8b80d554c2.js new file mode 100644 index 00000000..50947c80 --- /dev/null +++ b/public/16.f9216c5dee8b80d554c2.js @@ -0,0 +1,19645 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[16],{ + +/***/ "./node_modules/clipboard/dist/clipboard.js": +/*!**************************************************!*\ + !*** ./node_modules/clipboard/dist/clipboard.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/*! + * clipboard.js v2.0.4 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _clipboardAction = __webpack_require__(1); + +var _clipboardAction2 = _interopRequireDefault(_clipboardAction); + +var _tinyEmitter = __webpack_require__(3); + +var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter); + +var _goodListener = __webpack_require__(4); + +var _goodListener2 = _interopRequireDefault(_goodListener); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +/** + * Base class which takes one or more elements, adds event listeners to them, + * and instantiates a new `ClipboardAction` on each click. + */ +var Clipboard = function (_Emitter) { + _inherits(Clipboard, _Emitter); + + /** + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + * @param {Object} options + */ + function Clipboard(trigger, options) { + _classCallCheck(this, Clipboard); + + var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this)); + + _this.resolveOptions(options); + _this.listenClick(trigger); + return _this; + } + + /** + * Defines if attributes would be resolved using internal setter functions + * or custom functions that were passed in the constructor. + * @param {Object} options + */ + + + _createClass(Clipboard, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = typeof options.action === 'function' ? options.action : this.defaultAction; + this.target = typeof options.target === 'function' ? options.target : this.defaultTarget; + this.text = typeof options.text === 'function' ? options.text : this.defaultText; + this.container = _typeof(options.container) === 'object' ? options.container : document.body; + } + + /** + * Adds a click event listener to the passed trigger. + * @param {String|HTMLElement|HTMLCollection|NodeList} trigger + */ + + }, { + key: 'listenClick', + value: function listenClick(trigger) { + var _this2 = this; + + this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) { + return _this2.onClick(e); + }); + } + + /** + * Defines a new `ClipboardAction` on each click event. + * @param {Event} e + */ + + }, { + key: 'onClick', + value: function onClick(e) { + var trigger = e.delegateTarget || e.currentTarget; + + if (this.clipboardAction) { + this.clipboardAction = null; + } + + this.clipboardAction = new _clipboardAction2.default({ + action: this.action(trigger), + target: this.target(trigger), + text: this.text(trigger), + container: this.container, + trigger: trigger, + emitter: this + }); + } + + /** + * Default `action` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultAction', + value: function defaultAction(trigger) { + return getAttributeValue('action', trigger); + } + + /** + * Default `target` lookup function. + * @param {Element} trigger + */ + + }, { + key: 'defaultTarget', + value: function defaultTarget(trigger) { + var selector = getAttributeValue('target', trigger); + + if (selector) { + return document.querySelector(selector); + } + } + + /** + * Returns the support of the given action, or all actions if no action is + * given. + * @param {String} [action] + */ + + }, { + key: 'defaultText', + + + /** + * Default `text` lookup function. + * @param {Element} trigger + */ + value: function defaultText(trigger) { + return getAttributeValue('text', trigger); + } + + /** + * Destroy lifecycle. + */ + + }, { + key: 'destroy', + value: function destroy() { + this.listener.destroy(); + + if (this.clipboardAction) { + this.clipboardAction.destroy(); + this.clipboardAction = null; + } + } + }], [{ + key: 'isSupported', + value: function isSupported() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut']; + + var actions = typeof action === 'string' ? [action] : action; + var support = !!document.queryCommandSupported; + + actions.forEach(function (action) { + support = support && !!document.queryCommandSupported(action); + }); + + return support; + } + }]); + + return Clipboard; +}(_tinyEmitter2.default); + +/** + * Helper function to retrieve attribute value. + * @param {String} suffix + * @param {Element} element + */ + + +function getAttributeValue(suffix, element) { + var attribute = 'data-clipboard-' + suffix; + + if (!element.hasAttribute(attribute)) { + return; + } + + return element.getAttribute(attribute); +} + +module.exports = Clipboard; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _select = __webpack_require__(2); + +var _select2 = _interopRequireDefault(_select); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Inner class which performs selection from either `text` or `target` + * properties and then executes copy or cut operations. + */ +var ClipboardAction = function () { + /** + * @param {Object} options + */ + function ClipboardAction(options) { + _classCallCheck(this, ClipboardAction); + + this.resolveOptions(options); + this.initSelection(); + } + + /** + * Defines base properties passed from constructor. + * @param {Object} options + */ + + + _createClass(ClipboardAction, [{ + key: 'resolveOptions', + value: function resolveOptions() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.action = options.action; + this.container = options.container; + this.emitter = options.emitter; + this.target = options.target; + this.text = options.text; + this.trigger = options.trigger; + + this.selectedText = ''; + } + + /** + * Decides which selection strategy is going to be applied based + * on the existence of `text` and `target` properties. + */ + + }, { + key: 'initSelection', + value: function initSelection() { + if (this.text) { + this.selectFake(); + } else if (this.target) { + this.selectTarget(); + } + } + + /** + * Creates a fake textarea element, sets its value from `text` property, + * and makes a selection on it. + */ + + }, { + key: 'selectFake', + value: function selectFake() { + var _this = this; + + var isRTL = document.documentElement.getAttribute('dir') == 'rtl'; + + this.removeFake(); + + this.fakeHandlerCallback = function () { + return _this.removeFake(); + }; + this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true; + + this.fakeElem = document.createElement('textarea'); + // Prevent zooming on iOS + this.fakeElem.style.fontSize = '12pt'; + // Reset box model + this.fakeElem.style.border = '0'; + this.fakeElem.style.padding = '0'; + this.fakeElem.style.margin = '0'; + // Move element out of screen horizontally + this.fakeElem.style.position = 'absolute'; + this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px'; + // Move element to the same position vertically + var yPosition = window.pageYOffset || document.documentElement.scrollTop; + this.fakeElem.style.top = yPosition + 'px'; + + this.fakeElem.setAttribute('readonly', ''); + this.fakeElem.value = this.text; + + this.container.appendChild(this.fakeElem); + + this.selectedText = (0, _select2.default)(this.fakeElem); + this.copyText(); + } + + /** + * Only removes the fake element after another click event, that way + * a user can hit `Ctrl+C` to copy because selection still exists. + */ + + }, { + key: 'removeFake', + value: function removeFake() { + if (this.fakeHandler) { + this.container.removeEventListener('click', this.fakeHandlerCallback); + this.fakeHandler = null; + this.fakeHandlerCallback = null; + } + + if (this.fakeElem) { + this.container.removeChild(this.fakeElem); + this.fakeElem = null; + } + } + + /** + * Selects the content from element passed on `target` property. + */ + + }, { + key: 'selectTarget', + value: function selectTarget() { + this.selectedText = (0, _select2.default)(this.target); + this.copyText(); + } + + /** + * Executes the copy operation based on the current selection. + */ + + }, { + key: 'copyText', + value: function copyText() { + var succeeded = void 0; + + try { + succeeded = document.execCommand(this.action); + } catch (err) { + succeeded = false; + } + + this.handleResult(succeeded); + } + + /** + * Fires an event based on the copy operation result. + * @param {Boolean} succeeded + */ + + }, { + key: 'handleResult', + value: function handleResult(succeeded) { + this.emitter.emit(succeeded ? 'success' : 'error', { + action: this.action, + text: this.selectedText, + trigger: this.trigger, + clearSelection: this.clearSelection.bind(this) + }); + } + + /** + * Moves focus away from `target` and back to the trigger, removes current selection. + */ + + }, { + key: 'clearSelection', + value: function clearSelection() { + if (this.trigger) { + this.trigger.focus(); + } + + window.getSelection().removeAllRanges(); + } + + /** + * Sets the `action` to be performed which can be either 'copy' or 'cut'. + * @param {String} action + */ + + }, { + key: 'destroy', + + + /** + * Destroy lifecycle. + */ + value: function destroy() { + this.removeFake(); + } + }, { + key: 'action', + set: function set() { + var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy'; + + this._action = action; + + if (this._action !== 'copy' && this._action !== 'cut') { + throw new Error('Invalid "action" value, use either "copy" or "cut"'); + } + } + + /** + * Gets the `action` property. + * @return {String} + */ + , + get: function get() { + return this._action; + } + + /** + * Sets the `target` property using an element + * that will be have its content copied. + * @param {Element} target + */ + + }, { + key: 'target', + set: function set(target) { + if (target !== undefined) { + if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) { + if (this.action === 'copy' && target.hasAttribute('disabled')) { + throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); + } + + if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) { + throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); + } + + this._target = target; + } else { + throw new Error('Invalid "target" value, use a valid Element'); + } + } + } + + /** + * Gets the `target` property. + * @return {String|HTMLElement} + */ + , + get: function get() { + return this._target; + } + }]); + + return ClipboardAction; +}(); + +module.exports = ClipboardAction; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +function select(element) { + var selectedText; + + if (element.nodeName === 'SELECT') { + element.focus(); + + selectedText = element.value; + } + else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') { + var isReadOnly = element.hasAttribute('readonly'); + + if (!isReadOnly) { + element.setAttribute('readonly', ''); + } + + element.select(); + element.setSelectionRange(0, element.value.length); + + if (!isReadOnly) { + element.removeAttribute('readonly'); + } + + selectedText = element.value; + } + else { + if (element.hasAttribute('contenteditable')) { + element.focus(); + } + + var selection = window.getSelection(); + var range = document.createRange(); + + range.selectNodeContents(element); + selection.removeAllRanges(); + selection.addRange(range); + + selectedText = selection.toString(); + } + + return selectedText; +} + +module.exports = select; + + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +function E () { + // Keep this empty so it's easier to inherit from + // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3) +} + +E.prototype = { + on: function (name, callback, ctx) { + var e = this.e || (this.e = {}); + + (e[name] || (e[name] = [])).push({ + fn: callback, + ctx: ctx + }); + + return this; + }, + + once: function (name, callback, ctx) { + var self = this; + function listener () { + self.off(name, listener); + callback.apply(ctx, arguments); + }; + + listener._ = callback + return this.on(name, listener, ctx); + }, + + emit: function (name) { + var data = [].slice.call(arguments, 1); + var evtArr = ((this.e || (this.e = {}))[name] || []).slice(); + var i = 0; + var len = evtArr.length; + + for (i; i < len; i++) { + evtArr[i].fn.apply(evtArr[i].ctx, data); + } + + return this; + }, + + off: function (name, callback) { + var e = this.e || (this.e = {}); + var evts = e[name]; + var liveEvents = []; + + if (evts && callback) { + for (var i = 0, len = evts.length; i < len; i++) { + if (evts[i].fn !== callback && evts[i].fn._ !== callback) + liveEvents.push(evts[i]); + } + } + + // Remove event from queue to prevent memory leak + // Suggested by https://github.com/lazd + // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910 + + (liveEvents.length) + ? e[name] = liveEvents + : delete e[name]; + + return this; + } +}; + +module.exports = E; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +var is = __webpack_require__(5); +var delegate = __webpack_require__(6); + +/** + * Validates all params and calls the right + * listener function based on its target type. + * + * @param {String|HTMLElement|HTMLCollection|NodeList} target + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listen(target, type, callback) { + if (!target && !type && !callback) { + throw new Error('Missing required arguments'); + } + + if (!is.string(type)) { + throw new TypeError('Second argument must be a String'); + } + + if (!is.fn(callback)) { + throw new TypeError('Third argument must be a Function'); + } + + if (is.node(target)) { + return listenNode(target, type, callback); + } + else if (is.nodeList(target)) { + return listenNodeList(target, type, callback); + } + else if (is.string(target)) { + return listenSelector(target, type, callback); + } + else { + throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList'); + } +} + +/** + * Adds an event listener to a HTML element + * and returns a remove listener function. + * + * @param {HTMLElement} node + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNode(node, type, callback) { + node.addEventListener(type, callback); + + return { + destroy: function() { + node.removeEventListener(type, callback); + } + } +} + +/** + * Add an event listener to a list of HTML elements + * and returns a remove listener function. + * + * @param {NodeList|HTMLCollection} nodeList + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenNodeList(nodeList, type, callback) { + Array.prototype.forEach.call(nodeList, function(node) { + node.addEventListener(type, callback); + }); + + return { + destroy: function() { + Array.prototype.forEach.call(nodeList, function(node) { + node.removeEventListener(type, callback); + }); + } + } +} + +/** + * Add an event listener to a selector + * and returns a remove listener function. + * + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Object} + */ +function listenSelector(selector, type, callback) { + return delegate(document.body, selector, type, callback); +} + +module.exports = listen; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +/** + * Check if argument is a HTML element. + * + * @param {Object} value + * @return {Boolean} + */ +exports.node = function(value) { + return value !== undefined + && value instanceof HTMLElement + && value.nodeType === 1; +}; + +/** + * Check if argument is a list of HTML elements. + * + * @param {Object} value + * @return {Boolean} + */ +exports.nodeList = function(value) { + var type = Object.prototype.toString.call(value); + + return value !== undefined + && (type === '[object NodeList]' || type === '[object HTMLCollection]') + && ('length' in value) + && (value.length === 0 || exports.node(value[0])); +}; + +/** + * Check if argument is a string. + * + * @param {Object} value + * @return {Boolean} + */ +exports.string = function(value) { + return typeof value === 'string' + || value instanceof String; +}; + +/** + * Check if argument is a function. + * + * @param {Object} value + * @return {Boolean} + */ +exports.fn = function(value) { + var type = Object.prototype.toString.call(value); + + return type === '[object Function]'; +}; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +var closest = __webpack_require__(7); + +/** + * Delegates event to a selector. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function _delegate(element, selector, type, callback, useCapture) { + var listenerFn = listener.apply(this, arguments); + + element.addEventListener(type, listenerFn, useCapture); + + return { + destroy: function() { + element.removeEventListener(type, listenerFn, useCapture); + } + } +} + +/** + * Delegates event to a selector. + * + * @param {Element|String|Array} [elements] + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @param {Boolean} useCapture + * @return {Object} + */ +function delegate(elements, selector, type, callback, useCapture) { + // Handle the regular Element usage + if (typeof elements.addEventListener === 'function') { + return _delegate.apply(null, arguments); + } + + // Handle Element-less usage, it defaults to global delegation + if (typeof type === 'function') { + // Use `document` as the first parameter, then apply arguments + // This is a short way to .unshift `arguments` without running into deoptimizations + return _delegate.bind(null, document).apply(null, arguments); + } + + // Handle Selector-based usage + if (typeof elements === 'string') { + elements = document.querySelectorAll(elements); + } + + // Handle Array-like based usage + return Array.prototype.map.call(elements, function (element) { + return _delegate(element, selector, type, callback, useCapture); + }); +} + +/** + * Finds closest match and invokes callback. + * + * @param {Element} element + * @param {String} selector + * @param {String} type + * @param {Function} callback + * @return {Function} + */ +function listener(element, selector, type, callback) { + return function(e) { + e.delegateTarget = closest(e.target, selector); + + if (e.delegateTarget) { + callback.call(element, e); + } + } +} + +module.exports = delegate; + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +var DOCUMENT_NODE_TYPE = 9; + +/** + * A polyfill for Element.matches() + */ +if (typeof Element !== 'undefined' && !Element.prototype.matches) { + var proto = Element.prototype; + + proto.matches = proto.matchesSelector || + proto.mozMatchesSelector || + proto.msMatchesSelector || + proto.oMatchesSelector || + proto.webkitMatchesSelector; +} + +/** + * Finds the closest parent that matches a selector. + * + * @param {Element} element + * @param {String} selector + * @return {Function} + */ +function closest (element, selector) { + while (element && element.nodeType !== DOCUMENT_NODE_TYPE) { + if (typeof element.matches === 'function' && + element.matches(selector)) { + return element; + } + element = element.parentNode; + } +} + +module.exports = closest; + + +/***/ }) +/******/ ]); +}); + +/***/ }), + +/***/ "./node_modules/dayjs/dayjs.min.js": +/*!*****************************************!*\ + !*** ./node_modules/dayjs/dayjs.min.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +!function(t,n){ true?module.exports=n():undefined}(this,function(){"use strict";var t="millisecond",n="second",e="minute",r="hour",i="day",s="week",u="month",o="quarter",a="year",h=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,n,e){var r=String(t);return!r||r.length>=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,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||(l=r),r},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})};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) + * All rights reserved + * + * Licensed under the MIT license. + * + * http://www.opensource.org/licenses/mit-license.php + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *****************************************************************************/ +var dijkstra = { + single_source_shortest_paths: function(graph, s, d) { + // Predecessor map for each node that has been encountered. + // node ID => predecessor node ID + var predecessors = {}; + + // Costs of shortest paths from s to all nodes encountered. + // node ID => cost + var costs = {}; + costs[s] = 0; + + // Costs of shortest paths from s to all nodes encountered; differs from + // `costs` in that it provides easy access to the node that currently has + // the known shortest path from s. + // XXX: Do we actually need both `costs` and `open`? + var open = dijkstra.PriorityQueue.make(); + open.push(s, 0); + + var closest, + u, v, + cost_of_s_to_u, + adjacent_nodes, + cost_of_e, + cost_of_s_to_u_plus_cost_of_e, + cost_of_s_to_v, + first_visit; + while (!open.empty()) { + // In the nodes remaining in graph that have a known cost from s, + // find the node, u, that currently has the shortest path from s. + closest = open.pop(); + u = closest.value; + cost_of_s_to_u = closest.cost; + + // Get nodes adjacent to u... + adjacent_nodes = graph[u] || {}; + + // ...and explore the edges that connect u to those nodes, updating + // the cost of the shortest paths to any or all of those nodes as + // necessary. v is the node across the current edge from u. + for (v in adjacent_nodes) { + if (adjacent_nodes.hasOwnProperty(v)) { + // Get the cost of the edge running from u to v. + cost_of_e = adjacent_nodes[v]; + + // Cost of s to u plus the cost of u to v across e--this is *a* + // cost from s to v that may or may not be less than the current + // known cost to v. + cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; + + // If we haven't visited v yet OR if the current known cost from s to + // v is greater than the new cost we just found (cost of s to u plus + // cost of u to v across e), update v's cost in the cost list and + // update v's predecessor in the predecessor list (it's now u). + cost_of_s_to_v = costs[v]; + first_visit = (typeof costs[v] === 'undefined'); + if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { + costs[v] = cost_of_s_to_u_plus_cost_of_e; + open.push(v, cost_of_s_to_u_plus_cost_of_e); + predecessors[v] = u; + } + } + } + } + + if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { + var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); + throw new Error(msg); + } + + return predecessors; + }, + + extract_shortest_path_from_predecessor_list: function(predecessors, d) { + var nodes = []; + var u = d; + var predecessor; + while (u) { + nodes.push(u); + predecessor = predecessors[u]; + u = predecessors[u]; + } + nodes.reverse(); + return nodes; + }, + + find_path: function(graph, s, d) { + var predecessors = dijkstra.single_source_shortest_paths(graph, s, d); + return dijkstra.extract_shortest_path_from_predecessor_list( + predecessors, d); + }, + + /** + * A very naive priority queue implementation. + */ + PriorityQueue: { + make: function (opts) { + var T = dijkstra.PriorityQueue, + t = {}, + key; + opts = opts || {}; + for (key in T) { + if (T.hasOwnProperty(key)) { + t[key] = T[key]; + } + } + t.queue = []; + t.sorter = opts.sorter || T.default_sorter; + return t; + }, + + default_sorter: function (a, b) { + return a.cost - b.cost; + }, + + /** + * Add a new item to the queue and ensure the highest priority element + * is at the front of the queue. + */ + push: function (value, cost) { + var item = {value: value, cost: cost}; + this.queue.push(item); + this.queue.sort(this.sorter); + }, + + /** + * Return the highest priority element in the queue. + */ + pop: function () { + return this.queue.shift(); + }, + + empty: function () { + return this.queue.length === 0; + } + } +}; + + +// node.js module exports +if (true) { + module.exports = dijkstra; +} + + +/***/ }), + +/***/ "./node_modules/mo-js/build/mo.js": +/*!****************************************!*\ + !*** ./node_modules/mo-js/build/mo.js ***! + \****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else {} +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "build/"; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(1); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module) {'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _shapesMap = __webpack_require__(72); + + var _shapesMap2 = _interopRequireDefault(_shapesMap); + + var _shape = __webpack_require__(94); + + var _shape2 = _interopRequireDefault(_shape); + + var _shapeSwirl = __webpack_require__(117); + + var _shapeSwirl2 = _interopRequireDefault(_shapeSwirl); + + var _burst = __webpack_require__(118); + + var _burst2 = _interopRequireDefault(_burst); + + var _html = __webpack_require__(119); + + var _html2 = _interopRequireDefault(_html); + + var _stagger = __webpack_require__(127); + + var _stagger2 = _interopRequireDefault(_stagger); + + var _spriter = __webpack_require__(128); + + var _spriter2 = _interopRequireDefault(_spriter); + + var _motionPath = __webpack_require__(129); + + var _motionPath2 = _interopRequireDefault(_motionPath); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _delta = __webpack_require__(126); + + var _delta2 = _interopRequireDefault(_delta); + + var _deltas = __webpack_require__(125); + + var _deltas2 = _interopRequireDefault(_deltas); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _easing = __webpack_require__(105); + + var _easing2 = _interopRequireDefault(_easing); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var mojs = { + revision: '0.288.2', isDebug: true, helpers: _h2.default, + Shape: _shape2.default, ShapeSwirl: _shapeSwirl2.default, Burst: _burst2.default, Html: _html2.default, stagger: _stagger2.default, Spriter: _spriter2.default, MotionPath: _motionPath2.default, + Tween: _tween2.default, Timeline: _timeline2.default, Tweenable: _tweenable2.default, Thenable: _thenable2.default, Tunable: _tunable2.default, Module: _module2.default, + tweener: _tweener2.default, easing: _easing2.default, shapesMap: _shapesMap2.default, _pool: { Delta: _delta2.default, Deltas: _deltas2.default } + }; + + // functions alias + mojs.h = mojs.helpers; + mojs.delta = mojs.h.delta; + // custom shape add function and class + mojs.addShape = mojs.shapesMap.addShape; + mojs.CustomShape = mojs.shapesMap.custom; + // module alias + mojs.Transit = mojs.Shape; + mojs.Swirl = mojs.ShapeSwirl; + + // TODO: + /* + H/V in paths + + rand for direction + burst children angle after tune + burst pathScale after tune + swirl then issue + 'rand' angle flick with `then` + not able to `play()` in `onComplete` callback + --- + module names + swirls in then chains for x/y + parse rand(stagger(20, 10), 20) values + percentage for radius + */ + + // istanbul ignore next + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { + return mojs; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } + // istanbul ignore next + if (( false ? undefined : (0, _typeof3.default)(module)) === "object" && (0, _typeof3.default)(module.exports) === "object") { + module.exports = mojs; + } + + exports.default = mojs; + + + typeof window !== 'undefined' && (window.mojs = mojs); + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)(module))) + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _iterator = __webpack_require__(4); + + var _iterator2 = _interopRequireDefault(_iterator); + + var _symbol = __webpack_require__(55); + + var _symbol2 = _interopRequireDefault(_symbol); + + var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof(obj); + } : function (obj) { + return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); + }; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(5), __esModule: true }; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(6); + __webpack_require__(50); + module.exports = __webpack_require__(54).f('iterator'); + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $at = __webpack_require__(7)(true); + + // 21.1.3.27 String.prototype[@@iterator]() + __webpack_require__(10)(String, 'String', function(iterated){ + this._t = String(iterated); // target + this._i = 0; // next index + // 21.1.5.2.1 %StringIteratorPrototype%.next() + }, function(){ + var O = this._t + , index = this._i + , point; + if(index >= O.length)return {value: undefined, done: true}; + point = $at(O, index); + this._i += point.length; + return {value: point, done: false}; + }); + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(8) + , defined = __webpack_require__(9); + // true -> String#at + // false -> String#codePointAt + module.exports = function(TO_STRING){ + return function(that, pos){ + var s = String(defined(that)) + , i = toInteger(pos) + , l = s.length + , a, b; + if(i < 0 || i >= l)return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; + }; + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + + // 7.1.4 ToInteger + var ceil = Math.ceil + , floor = Math.floor; + module.exports = function(it){ + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); + }; + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + // 7.2.1 RequireObjectCoercible(argument) + module.exports = function(it){ + if(it == undefined)throw TypeError("Can't call method on " + it); + return it; + }; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(11) + , $export = __webpack_require__(12) + , redefine = __webpack_require__(27) + , hide = __webpack_require__(17) + , has = __webpack_require__(28) + , Iterators = __webpack_require__(29) + , $iterCreate = __webpack_require__(30) + , setToStringTag = __webpack_require__(46) + , getPrototypeOf = __webpack_require__(48) + , ITERATOR = __webpack_require__(47)('iterator') + , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` + , FF_ITERATOR = '@@iterator' + , KEYS = 'keys' + , VALUES = 'values'; + + var returnThis = function(){ return this; }; + + module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ + $iterCreate(Constructor, NAME, next); + var getMethod = function(kind){ + if(!BUGGY && kind in proto)return proto[kind]; + switch(kind){ + case KEYS: return function keys(){ return new Constructor(this, kind); }; + case VALUES: return function values(){ return new Constructor(this, kind); }; + } return function entries(){ return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator' + , DEF_VALUES = DEFAULT == VALUES + , VALUES_BUG = false + , proto = Base.prototype + , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] + , $default = $native || getMethod(DEFAULT) + , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined + , $anyNative = NAME == 'Array' ? proto.entries || $native : $native + , methods, key, IteratorPrototype; + // Fix native + if($anyNative){ + IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); + if(IteratorPrototype !== Object.prototype){ + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if(DEF_VALUES && $native && $native.name !== VALUES){ + VALUES_BUG = true; + $default = function values(){ return $native.call(this); }; + } + // Define iterator + if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if(DEFAULT){ + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if(FORCED)for(key in methods){ + if(!(key in proto))redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; + }; + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + module.exports = true; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , core = __webpack_require__(14) + , ctx = __webpack_require__(15) + , hide = __webpack_require__(17) + , PROTOTYPE = 'prototype'; + + var $export = function(type, name, source){ + var IS_FORCED = type & $export.F + , IS_GLOBAL = type & $export.G + , IS_STATIC = type & $export.S + , IS_PROTO = type & $export.P + , IS_BIND = type & $export.B + , IS_WRAP = type & $export.W + , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) + , expProto = exports[PROTOTYPE] + , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] + , key, own, out; + if(IS_GLOBAL)source = name; + for(key in source){ + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + if(own && key in exports)continue; + // export native or passed + out = own ? target[key] : source[key]; + // prevent global pollution for namespaces + exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] + // bind timers to global for call from export context + : IS_BIND && own ? ctx(out, global) + // wrap global constructors for prevent change them in library + : IS_WRAP && target[key] == out ? (function(C){ + var F = function(a, b, c){ + if(this instanceof C){ + switch(arguments.length){ + case 0: return new C; + case 1: return new C(a); + case 2: return new C(a, b); + } return new C(a, b, c); + } return C.apply(this, arguments); + }; + F[PROTOTYPE] = C[PROTOTYPE]; + return F; + // make static versions for prototype methods + })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% + if(IS_PROTO){ + (exports.virtual || (exports.virtual = {}))[key] = out; + // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% + if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); + } + } + }; + // type bitmap + $export.F = 1; // forced + $export.G = 2; // global + $export.S = 4; // static + $export.P = 8; // proto + $export.B = 16; // bind + $export.W = 32; // wrap + $export.U = 64; // safe + $export.R = 128; // real proto method for `library` + module.exports = $export; + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); + if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + + var core = module.exports = {version: '2.4.0'}; + if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + // optional / simple context binding + var aFunction = __webpack_require__(16); + module.exports = function(fn, that, length){ + aFunction(fn); + if(that === undefined)return fn; + switch(length){ + case 1: return function(a){ + return fn.call(that, a); + }; + case 2: return function(a, b){ + return fn.call(that, a, b); + }; + case 3: return function(a, b, c){ + return fn.call(that, a, b, c); + }; + } + return function(/* ...args */){ + return fn.apply(that, arguments); + }; + }; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + module.exports = function(it){ + if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + return it; + }; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(18) + , createDesc = __webpack_require__(26); + module.exports = __webpack_require__(22) ? function(object, key, value){ + return dP.f(object, key, createDesc(1, value)); + } : function(object, key, value){ + object[key] = value; + return object; + }; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(19) + , IE8_DOM_DEFINE = __webpack_require__(21) + , toPrimitive = __webpack_require__(25) + , dP = Object.defineProperty; + + exports.f = __webpack_require__(22) ? Object.defineProperty : function defineProperty(O, P, Attributes){ + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if(IE8_DOM_DEFINE)try { + return dP(O, P, Attributes); + } catch(e){ /* empty */ } + if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); + if('value' in Attributes)O[P] = Attributes.value; + return O; + }; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(20); + module.exports = function(it){ + if(!isObject(it))throw TypeError(it + ' is not an object!'); + return it; + }; + +/***/ }), +/* 20 */ +/***/ (function(module, exports) { + + module.exports = function(it){ + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = !__webpack_require__(22) && !__webpack_require__(23)(function(){ + return Object.defineProperty(__webpack_require__(24)('div'), 'a', {get: function(){ return 7; }}).a != 7; + }); + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + // Thank's IE8 for his funny defineProperty + module.exports = !__webpack_require__(23)(function(){ + return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; + }); + +/***/ }), +/* 23 */ +/***/ (function(module, exports) { + + module.exports = function(exec){ + try { + return !!exec(); + } catch(e){ + return true; + } + }; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(20) + , document = __webpack_require__(13).document + // in old IE typeof document.createElement is 'object' + , is = isObject(document) && isObject(document.createElement); + module.exports = function(it){ + return is ? document.createElement(it) : {}; + }; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.1 ToPrimitive(input [, PreferredType]) + var isObject = __webpack_require__(20); + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + module.exports = function(it, S){ + if(!isObject(it))return it; + var fn, val; + if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; + if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + throw TypeError("Can't convert object to primitive value"); + }; + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + + module.exports = function(bitmap, value){ + return { + enumerable : !(bitmap & 1), + configurable: !(bitmap & 2), + writable : !(bitmap & 4), + value : value + }; + }; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(17); + +/***/ }), +/* 28 */ +/***/ (function(module, exports) { + + var hasOwnProperty = {}.hasOwnProperty; + module.exports = function(it, key){ + return hasOwnProperty.call(it, key); + }; + +/***/ }), +/* 29 */ +/***/ (function(module, exports) { + + module.exports = {}; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var create = __webpack_require__(31) + , descriptor = __webpack_require__(26) + , setToStringTag = __webpack_require__(46) + , IteratorPrototype = {}; + + // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + __webpack_require__(17)(IteratorPrototype, __webpack_require__(47)('iterator'), function(){ return this; }); + + module.exports = function(Constructor, NAME, next){ + Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); + setToStringTag(Constructor, NAME + ' Iterator'); + }; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + var anObject = __webpack_require__(19) + , dPs = __webpack_require__(32) + , enumBugKeys = __webpack_require__(44) + , IE_PROTO = __webpack_require__(41)('IE_PROTO') + , Empty = function(){ /* empty */ } + , PROTOTYPE = 'prototype'; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var createDict = function(){ + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(24)('iframe') + , i = enumBugKeys.length + , lt = '<' + , gt = '>' + , iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(45).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); + }; + + module.exports = Object.create || function create(O, Properties){ + var result; + if(O !== null){ + Empty[PROTOTYPE] = anObject(O); + result = new Empty; + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); + }; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(18) + , anObject = __webpack_require__(19) + , getKeys = __webpack_require__(33); + + module.exports = __webpack_require__(22) ? Object.defineProperties : function defineProperties(O, Properties){ + anObject(O); + var keys = getKeys(Properties) + , length = keys.length + , i = 0 + , P; + while(length > i)dP.f(O, P = keys[i++], Properties[P]); + return O; + }; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 / 15.2.3.14 Object.keys(O) + var $keys = __webpack_require__(34) + , enumBugKeys = __webpack_require__(44); + + module.exports = Object.keys || function keys(O){ + return $keys(O, enumBugKeys); + }; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + + var has = __webpack_require__(28) + , toIObject = __webpack_require__(35) + , arrayIndexOf = __webpack_require__(38)(false) + , IE_PROTO = __webpack_require__(41)('IE_PROTO'); + + module.exports = function(object, names){ + var O = toIObject(object) + , i = 0 + , result = [] + , key; + for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while(names.length > i)if(has(O, key = names[i++])){ + ~arrayIndexOf(result, key) || result.push(key); + } + return result; + }; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + + // to indexed object, toObject with fallback for non-array-like ES3 strings + var IObject = __webpack_require__(36) + , defined = __webpack_require__(9); + module.exports = function(it){ + return IObject(defined(it)); + }; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var cof = __webpack_require__(37); + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + return cof(it) == 'String' ? it.split('') : Object(it); + }; + +/***/ }), +/* 37 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = function(it){ + return toString.call(it).slice(8, -1); + }; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + + // false -> Array#indexOf + // true -> Array#includes + var toIObject = __webpack_require__(35) + , toLength = __webpack_require__(39) + , toIndex = __webpack_require__(40); + module.exports = function(IS_INCLUDES){ + return function($this, el, fromIndex){ + var O = toIObject($this) + , length = toLength(O.length) + , index = toIndex(fromIndex, length) + , value; + // Array#includes uses SameValueZero equality algorithm + if(IS_INCLUDES && el != el)while(length > index){ + value = O[index++]; + if(value != value)return true; + // Array#toIndex ignores holes, Array#includes - not + } else for(;length > index; index++)if(IS_INCLUDES || index in O){ + if(O[index] === el)return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.15 ToLength + var toInteger = __webpack_require__(8) + , min = Math.min; + module.exports = function(it){ + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 + }; + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(8) + , max = Math.max + , min = Math.min; + module.exports = function(index, length){ + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); + }; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + + var shared = __webpack_require__(42)('keys') + , uid = __webpack_require__(43); + module.exports = function(key){ + return shared[key] || (shared[key] = uid(key)); + }; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , SHARED = '__core-js_shared__' + , store = global[SHARED] || (global[SHARED] = {}); + module.exports = function(key){ + return store[key] || (store[key] = {}); + }; + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + + var id = 0 + , px = Math.random(); + module.exports = function(key){ + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); + }; + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + + // IE 8- don't enum bug keys + module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' + ).split(','); + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = __webpack_require__(13).document && document.documentElement; + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + + var def = __webpack_require__(18).f + , has = __webpack_require__(28) + , TAG = __webpack_require__(47)('toStringTag'); + + module.exports = function(it, tag, stat){ + if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); + }; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + + var store = __webpack_require__(42)('wks') + , uid = __webpack_require__(43) + , Symbol = __webpack_require__(13).Symbol + , USE_SYMBOL = typeof Symbol == 'function'; + + var $exports = module.exports = function(name){ + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); + }; + + $exports.store = store; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) + var has = __webpack_require__(28) + , toObject = __webpack_require__(49) + , IE_PROTO = __webpack_require__(41)('IE_PROTO') + , ObjectProto = Object.prototype; + + module.exports = Object.getPrototypeOf || function(O){ + O = toObject(O); + if(has(O, IE_PROTO))return O[IE_PROTO]; + if(typeof O.constructor == 'function' && O instanceof O.constructor){ + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; + }; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.13 ToObject(argument) + var defined = __webpack_require__(9); + module.exports = function(it){ + return Object(defined(it)); + }; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(51); + var global = __webpack_require__(13) + , hide = __webpack_require__(17) + , Iterators = __webpack_require__(29) + , TO_STRING_TAG = __webpack_require__(47)('toStringTag'); + + for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ + var NAME = collections[i] + , Collection = global[NAME] + , proto = Collection && Collection.prototype; + if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = Iterators.Array; + } + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var addToUnscopables = __webpack_require__(52) + , step = __webpack_require__(53) + , Iterators = __webpack_require__(29) + , toIObject = __webpack_require__(35); + + // 22.1.3.4 Array.prototype.entries() + // 22.1.3.13 Array.prototype.keys() + // 22.1.3.29 Array.prototype.values() + // 22.1.3.30 Array.prototype[@@iterator]() + module.exports = __webpack_require__(10)(Array, 'Array', function(iterated, kind){ + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind + // 22.1.5.2.1 %ArrayIteratorPrototype%.next() + }, function(){ + var O = this._t + , kind = this._k + , index = this._i++; + if(!O || index >= O.length){ + this._t = undefined; + return step(1); + } + if(kind == 'keys' )return step(0, index); + if(kind == 'values')return step(0, O[index]); + return step(0, [index, O[index]]); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) + Iterators.Arguments = Iterators.Array; + + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + +/***/ }), +/* 52 */ +/***/ (function(module, exports) { + + module.exports = function(){ /* empty */ }; + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + + module.exports = function(done, value){ + return {value: value, done: !!done}; + }; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + + exports.f = __webpack_require__(47); + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(56), __esModule: true }; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(57); + __webpack_require__(68); + __webpack_require__(69); + __webpack_require__(70); + module.exports = __webpack_require__(14).Symbol; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // ECMAScript 6 symbols shim + var global = __webpack_require__(13) + , has = __webpack_require__(28) + , DESCRIPTORS = __webpack_require__(22) + , $export = __webpack_require__(12) + , redefine = __webpack_require__(27) + , META = __webpack_require__(58).KEY + , $fails = __webpack_require__(23) + , shared = __webpack_require__(42) + , setToStringTag = __webpack_require__(46) + , uid = __webpack_require__(43) + , wks = __webpack_require__(47) + , wksExt = __webpack_require__(54) + , wksDefine = __webpack_require__(59) + , keyOf = __webpack_require__(60) + , enumKeys = __webpack_require__(61) + , isArray = __webpack_require__(64) + , anObject = __webpack_require__(19) + , toIObject = __webpack_require__(35) + , toPrimitive = __webpack_require__(25) + , createDesc = __webpack_require__(26) + , _create = __webpack_require__(31) + , gOPNExt = __webpack_require__(65) + , $GOPD = __webpack_require__(67) + , $DP = __webpack_require__(18) + , $keys = __webpack_require__(33) + , gOPD = $GOPD.f + , dP = $DP.f + , gOPN = gOPNExt.f + , $Symbol = global.Symbol + , $JSON = global.JSON + , _stringify = $JSON && $JSON.stringify + , PROTOTYPE = 'prototype' + , HIDDEN = wks('_hidden') + , TO_PRIMITIVE = wks('toPrimitive') + , isEnum = {}.propertyIsEnumerable + , SymbolRegistry = shared('symbol-registry') + , AllSymbols = shared('symbols') + , OPSymbols = shared('op-symbols') + , ObjectProto = Object[PROTOTYPE] + , USE_NATIVE = typeof $Symbol == 'function' + , QObject = global.QObject; + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + + // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + var setSymbolDesc = DESCRIPTORS && $fails(function(){ + return _create(dP({}, 'a', { + get: function(){ return dP(this, 'a', {value: 7}).a; } + })).a != 7; + }) ? function(it, key, D){ + var protoDesc = gOPD(ObjectProto, key); + if(protoDesc)delete ObjectProto[key]; + dP(it, key, D); + if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); + } : dP; + + var wrap = function(tag){ + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; + }; + + var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ + return typeof it == 'symbol'; + } : function(it){ + return it instanceof $Symbol; + }; + + var $defineProperty = function defineProperty(it, key, D){ + if(it === ObjectProto)$defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if(has(AllSymbols, key)){ + if(!D.enumerable){ + if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; + D = _create(D, {enumerable: createDesc(0, false)}); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); + }; + var $defineProperties = function defineProperties(it, P){ + anObject(it); + var keys = enumKeys(P = toIObject(P)) + , i = 0 + , l = keys.length + , key; + while(l > i)$defineProperty(it, key = keys[i++], P[key]); + return it; + }; + var $create = function create(it, P){ + return P === undefined ? _create(it) : $defineProperties(_create(it), P); + }; + var $propertyIsEnumerable = function propertyIsEnumerable(key){ + var E = isEnum.call(this, key = toPrimitive(key, true)); + if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; + }; + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ + it = toIObject(it); + key = toPrimitive(key, true); + if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; + var D = gOPD(it, key); + if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; + return D; + }; + var $getOwnPropertyNames = function getOwnPropertyNames(it){ + var names = gOPN(toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i){ + if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); + } return result; + }; + var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ + var IS_OP = it === ObjectProto + , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) + , result = [] + , i = 0 + , key; + while(names.length > i){ + if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); + } return result; + }; + + // 19.4.1.1 Symbol([description]) + if(!USE_NATIVE){ + $Symbol = function Symbol(){ + if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function(value){ + if(this === ObjectProto)$set.call(OPSymbols, value); + if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString(){ + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(66).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(63).f = $propertyIsEnumerable; + __webpack_require__(62).f = $getOwnPropertySymbols; + + if(DESCRIPTORS && !__webpack_require__(11)){ + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function(name){ + return wrap(wks(name)); + } + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); + + for(var symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' + ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); + + for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); + + $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function(key){ + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(key){ + if(isSymbol(key))return keyOf(SymbolRegistry, key); + throw TypeError(key + ' is not a symbol!'); + }, + useSetter: function(){ setter = true; }, + useSimple: function(){ setter = false; } + }); + + $export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols + }); + + // 24.3.2 JSON.stringify(value [, replacer [, space]]) + $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; + })), 'JSON', { + stringify: function stringify(it){ + if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined + var args = [it] + , i = 1 + , replacer, $replacer; + while(arguments.length > i)args.push(arguments[i++]); + replacer = args[1]; + if(typeof replacer == 'function')$replacer = replacer; + if($replacer || !isArray(replacer))replacer = function(key, value){ + if($replacer)value = $replacer.call(this, key, value); + if(!isSymbol(value))return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } + }); + + // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) + $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(17)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); + // 19.4.3.5 Symbol.prototype[@@toStringTag] + setToStringTag($Symbol, 'Symbol'); + // 20.2.1.9 Math[@@toStringTag] + setToStringTag(Math, 'Math', true); + // 24.3.3 JSON[@@toStringTag] + setToStringTag(global.JSON, 'JSON', true); + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + + var META = __webpack_require__(43)('meta') + , isObject = __webpack_require__(20) + , has = __webpack_require__(28) + , setDesc = __webpack_require__(18).f + , id = 0; + var isExtensible = Object.isExtensible || function(){ + return true; + }; + var FREEZE = !__webpack_require__(23)(function(){ + return isExtensible(Object.preventExtensions({})); + }); + var setMeta = function(it){ + setDesc(it, META, {value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + }}); + }; + var fastKey = function(it, create){ + // return primitive with prefix + if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if(!has(it, META)){ + // can't set metadata to uncaught frozen object + if(!isExtensible(it))return 'F'; + // not necessary to add metadata + if(!create)return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; + }; + var getWeak = function(it, create){ + if(!has(it, META)){ + // can't set metadata to uncaught frozen object + if(!isExtensible(it))return true; + // not necessary to add metadata + if(!create)return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; + }; + // add metadata on freeze-family methods calling + var onFreeze = function(it){ + if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); + return it; + }; + var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze + }; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(13) + , core = __webpack_require__(14) + , LIBRARY = __webpack_require__(11) + , wksExt = __webpack_require__(54) + , defineProperty = __webpack_require__(18).f; + module.exports = function(name){ + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); + }; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + + var getKeys = __webpack_require__(33) + , toIObject = __webpack_require__(35); + module.exports = function(object, el){ + var O = toIObject(object) + , keys = getKeys(O) + , length = keys.length + , index = 0 + , key; + while(length > index)if(O[key = keys[index++]] === el)return key; + }; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + + // all enumerable object keys, includes symbols + var getKeys = __webpack_require__(33) + , gOPS = __webpack_require__(62) + , pIE = __webpack_require__(63); + module.exports = function(it){ + var result = getKeys(it) + , getSymbols = gOPS.f; + if(getSymbols){ + var symbols = getSymbols(it) + , isEnum = pIE.f + , i = 0 + , key; + while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); + } return result; + }; + +/***/ }), +/* 62 */ +/***/ (function(module, exports) { + + exports.f = Object.getOwnPropertySymbols; + +/***/ }), +/* 63 */ +/***/ (function(module, exports) { + + exports.f = {}.propertyIsEnumerable; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.2 IsArray(argument) + var cof = __webpack_require__(37); + module.exports = Array.isArray || function isArray(arg){ + return cof(arg) == 'Array'; + }; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + var toIObject = __webpack_require__(35) + , gOPN = __webpack_require__(66).f + , toString = {}.toString; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function(it){ + try { + return gOPN(it); + } catch(e){ + return windowNames.slice(); + } + }; + + module.exports.f = function getOwnPropertyNames(it){ + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); + }; + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) + var $keys = __webpack_require__(34) + , hiddenKeys = __webpack_require__(44).concat('length', 'prototype'); + + exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ + return $keys(O, hiddenKeys); + }; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + + var pIE = __webpack_require__(63) + , createDesc = __webpack_require__(26) + , toIObject = __webpack_require__(35) + , toPrimitive = __webpack_require__(25) + , has = __webpack_require__(28) + , IE8_DOM_DEFINE = __webpack_require__(21) + , gOPD = Object.getOwnPropertyDescriptor; + + exports.f = __webpack_require__(22) ? gOPD : function getOwnPropertyDescriptor(O, P){ + O = toIObject(O); + P = toPrimitive(P, true); + if(IE8_DOM_DEFINE)try { + return gOPD(O, P); + } catch(e){ /* empty */ } + if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); + }; + +/***/ }), +/* 68 */ +/***/ (function(module, exports) { + + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(59)('asyncIterator'); + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(59)('observable'); + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + + var Helpers, h; + + Helpers = (function() { + Helpers.prototype.NS = 'http://www.w3.org/2000/svg'; + + Helpers.prototype.logBadgeCss = 'background:#3A0839;color:#FF512F;border-radius:5px; padding: 1px 5px 2px; border: 1px solid #FF512F;'; + + Helpers.prototype.shortColors = { + transparent: 'rgba(0,0,0,0)', + none: 'rgba(0,0,0,0)', + aqua: 'rgb(0,255,255)', + black: 'rgb(0,0,0)', + blue: 'rgb(0,0,255)', + fuchsia: 'rgb(255,0,255)', + gray: 'rgb(128,128,128)', + green: 'rgb(0,128,0)', + lime: 'rgb(0,255,0)', + maroon: 'rgb(128,0,0)', + navy: 'rgb(0,0,128)', + olive: 'rgb(128,128,0)', + purple: 'rgb(128,0,128)', + red: 'rgb(255,0,0)', + silver: 'rgb(192,192,192)', + teal: 'rgb(0,128,128)', + white: 'rgb(255,255,255)', + yellow: 'rgb(255,255,0)', + orange: 'rgb(255,128,0)' + }; + + Helpers.prototype.chainOptionMap = {}; + + Helpers.prototype.callbacksMap = { + onRefresh: 1, + onStart: 1, + onComplete: 1, + onFirstUpdate: 1, + onUpdate: 1, + onProgress: 1, + onRepeatStart: 1, + onRepeatComplete: 1, + onPlaybackStart: 1, + onPlaybackPause: 1, + onPlaybackStop: 1, + onPlaybackComplete: 1 + }; + + Helpers.prototype.tweenOptionMap = { + duration: 1, + delay: 1, + speed: 1, + repeat: 1, + easing: 1, + backwardEasing: 1, + isYoyo: 1, + shiftTime: 1, + isReversed: 1, + callbacksContext: 1 + }; + + Helpers.prototype.unitOptionMap = { + left: 1, + top: 1, + x: 1, + y: 1, + rx: 1, + ry: 1 + }; + + Helpers.prototype.RAD_TO_DEG = 180 / Math.PI; + + function Helpers() { + this.vars(); + } + + Helpers.prototype.vars = function() { + var ua; + this.prefix = this.getPrefix(); + this.getRemBase(); + this.isFF = this.prefix.lowercase === 'moz'; + this.isIE = this.prefix.lowercase === 'ms'; + ua = navigator.userAgent; + this.isOldOpera = ua.match(/presto/gim); + this.isSafari = ua.indexOf('Safari') > -1; + this.isChrome = ua.indexOf('Chrome') > -1; + this.isOpera = ua.toLowerCase().indexOf("op") > -1; + this.isChrome && this.isSafari && (this.isSafari = false); + (ua.match(/PhantomJS/gim)) && (this.isSafari = false); + this.isChrome && this.isOpera && (this.isChrome = false); + this.is3d = this.checkIf3d(); + this.uniqIDs = -1; + this.div = document.createElement('div'); + document.body.appendChild(this.div); + return this.defaultStyles = this.computedStyle(this.div); + }; + + Helpers.prototype.cloneObj = function(obj, exclude) { + var i, key, keys, newObj; + keys = Object.keys(obj); + newObj = {}; + i = keys.length; + while (i--) { + key = keys[i]; + if (exclude != null) { + if (!exclude[key]) { + newObj[key] = obj[key]; + } + } else { + newObj[key] = obj[key]; + } + } + return newObj; + }; + + Helpers.prototype.extend = function(objTo, objFrom) { + var key, value; + for (key in objFrom) { + value = objFrom[key]; + if (objTo[key] == null) { + objTo[key] = objFrom[key]; + } + } + return objTo; + }; + + Helpers.prototype.getRemBase = function() { + var html, style; + html = document.querySelector('html'); + style = getComputedStyle(html); + return this.remBase = parseFloat(style.fontSize); + }; + + Helpers.prototype.clamp = function(value, min, max) { + if (value < min) { + return min; + } else if (value > max) { + return max; + } else { + return value; + } + }; + + Helpers.prototype.setPrefixedStyle = function(el, name, value) { + (name === 'transform') && (el.style["" + this.prefix.css + name] = value); + return el.style[name] = value; + }; + + Helpers.prototype.style = function(el, name, value) { + var key, keys, len, results; + if (typeof name === 'object') { + keys = Object.keys(name); + len = keys.length; + results = []; + while (len--) { + key = keys[len]; + value = name[key]; + results.push(this.setPrefixedStyle(el, key, value)); + } + return results; + } else { + return this.setPrefixedStyle(el, name, value); + } + }; + + Helpers.prototype.prepareForLog = function(args) { + args = Array.prototype.slice.apply(args); + args.unshift('::'); + args.unshift(this.logBadgeCss); + args.unshift('%cmo·js%c'); + return args; + }; + + Helpers.prototype.log = function() { + if (mojs.isDebug === false) { + return; + } + return console.log.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.warn = function() { + if (mojs.isDebug === false) { + return; + } + return console.warn.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.error = function() { + if (mojs.isDebug === false) { + return; + } + return console.error.apply(console, this.prepareForLog(arguments)); + }; + + Helpers.prototype.parseUnit = function(value) { + var amount, isStrict, ref, regex, returnVal, unit; + if (typeof value === 'number') { + return returnVal = { + unit: 'px', + isStrict: false, + value: value, + string: value === 0 ? "" + value : value + "px" + }; + } else if (typeof value === 'string') { + regex = /px|%|rem|em|ex|cm|ch|mm|in|pt|pc|vh|vw|vmin|deg/gim; + unit = (ref = value.match(regex)) != null ? ref[0] : void 0; + isStrict = true; + if (!unit) { + unit = 'px'; + isStrict = false; + } + amount = parseFloat(value); + return returnVal = { + unit: unit, + isStrict: isStrict, + value: amount, + string: amount === 0 ? "" + amount : "" + amount + unit + }; + } + return value; + }; + + Helpers.prototype.bind = function(func, context) { + var bindArgs, wrapper; + wrapper = function() { + var args, unshiftArgs; + args = Array.prototype.slice.call(arguments); + unshiftArgs = bindArgs.concat(args); + return func.apply(context, unshiftArgs); + }; + bindArgs = Array.prototype.slice.call(arguments, 2); + return wrapper; + }; + + Helpers.prototype.getRadialPoint = function(o) { + var point, radAngle, radiusX, radiusY; + if (o == null) { + o = {}; + } + radAngle = (o.angle - 90) * 0.017453292519943295; + radiusX = o.radiusX != null ? o.radiusX : o.radius; + radiusY = o.radiusY != null ? o.radiusY : o.radius; + return point = { + x: o.center.x + (Math.cos(radAngle) * radiusX), + y: o.center.y + (Math.sin(radAngle) * radiusY) + }; + }; + + Helpers.prototype.getPrefix = function() { + var dom, pre, styles, v; + styles = window.getComputedStyle(document.documentElement, ""); + v = Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/); + pre = (v || (styles.OLink === "" && ["", "o"]))[1]; + dom = "WebKit|Moz|MS|O".match(new RegExp("(" + pre + ")", "i"))[1]; + return { + dom: dom, + lowercase: pre, + css: "-" + pre + "-", + js: pre[0].toUpperCase() + pre.substr(1) + }; + }; + + Helpers.prototype.strToArr = function(string) { + var arr; + arr = []; + if (typeof string === 'number' && !isNaN(string)) { + arr.push(this.parseUnit(string)); + return arr; + } + string.trim().split(/\s+/gim).forEach((function(_this) { + return function(str) { + return arr.push(_this.parseUnit(_this.parseIfRand(str))); + }; + })(this)); + return arr; + }; + + Helpers.prototype.calcArrDelta = function(arr1, arr2) { + var delta, i, j, len1, num; + delta = []; + for (i = j = 0, len1 = arr1.length; j < len1; i = ++j) { + num = arr1[i]; + delta[i] = this.parseUnit("" + (arr2[i].value - arr1[i].value) + arr2[i].unit); + } + return delta; + }; + + Helpers.prototype.isArray = function(variable) { + return variable instanceof Array; + }; + + Helpers.prototype.normDashArrays = function(arr1, arr2) { + var arr1Len, arr2Len, currItem, i, j, k, lenDiff, ref, ref1, startI; + arr1Len = arr1.length; + arr2Len = arr2.length; + if (arr1Len > arr2Len) { + lenDiff = arr1Len - arr2Len; + startI = arr2.length; + for (i = j = 0, ref = lenDiff; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + currItem = i + startI; + arr2.push(this.parseUnit("0" + arr1[currItem].unit)); + } + } else if (arr2Len > arr1Len) { + lenDiff = arr2Len - arr1Len; + startI = arr1.length; + for (i = k = 0, ref1 = lenDiff; 0 <= ref1 ? k < ref1 : k > ref1; i = 0 <= ref1 ? ++k : --k) { + currItem = i + startI; + arr1.push(this.parseUnit("0" + arr2[currItem].unit)); + } + } + return [arr1, arr2]; + }; + + Helpers.prototype.makeColorObj = function(color) { + var alpha, b, colorObj, g, isRgb, r, regexString1, regexString2, result, rgbColor; + if (color[0] === '#') { + result = /^#?([a-f\d]{1,2})([a-f\d]{1,2})([a-f\d]{1,2})$/i.exec(color); + colorObj = {}; + if (result) { + r = result[1].length === 2 ? result[1] : result[1] + result[1]; + g = result[2].length === 2 ? result[2] : result[2] + result[2]; + b = result[3].length === 2 ? result[3] : result[3] + result[3]; + colorObj = { + r: parseInt(r, 16), + g: parseInt(g, 16), + b: parseInt(b, 16), + a: 1 + }; + } + } + if (color[0] !== '#') { + isRgb = color[0] === 'r' && color[1] === 'g' && color[2] === 'b'; + if (isRgb) { + rgbColor = color; + } + if (!isRgb) { + rgbColor = !this.shortColors[color] ? (this.div.style.color = color, this.computedStyle(this.div).color) : this.shortColors[color]; + } + regexString1 = '^rgba?\\((\\d{1,3}),\\s?(\\d{1,3}),'; + regexString2 = '\\s?(\\d{1,3}),?\\s?(\\d{1}|0?\\.\\d{1,})?\\)$'; + result = new RegExp(regexString1 + regexString2, 'gi').exec(rgbColor); + colorObj = {}; + alpha = parseFloat(result[4] || 1); + if (result) { + colorObj = { + r: parseInt(result[1], 10), + g: parseInt(result[2], 10), + b: parseInt(result[3], 10), + a: (alpha != null) && !isNaN(alpha) ? alpha : 1 + }; + } + } + return colorObj; + }; + + Helpers.prototype.computedStyle = function(el) { + return getComputedStyle(el); + }; + + Helpers.prototype.capitalize = function(str) { + if (typeof str !== 'string') { + throw Error('String expected - nothing to capitalize'); + } + return str.charAt(0).toUpperCase() + str.substring(1); + }; + + Helpers.prototype.parseRand = function(string) { + var rand, randArr, units; + randArr = string.split(/rand\(|\,|\)/); + units = this.parseUnit(randArr[2]); + rand = this.rand(parseFloat(randArr[1]), parseFloat(randArr[2])); + if (units.unit && randArr[2].match(units.unit)) { + return rand + units.unit; + } else { + return rand; + } + }; + + Helpers.prototype.parseStagger = function(string, index) { + var base, number, splittedValue, unit, unitValue, value; + value = string.split(/stagger\(|\)$/)[1].toLowerCase(); + splittedValue = value.split(/(rand\(.*?\)|[^\(,\s]+)(?=\s*,|\s*$)/gim); + value = splittedValue.length > 3 ? (base = this.parseUnit(this.parseIfRand(splittedValue[1])), splittedValue[3]) : (base = this.parseUnit(0), splittedValue[1]); + value = this.parseIfRand(value); + unitValue = this.parseUnit(value); + number = index * unitValue.value + base.value; + unit = base.isStrict ? base.unit : unitValue.isStrict ? unitValue.unit : ''; + if (unit) { + return "" + number + unit; + } else { + return number; + } + }; + + Helpers.prototype.parseIfStagger = function(value, i) { + if (!(typeof value === 'string' && value.match(/stagger/g))) { + return value; + } else { + return this.parseStagger(value, i); + } + }; + + Helpers.prototype.parseIfRand = function(str) { + if (typeof str === 'string' && str.match(/rand\(/)) { + return this.parseRand(str); + } else { + return str; + } + }; + + Helpers.prototype.parseDelta = function(key, value, index) { + var curve, delta, easing, end, endArr, endColorObj, i, j, len1, start, startArr, startColorObj; + value = this.cloneObj(value); + easing = value.easing; + if (easing != null) { + easing = mojs.easing.parseEasing(easing); + } + delete value.easing; + curve = value.curve; + if (curve != null) { + curve = mojs.easing.parseEasing(curve); + } + delete value.curve; + start = Object.keys(value)[0]; + end = value[start]; + delta = { + start: start + }; + if (isNaN(parseFloat(start)) && !start.match(/rand\(/) && !start.match(/stagger\(/)) { + if (key === 'strokeLinecap') { + this.warn("Sorry, stroke-linecap property is not animatable yet, using the start(" + start + ") value instead", value); + return delta; + } + startColorObj = this.makeColorObj(start); + endColorObj = this.makeColorObj(end); + delta = { + type: 'color', + name: key, + start: startColorObj, + end: endColorObj, + easing: easing, + curve: curve, + delta: { + r: endColorObj.r - startColorObj.r, + g: endColorObj.g - startColorObj.g, + b: endColorObj.b - startColorObj.b, + a: endColorObj.a - startColorObj.a + } + }; + } else if (key === 'strokeDasharray' || key === 'strokeDashoffset' || key === 'origin') { + startArr = this.strToArr(start); + endArr = this.strToArr(end); + this.normDashArrays(startArr, endArr); + for (i = j = 0, len1 = startArr.length; j < len1; i = ++j) { + start = startArr[i]; + end = endArr[i]; + this.mergeUnits(start, end, key); + } + delta = { + type: 'array', + name: key, + start: startArr, + end: endArr, + delta: this.calcArrDelta(startArr, endArr), + easing: easing, + curve: curve + }; + } else { + if (!this.callbacksMap[key] && !this.tweenOptionMap[key]) { + if (this.unitOptionMap[key]) { + end = this.parseUnit(this.parseStringOption(end, index)); + start = this.parseUnit(this.parseStringOption(start, index)); + this.mergeUnits(start, end, key); + delta = { + type: 'unit', + name: key, + start: start, + end: end, + delta: end.value - start.value, + easing: easing, + curve: curve + }; + } else { + end = parseFloat(this.parseStringOption(end, index)); + start = parseFloat(this.parseStringOption(start, index)); + delta = { + type: 'number', + name: key, + start: start, + end: end, + delta: end - start, + easing: easing, + curve: curve + }; + } + } + } + return delta; + }; + + Helpers.prototype.mergeUnits = function(start, end, key) { + if (!end.isStrict && start.isStrict) { + end.unit = start.unit; + return end.string = "" + end.value + end.unit; + } else if (end.isStrict && !start.isStrict) { + start.unit = end.unit; + return start.string = "" + start.value + start.unit; + } else if (end.isStrict && start.isStrict) { + if (end.unit !== start.unit) { + start.unit = end.unit; + start.string = "" + start.value + start.unit; + return this.warn("Two different units were specified on \"" + key + "\" delta property, mo · js will fallback to end \"" + end.unit + "\" unit "); + } + } + }; + + Helpers.prototype.rand = function(min, max) { + return (Math.random() * (max - min)) + min; + }; + + Helpers.prototype.isDOM = function(o) { + var isNode; + if (o == null) { + return false; + } + isNode = typeof o.nodeType === 'number' && typeof o.nodeName === 'string'; + return typeof o === 'object' && isNode; + }; + + Helpers.prototype.getChildElements = function(element) { + var childNodes, children, i; + childNodes = element.childNodes; + children = []; + i = childNodes.length; + while (i--) { + if (childNodes[i].nodeType === 1) { + children.unshift(childNodes[i]); + } + } + return children; + }; + + Helpers.prototype.delta = function(start, end) { + var isType1, isType2, obj, type1, type2; + type1 = typeof start; + type2 = typeof end; + isType1 = type1 === 'string' || type1 === 'number' && !isNaN(start); + isType2 = type2 === 'string' || type2 === 'number' && !isNaN(end); + if (!isType1 || !isType2) { + this.error("delta method expects Strings or Numbers at input but got - " + start + ", " + end); + return; + } + obj = {}; + obj[start] = end; + return obj; + }; + + Helpers.prototype.getUniqID = function() { + return ++this.uniqIDs; + }; + + Helpers.prototype.parsePath = function(path) { + var domPath; + if (typeof path === 'string') { + if (path.charAt(0).toLowerCase() === 'm') { + domPath = document.createElementNS(this.NS, 'path'); + domPath.setAttributeNS(null, 'd', path); + return domPath; + } else { + return document.querySelector(path); + } + } + if (path.style) { + return path; + } + }; + + Helpers.prototype.closeEnough = function(num1, num2, eps) { + return Math.abs(num1 - num2) < eps; + }; + + Helpers.prototype.checkIf3d = function() { + var div, prefixed, style, tr; + div = document.createElement('div'); + this.style(div, 'transform', 'translateZ(0)'); + style = div.style; + prefixed = this.prefix.css + "transform"; + tr = style[prefixed] != null ? style[prefixed] : style.transform; + return tr !== ''; + }; + + + /* + Method to check if variable holds pointer to an object. + @param {Any} Variable to test + @returns {Boolean} If variable is object. + */ + + Helpers.prototype.isObject = function(variable) { + return variable !== null && typeof variable === 'object'; + }; + + + /* + Method to get first value of the object. + Used to get end value on ∆s. + @param {Object} Object to get the value of. + @returns {Any} The value of the first object' property. + */ + + Helpers.prototype.getDeltaEnd = function(obj) { + var key; + key = Object.keys(obj)[0]; + return obj[key]; + }; + + + /* + Method to get first key of the object. + Used to get start value on ∆s. + @param {Object} Object to get the value of. + @returns {String} The key of the first object' property. + */ + + Helpers.prototype.getDeltaStart = function(obj) { + var key; + key = Object.keys(obj)[0]; + return key; + }; + + + /* + Method to check if propery exists in callbacksMap or tweenOptionMap. + @param {String} Property name to check for + @returns {Boolean} If property is tween property. + */ + + Helpers.prototype.isTweenProp = function(keyName) { + return this.tweenOptionMap[keyName] || this.callbacksMap[keyName]; + }; + + + /* + Method to parse string property value + which can include both `rand` and `stagger ` + value in various positions. + @param {String} Property name to check for. + @param {Number} Optional index for stagger. + @returns {Number} Parsed option value. + */ + + Helpers.prototype.parseStringOption = function(value, index) { + if (index == null) { + index = 0; + } + if (typeof value === 'string') { + value = this.parseIfStagger(value, index); + value = this.parseIfRand(value); + } + return value; + }; + + + /* + Method to get the last item of array. + @private + @param {Array} Array to get the last item in. + @returns {Any} The last item of array. + */ + + Helpers.prototype.getLastItem = function(arr) { + return arr[arr.length - 1]; + }; + + + /* + Method parse HTMLElement. + @private + @param {String, Object} Selector string or HTMLElement. + @returns {Object} HTMLElement. + */ + + Helpers.prototype.parseEl = function(el) { + if (h.isDOM(el)) { + return el; + } else if (typeof el === 'string') { + el = document.querySelector(el); + } + if (el === null) { + h.error("Can't parse HTML element: ", el); + } + return el; + }; + + + /* + Method force compositor layer on HTMLElement. + @private + @param {Object} HTMLElement. + @returns {Object} HTMLElement. + */ + + Helpers.prototype.force3d = function(el) { + this.setPrefixedStyle(el, 'backface-visibility', 'hidden'); + return el; + }; + + + /* + Method to check if value is delta. + @private + @param {Any} Property to check. + @returns {Boolean} If value is delta. + */ + + Helpers.prototype.isDelta = function(optionsValue) { + var isObject; + isObject = this.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || this.isArray(optionsValue) || this.isDOM(optionsValue)); + }; + + return Helpers; + + })(); + + h = new Helpers; + + module.exports = h; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + + var Bit, BitsMap, Circle, Cross, Curve, Custom, Equal, Line, Polygon, Rect, Zigzag, h; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Custom = __webpack_require__(85)["default"] || __webpack_require__(85); + + Circle = __webpack_require__(86); + + Line = __webpack_require__(87); + + Zigzag = __webpack_require__(88); + + Rect = __webpack_require__(89); + + Polygon = __webpack_require__(90); + + Cross = __webpack_require__(91); + + Curve = __webpack_require__(92)["default"] || __webpack_require__(92); + + Equal = __webpack_require__(93); + + h = __webpack_require__(71); + + BitsMap = (function() { + function BitsMap() { + this.addShape = h.bind(this.addShape, this); + } + + BitsMap.prototype.bit = Bit; + + BitsMap.prototype.custom = Custom; + + BitsMap.prototype.circle = Circle; + + BitsMap.prototype.line = Line; + + BitsMap.prototype.zigzag = Zigzag; + + BitsMap.prototype.rect = Rect; + + BitsMap.prototype.polygon = Polygon; + + BitsMap.prototype.cross = Cross; + + BitsMap.prototype.equal = Equal; + + BitsMap.prototype.curve = Curve; + + BitsMap.prototype.getShape = function(name) { + return this[name] || h.error("no \"" + name + "\" shape available yet, please choose from this list:", ['circle', 'line', 'zigzag', 'rect', 'polygon', 'cross', 'equal', 'curve']); + }; + + + /* + Method to add shape to the map. + @public + @param {String} Name of the shape module. + @param {Object} Shape module class. + */ + + BitsMap.prototype.addShape = function(name, Module) { + return this[name] = Module; + }; + + return BitsMap; + + })(); + + module.exports = new BitsMap; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Bit = function (_Module) { + (0, _inherits3.default)(Bit, _Module); + + function Bit() { + (0, _classCallCheck3.default)(this, Bit); + return (0, _possibleConstructorReturn3.default)(this, _Module.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + */ + Bit.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + 'ns': 'http://www.w3.org/2000/svg', + 'tag': 'ellipse', + 'parent': document.body, + 'ratio': 1, + 'radius': 50, + 'radiusX': null, + 'radiusY': null, + 'stroke': 'hotpink', + 'stroke-dasharray': '', + 'stroke-dashoffset': '', + 'stroke-linecap': '', + 'stroke-width': 2, + 'stroke-opacity': 1, + 'fill': 'transparent', + 'fill-opacity': 1, + 'width': 0, + 'height': 0 + }; + this._drawMap = ['stroke', 'stroke-width', 'stroke-opacity', 'stroke-dasharray', 'fill', 'stroke-dashoffset', 'stroke-linecap', 'fill-opacity', 'transform']; + }; + + Bit.prototype._vars = function _vars() { + this._state = {}; + this._drawMapLength = this._drawMap.length; + }; + /* + Method for initial render of the shape. + @private + */ + + + Bit.prototype._render = function _render() { + if (this._isRendered) { + return; + } + // set `_isRendered` hatch + this._isRendered = true; + // create `SVG` canvas to draw in + this._createSVGCanvas(); + // set canvas size + this._setCanvasSize(); + // draw the initial state + // this._draw(); + // append the canvas to the parent from props + this._props.parent.appendChild(this._canvas); + }; + /* + Method to create `SVG` canvas to draw in. + @private + */ + + + Bit.prototype._createSVGCanvas = function _createSVGCanvas() { + var p = this._props; + // create canvas - `svg` element to draw in + this._canvas = document.createElementNS(p.ns, 'svg'); + // create the element shape element and add it to the canvas + this.el = document.createElementNS(p.ns, p.tag); + this._canvas.appendChild(this.el); + }; + /* + Method to set size of the _canvas. + @private + */ + + + Bit.prototype._setCanvasSize = function _setCanvasSize() { + var p = this._props, + style = this._canvas.style; + + style.display = 'block'; + style.width = '100%'; + style.height = '100%'; + style.left = '0px'; + style.top = '0px'; + }; + /* + Method to draw the shape. + Called on every frame. + @private + */ + + + Bit.prototype._draw = function _draw() { + this._props.length = this._getLength(); + + var state = this._state, + props = this._props; + + var len = this._drawMapLength; + while (len--) { + var name = this._drawMap[len]; + switch (name) { + case 'stroke-dasharray': + case 'stroke-dashoffset': + this.castStrokeDash(name); + } + this._setAttrIfChanged(name, this._props[name]); + } + this._state.radius = this._props.radius; + }; + + Bit.prototype.castStrokeDash = function castStrokeDash(name) { + // # if array of values + var p = this._props; + if (_h2.default.isArray(p[name])) { + var stroke = ''; + for (var i = 0; i < p[name].length; i++) { + var dash = p[name][i], + cast = dash.unit === '%' ? this.castPercent(dash.value) : dash.value; + stroke += cast + ' '; + } + p[name] = stroke === '0 ' ? stroke = '' : stroke; + return p[name] = stroke; + } + // # if single value + if ((0, _typeof3.default)(p[name]) === 'object') { + stroke = p[name].unit === '%' ? this.castPercent(p[name].value) : p[name].value; + p[name] = stroke === 0 ? stroke = '' : stroke; + } + }; + + Bit.prototype.castPercent = function castPercent(percent) { + return percent * (this._props.length / 100); + }; + + /* + Method to set props to attributes and cache the values. + @private + */ + + + Bit.prototype._setAttrIfChanged = function _setAttrIfChanged(name, value) { + if (this._state[name] !== value) { + // this.el.style[name] = value; + this.el.setAttribute(name, value); + this._state[name] = value; + } + }; + /* + Method to length of the shape. + @private + @returns {Number} Length of the shape. + */ + + + Bit.prototype._getLength = function _getLength() { + var p = this._props, + len = 0, + isGetLength = !!(this.el && this.el.getTotalLength); + + if (isGetLength && this.el.getAttribute('d')) { + len = this.el.getTotalLength(); + } else { + len = 2 * (p.radiusX != null ? p.radiusX : p.radius); + } + return len; + }; + /* + Method to calculate total sum between points. + @private + @param {Array} Array of points. + @returns {Number} Distance bewtween all points. + */ + + + Bit.prototype._getPointsPerimiter = function _getPointsPerimiter(points) { + var sum = 0; + + for (var i = 1; i < points.length; i++) { + sum += this._pointsDelta(points[i - 1], points[i]); + } + + sum += this._pointsDelta(points[0], _h2.default.getLastItem(points)); + return sum; + }; + /* + Method to get delta from two points. + @private + @param {Object} Point 1. + @param {Object} Point 2. + @returns {Number} Distance between the pooints. + */ + + + Bit.prototype._pointsDelta = function _pointsDelta(point1, point2) { + var dx = Math.abs(point1.x - point2.x), + dy = Math.abs(point1.y - point2.y); + return Math.sqrt(dx * dx + dy * dy); + }; + /* + Method to set module's size. + @private + @param {Number} Module width. + @param {Number} Module height. + */ + + + Bit.prototype._setSize = function _setSize(width, height) { + var p = this._props; + p.width = width; + p.height = height; + this._draw(); + }; + + return Bit; + }(_module2.default); + + exports.default = Bit; + +/***/ }), +/* 74 */ +/***/ (function(module, exports) { + + "use strict"; + + exports.__esModule = true; + + exports.default = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self; + }; + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _setPrototypeOf = __webpack_require__(77); + + var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf); + + var _create = __webpack_require__(81); + + var _create2 = _interopRequireDefault(_create); + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass))); + } + + subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass; + }; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(78), __esModule: true }; + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(79); + module.exports = __webpack_require__(14).Object.setPrototypeOf; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.19 Object.setPrototypeOf(O, proto) + var $export = __webpack_require__(12); + $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(80).set}); + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + + // Works with __proto__ only. Old v8 can't work with null proto objects. + /* eslint-disable no-proto */ + var isObject = __webpack_require__(20) + , anObject = __webpack_require__(19); + var check = function(O, proto){ + anObject(O); + if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); + }; + module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function(test, buggy, set){ + try { + set = __webpack_require__(15)(Function.call, __webpack_require__(67).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch(e){ buggy = true; } + return function setPrototypeOf(O, proto){ + check(O, proto); + if(buggy)O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check + }; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(82), __esModule: true }; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(83); + var $Object = __webpack_require__(14).Object; + module.exports = function create(P, D){ + return $Object.create(P, D); + }; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(12) + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + $export($export.S, 'Object', {create: __webpack_require__(31)}); + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Base class for module. Extends and parses defaults. + */ + var Module = function () { + function Module() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Module); + + // this._isIt = o.isIt; + // delete o.isIt; + this._o = o; + this._index = this._o.index || 0; + // map of props that should be + // parsed to arrays of values + this._arrayPropertyMap = { + strokeDashoffset: 1, + strokeDasharray: 1, + origin: 1 + }; + + this._skipPropsDelta = { + timeline: 1, + prevChainModule: 1, + callbacksContext: 1 + }; + + this._declareDefaults(); + this._extendDefaults(); + + this._vars(); + this._render(); + } + /* + Method to declare defaults. + @private + */ + + + Module.prototype._declareDefaults = function _declareDefaults() { + this._defaults = {}; + }; + /* + Method to declare module's variables. + @private + */ + + + Module.prototype._vars = function _vars() { + this._progress = 0; + this._strokeDasharrayBuffer = []; + }; + /* + Method to render on initialization. + @private + */ + + + Module.prototype._render = function _render() {}; + /* + Method to set property on the module. + @private + @param {String, Object} Name of the property to set + or object with properties to set. + @param {Any} Value for the property to set. Could be + undefined if the first param is object. + */ + + + Module.prototype._setProp = function _setProp(attr, value) { + if ((typeof attr === 'undefined' ? 'undefined' : (0, _typeof3.default)(attr)) === 'object') { + for (var key in attr) { + this._assignProp(key, attr[key]); + } + } else { + this._assignProp(attr, value); + } + }; + /* + Method to assign single property's value. + @private + @param {String} Property name. + @param {Any} Property value. + */ + + + Module.prototype._assignProp = function _assignProp(key, value) { + this._props[key] = value; + }; + /* + Method to show element. + @private + */ + + + Module.prototype._show = function _show() { + var p = this._props; + if (!this.el) { + return; + } + + if (p.isSoftHide) { + // this.el.style.opacity = p.opacity; + this._showByTransform(); + } else { + this.el.style.display = 'block'; + } + + this._isShown = true; + }; + /* + Method to hide element. + @private + */ + + + Module.prototype._hide = function _hide() { + if (!this.el) { + return; + } + + if (this._props.isSoftHide) { + // this.el.style.opacity = 0; + _h2.default.setPrefixedStyle(this.el, 'transform', 'scale(0)'); + } else { + this.el.style.display = 'none'; + } + + this._isShown = false; + }; + /* + Method to show element by applying transform back to normal. + @private + */ + + + Module.prototype._showByTransform = function _showByTransform() {}; + /* + Method to parse option string. + Searches for stagger and rand values and parses them. + Leaves the value unattended otherwise. + @param {Any} Option value to parse. + @returns {Number} Parsed options value. + */ + + + Module.prototype._parseOptionString = function _parseOptionString(value) { + if (typeof value === 'string') { + if (value.match(/stagger/)) { + value = _h2.default.parseStagger(value, this._index); + } + } + if (typeof value === 'string') { + if (value.match(/rand/)) { + value = _h2.default.parseRand(value); + } + } + return value; + }; + /* + Method to parse postion option. + @param {String} Property name. + @param {Any} Property Value. + @returns {String} Parsed options value. + */ + + + Module.prototype._parsePositionOption = function _parsePositionOption(key, value) { + if (_h2.default.unitOptionMap[key]) { + value = _h2.default.parseUnit(value).string; + } + return value; + }; + /* + Method to parse strokeDash.. option. + @param {String} Property name. + @param {Any} Property value. + @returns {String} Parsed options value. + */ + + + Module.prototype._parseStrokeDashOption = function _parseStrokeDashOption(key, value) { + var result = value; + // parse numeric/percent values for strokeDash.. properties + if (this._arrayPropertyMap[key]) { + var result = []; + switch (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) { + case 'number': + result.push(_h2.default.parseUnit(value)); + break; + case 'string': + var array = value.split(' '); + for (var i = 0; i < array.length; i++) { + result.push(_h2.default.parseUnit(array[i])); + } + break; + } + } + return result; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Module.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = _h2.default.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || _h2.default.isArray(optionsValue) || _h2.default.isDOM(optionsValue)); + }; + /* + Method to get delta from property and set + the property's start value to the props object. + @private + @param {String} Key name to get delta for. + @param {Object} Option value to get the delta for. + */ + + + Module.prototype._getDelta = function _getDelta(key, optionsValue) { + var delta; + if ((key === 'left' || key === 'top') && !this._o.ctx) { + _h2.default.warn('Consider to animate x/y properties instead of left/top,\n as it would be much more performant', optionsValue); + } + // skip delta calculation for a property if it is listed + // in skipPropsDelta object + if (this._skipPropsDelta && this._skipPropsDelta[key]) { + return; + } + // get delta + delta = _h2.default.parseDelta(key, optionsValue, this._index); + // if successfully parsed - save it + if (delta.type != null) { + this._deltas[key] = delta; + } + + var deltaEnd = (0, _typeof3.default)(delta.end) === 'object' ? delta.end.value === 0 ? 0 : delta.end.string : delta.end; + // set props to end value of the delta + // 0 should be 0 regardless units + this._props[key] = deltaEnd; + }; + /* + Method to copy `_o` options to `_props` object + with fallback to `_defaults`. + @private + */ + + + Module.prototype._extendDefaults = function _extendDefaults() { + this._props = {}; + this._deltas = {}; + for (var key in this._defaults) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + // copy the properties to the _o object + var value = this._o[key] != null ? this._o[key] : this._defaults[key]; + // parse option + this._parseOption(key, value); + } + }; + /* + Method to tune new oprions to _o and _props object. + @private + @param {Object} Options object to tune to. + */ + + + Module.prototype._tuneNewOptions = function _tuneNewOptions(o) { + // hide the module before tuning it's options + // cuz the user could see the change + this._hide(); + for (var key in o) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + // copy the properties to the _o object + // delete the key from deltas + o && delete this._deltas[key]; + // rewrite _o record + this._o[key] = o[key]; + // save the options to _props + this._parseOption(key, o[key]); + } + }; + /* + Method to parse option value. + @private + @param {String} Option name. + @param {Any} Option value. + */ + + + Module.prototype._parseOption = function _parseOption(name, value) { + // if delta property + if (this._isDelta(value) && !this._skipPropsDelta[name]) { + this._getDelta(name, value); + var deltaEnd = _h2.default.getDeltaEnd(value); + return this._assignProp(name, this._parseProperty(name, deltaEnd)); + } + + this._assignProp(name, this._parseProperty(name, value)); + }; + /* + Method to parse postion and string props. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._parsePreArrayProperty = function _parsePreArrayProperty(name, value) { + // parse stagger and rand values + value = this._parseOptionString(value); + // parse units for position properties + return this._parsePositionOption(name, value); + }; + /* + Method to parse property value. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._parseProperty = function _parseProperty(name, value) { + // parse `HTML` element in `parent` option + if (name === 'parent') { + return _h2.default.parseEl(value); + } + // parse `stagger`, `rand` and `position` + value = this._parsePreArrayProperty(name, value); + // parse numeric/percent values for strokeDash.. properties + return this._parseStrokeDashOption(name, value); + }; + /* + Method to parse values inside ∆. + @private + @param {String} Key name. + @param {Object} Delta. + @returns {Object} Delta with parsed parameters. + */ + + + Module.prototype._parseDeltaValues = function _parseDeltaValues(name, delta) { + // return h.parseDelta( name, delta, this._index ); + + var d = {}; + for (var key in delta) { + var value = delta[key]; + + // delete delta[key]; + // add parsed properties + var newEnd = this._parsePreArrayProperty(name, value); + d[this._parsePreArrayProperty(name, key)] = newEnd; + } + return d; + }; + /* + Method to parse delta and nondelta properties. + @private + @param {String} Property name. + @param {Any} Property value. + @returns {Any} Parsed property value. + */ + + + Module.prototype._preparsePropValue = function _preparsePropValue(key, value) { + return this._isDelta(value) ? this._parseDeltaValues(key, value) : this._parsePreArrayProperty(key, value); + }; + /* + Method to calculate current progress of the deltas. + @private + @param {Number} Eased progress to calculate - [0..1]. + @param {Number} Progress to calculate - [0..1]. + */ + + + Module.prototype._calcCurrentProps = function _calcCurrentProps(easedProgress, p) { + + for (var key in this._deltas) { + + var value = this._deltas[key]; + + // get eased progress from delta easing if defined and not curve + var isCurve = !!value.curve; + var ep = value.easing != null && !isCurve ? value.easing(p) : easedProgress; + + if (value.type === 'array') { + var arr; + // if prop property is array - reuse it else - create an array + if (_h2.default.isArray(this._props[key])) { + arr = this._props[key]; + arr.length = 0; + } else { + arr = []; + } + + // just optimization to prevent curve + // calculations on every array item + var proc = isCurve ? value.curve(p) : null; + + for (var i = 0; i < value.delta.length; i++) { + var item = value.delta[i], + dash = !isCurve ? value.start[i].value + ep * item.value : proc * (value.start[i].value + p * item.value); + arr.push({ + string: '' + dash + item.unit, + value: dash, + unit: item.unit + }); + } + + this._props[key] = arr; + } else if (value.type === 'number') { + this._props[key] = !isCurve ? value.start + ep * value.delta : value.curve(p) * (value.start + p * value.delta); + } else if (value.type === 'unit') { + var currentValue = !isCurve ? value.start.value + ep * value.delta : value.curve(p) * (value.start.value + p * value.delta); + + this._props[key] = '' + currentValue + value.end.unit; + } else if (value.type === 'color') { + var r, g, b, a; + if (!isCurve) { + r = parseInt(value.start.r + ep * value.delta.r, 10); + g = parseInt(value.start.g + ep * value.delta.g, 10); + b = parseInt(value.start.b + ep * value.delta.b, 10); + a = parseFloat(value.start.a + ep * value.delta.a); + } else { + var cp = value.curve(p); + r = parseInt(cp * (value.start.r + p * value.delta.r), 10); + g = parseInt(cp * (value.start.g + p * value.delta.g), 10); + b = parseInt(cp * (value.start.b + p * value.delta.b), 10); + a = parseFloat(cp * (value.start.a + p * value.delta.a)); + } + this._props[key] = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + } + } + }; + /* + Method to calculate current progress and probably draw it in children. + @private + @param {Number} Eased progress to set - [0..1]. + @param {Number} Progress to set - [0..1]. + */ + + + Module.prototype._setProgress = function _setProgress(easedProgress, progress) { + this._progress = easedProgress; + this._calcCurrentProps(easedProgress, progress); + }; + + return Module; + }(); + + exports.default = Module; + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _bit = __webpack_require__(73); + + var _bit2 = _interopRequireDefault(_bit); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Custom = function (_Bit) { + (0, _inherits3.default)(Custom, _Bit); + + function Custom() { + (0, _classCallCheck3.default)(this, Custom); + return (0, _possibleConstructorReturn3.default)(this, _Bit.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + @overrides @ Bit + */ + Custom.prototype._declareDefaults = function _declareDefaults() { + _Bit.prototype._declareDefaults.call(this); + + this._defaults.tag = 'path'; + this._defaults.parent = null; + + // remove `stroke-width` from `_drawMap` + // because we need to recal strokeWidth size regarding scale + for (var i = 0; i < this._drawMap.length; i++) { + if (this._drawMap[i] === 'stroke-width') { + this._drawMap.splice(i, 1); + } + } + }; + /* + Method to get shape to set on module's path. + @public + @returns {String} Empty string. + */ + + + Custom.prototype.getShape = function getShape() { + return ''; + }; + /* + Method to get shape perimeter length. + @public + @returns {Number} Default length string. + */ + + + Custom.prototype.getLength = function getLength() { + return 100; + }; + /* + Method to draw the shape. + Called on every frame. + @private + @overrides @ Bit + */ + + + Custom.prototype._draw = function _draw() { + var p = this._props, + state = this._state, + radiusXChange = state['radiusX'] !== p.radiusX, + radiusYChange = state['radiusY'] !== p.radiusY, + radiusChange = state['radius'] !== p.radius; + + // update transform only if one of radiuses changed + if (radiusXChange || radiusYChange || radiusChange) { + this.el.setAttribute('transform', this._getScale()); + state['radiusX'] = p.radiusX; + state['radiusY'] = p.radiusY; + state['radius'] = p.radius; + } + + this._setAttrIfChanged('stroke-width', p['stroke-width'] / p.maxScale); + + _Bit.prototype._draw.call(this); + }; + /* + Method for initial render of the shape. + @private + @overrides @ Bit + */ + + + Custom.prototype._render = function _render() { + if (this._isRendered) { + return; + } + this._isRendered = true; + + this._length = this.getLength(); + + var p = this._props; + p.parent.innerHTML = '' + this.getShape() + ''; + + this._canvas = p.parent.querySelector('#js-mojs-shape-canvas'); + this.el = p.parent.querySelector('#js-mojs-shape-el'); + this._setCanvasSize(); + }; + /* + Method to get scales for the shape. + @private + @mutates @props + */ + + + Custom.prototype._getScale = function _getScale() { + var p = this._props, + radiusX = p.radiusX ? p.radiusX : p.radius, + radiusY = p.radiusY ? p.radiusY : p.radius; + + p.scaleX = 2 * radiusX / 100; + p.scaleY = 2 * radiusY / 100; + p.maxScale = Math.max(p.scaleX, p.scaleY); + + p.shiftX = p.width / 2 - 50 * p.scaleX; + p.shiftY = p.height / 2 - 50 * p.scaleY; + + var translate = 'translate(' + p.shiftX + ', ' + p.shiftY + ')'; + return translate + ' scale(' + p.scaleX + ', ' + p.scaleY + ')'; + }; + /* + Method to length of the shape. + @private + @returns {Number} Length of the shape. + */ + + + Custom.prototype._getLength = function _getLength() { + return this._length; + }; + + return Custom; + }(_bit2.default); + + exports.default = Custom; + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Circle, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Circle = (function(superClass) { + extend(Circle, superClass); + + function Circle() { + return Circle.__super__.constructor.apply(this, arguments); + } + + Circle.prototype._declareDefaults = function() { + Circle.__super__._declareDefaults.apply(this, arguments); + return this._defaults.shape = 'ellipse'; + }; + + Circle.prototype._draw = function() { + var rx, ry; + rx = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + ry = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + this._setAttrIfChanged('rx', rx); + this._setAttrIfChanged('ry', ry); + this._setAttrIfChanged('cx', this._props.width / 2); + this._setAttrIfChanged('cy', this._props.height / 2); + return Circle.__super__._draw.apply(this, arguments); + }; + + Circle.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * Math.PI * Math.sqrt((radiusX * radiusX + radiusY * radiusY) / 2); + }; + + return Circle; + + })(Bit); + + module.exports = Circle; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Line, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Line = (function(superClass) { + extend(Line, superClass); + + function Line() { + return Line.__super__.constructor.apply(this, arguments); + } + + Line.prototype._declareDefaults = function() { + Line.__super__._declareDefaults.apply(this, arguments); + return this._defaults.tag = 'line'; + }; + + Line.prototype._draw = function() { + var radiusX, x, y; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + x = this._props.width / 2; + y = this._props.height / 2; + this._setAttrIfChanged('x1', x - radiusX); + this._setAttrIfChanged('x2', x + radiusX); + this._setAttrIfChanged('y1', y); + this._setAttrIfChanged('y2', y); + return Line.__super__._draw.apply(this, arguments); + }; + + return Line; + + })(Bit); + + module.exports = Line; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Zigzag, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Zigzag = (function(superClass) { + extend(Zigzag, superClass); + + function Zigzag() { + return Zigzag.__super__.constructor.apply(this, arguments); + } + + Zigzag.prototype._declareDefaults = function() { + Zigzag.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 3; + }; + + Zigzag.prototype._draw = function() { + var currentX, currentY, delta, i, isPoints, isRadiusX, isRadiusY, j, length, p, points, radiusX, radiusY, ref, stepX, x, y, yFlip; + Zigzag.__super__._draw.apply(this, arguments); + p = this._props; + if (!this._props.points) { + return; + } + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (isRadiusX && isRadiusY && isPoints) { + return; + } + x = p.width / 2; + y = p.height / 2; + currentX = x - radiusX; + currentY = y; + stepX = (2 * radiusX) / (p.points - 1); + yFlip = -1; + delta = Math.sqrt(stepX * stepX + radiusY * radiusY); + length = -delta; + points = "M" + currentX + ", " + y + " "; + for (i = j = 0, ref = p.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + points += "L" + currentX + ", " + currentY + " "; + currentX += stepX; + length += delta; + currentY = yFlip === -1 ? y - radiusY : y; + yFlip = -yFlip; + } + this._length = length; + this.el.setAttribute('d', points); + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Zigzag.prototype._getLength = function() { + return this._length; + }; + + return Zigzag; + + })(Bit); + + module.exports = Zigzag; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Rect, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Rect = (function(superClass) { + extend(Rect, superClass); + + function Rect() { + return Rect.__super__.constructor.apply(this, arguments); + } + + Rect.prototype._declareDefaults = function() { + Rect.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'rect'; + this._defaults.rx = 0; + return this._defaults.ry = 0; + }; + + Rect.prototype._draw = function() { + var p, radiusX, radiusY; + Rect.__super__._draw.apply(this, arguments); + p = this._props; + radiusX = p.radiusX != null ? p.radiusX : p.radius; + radiusY = p.radiusY != null ? p.radiusY : p.radius; + this._setAttrIfChanged('width', 2 * radiusX); + this._setAttrIfChanged('height', 2 * radiusY); + this._setAttrIfChanged('x', (p.width / 2) - radiusX); + this._setAttrIfChanged('y', (p.height / 2) - radiusY); + this._setAttrIfChanged('rx', p.rx); + return this._setAttrIfChanged('ry', p.ry); + }; + + Rect.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * (2 * radiusX + 2 * radiusY); + }; + + return Rect; + + })(Bit); + + module.exports = Rect; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Polygon, h, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + h = __webpack_require__(71); + + Polygon = (function(superClass) { + extend(Polygon, superClass); + + function Polygon() { + return Polygon.__super__.constructor.apply(this, arguments); + } + + + /* + Method to declare defaults. + @overrides @ Bit + */ + + Polygon.prototype._declareDefaults = function() { + Polygon.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 3; + }; + + + /* + Method to draw the shape. + @overrides @ Bit + */ + + Polygon.prototype._draw = function() { + var char, d, i, isPoints, isRadiusX, isRadiusY, j, k, len, p, point, radiusX, radiusY, ref, ref1, step; + p = this._props; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (!(isRadiusX && isRadiusY && isPoints)) { + step = 360 / this._props.points; + if (this._radialPoints == null) { + this._radialPoints = []; + } else { + this._radialPoints.length = 0; + } + for (i = j = 0, ref = this._props.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + this._radialPoints.push(h.getRadialPoint({ + radius: this._props.radius, + radiusX: this._props.radiusX, + radiusY: this._props.radiusY, + angle: i * step, + center: { + x: p.width / 2, + y: p.height / 2 + } + })); + } + d = ''; + ref1 = this._radialPoints; + for (i = k = 0, len = ref1.length; k < len; i = ++k) { + point = ref1[i]; + char = i === 0 ? 'M' : 'L'; + d += "" + char + (point.x.toFixed(4)) + "," + (point.y.toFixed(4)) + " "; + } + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + this._prevRadiusY = radiusY; + this.el.setAttribute('d', (d += 'z')); + } + return Polygon.__super__._draw.apply(this, arguments); + }; + + + /* + Method to get length of the shape. + @overrides @ Bit + */ + + Polygon.prototype._getLength = function() { + return this._getPointsPerimiter(this._radialPoints); + }; + + return Polygon; + + })(Bit); + + module.exports = Polygon; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Cross, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Cross = (function(superClass) { + extend(Cross, superClass); + + function Cross() { + return Cross.__super__.constructor.apply(this, arguments); + } + + Cross.prototype._declareDefaults = function() { + Cross.__super__._declareDefaults.apply(this, arguments); + return this._defaults.tag = 'path'; + }; + + Cross.prototype._draw = function() { + var d, isRadiusX, isRadiusY, line1, line2, p, radiusX, radiusY, x, x1, x2, y, y1, y2; + Cross.__super__._draw.apply(this, arguments); + p = this._props; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + if (isRadiusX && isRadiusY) { + return; + } + x = this._props.width / 2; + y = this._props.height / 2; + x1 = x - radiusX; + x2 = x + radiusX; + line1 = "M" + x1 + "," + y + " L" + x2 + "," + y; + y1 = y - radiusY; + y2 = y + radiusY; + line2 = "M" + x + "," + y1 + " L" + x + "," + y2; + d = line1 + " " + line2; + this.el.setAttribute('d', d); + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Cross.prototype._getLength = function() { + var radiusX, radiusY; + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + return 2 * (radiusX + radiusY); + }; + + return Cross; + + })(Bit); + + module.exports = Cross; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _bit = __webpack_require__(73); + + var _bit2 = _interopRequireDefault(_bit); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Curve = function (_Bit) { + (0, _inherits3.default)(Curve, _Bit); + + function Curve() { + (0, _classCallCheck3.default)(this, Curve); + return (0, _possibleConstructorReturn3.default)(this, _Bit.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + @overrides @ Bit + */ + Curve.prototype._declareDefaults = function _declareDefaults() { + _Bit.prototype._declareDefaults.call(this); + this._defaults.tag = 'path'; + }; + /* + Method to draw the module. + @private + @overrides @ Bit + */ + + + Curve.prototype._draw = function _draw() { + _Bit.prototype._draw.call(this); + var p = this._props; + + var radiusX = p.radiusX != null ? p.radiusX : p.radius; + var radiusY = p.radiusY != null ? p.radiusY : p.radius; + + var isRadiusX = radiusX === this._prevRadiusX; + var isRadiusY = radiusY === this._prevRadiusY; + var isPoints = p.points === this._prevPoints; + // skip if nothing changed + if (isRadiusX && isRadiusY && isPoints) { + return; + } + + var x = p.width / 2; + var y = p.height / 2; + var x1 = x - radiusX; + var x2 = x + radiusX; + + var d = 'M' + x1 + ' ' + y + ' Q ' + x + ' ' + (y - 2 * radiusY) + ' ' + x2 + ' ' + y; + + // set the `d` attribute and save it to `_prevD` + this.el.setAttribute('d', d); + // save the properties + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + this._prevRadiusY = radiusY; + }; + + Curve.prototype._getLength = function _getLength() { + var p = this._props; + + var radiusX = p.radiusX != null ? p.radiusX : p.radius; + var radiusY = p.radiusY != null ? p.radiusY : p.radius; + + var dRadius = radiusX + radiusY; + var sqrt = Math.sqrt((3 * radiusX + radiusY) * (radiusX + 3 * radiusY)); + + return .5 * Math.PI * (3 * dRadius - sqrt); + }; + + return Curve; + }(_bit2.default); // istanbul ignore next + + + exports.default = Curve; + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + + + /* istanbul ignore next */ + var Bit, Equal, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; + + Bit = __webpack_require__(73)["default"] || __webpack_require__(73); + + Equal = (function(superClass) { + extend(Equal, superClass); + + function Equal() { + return Equal.__super__.constructor.apply(this, arguments); + } + + Equal.prototype._declareDefaults = function() { + Equal.__super__._declareDefaults.apply(this, arguments); + this._defaults.tag = 'path'; + return this._defaults.points = 2; + }; + + Equal.prototype._draw = function() { + var d, i, isPoints, isRadiusX, isRadiusY, j, p, radiusX, radiusY, ref, x, x1, x2, y, yStart, yStep; + Equal.__super__._draw.apply(this, arguments); + p = this._props; + if (!this._props.points) { + return; + } + radiusX = this._props.radiusX != null ? this._props.radiusX : this._props.radius; + radiusY = this._props.radiusY != null ? this._props.radiusY : this._props.radius; + isRadiusX = radiusX === this._prevRadiusX; + isRadiusY = radiusY === this._prevRadiusY; + isPoints = p.points === this._prevPoints; + if (isRadiusX && isRadiusY && isPoints) { + return; + } + x = this._props.width / 2; + y = this._props.height / 2; + x1 = x - radiusX; + x2 = x + radiusX; + d = ''; + yStep = 2 * radiusY / (this._props.points - 1); + yStart = y - radiusY; + for (i = j = 0, ref = this._props.points; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) { + y = "" + (i * yStep + yStart); + d += "M" + x1 + ", " + y + " L" + x2 + ", " + y + " "; + } + this.el.setAttribute('d', d); + this._prevPoints = p.points; + this._prevRadiusX = radiusX; + return this._prevRadiusY = radiusY; + }; + + Equal.prototype._getLength = function() { + return 2 * (this._props.radiusX != null ? this._props.radiusX : this._props.radius); + }; + + return Equal; + + })(Bit); + + module.exports = Equal; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + var Bit = __webpack_require__(73); + var shapesMap = __webpack_require__(72); + + // TODO + // - refactor + // - add setIfChanged to Module + // -- + // - tween for every prop + + var Shape = function (_Tunable) { + (0, _inherits3.default)(Shape, _Tunable); + + function Shape() { + (0, _classCallCheck3.default)(this, Shape); + return (0, _possibleConstructorReturn3.default)(this, _Tunable.apply(this, arguments)); + } + + /* + Method to declare module's defaults. + @private + */ + Shape.prototype._declareDefaults = function _declareDefaults() { + // DEFAULTS / APIs + this._defaults = { + // where to append the module to [selector, HTMLElement] + parent: document.body, + // class name for the `el` + className: '', + // Possible values: [circle, line, zigzag, rect, polygon, cross, equal ] + shape: 'circle', + // ∆ :: Possible values: [color name, rgb, rgba, hex] + stroke: 'transparent', + // ∆ :: Possible values: [ 0..1 ] + strokeOpacity: 1, + // Possible values: ['butt' | 'round' | 'square'] + strokeLinecap: '', + // ∆ :: Possible values: [ number ] + strokeWidth: 2, + // ∆ :: Units :: Possible values: [ number, string ] + strokeDasharray: 0, + // ∆ :: Units :: Possible values: [ number, string ] + strokeDashoffset: 0, + // ∆ :: Possible values: [color name, rgb, rgba, hex] + fill: 'deeppink', + // ∆ :: Possible values: [ 0..1 ] + fillOpacity: 1, + // {Boolean} - if should hide module with `opacity` instead of `display` + isSoftHide: true, + // {Boolean} - if should trigger composite layer for the `el` + isForce3d: false, + // ∆ :: Units :: Possible values: [ number, string ] + left: '50%', + // ∆ :: Units :: Possible values: [ number, string ] + top: '50%', + // ∆ :: Units :: Possible values: [ number, string ] + x: 0, + // ∆ :: Units :: Possible values: [ number, string ] + y: 0, + // ∆ :: Possible values: [ number ] + angle: 0, + // ∆ :: Possible values: [ number ] + scale: 1, + // ∆ :: Possible values: [ number ] Fallbacks to `scale`. + scaleX: null, + // ∆ :: Possible values: [ number ] Fallbacks to `scale`. + scaleY: null, + // ∆ :: Possible values: [ number, string ] + origin: '50% 50%', + // ∆ :: Possible values: [ 0..1 ] + opacity: 1, + // ∆ :: Units :: Possible values: [ number, string ] + rx: 0, + // ∆ :: Units :: Possible values: [ number, string ] + ry: 0, + // ∆ :: Possible values: [ number ] + points: 3, + // ∆ :: Possible values: [ number ] + radius: 50, + // ∆ :: Possible values: [ number ] + radiusX: null, + // ∆ :: Possible values: [ number ] + radiusY: null, + // Possible values: [ boolean ] + isShowStart: false, + // Possible values: [ boolean ] + isShowEnd: true, + // Possible values: [ boolean ] + isRefreshState: true, + // Possible values: [ number > 0 ] + duration: 400, + // Possible values: [ number ] + + /* technical ones: */ + // explicit width of the module canvas + width: null, + // explicit height of the module canvas + height: null, + // Possible values: [ number ] + // sizeGap: 0, + /* [boolean] :: If should have child shape. */ + isWithShape: true, + // context for all the callbacks + callbacksContext: this + }; + }; + /* + Method to start the animation with optional new options. + @public + @overrides @ Tunable + @param {Object} New options to set on the run. + @returns {Object} this. + */ + + + Shape.prototype.tune = function tune(o) { + _Tunable.prototype.tune.call(this, o); + // update shapeModule's size to the max in `then` chain + this._getMaxSizeInChain(); + return this; + }; + /* + Method to create a then record for the module. + @public + @overrides @ Thenable + @param {Object} Options for the next animation. + @returns {Object} this. + */ + + + Shape.prototype.then = function then(o) { + // this._makeTimeline() + _Tunable.prototype.then.call(this, o); + // update shapeModule's size to the max in `then` chain + this._getMaxSizeInChain(); + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to declare variables. + @overrides Thenable + */ + + + Shape.prototype._vars = function _vars() { + // call _vars method on Thenable + _Tunable.prototype._vars.call(this); + this._lastSet = {}; + // save previous module in the chain + this._prevChainModule = this._o.prevChainModule; + // should draw on foreign svg canvas + this.isForeign = !!this._o.ctx; + // this._o.isTimelineLess = true; + // should take an svg element as self bit + return this.isForeignBit = !!this._o.shape; + }; + /* + Method to initialize modules presentation. + @private + @overrides Module + */ + + + Shape.prototype._render = function _render() { + if (!this._isRendered && !this._isChained) { + // create `mojs` shape element + this.el = document.createElement('div'); + // set name on the `el` + this.el.setAttribute('data-name', 'mojs-shape'); + // set class on the `el` + this.el.setAttribute('class', this._props.className); + // create shape module + this._createShape(); + // append `el` to parent + this._props.parent.appendChild(this.el); + // set position styles on the el + this._setElStyles(); + // set initial position for the first module in the chain + this._setProgress(0, 0); + // show at start if `isShowStart` + if (this._props.isShowStart) { + this._show(); + } else { + this._hide(); + } + // set `_isRendered` hatch + this._isRendered = true; + } else if (this._isChained) { + // save elements from master module + this.el = this._masterModule.el; + this.shapeModule = this._masterModule.shapeModule; + } + + return this; + }; + /* + Method to set el styles on initialization. + @private + */ + + + Shape.prototype._setElStyles = function _setElStyles() { + if (!this.el) { + return; + } + // if (!this.isForeign) { + var p = this._props, + style = this.el.style, + width = p.shapeWidth, + height = p.shapeHeight; + + style.position = 'absolute'; + this._setElSizeStyles(width, height); + + if (p.isForce3d) { + var name = 'backface-visibility'; + style['' + name] = 'hidden'; + style['' + h.prefix.css + name] = 'hidden'; + } + // } + }; + /* + Method to set `width`/`height`/`margins` to the `el` styles. + @param {Number} Width. + @param {height} Height. + */ + + + Shape.prototype._setElSizeStyles = function _setElSizeStyles(width, height) { + var style = this.el.style; + style.width = width + 'px'; + style.height = height + 'px'; + style['margin-left'] = -width / 2 + 'px'; + style['margin-top'] = -height / 2 + 'px'; + }; + /* + Method to draw shape. + @private + */ + + + Shape.prototype._draw = function _draw() { + if (!this.shapeModule) { + return; + } + + var p = this._props, + bP = this.shapeModule._props; + // set props on bit + // bP.x = this._origin.x; + // bP.y = this._origin.y; + bP.rx = p.rx; + bP.ry = p.ry; + bP.stroke = p.stroke; + bP['stroke-width'] = p.strokeWidth; + bP['stroke-opacity'] = p.strokeOpacity; + bP['stroke-dasharray'] = p.strokeDasharray; + bP['stroke-dashoffset'] = p.strokeDashoffset; + bP['stroke-linecap'] = p.strokeLinecap; + bP['fill'] = p.fill; + bP['fill-opacity'] = p.fillOpacity; + bP.radius = p.radius; + bP.radiusX = p.radiusX; + bP.radiusY = p.radiusY; + bP.points = p.points; + + this.shapeModule._draw(); + this._drawEl(); + }; + /* + Method to set current modules props to main div el. + @private + */ + + + Shape.prototype._drawEl = function _drawEl() { + // return; + if (this.el == null) { + return true; + } + var p = this._props; + var style = this.el.style; + + // style.opacity = p.opacity; + this._isPropChanged('opacity') && (style.opacity = p.opacity); + if (!this.isForeign) { + this._isPropChanged('left') && (style.left = p.left); + this._isPropChanged('top') && (style.top = p.top); + + var isX = this._isPropChanged('x'), + isY = this._isPropChanged('y'), + isTranslate = isX || isY, + isScaleX = this._isPropChanged('scaleX'), + isScaleY = this._isPropChanged('scaleY'), + isScale = this._isPropChanged('scale'), + isScale = isScale || isScaleX || isScaleY, + isRotate = this._isPropChanged('angle'); + + if (isTranslate || isScale || isRotate) { + var transform = this._fillTransform(); + style[h.prefix.css + 'transform'] = transform; + style['transform'] = transform; + } + + if (this._isPropChanged('origin') || this._deltas['origin']) { + var origin = this._fillOrigin(); + style[h.prefix.css + 'transform-origin'] = origin; + style['transform-origin'] = origin; + } + } + }; + /* + Method to check if property changed after the latest check. + @private + @param {String} Name of the property to check. + @returns {Boolean} + */ + + + Shape.prototype._isPropChanged = function _isPropChanged(name) { + // if there is no recod for the property - create it + if (this._lastSet[name] == null) { + this._lastSet[name] = {}; + } + if (this._lastSet[name].value !== this._props[name]) { + this._lastSet[name].value = this._props[name]; + return true; + } else { + return false; + } + }; + /* + Method to tune new option on run. + @private + @override @ Module + @param {Object} Option to tune on run. + */ + + + Shape.prototype._tuneNewOptions = function _tuneNewOptions(o) { + // call super on Module + _Tunable.prototype._tuneNewOptions.call(this, o); + // return if empty object + if (!(o != null && (0, _keys2.default)(o).length)) { + return 1; + } + + // this._calcSize(); + this._setElStyles(); + }; + /* + Method to get max radiusX value. + @private + @param {String} Radius name. + */ + + + Shape.prototype._getMaxRadius = function _getMaxRadius(name) { + var selfSize, selfSizeX; + selfSize = this._getRadiusSize('radius'); + return this._getRadiusSize(name, selfSize); + }; + /* + Method to increase calculated size based on easing. + @private + */ + + + Shape.prototype._increaseSizeWithEasing = function _increaseSizeWithEasing() { + var p = this._props, + easing = this._o.easing, + isStringEasing = easing && typeof easing === 'string'; + + switch (isStringEasing && easing.toLowerCase()) { + case 'elastic.out': + case 'elastic.inout': + p.size *= 1.25; + break; + case 'back.out': + case 'back.inout': + p.size *= 1.1; + } + }; + /* + Method to increase calculated size based on bit ratio. + @private + */ + // _increaseSizeWithBitRatio () { + // var p = this._props; + // // p.size *= this.shape._props.ratio; + // p.size += 2 * p.sizeGap; + // } + /* + Method to get maximum radius size with optional fallback. + @private + @param {Object} + @param key {String} Name of the radius - [radius|radiusX|radiusY]. + @param @optional fallback {Number} Optional number to set if there + is no value for the key. + */ + + + Shape.prototype._getRadiusSize = function _getRadiusSize(name) { + var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + var delta = this._deltas[name]; + // if value is delta value + if (delta != null) { + // get maximum number between start and end values of the delta + return Math.max(Math.abs(delta.end), Math.abs(delta.start)); + } else if (this._props[name] != null) { + // else get the value from props object + return parseFloat(this._props[name]); + } else { + return fallback; + } + }; + /* + Method to get max shape canvas size and save it to _props. + @private + */ + + + Shape.prototype._getShapeSize = function _getShapeSize() { + var p = this._props, + + // get maximum stroke value + stroke = this._getMaxStroke(); + // save shape `width` and `height` to `_props` + p.shapeWidth = p.width != null ? p.width : 2 * this._getMaxRadius('radiusX') + stroke; + + p.shapeHeight = p.height != null ? p.height : 2 * this._getMaxRadius('radiusY') + stroke; + }; + /* + Method to create shape. + @private + */ + + + Shape.prototype._createShape = function _createShape() { + // calculate max shape canvas size and set to _props + this._getShapeSize(); + // don't create actual shape if !`isWithShape` + if (!this._props.isWithShape) { + return; + } + + var p = this._props; + // get shape's class + var Shape = shapesMap.getShape(this._props.shape); + // create `_shape` module + this.shapeModule = new Shape({ + width: p.shapeWidth, + height: p.shapeHeight, + parent: this.el + }); + }; + /* + Method to get max size in `then` chain + @private + */ + + + Shape.prototype._getMaxSizeInChain = function _getMaxSizeInChain() { + var p = this._props, + maxW = 0, + maxH = 0; + + for (var i = 0; i < this._modules.length; i++) { + this._modules[i]._getShapeSize(); + maxW = Math.max(maxW, this._modules[i]._props.shapeWidth); + maxH = Math.max(maxH, this._modules[i]._props.shapeHeight); + } + + this.shapeModule && this.shapeModule._setSize(maxW, maxH); + this._setElSizeStyles(maxW, maxH); + }; + /* + Method to get max value of the strokeWidth. + @private + */ + + + Shape.prototype._getMaxStroke = function _getMaxStroke() { + var p = this._props; + var dStroke = this._deltas['strokeWidth']; + return dStroke != null ? Math.max(dStroke.start, dStroke.end) : p.strokeWidth; + }; + /* + Method to draw current progress of the deltas. + @private + @override @ Module + @param {Number} EasedProgress to set - [0..1]. + @param {Number} Progress to set - [0..1]. + */ + + + Shape.prototype._setProgress = function _setProgress(easedProgress, progress) { + // call the super on Module + _module2.default.prototype._setProgress.call(this, easedProgress, progress); + // draw current progress + this._draw(easedProgress); + }; + /* + Method to add callback overrides to passed object. + @private + @param {Object} Object to add the overrides to. + */ + + + Shape.prototype._applyCallbackOverrides = function _applyCallbackOverrides(obj) { + var it = this, + p = this._props; + // specify control functions for the module + obj.callbackOverrides = { + onUpdate: function onUpdate(ep, p) { + return it._setProgress(ep, p); + }, + onStart: function onStart(isFwd) { + // don't touch main `el` onStart in chained elements + if (it._isChained) { + return; + }; + if (isFwd) { + it._show(); + } else { + if (!p.isShowStart) { + it._hide(); + } + } + }, + onComplete: function onComplete(isFwd) { + // don't touch main `el` if not the last in `then` chain + if (!it._isLastInChain()) { + return; + } + if (isFwd) { + if (!p.isShowEnd) { + it._hide(); + } + } else { + it._show(); + } + }, + onRefresh: function onRefresh(isBefore) { + p.isRefreshState && isBefore && it._refreshBefore(); + } + }; + }; + /* + Method to setup tween and timeline options before creating them. + @override @ Tweenable + @private + */ + + + Shape.prototype._transformTweenOptions = function _transformTweenOptions() { + this._applyCallbackOverrides(this._o); + }; + /* + Method to create transform string. + @private + @returns {String} Transform string. + */ + + + Shape.prototype._fillTransform = function _fillTransform() { + var p = this._props, + scaleX = p.scaleX != null ? p.scaleX : p.scale, + scaleY = p.scaleY != null ? p.scaleY : p.scale, + scale = scaleX + ', ' + scaleY; + return 'translate(' + p.x + ', ' + p.y + ') rotate(' + p.angle + 'deg) scale(' + scale + ')'; + }; + /* + Method to create transform-origin string. + @private + @returns {String} Transform string. + */ + + + Shape.prototype._fillOrigin = function _fillOrigin() { + var p = this._props, + str = ''; + for (var i = 0; i < p.origin.length; i++) { + str += p.origin[i].string + ' '; + } + return str; + }; + /* + Method to refresh state befor startTime. + @private + */ + + + Shape.prototype._refreshBefore = function _refreshBefore() { + // call setProgress with eased and normal progress + this._setProgress(this.tween._props.easing(0), 0); + + if (this._props.isShowStart) { + this._show(); + } else { + this._hide(); + } + }; + /* + Method that gets called on `soft` show of the module, + it should restore transform styles of the module. + @private + @overrides @ Module + */ + + + Shape.prototype._showByTransform = function _showByTransform() { + // reset the cache of the scale prop + this._lastSet.scale = null; + // draw el accroding to it's props + this._drawEl(); + }; + + return Shape; + }(_tunable2.default); + + exports.default = Shape; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(96), __esModule: true }; + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(97); + module.exports = __webpack_require__(14).Object.keys; + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 Object.keys(O) + var toObject = __webpack_require__(49) + , $keys = __webpack_require__(33); + + __webpack_require__(98)('keys', function(){ + return function keys(it){ + return $keys(toObject(it)); + }; + }); + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + + // most Object methods by ES6 should accept primitives + var $export = __webpack_require__(12) + , core = __webpack_require__(14) + , fails = __webpack_require__(23); + module.exports = function(KEY, exec){ + var fn = (core.Object || {})[KEY] || Object[KEY] + , exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); + }; + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _tweenable = __webpack_require__(100); + + var _tweenable2 = _interopRequireDefault(_tweenable); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + The Thenable class adds .then public method and + the ability to chain API calls. + */ + var Thenable = function (_Tweenable) { + (0, _inherits3.default)(Thenable, _Tweenable); + + function Thenable() { + (0, _classCallCheck3.default)(this, Thenable); + return (0, _possibleConstructorReturn3.default)(this, _Tweenable.apply(this, arguments)); + } + + /* + Method to create a then record for the module. + @public + @param {Object} Options for the next animation. + @returns {Object} this. + */ + Thenable.prototype.then = function then(o) { + // return if nothing was passed + if (o == null || !(0, _keys2.default)(o).length) { + return 1; + } + // merge then options with the current ones + var prevRecord = this._history[this._history.length - 1], + prevModule = this._modules[this._modules.length - 1], + merged = this._mergeThenOptions(prevRecord, o); + + this._resetMergedFlags(merged); + // create a submodule of the same type as the master module + var module = new this.constructor(merged); + // set `this` as amster module of child module + module._masterModule = this; + // save the modules to the _modules array + this._modules.push(module); + // add module's tween into master timeline + this.timeline.append(module); + + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to reset some flags on merged options object. + @private + @param {Object} Options object. + @returns {Object} Options object. + */ + + + Thenable.prototype._resetMergedFlags = function _resetMergedFlags(obj) { + // set the submodule to be without timeline for perf reasons + obj.isTimelineLess = true; + // reset isShowStart flag for the submodules + obj.isShowStart = false; + // reset isRefreshState flag for the submodules + obj.isRefreshState = false; + // set the submodule callbacks context + obj.callbacksContext = this._props.callbacksContext || this; + // set previous module + obj.prevChainModule = _h2.default.getLastItem(this._modules); + // pass the `this` as master module + obj.masterModule = this; + return obj; + }; + /* + Method to initialize properties. + @private + */ + + + Thenable.prototype._vars = function _vars() { + _Tweenable.prototype._vars.call(this); + // save _master module + this._masterModule = this._o.masterModule; + // set isChained flag based on prevChainModule option + this._isChained = !!this._masterModule; + // we are expect that the _o object + // have been already extended by defaults + var initialRecord = _h2.default.cloneObj(this._props); + for (var key in this._arrayPropertyMap) { + if (this._o[key]) { + var preParsed = this._parsePreArrayProperty(key, this._o[key]); + initialRecord[key] = preParsed; + } + } + + this._history = [initialRecord]; + // the array holds all modules in the then chain + this._modules = [this]; + // the props that to exclude from then merge + this._nonMergeProps = { shape: 1 }; + }; + /* + Method to merge two options into one. Used in .then chains. + @private + @param {Object} Start options for the merge. + @param {Object} End options for the merge. + @returns {Object} Merged options. + */ + + + Thenable.prototype._mergeThenOptions = function _mergeThenOptions(start, end) { + var o = {}; + this._mergeStartLoop(o, start); + this._mergeEndLoop(o, start, end); + this._history.push(o); + return o; + }; + /* + Method to pipe startValue of the delta. + @private + @param {String} Start property name. + @param {Any} Start property value. + @returns {Any} Start property value. + */ + + + Thenable.prototype._checkStartValue = function _checkStartValue(name, value) { + return value; + }; + /* + Originally part of the _mergeThenOptions. + Loops thru start object and copies all the props from it. + @param {Object} An object to copy in. + @parma {Object} Start options object. + */ + + + Thenable.prototype._mergeStartLoop = function _mergeStartLoop(o, start) { + // loop thru start options object + for (var key in start) { + var value = start[key]; + if (start[key] == null) { + continue; + }; + // copy all values from start if not tween prop or duration + if (!_h2.default.isTweenProp(key) || key === 'duration') { + // if delta - copy only the end value + if (this._isDelta(value)) { + o[key] = _h2.default.getDeltaEnd(value); + } else { + o[key] = value; + } + } + } + }; + /* + Originally part of the _mergeThenOptions. + Loops thru start object and merges all the props from it. + @param {Object} An object to copy in. + @parma {Object} Start options object. + @parma {Object} End options object. + */ + + + Thenable.prototype._mergeEndLoop = function _mergeEndLoop(o, start, end) { + var endKeys = (0, _keys2.default)(end); + + for (var key in end) { + // just copy parent option + if (key == 'parent') { + o[key] = end[key];continue; + }; + + // get key/value of the end object + // endKey - name of the property, endValue - value of the property + var endValue = end[key], + startValue = start[key] != null ? start[key] : this._defaults[key]; + + startValue = this._checkStartValue(key, startValue); + if (endValue == null) { + continue; + }; + // make ∆ of start -> end + // if key name is radiusX/radiusY and + // the startValue is not set fallback to radius value + var isSubRadius = key === 'radiusX' || key === 'radiusY'; + if (isSubRadius && startValue == null) { + startValue = start.radius; + } + + var isSubRadius = key === 'scaleX' || key === 'scaleY'; + if (isSubRadius && startValue == null) { + startValue = start.scale; + } + + o[key] = this._mergeThenProperty(key, startValue, endValue); + } + }; + /* + Method to merge `start` and `end` for a property in then record. + @private + @param {String} Property name. + @param {Any} Start value of the property. + @param {Any} End value of the property. + */ + + + Thenable.prototype._mergeThenProperty = function _mergeThenProperty(key, startValue, endValue) { + // if isnt tween property + var isBoolean = typeof endValue === 'boolean', + curve, + easing; + + if (!_h2.default.isTweenProp(key) && !this._nonMergeProps[key] && !isBoolean) { + + if (_h2.default.isObject(endValue) && endValue.to != null) { + curve = endValue.curve; + easing = endValue.easing; + endValue = endValue.to; + } + + // if end value is delta - just save it + if (this._isDelta(endValue)) { + return this._parseDeltaValues(key, endValue); + } else { + var parsedEndValue = this._parsePreArrayProperty(key, endValue); + // if end value is not delta - merge with start value + if (this._isDelta(startValue)) { + var _ref; + + // if start value is delta - take the end value + // as start value of the new delta + return _ref = {}, _ref[_h2.default.getDeltaEnd(startValue)] = parsedEndValue, _ref.easing = easing, _ref.curve = curve, _ref; + // if both start and end value are not ∆ - make ∆ + } else { + var _ref2; + + return _ref2 = {}, _ref2[startValue] = parsedEndValue, _ref2.easing = easing, _ref2.curve = curve, _ref2; + } + } + // copy the tween values unattended + } else { + return endValue; + } + }; + /* + Method to retreive array's length and return -1 for + all other types. + @private + @param {Array, Any} Array to get the width for. + @returns {Number} Array length or -1 if not array. + */ + + + Thenable.prototype._getArrayLength = function _getArrayLength(arr) { + return _h2.default.isArray(arr) ? arr.length : -1; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Thenable.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = _h2.default.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || _h2.default.isArray(optionsValue) || _h2.default.isDOM(optionsValue)); + }; + /* + Method to check if the module is first in `then` chain. + @private + @returns {Boolean} If the module is the first in module chain. + */ + + + Thenable.prototype._isFirstInChain = function _isFirstInChain() { + return !this._masterModule; + }; + /* + Method to check if the module is last in `then` chain. + @private + @returns {Boolean} If the module is the last in module chain. + */ + + + Thenable.prototype._isLastInChain = function _isLastInChain() { + var master = this._masterModule; + // if there is no master field - check the modules length + // if module length is 1 thus there is no modules chain + // it is the last one, otherwise it isnt + if (!master) { + return this._modules.length === 1; + } + // if there is master - check if it is the last item in _modules chain + return this === _h2.default.getLastItem(master._modules); + }; + + return Thenable; + }(_tweenable2.default); + + exports.default = Thenable; + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Class to define a module ancestor + with timeline and tween options and functionality. + All runable modules should inherit from this class. + + @class Tweenable + */ + var Tweenable = function (_Module) { + (0, _inherits3.default)(Tweenable, _Module); + + /* + `play` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + Tweenable.prototype.play = function play() { + this.timeline.play.apply(this.timeline, arguments); + return this; + }; + /* + `playBackward` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + + + Tweenable.prototype.playBackward = function playBackward() { + this.timeline.playBackward.apply(this.timeline, arguments); + return this; + }; + /* + `pause` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.pause = function pause() { + this.timeline.pause.apply(this.timeline, arguments); + return this; + }; + /* + `stop` method for the timeline. + @public + @param {Number} [0...1] Progress to set on stop. + *Default* is `0` if `play` + and `1` if `playBAckward`. + @returns this. + */ + + + Tweenable.prototype.stop = function stop() { + this.timeline.stop.apply(this.timeline, arguments); + return this; + }; + /* + `reset` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.reset = function reset() { + this.timeline.reset.apply(this.timeline, arguments); + return this; + }; + /* + `replay` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.replay = function replay() { + this.timeline.replay.apply(this.timeline, arguments); + return this; + }; + /* + `replay` method for the timeline. + @public + @returns this. + */ + + + Tweenable.prototype.replayBackward = function replayBackward() { + this.timeline.replayBackward.apply(this.timeline, arguments); + return this; + }; + /* + `resume` method for the timeline. + @public + @param {Number} Time shift. + @returns this. + */ + + + Tweenable.prototype.resume = function resume() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.timeline.resume.apply(this.timeline, arguments); + return this; + }; + /* + `setProgress` method for the timeline. + @public + @param {Number} [0...1] Progress value. + @returns this. + */ + + + Tweenable.prototype.setProgress = function setProgress() { + this.timeline.setProgress.apply(this.timeline, arguments); + return this; + }; + /* + setSpeed method for the timeline. + @param {Number} Speed value. + @returns this. + */ + + + Tweenable.prototype.setSpeed = function setSpeed(speed) { + this.timeline.setSpeed.apply(this.timeline, arguments); + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + function Tweenable() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Tweenable); + + // pipe function for _o object + // before creating tween/timeline + var _this = (0, _possibleConstructorReturn3.default)(this, _Module.call(this, o)); + // super of Module + + + _this._transformTweenOptions(); + // make tween only if isTweenLess option is not set + !_this._o.isTweenLess && _this._makeTween(); + // make timeline only if isTimelineLess option is not set + !_this._o.isTimelineLess && _this._makeTimeline(); + return _this; + } + /* + Placeholder method that should be overrided + and will be called before tween/timeline creation. + @private + */ + + + Tweenable.prototype._transformTweenOptions = function _transformTweenOptions() {}; + /* + Method to create tween. + @private + */ + + + Tweenable.prototype._makeTween = function _makeTween() { + // pass callbacks context + this._o.callbacksContext = this._o.callbacksContext || this; + this.tween = new _tween2.default(this._o); + // make timeline property point to tween one is "no timeline" mode + this._o.isTimelineLess && (this.timeline = this.tween); + }; + /* + Method to create timeline. + @private + @param {Object} Timeline's options. + An object which contains "timeline" property with + timeline options. + */ + + + Tweenable.prototype._makeTimeline = function _makeTimeline() { + // pass callbacks context + this._o.timeline = this._o.timeline || {}; + this._o.timeline.callbacksContext = this._o.callbacksContext || this; + this.timeline = new _timeline2.default(this._o.timeline); + // set the flag to indicate that real timeline is present + this._isTimeline = true; + // if tween exist - add it to the timeline there is some + // modules like burst and stagger that have no tween + this.tween && this.timeline.add(this.tween); + }; + + return Tweenable; + }(_module2.default); + + exports.default = Tweenable; + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _easing = __webpack_require__(105); + + var _easing2 = _interopRequireDefault(_easing); + + var _module = __webpack_require__(84); + + var _module2 = _interopRequireDefault(_module); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // import h from '../h'; + var Tween = function (_Module) { + (0, _inherits3.default)(Tween, _Module); + + /* + Method do declare defaults with this._defaults object. + @private + */ + Tween.prototype._declareDefaults = function _declareDefaults() { + // DEFAULTS + this._defaults = { + /* duration of the tween [0..∞] */ + duration: 350, + /* delay of the tween [-∞..∞] */ + delay: 0, + /* repeat of the tween [0..∞], means how much to + repeat the tween regardless first run, + for instance repeat: 2 will make the tween run 3 times */ + repeat: 0, + /* speed of playback [0..∞], speed that is less then 1 + will slowdown playback, for instance .5 will make tween + run 2x slower. Speed of 2 will speedup the tween to 2x. */ + speed: 1, + /* flip onUpdate's progress on each even period. + note that callbacks order won't flip at least + for now (under consideration). */ + isYoyo: false, + /* easing for the tween, could be any easing type [link to easing-types.md] */ + easing: 'Sin.Out', + /* + Easing for backward direction of the tweenthe tween, + if `null` - fallbacks to `easing` property. + forward direction in `yoyo` period is treated as backward for the easing. + */ + backwardEasing: null, + /* custom tween's name */ + name: null, + /* custom tween's base name */ + nameBase: 'Tween', + /* + onProgress callback runs before any other callback. + @param {Number} The entire, not eased, progress + of the tween regarding repeat option. + @param {Boolean} The direction of the tween. + `true` for forward direction. + `false` for backward direction(tween runs in reverse). + */ + onProgress: null, + /* + onStart callback runs on very start of the tween just after onProgress + one. Runs on very end of the tween if tween is reversed. + @param {Boolean} Direction of the tween. + `true` for forward direction. + `false` for backward direction(tween runs in reverse). + */ + onStart: null, + onRefresh: null, + onComplete: null, + onRepeatStart: null, + onRepeatComplete: null, + onFirstUpdate: null, + onUpdate: null, + isChained: false, + // playback callbacks + onPlaybackStart: null, + onPlaybackPause: null, + onPlaybackStop: null, + onPlaybackComplete: null, + // context which all callbacks will be called with + callbacksContext: null + }; + }; + /* + API method to play the Tween. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.play = function play() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state === 'play' && this._isRunning) { + return this; + } + this._props.isReversed = false; + this._subPlay(shift, 'play'); + this._setPlaybackState('play'); + return this; + }; + /* + API method to play the Tween in reverse. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.playBackward = function playBackward() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state === 'reverse' && this._isRunning) { + return this; + } + this._props.isReversed = true; + this._subPlay(shift, 'reverse'); + this._setPlaybackState('reverse'); + return this; + }; + /* + API method to pause Tween. + @public + @returns {Object} Self. + */ + + + Tween.prototype.pause = function pause() { + if (this._state === 'pause' || this._state === 'stop') { + return this; + } + this._removeFromTweener(); + this._setPlaybackState('pause'); + return this; + }; + /* + API method to stop the Tween. + @public + @param {Number} Progress [0..1] to set when stopped. + @returns {Object} Self. + */ + + + Tween.prototype.stop = function stop(progress) { + if (this._state === 'stop') { + return this; + } + + this._wasUknownUpdate = undefined; + + var stopProc = progress != null ? progress + /* if no progress passsed - set 1 if tween + is playingBackward, otherwise set to 0 */ + : this._state === 'reverse' ? 1 : 0; + + this.setProgress(stopProc); + + this.reset(); + return this; + }; + /* + API method to replay(restart) the Tween. + @public + @param {Number} Shift time in milliseconds. + @returns {Object} Self. + */ + + + Tween.prototype.replay = function replay() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.reset(); + this.play(shift); + return this; + }; + /* + API method to replay(restart) backward the Tween. + @public + @param {Number} Shift time in milliseconds. + @returns {Object} Self. + */ + + + Tween.prototype.replayBackward = function replayBackward() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + this.reset(); + this.playBackward(shift); + return this; + }; + /* + API method to resume the Tween. + @public + @param {Number} Shift time in milliseconds. + @return {Object} Self. + */ + + + Tween.prototype.resume = function resume() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this._state !== 'pause') { + return this; + } + + switch (this._prevState) { + case 'play': + this.play(shift); + break; + case 'reverse': + this.playBackward(shift); + break; + } + + return this; + }; + /* + API method to set progress on tween. + @public + @param {Number} Progress to set. + @returns {Object} Self. + */ + + + Tween.prototype.setProgress = function setProgress(progress) { + var p = this._props; + // set start time if there is no one yet. + !p.startTime && this._setStartTime(); + // reset play time + this._playTime = null; + // progress should be in range of [0..1] + progress < 0 && (progress = 0); + progress > 1 && (progress = 1); + // update self with calculated time + this._update(p.startTime - p.delay + progress * p.repeatTime); + return this; + }; + /* + Method to set tween's speed. + @public + @param {Number} Speed value. + @returns this. + */ + + + Tween.prototype.setSpeed = function setSpeed(speed) { + this._props.speed = speed; + // if playing - normalize _startTime and _prevTime to the current point. + if (this._state === 'play' || this._state === 'reverse') { + this._setResumeTime(this._state); + } + return this; + }; + /* + Method to reset tween's state and properties. + @public + @returns this. + */ + + + Tween.prototype.reset = function reset() { + this._removeFromTweener(); + this._setPlaybackState('stop'); + this._progressTime = 0; + this._isCompleted = false; + this._isStarted = false; + this._isFirstUpdate = false; + this._wasUknownUpdate = undefined; + this._prevTime = undefined; + this._prevYoyo = undefined; + // this._props.startTime = undefined; + this._props.isReversed = false; + return this; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to launch play. Used as launch + method for bothplay and reverse methods. + @private + @param {Number} Shift time in milliseconds. + @param {String} Play or reverse state. + @return {Object} Self. + */ + + + Tween.prototype._subPlay = function _subPlay() { + var shift = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var state = arguments[1]; + + var resumeTime, + startTime, + p = this._props, + + // check if direction of playback changes, + // if so, the _progressTime needs to be flipped + _state = this._state, + _prevState = this._prevState, + isPause = _state === 'pause', + wasPlay = _state === 'play' || isPause && _prevState === 'play', + wasReverse = _state === 'reverse' || isPause && _prevState === 'reverse', + isFlip = wasPlay && state === 'reverse' || wasReverse && state === 'play'; + + // if tween was ended, set progress to 0 if not, set to elapsed progress + this._progressTime = this._progressTime >= p.repeatTime ? 0 : this._progressTime; + // flip the _progressTime if playback direction changed + if (isFlip) { + this._progressTime = p.repeatTime - this._progressTime; + } + // set resume time and normalize prev/start times + this._setResumeTime(state, shift); + // add self to tweener = play + _tweener2.default.add(this); + return this; + }; + /* + Method to set _resumeTime, _startTime and _prevTime. + @private + @param {String} Current state. [play, reverse] + @param {Number} Time shift. *Default* is 0. + */ + + + Tween.prototype._setResumeTime = function _setResumeTime(state) { + var shift = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + + // get current moment as resume time + this._resumeTime = performance.now(); + // set start time regarding passed `shift` and `procTime` + var startTime = this._resumeTime - Math.abs(shift) - this._progressTime; + this._setStartTime(startTime, false); + // if we have prevTime - we need to normalize + // it for the current resume time + if (this._prevTime != null) { + this._prevTime = state === 'play' ? this._normPrevTimeForward() : this._props.endTime - this._progressTime; + } + }; + /* + Method recalculate _prevTime for forward direction. + @private + @return {Number} Normalized prev time. + */ + + + Tween.prototype._normPrevTimeForward = function _normPrevTimeForward() { + var p = this._props; + return p.startTime + this._progressTime - p.delay; + }; + /* + Constructor of the class. + @private + */ + + + function Tween() { + var _ret; + + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Tween); + + var _this = (0, _possibleConstructorReturn3.default)(this, _Module.call(this, o)); + + _this._props.name == null && _this._setSelfName(); + return _ret = _this, (0, _possibleConstructorReturn3.default)(_this, _ret); + } + /* + Method to set self name to generic one. + @private + */ + + + Tween.prototype._setSelfName = function _setSelfName() { + var globalName = '_' + this._props.nameBase + 's'; + // track amount of tweens globally + _tweener2.default[globalName] = _tweener2.default[globalName] == null ? 1 : ++_tweener2.default[globalName]; + // and set generic tween's name || Tween # || + this._props.name = this._props.nameBase + ' ' + _tweener2.default[globalName]; + }; + /* + Method set playback state string. + @private + @param {String} State name + */ + + + Tween.prototype._setPlaybackState = function _setPlaybackState(state) { + // save previous state + this._prevState = this._state; + this._state = state; + + // callbacks + var wasPause = this._prevState === 'pause', + wasStop = this._prevState === 'stop', + wasPlay = this._prevState === 'play', + wasReverse = this._prevState === 'reverse', + wasPlaying = wasPlay || wasReverse, + wasStill = wasStop || wasPause; + + if ((state === 'play' || state === 'reverse') && wasStill) { + this._playbackStart(); + } + if (state === 'pause' && wasPlaying) { + this._playbackPause(); + } + if (state === 'stop' && (wasPlaying || wasPause)) { + this._playbackStop(); + } + }; + /* + Method to declare some vars. + @private + */ + + + Tween.prototype._vars = function _vars() { + this.progress = 0; + this._prevTime = undefined; + this._progressTime = 0; + this._negativeShift = 0; + this._state = 'stop'; + // if negative delay was specified, + // save it to _negativeShift property and + // reset it back to 0 + if (this._props.delay < 0) { + this._negativeShift = this._props.delay; + this._props.delay = 0; + } + + return this._calcDimentions(); + }; + /* + Method to calculate tween's dimentions. + @private + */ + + + Tween.prototype._calcDimentions = function _calcDimentions() { + this._props.time = this._props.duration + this._props.delay; + this._props.repeatTime = this._props.time * (this._props.repeat + 1); + }; + /* + Method to extend defaults by options and put them in _props. + @private + */ + + + Tween.prototype._extendDefaults = function _extendDefaults() { + // save callback overrides object with fallback to empty one + this._callbackOverrides = this._o.callbackOverrides || {}; + delete this._o.callbackOverrides; + // call the _extendDefaults @ Module + _Module.prototype._extendDefaults.call(this); + + var p = this._props; + p.easing = _easing2.default.parseEasing(p.easing); + p.easing._parent = this; + + // parse only present backward easing to prevent parsing as `linear.none` + // because we need to fallback to `easing` in `_setProgress` method + if (p.backwardEasing != null) { + p.backwardEasing = _easing2.default.parseEasing(p.backwardEasing); + p.backwardEasing._parent = this; + } + }; + /* + Method for setting start and end time to props. + @private + @param {Number(Timestamp)}, {Null} Start time. + @param {Boolean} Should reset flags. + @returns this + */ + + + Tween.prototype._setStartTime = function _setStartTime(time) { + var isResetFlags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var p = this._props, + shiftTime = p.shiftTime || 0; + // reset flags + if (isResetFlags) { + this._isCompleted = false;this._isRepeatCompleted = false; + this._isStarted = false; + } + // set start time to passed time or to the current moment + var startTime = time == null ? performance.now() : time; + // calculate bounds + // - negativeShift is negative delay in options hash + // - shift time is shift of the parent + p.startTime = startTime + p.delay + this._negativeShift + shiftTime; + p.endTime = p.startTime + p.repeatTime - p.delay; + // set play time to the startTimes + // if playback controls are used - use _resumeTime as play time, + // else use shifted startTime -- shift is needed for timelines append chains + this._playTime = this._resumeTime != null ? this._resumeTime : startTime + shiftTime; + this._resumeTime = null; + + return this; + }; + /* + Method to update tween's progress. + @private + @param {Number} Current update time. + -- next params only present when parent Timeline calls the method. + @param {Number} Previous Timeline's update time. + @param {Boolean} Was parent in yoyo period. + @param {Number} [-1, 0, 1] If update is on edge. + -1 = edge jump in negative direction. + 0 = no edge jump. + 1 = edge jump in positive direction. + */ + + + Tween.prototype._update = function _update(time, timelinePrevTime, wasYoyo, onEdge) { + var p = this._props; + // if we don't the _prevTime thus the direction we are heading to, + // but prevTime was passed thus we are child of a Timeline + // set _prevTime to passed one and pretent that there was unknown + // update to not to block start/complete callbacks + if (this._prevTime == null && timelinePrevTime != null) { + + if (this._props.speed && this._playTime) { + // play point + ( speed * delta ) + this._prevTime = this._playTime + this._props.speed * (timelinePrevTime - this._playTime); + } + // this._prevTime = timelinePrevTime; + this._wasUknownUpdate = true; + } + + // var before = time; + // cache vars + var startPoint = p.startTime - p.delay; + // if speed param was defined - calculate + // new time regarding speed + if (p.speed && this._playTime) { + // play point + ( speed * delta ) + time = this._playTime + p.speed * (time - this._playTime); + } + + // due to javascript precision issues, after speed mapping + // we can get very close number that was made from progress of 1 + // and in fact represents `endTime` if so, set the time to `endTime` + if (Math.abs(p.endTime - time) < 0.00000001) { + time = p.endTime; + } + + // if parent is onEdge but not very start nor very end + if (onEdge && wasYoyo != null) { + var T = this._getPeriod(time), + isYoyo = !!(p.isYoyo && this._props.repeat && T % 2 === 1); + + // for timeline + // notify children about edge jump + if (this._timelines) { + for (var i = 0; i < this._timelines.length; i++) { + this._timelines[i]._update(time, timelinePrevTime, wasYoyo, onEdge); + } + } + // forward edge direction + if (onEdge === 1) { + // jumped from yoyo period? + if (wasYoyo) { + this._prevTime = time + 1; + this._repeatStart(time, isYoyo); + this._start(time, isYoyo); + } else { + this._prevTime = time - 1; + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } + // backward edge direction + } else if (onEdge === -1) { + // jumped from yoyo period? + if (wasYoyo) { + this._prevTime = time - 1; + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } else { + // call _start callbacks only if prev time was in active area + // not always true for append chains + if (this._prevTime >= p.startTime && this._prevTime <= p.endTime) { + this._prevTime = time + 1; + this._repeatStart(time, isYoyo); + this._start(time, isYoyo); + // reset isCOmpleted immediately to prevent onComplete cb + this._isCompleted = true; + } + } + } + // reset the _prevTime - drop one frame to undestand + // where we are heading + this._prevTime = undefined; + } + // if in active area and not ended - save progress time + // for pause/play purposes. + if (time > startPoint && time < p.endTime) { + this._progressTime = time - startPoint; + } + // else if not started or ended set progress time to 0 + else if (time <= startPoint) { + this._progressTime = 0; + } else if (time >= p.endTime) { + // set progress time to repeat time + tiny cofficient + // to make it extend further than the end time + this._progressTime = p.repeatTime + .00000000001; + } + // reverse time if _props.isReversed is set + if (p.isReversed) { + time = p.endTime - this._progressTime; + } + // We need to know what direction we are heading to, + // so if we don't have the previous update value - this is very first + // update, - skip it entirely and wait for the next value + if (this._prevTime == null) { + this._prevTime = time; + this._wasUknownUpdate = true; + return false; + } + + // ====== AFTER SKIPPED FRAME ====== + + // handle onProgress callback + if (time >= startPoint && time <= p.endTime) { + this._progress((time - startPoint) / p.repeatTime, time); + } + /* + if time is inside the active area of the tween. + active area is the area from start time to end time, + with all the repeat and delays in it + */ + if (time >= p.startTime && time <= p.endTime) { + this._updateInActiveArea(time); + } else { + // if was in active area - update in inactive area but just once - + // right after the active area + if (this._isInActiveArea) { + this._updateInInactiveArea(time); + } else if (!this._isRefreshed) { + // onRefresh callback + // before startTime + if (time < p.startTime && this.progress !== 0) { + this._refresh(true); + this._isRefreshed = true; + // after endTime + } + // else if ( time > p.endTime ) { } + } + } + + this._prevTime = time; + return time >= p.endTime || time <= startPoint; + }; + /* + Method to handle tween's progress in inactive area. + @private + @param {Number} Current update time. + */ + + + Tween.prototype._updateInInactiveArea = function _updateInInactiveArea(time) { + if (!this._isInActiveArea) { + return; + } + var p = this._props; + // complete if time is larger then end time + if (time > p.endTime && !this._isCompleted) { + this._progress(1, time); + // get period number + var T = this._getPeriod(p.endTime), + isYoyo = p.isYoyo && T % 2 === 0; + + this._setProgress(isYoyo ? 0 : 1, time, isYoyo); + this._repeatComplete(time, isYoyo); + this._complete(time, isYoyo); + } + // if was active and went to - inactive area "-" + if (time < this._prevTime && time < p.startTime && !this._isStarted && !this._isCompleted) { + // if was in active area and didn't fire onStart callback + this._progress(0, time, false); + this._setProgress(0, time, false); + this._isRepeatStart = false; + this._repeatStart(time, false); + this._start(time, false); + } + this._isInActiveArea = false; + }; + /* + Method to handle tween's progress in active area. + @private + @param {Number} Current update time. + */ + + + Tween.prototype._updateInActiveArea = function _updateInActiveArea(time) { + + var props = this._props, + delayDuration = props.delay + props.duration, + startPoint = props.startTime - props.delay, + elapsed = (time - props.startTime + props.delay) % delayDuration, + TCount = Math.round((props.endTime - props.startTime + props.delay) / delayDuration), + T = this._getPeriod(time), + TValue = this._delayT, + prevT = this._getPeriod(this._prevTime), + TPrevValue = this._delayT; + + // "zero" and "one" value regarding yoyo and it's period + var isYoyo = props.isYoyo && T % 2 === 1, + isYoyoPrev = props.isYoyo && prevT % 2 === 1, + yoyoZero = isYoyo ? 1 : 0, + yoyoOne = 1 - yoyoZero; + + if (time === props.endTime) { + this._wasUknownUpdate = false; + // if `time` is equal to `endTime`, T represents the next period, + // so we need to decrement T and calculate "one" value regarding yoyo + var isYoyo = props.isYoyo && (T - 1) % 2 === 1; + this._setProgress(isYoyo ? 0 : 1, time, isYoyo); + if (time > this._prevTime) { + this._isRepeatCompleted = false; + } + this._repeatComplete(time, isYoyo); + return this._complete(time, isYoyo); + } + + // reset callback flags + this._isCompleted = false; + this._isRefreshed = false; + // if time is inside the duration area of the tween + if (startPoint + elapsed >= props.startTime) { + this._isInActiveArea = true;this._isRepeatCompleted = false; + this._isRepeatStart = false;this._isStarted = false; + // active zone or larger then end + var elapsed2 = (time - props.startTime) % delayDuration, + proc = elapsed2 / props.duration; + // |=====|=====|=====| >>> + // ^1^2 + var isOnEdge = T > 0 && prevT < T; + // |=====|=====|=====| <<< + // ^2^1 + var isOnReverseEdge = prevT > T; + + // for use in timeline + this._onEdge = 0; + isOnEdge && (this._onEdge = 1); + isOnReverseEdge && (this._onEdge = -1); + + if (this._wasUknownUpdate) { + if (time > this._prevTime) { + this._start(time, isYoyo); + this._repeatStart(time, isYoyo); + this._firstUpdate(time, isYoyo); + } + // if backward direction and + // if ( time < this._prevTime && time !== this._props.startTime ) { + if (time < this._prevTime) { + this._complete(time, isYoyo); + this._repeatComplete(time, isYoyo); + this._firstUpdate(time, isYoyo); + // reset isCompleted immediately + this._isCompleted = false; + } + } + + if (isOnEdge) { + // if not just after delay + // |---=====|---=====|---=====| >>> + // ^1 ^2 + // because we have already handled + // 1 and onRepeatComplete in delay gap + if (this.progress !== 1) { + // prevT + var isThisYoyo = props.isYoyo && (T - 1) % 2 === 1; + this._repeatComplete(time, isThisYoyo); + } + // if on edge but not at very start + // |=====|=====|=====| >>> + // ^! ^here ^here + if (prevT >= 0) { + this._repeatStart(time, isYoyo); + } + } + + if (time > this._prevTime) { + // |=====|=====|=====| >>> + // ^1 ^2 + if (!this._isStarted && this._prevTime <= props.startTime) { + this._start(time, isYoyo); + this._repeatStart(time, isYoyo); + // it was zero anyways + + // restart flags immediately in case if we will + // return to '-' inactive area on the next step + this._isStarted = false; + this._isRepeatStart = false; + } + this._firstUpdate(time, isYoyo); + } + + if (isOnReverseEdge) { + // if on edge but not at very end + // |=====|=====|=====| <<< + // ^here ^here ^not here + if (this.progress !== 0 && this.progress !== 1 && prevT != TCount) { + this._repeatStart(time, isYoyoPrev); + } + // if on very end edge + // |=====|=====|=====| <<< + // ^! ^! ^2 ^1 + // we have handled the case in this._wasUknownUpdate + // block so filter that + if (prevT === TCount && !this._wasUknownUpdate) { + this._complete(time, isYoyo); + this._repeatComplete(time, isYoyo); + this._firstUpdate(time, isYoyo); + // reset isComplete flag call + // cuz we returned to active area + // this._isRepeatCompleted = false; + this._isCompleted = false; + } + this._repeatComplete(time, isYoyo); + } + + if (prevT === 'delay') { + // if just before delay gap + // |---=====|---=====|---=====| <<< + // ^2 ^1 + if (T < TPrevValue) { + this._repeatComplete(time, isYoyo); + } + // if just after delay gap + // |---=====|---=====|---=====| >>> + // ^1 ^2 + if (T === TPrevValue && T > 0) { + this._repeatStart(time, isYoyo); + } + } + + // swap progress and repeatStart based on direction + if (time > this._prevTime) { + // if progress is equal 0 and progress grows + if (proc === 0) { + this._repeatStart(time, isYoyo); + } + if (time !== props.endTime) { + this._setProgress(isYoyo ? 1 - proc : proc, time, isYoyo); + } + } else { + if (time !== props.endTime) { + this._setProgress(isYoyo ? 1 - proc : proc, time, isYoyo); + } + // if progress is equal 0 and progress grows + if (proc === 0) { + this._repeatStart(time, isYoyo); + } + } + + if (time === props.startTime) { + this._start(time, isYoyo); + } + // delay gap - react only once + } else if (this._isInActiveArea) { + // because T will be string of "delay" here, + // let's normalize it be setting to TValue + var t = T === 'delay' ? TValue : T, + isGrows = time > this._prevTime; + // decrement period if forward direction of update + isGrows && t--; + // calculate normalized yoyoZero value + yoyoZero = props.isYoyo && t % 2 === 1 ? 1 : 0; + // if was in active area and previous time was larger + // |---=====|---=====|---=====| <<< + // ^2 ^1 ^2 ^1 ^2 ^1 + if (time < this._prevTime) { + this._setProgress(yoyoZero, time, yoyoZero === 1); + this._repeatStart(time, yoyoZero === 1); + } + // set 1 or 0 regarding direction and yoyo + this._setProgress(isGrows ? 1 - yoyoZero : yoyoZero, time, yoyoZero === 1); + // if time grows + if (time > this._prevTime) { + // if reverse direction and in delay gap, then progress will be 0 + // if so we don't need to call the onRepeatComplete callback + // |---=====|---=====|---=====| <<< + // ^0 ^0 ^0 + // OR we have flipped 0 to 1 regarding yoyo option + if (this.progress !== 0 || yoyoZero === 1) { + // since we repeatComplete for previous period + // invert isYoyo option + // is elapsed is 0 - count as previous period + this._repeatComplete(time, yoyoZero === 1); + } + } + // set flag to indicate inactive area + this._isInActiveArea = false; + } + // we've got the first update now + this._wasUknownUpdate = false; + }; + /* + Method to remove the Tween from the tweener. + @private + @returns {Object} Self. + */ + + + Tween.prototype._removeFromTweener = function _removeFromTweener() { + _tweener2.default.remove(this);return this; + }; + /* + Method to get current period number. + @private + @param {Number} Time to get the period for. + @returns {Number} Current period number. + */ + + + Tween.prototype._getPeriod = function _getPeriod(time) { + var p = this._props, + TTime = p.delay + p.duration, + dTime = p.delay + time - p.startTime, + T = dTime / TTime, + + // if time if equal to endTime we need to set the elapsed + // time to 0 to fix the occasional precision js bug, which + // causes 0 to be something like 1e-12 + elapsed = time < p.endTime ? dTime % TTime : 0; + // If the latest period, round the result, otherwise floor it. + // Basically we always can floor the result, but because of js + // precision issues, sometimes the result is 2.99999998 which + // will result in 2 instead of 3 after the floor operation. + T = time >= p.endTime ? Math.round(T) : Math.floor(T); + // if time is larger then the end time + if (time > p.endTime) { + // set equal to the periods count + T = Math.round((p.endTime - p.startTime + p.delay) / TTime); + // if in delay gap, set _delayT to current + // period number and return "delay" + } else if (elapsed > 0 && elapsed < p.delay) { + this._delayT = T;T = 'delay'; + } + // if the end of period and there is a delay + return T; + }; + /* + Method to set Tween's progress and call onUpdate callback. + @private + @override @ Module + @param {Number} Progress to set. + @param {Number} Current update time. + @param {Boolean} Is yoyo perido. Used in Timeline to pass to Tween. + @returns {Object} Self. + */ + + + Tween.prototype._setProgress = function _setProgress(proc, time, isYoyo) { + var p = this._props, + isYoyoChanged = p.wasYoyo !== isYoyo, + isForward = time > this._prevTime; + + this.progress = proc; + // get the current easing for `forward` direction regarding `yoyo` + if (isForward && !isYoyo || !isForward && isYoyo) { + this.easedProgress = p.easing(proc); + // get the current easing for `backward` direction regarding `yoyo` + } else if (!isForward && !isYoyo || isForward && isYoyo) { + var easing = p.backwardEasing != null ? p.backwardEasing : p.easing; + + this.easedProgress = easing(proc); + } + + if (p.prevEasedProgress !== this.easedProgress || isYoyoChanged) { + if (p.onUpdate != null && typeof p.onUpdate === 'function') { + p.onUpdate.call(p.callbacksContext || this, this.easedProgress, this.progress, isForward, isYoyo); + } + } + p.prevEasedProgress = this.easedProgress; + p.wasYoyo = isYoyo; + return this; + }; + /* + Method to set tween's state to start and call onStart callback. + @method _start + @private + @param {Number} Progress to set. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._start = function _start(time, isYoyo) { + if (this._isStarted) { + return; + } + var p = this._props; + if (p.onStart != null && typeof p.onStart === 'function') { + p.onStart.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isCompleted = false;this._isStarted = true; + this._isFirstUpdate = false; + }; + /* + Method to call onPlaybackStart callback + @private + */ + + + Tween.prototype._playbackStart = function _playbackStart() { + var p = this._props; + if (p.onPlaybackStart != null && typeof p.onPlaybackStart === 'function') { + p.onPlaybackStart.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackPause callback + @private + */ + + + Tween.prototype._playbackPause = function _playbackPause() { + var p = this._props; + if (p.onPlaybackPause != null && typeof p.onPlaybackPause === 'function') { + p.onPlaybackPause.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackStop callback + @private + */ + + + Tween.prototype._playbackStop = function _playbackStop() { + var p = this._props; + if (p.onPlaybackStop != null && typeof p.onPlaybackStop === 'function') { + p.onPlaybackStop.call(p.callbacksContext || this); + } + }; + /* + Method to call onPlaybackComplete callback + @private + */ + + + Tween.prototype._playbackComplete = function _playbackComplete() { + var p = this._props; + if (p.onPlaybackComplete != null && typeof p.onPlaybackComplete === 'function') { + p.onPlaybackComplete.call(p.callbacksContext || this); + } + }; + /* + Method to set tween's state to complete. + @method _complete + @private + @param {Number} Current time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._complete = function _complete(time, isYoyo) { + if (this._isCompleted) { + return; + } + var p = this._props; + if (p.onComplete != null && typeof p.onComplete === 'function') { + p.onComplete.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + + this._isCompleted = true;this._isStarted = false; + this._isFirstUpdate = false; + // reset _prevYoyo for timeline usage + this._prevYoyo = undefined; + }; + + /* + Method to run onFirstUpdate callback. + @method _firstUpdate + @private + @param {Number} Current update time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._firstUpdate = function _firstUpdate(time, isYoyo) { + if (this._isFirstUpdate) { + return; + } + var p = this._props; + if (p.onFirstUpdate != null && typeof p.onFirstUpdate === 'function') { + // onFirstUpdate should have tween pointer + p.onFirstUpdate.tween = this; + p.onFirstUpdate.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isFirstUpdate = true; + }; + /* + Method call onRepeatComplete calback and set flags. + @private + @param {Number} Current update time. + @param {Boolean} Is repeat period. + */ + + + Tween.prototype._repeatComplete = function _repeatComplete(time, isYoyo) { + if (this._isRepeatCompleted) { + return; + } + var p = this._props; + if (p.onRepeatComplete != null && typeof p.onRepeatComplete === 'function') { + p.onRepeatComplete.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isRepeatCompleted = true; + // this._prevYoyo = null; + }; + + /* + Method call onRepeatStart calback and set flags. + @private + @param {Number} Current update time. + @param {Boolean} Is yoyo period. + */ + + + Tween.prototype._repeatStart = function _repeatStart(time, isYoyo) { + if (this._isRepeatStart) { + return; + } + var p = this._props; + if (p.onRepeatStart != null && typeof p.onRepeatStart === 'function') { + p.onRepeatStart.call(p.callbacksContext || this, time > this._prevTime, isYoyo); + } + this._isRepeatStart = true; + }; + /* + Method to launch onProgress callback. + @method _progress + @private + @param {Number} Progress to set. + */ + + + Tween.prototype._progress = function _progress(progress, time) { + var p = this._props; + if (p.onProgress != null && typeof p.onProgress === 'function') { + p.onProgress.call(p.callbacksContext || this, progress, time > this._prevTime); + } + }; + /* + Method to launch onRefresh callback. + @method _refresh + @private + @param {Boolean} If refresh even before start time. + */ + + + Tween.prototype._refresh = function _refresh(isBefore) { + var p = this._props; + if (p.onRefresh != null) { + var context = p.callbacksContext || this, + progress = isBefore ? 0 : 1; + + p.onRefresh.call(context, isBefore, p.easing(progress), progress); + } + }; + /* + Method which is called when the tween is removed from tweener. + @private + */ + + + Tween.prototype._onTweenerRemove = function _onTweenerRemove() {}; + /* + Method which is called when the tween is removed + from tweener when finished. + @private + */ + + + Tween.prototype._onTweenerFinish = function _onTweenerFinish() { + this._setPlaybackState('stop'); + this._playbackComplete(); + }; + /* + Method to set property[s] on Tween. + @private + @override @ Module + @param {Object, String} Hash object of key/value pairs, or property name. + @param {_} Property's value to set. + */ + + + Tween.prototype._setProp = function _setProp(obj, value) { + _Module.prototype._setProp.call(this, obj, value); + this._calcDimentions(); + }; + /* + Method to set single property. + @private + @override @ Module + @param {String} Name of the property. + @param {Any} Value for the property. + */ + + + Tween.prototype._assignProp = function _assignProp(key, value) { + // fallback to defaults + if (value == null) { + value = this._defaults[key]; + } + // parse easing + if (key === 'easing') { + value = _easing2.default.parseEasing(value); + value._parent = this; + } + // handle control callbacks overrides + var control = this._callbackOverrides[key], + isntOverriden = !value || !value.isMojsCallbackOverride; + if (control && isntOverriden) { + value = this._overrideCallback(value, control); + } + // call super on Module + _Module.prototype._assignProp.call(this, key, value); + }; + /* + Method to override callback for controll pupropes. + @private + @param {String} Callback name. + @parma {Function} Method to call + */ + + + Tween.prototype._overrideCallback = function _overrideCallback(callback, fun) { + var isCallback = callback && typeof callback === 'function', + override = function callbackOverride() { + // call overriden callback if it exists + isCallback && callback.apply(this, arguments); + // call the passed cleanup function + fun.apply(this, arguments); + }; + // add overridden flag + override.isMojsCallbackOverride = true; + return override; + }; + + // _visualizeProgress(time) { + // var str = '|', + // procStr = ' ', + // p = this._props, + // proc = p.startTime - p.delay; + + // while ( proc < p.endTime ) { + // if (p.delay > 0 ) { + // var newProc = proc + p.delay; + // if ( time > proc && time < newProc ) { + // procStr += ' ^ '; + // } else { + // procStr += ' '; + // } + // proc = newProc; + // str += '---'; + // } + // var newProc = proc + p.duration; + // if ( time > proc && time < newProc ) { + // procStr += ' ^ '; + // } else if (time === proc) { + // procStr += '^ '; + // } else if (time === newProc) { + // procStr += ' ^ '; + // } else { + // procStr += ' '; + // } + // proc = newProc; + // str += '=====|'; + // } + + // console.log(str); + // console.log(procStr); + // } + + + return Tween; + }(_module2.default); + + exports.default = Tween; + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + __webpack_require__(103); + + __webpack_require__(104); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Tweener = function () { + function Tweener() { + (0, _classCallCheck3.default)(this, Tweener); + + this._vars(); + this._listenVisibilityChange(); + return this; + } + + Tweener.prototype._vars = function _vars() { + this.tweens = []; + this._savedTweens = []; + this._loop = this._loop.bind(this); + this._onVisibilityChange = this._onVisibilityChange.bind(this); + }; + /* + Main animation loop. Should have only one concurrent loop. + @private + @returns this + */ + + + Tweener.prototype._loop = function _loop() { + if (!this._isRunning) { + return false; + } + this._update(window.performance.now()); + if (!this.tweens.length) { + return this._isRunning = false; + } + requestAnimationFrame(this._loop); + return this; + }; + /* + Method to start animation loop. + @private + */ + + + Tweener.prototype._startLoop = function _startLoop() { + if (this._isRunning) { + return; + };this._isRunning = true; + requestAnimationFrame(this._loop); + }; + /* + Method to stop animation loop. + @private + */ + + + Tweener.prototype._stopLoop = function _stopLoop() { + this._isRunning = false; + }; + /* + Method to update every tween/timeline on animation frame. + @private + */ + + + Tweener.prototype._update = function _update(time) { + var i = this.tweens.length; + while (i--) { + // cache the current tween + var tween = this.tweens[i]; + if (tween && tween._update(time) === true) { + this.remove(tween); + tween._onTweenerFinish(); + tween._prevTime = undefined; + } + } + }; + /* + Method to add a Tween/Timeline to loop pool. + @param {Object} Tween/Timeline to add. + */ + + + Tweener.prototype.add = function add(tween) { + // return if tween is already running + if (tween._isRunning) { + return; + } + tween._isRunning = true; + this.tweens.push(tween); + this._startLoop(); + }; + /* + Method stop updating all the child tweens/timelines. + @private + */ + + + Tweener.prototype.removeAll = function removeAll() { + this.tweens.length = 0; + }; + /* + Method to remove specific tween/timeline form updating. + @private + */ + + + Tweener.prototype.remove = function remove(tween) { + var index = typeof tween === 'number' ? tween : this.tweens.indexOf(tween); + + if (index !== -1) { + tween = this.tweens[index]; + if (tween) { + tween._isRunning = false; + this.tweens.splice(index, 1); + tween._onTweenerRemove(); + } + } + }; + + /* + Method to initialize event listeners to visibility change events. + @private + */ + + + Tweener.prototype._listenVisibilityChange = function _listenVisibilityChange() { + if (typeof document.hidden !== "undefined") { + this._visibilityHidden = "hidden"; + this._visibilityChange = "visibilitychange"; + } else if (typeof document.mozHidden !== "undefined") { + this._visibilityHidden = "mozHidden"; + this._visibilityChange = "mozvisibilitychange"; + } else if (typeof document.msHidden !== "undefined") { + this._visibilityHidden = "msHidden"; + this._visibilityChange = "msvisibilitychange"; + } else if (typeof document.webkitHidden !== "undefined") { + this._visibilityHidden = "webkitHidden"; + this._visibilityChange = "webkitvisibilitychange"; + } + + document.addEventListener(this._visibilityChange, this._onVisibilityChange, false); + }; + /* + Method that will fire on visibility change. + */ + + + Tweener.prototype._onVisibilityChange = function _onVisibilityChange() { + if (document[this._visibilityHidden]) { + this._savePlayingTweens(); + } else { + this._restorePlayingTweens(); + } + }; + /* + Method to save all playing tweens. + @private + */ + + + Tweener.prototype._savePlayingTweens = function _savePlayingTweens() { + this._savedTweens = this.tweens.slice(0); + for (var i = 0; i < this._savedTweens.length; i++) { + this._savedTweens[i].pause(); + } + }; + /* + Method to restore all playing tweens. + @private + */ + + + Tweener.prototype._restorePlayingTweens = function _restorePlayingTweens() { + for (var i = 0; i < this._savedTweens.length; i++) { + this._savedTweens[i].resume(); + } + }; + + return Tweener; + }(); + + var t = new Tweener(); + exports.default = t; + +/***/ }), +/* 103 */ +/***/ (function(module, exports) { + + + /* istanbul ignore next */ + (function() { + 'use strict'; + var cancel, i, isOldBrowser, lastTime, vendors, vp, w; + vendors = ['webkit', 'moz']; + i = 0; + w = window; + while (i < vendors.length && !w.requestAnimationFrame) { + vp = vendors[i]; + w.requestAnimationFrame = w[vp + 'RequestAnimationFrame']; + cancel = w[vp + 'CancelAnimationFrame']; + w.cancelAnimationFrame = cancel || w[vp + 'CancelRequestAnimationFrame']; + ++i; + } + isOldBrowser = !w.requestAnimationFrame || !w.cancelAnimationFrame; + if (/iP(ad|hone|od).*OS 6/.test(w.navigator.userAgent) || isOldBrowser) { + lastTime = 0; + w.requestAnimationFrame = function(callback) { + var nextTime, now; + now = Date.now(); + nextTime = Math.max(lastTime + 16, now); + return setTimeout((function() { + callback(lastTime = nextTime); + }), nextTime - now); + }; + w.cancelAnimationFrame = clearTimeout; + } + })(); + + +/***/ }), +/* 104 */ +/***/ (function(module, exports) { + + + /* istanbul ignore next */ + (function(root) { + var offset, ref, ref1; + if (root.performance == null) { + root.performance = {}; + } + Date.now = Date.now || function() { + return (new Date).getTime(); + }; + if (root.performance.now == null) { + offset = ((ref = root.performance) != null ? (ref1 = ref.timing) != null ? ref1.navigationStart : void 0 : void 0) ? performance.timing.navigationStart : Date.now(); + return root.performance.now = function() { + return Date.now() - offset; + }; + } + })(window); + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + + var Easing, PI, PathEasing, approximate, bezier, easing, h, mix, sin; + + bezier = __webpack_require__(106); + + PathEasing = __webpack_require__(107); + + mix = __webpack_require__(108); + + h = __webpack_require__(71); + + approximate = __webpack_require__(109)["default"] || __webpack_require__(109); + + sin = Math.sin; + + PI = Math.PI; + + Easing = (function() { + function Easing() {} + + Easing.prototype.bezier = bezier; + + Easing.prototype.PathEasing = PathEasing; + + Easing.prototype.path = (new PathEasing('creator')).create; + + Easing.prototype.approximate = approximate; + + Easing.prototype.inverse = function(p) { + return 1 - p; + }; + + Easing.prototype.linear = { + none: function(k) { + return k; + } + }; + + Easing.prototype.ease = { + "in": bezier.apply(Easing, [0.42, 0, 1, 1]), + out: bezier.apply(Easing, [0, 0, 0.58, 1]), + inout: bezier.apply(Easing, [0.42, 0, 0.58, 1]) + }; + + Easing.prototype.sin = { + "in": function(k) { + return 1 - Math.cos(k * PI / 2); + }, + out: function(k) { + return sin(k * PI / 2); + }, + inout: function(k) { + return 0.5 * (1 - Math.cos(PI * k)); + } + }; + + Easing.prototype.quad = { + "in": function(k) { + return k * k; + }, + out: function(k) { + return k * (2 - k); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k; + } + return -0.5 * (--k * (k - 2) - 1); + } + }; + + Easing.prototype.cubic = { + "in": function(k) { + return k * k * k; + }, + out: function(k) { + return --k * k * k + 1; + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k; + } + return 0.5 * ((k -= 2) * k * k + 2); + } + }; + + Easing.prototype.quart = { + "in": function(k) { + return k * k * k * k; + }, + out: function(k) { + return 1 - (--k * k * k * k); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k; + } + return -0.5 * ((k -= 2) * k * k * k - 2); + } + }; + + Easing.prototype.quint = { + "in": function(k) { + return k * k * k * k * k; + }, + out: function(k) { + return --k * k * k * k * k + 1; + }, + inout: function(k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k * k; + } + return 0.5 * ((k -= 2) * k * k * k * k + 2); + } + }; + + Easing.prototype.expo = { + "in": function(k) { + if (k === 0) { + return 0; + } else { + return Math.pow(1024, k - 1); + } + }, + out: function(k) { + if (k === 1) { + return 1; + } else { + return 1 - Math.pow(2, -10 * k); + } + }, + inout: function(k) { + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + if ((k *= 2) < 1) { + return 0.5 * Math.pow(1024, k - 1); + } + return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); + } + }; + + Easing.prototype.circ = { + "in": function(k) { + return 1 - Math.sqrt(1 - k * k); + }, + out: function(k) { + return Math.sqrt(1 - (--k * k)); + }, + inout: function(k) { + if ((k *= 2) < 1) { + return -0.5 * (Math.sqrt(1 - k * k) - 1); + } + return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); + } + }; + + Easing.prototype.back = { + "in": function(k) { + var s; + s = 1.70158; + return k * k * ((s + 1) * k - s); + }, + out: function(k) { + var s; + s = 1.70158; + return --k * k * ((s + 1) * k + s) + 1; + }, + inout: function(k) { + var s; + s = 1.70158 * 1.525; + if ((k *= 2) < 1) { + return 0.5 * (k * k * ((s + 1) * k - s)); + } + return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); + } + }; + + Easing.prototype.elastic = { + "in": function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + }, + out: function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; + }, + inout: function(k) { + var a, p, s; + s = void 0; + p = 0.4; + if (k === 0) { + return 0; + } + if (k === 1) { + return 1; + } + a = 1; + s = p / 4; + if ((k *= 2) < 1) { + return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + } + return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; + } + }; + + Easing.prototype.bounce = { + "in": function(k) { + return 1 - easing.bounce.out(1 - k); + }, + out: function(k) { + if (k < (1 / 2.75)) { + return 7.5625 * k * k; + } else if (k < (2 / 2.75)) { + return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; + } else if (k < (2.5 / 2.75)) { + return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; + } else { + return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; + } + }, + inout: function(k) { + if (k < 0.5) { + return easing.bounce["in"](k * 2) * 0.5; + } + return easing.bounce.out(k * 2 - 1) * 0.5 + 0.5; + } + }; + + Easing.prototype.parseEasing = function(easing) { + var easingParent, type; + if (easing == null) { + easing = 'linear.none'; + } + type = typeof easing; + if (type === 'string') { + if (easing.charAt(0).toLowerCase() === 'm') { + return this.path(easing); + } else { + easing = this._splitEasing(easing); + easingParent = this[easing[0]]; + if (!easingParent) { + h.error("Easing with name \"" + easing[0] + "\" was not found, fallback to \"linear.none\" instead"); + return this['linear']['none']; + } + return easingParent[easing[1]]; + } + } + if (h.isArray(easing)) { + return this.bezier.apply(this, easing); + } + if ('function') { + return easing; + } + }; + + Easing.prototype._splitEasing = function(string) { + var firstPart, secondPart, split; + if (typeof string === 'function') { + return string; + } + if (typeof string === 'string' && string.length) { + split = string.split('.'); + firstPart = split[0].toLowerCase() || 'linear'; + secondPart = split[1].toLowerCase() || 'none'; + return [firstPart, secondPart]; + } else { + return ['linear', 'none']; + } + }; + + return Easing; + + })(); + + easing = new Easing; + + easing.mix = mix(easing); + + module.exports = easing; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {var BezierEasing, bezierEasing, h, + indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + h = __webpack_require__(71); + + + /** + * Copyright (c) 2014 Gaëtan Renaudeau http://goo.gl/El3k7u + * Adopted from https://github.com/gre/bezier-easing + */ + + BezierEasing = (function() { + function BezierEasing(o) { + this.vars(); + return this.generate; + } + + BezierEasing.prototype.vars = function() { + return this.generate = h.bind(this.generate, this); + }; + + BezierEasing.prototype.generate = function(mX1, mY1, mX2, mY2) { + var A, B, C, NEWTON_ITERATIONS, NEWTON_MIN_SLOPE, SUBDIVISION_MAX_ITERATIONS, SUBDIVISION_PRECISION, _precomputed, arg, binarySubdivide, calcBezier, calcSampleValues, f, float32ArraySupported, getSlope, getTForX, i, j, kSampleStepSize, kSplineTableSize, mSampleValues, newtonRaphsonIterate, precompute, str; + if (arguments.length < 4) { + return this.error('Bezier function expects 4 arguments'); + } + for (i = j = 0; j < 4; i = ++j) { + arg = arguments[i]; + if (typeof arg !== "number" || isNaN(arg) || !isFinite(arg)) { + return this.error('Bezier function expects 4 arguments'); + } + } + if (mX1 < 0 || mX1 > 1 || mX2 < 0 || mX2 > 1) { + return this.error('Bezier x values should be > 0 and < 1'); + } + NEWTON_ITERATIONS = 4; + NEWTON_MIN_SLOPE = 0.001; + SUBDIVISION_PRECISION = 0.0000001; + SUBDIVISION_MAX_ITERATIONS = 10; + kSplineTableSize = 11; + kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); + float32ArraySupported = indexOf.call(global, 'Float32Array') >= 0; + A = function(aA1, aA2) { + return 1.0 - 3.0 * aA2 + 3.0 * aA1; + }; + B = function(aA1, aA2) { + return 3.0 * aA2 - 6.0 * aA1; + }; + C = function(aA1) { + return 3.0 * aA1; + }; + calcBezier = function(aT, aA1, aA2) { + return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; + }; + getSlope = function(aT, aA1, aA2) { + return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); + }; + newtonRaphsonIterate = function(aX, aGuessT) { + var currentSlope, currentX; + i = 0; + while (i < NEWTON_ITERATIONS) { + currentSlope = getSlope(aGuessT, mX1, mX2); + + /* istanbul ignore if */ + if (currentSlope === 0.0) { + return aGuessT; + } + currentX = calcBezier(aGuessT, mX1, mX2) - aX; + aGuessT -= currentX / currentSlope; + ++i; + } + return aGuessT; + }; + calcSampleValues = function() { + i = 0; + while (i < kSplineTableSize) { + mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); + ++i; + } + }; + + /* istanbul ignore next */ + binarySubdivide = function(aX, aA, aB) { + var currentT, currentX, isBig; + currentX = void 0; + currentT = void 0; + i = 0; + while (true) { + currentT = aA + (aB - aA) / 2.0; + currentX = calcBezier(currentT, mX1, mX2) - aX; + if (currentX > 0.0) { + aB = currentT; + } else { + aA = currentT; + } + isBig = Math.abs(currentX) > SUBDIVISION_PRECISION; + if (!(isBig && ++i < SUBDIVISION_MAX_ITERATIONS)) { + break; + } + } + return currentT; + }; + getTForX = function(aX) { + var currentSample, delta, dist, guessForT, initialSlope, intervalStart, lastSample; + intervalStart = 0.0; + currentSample = 1; + lastSample = kSplineTableSize - 1; + while (currentSample !== lastSample && mSampleValues[currentSample] <= aX) { + intervalStart += kSampleStepSize; + ++currentSample; + } + --currentSample; + delta = mSampleValues[currentSample + 1] - mSampleValues[currentSample]; + dist = (aX - mSampleValues[currentSample]) / delta; + guessForT = intervalStart + dist * kSampleStepSize; + initialSlope = getSlope(guessForT, mX1, mX2); + if (initialSlope >= NEWTON_MIN_SLOPE) { + return newtonRaphsonIterate(aX, guessForT); + } else { + + /* istanbul ignore next */ + if (initialSlope === 0.0) { + return guessForT; + } else { + return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize); + } + } + }; + precompute = function() { + var _precomputed; + _precomputed = true; + if (mX1 !== mY1 || mX2 !== mY2) { + return calcSampleValues(); + } + }; + mSampleValues = !float32ArraySupported ? new Array(kSplineTableSize) : new Float32Array(kSplineTableSize); + _precomputed = false; + f = function(aX) { + if (!_precomputed) { + precompute(); + } + if (mX1 === mY1 && mX2 === mY2) { + return aX; + } + if (aX === 0) { + return 0; + } + if (aX === 1) { + return 1; + } + return calcBezier(getTForX(aX), mY1, mY2); + }; + str = "bezier(" + [mX1, mY1, mX2, mY2] + ")"; + f.toStr = function() { + return str; + }; + return f; + }; + + BezierEasing.prototype.error = function(msg) { + return h.error(msg); + }; + + return BezierEasing; + + })(); + + bezierEasing = new BezierEasing; + + module.exports = bezierEasing; + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + + var PathEasing, h; + + h = __webpack_require__(71); + + PathEasing = (function() { + PathEasing.prototype._vars = function() { + this._precompute = h.clamp(this.o.precompute || 1450, 100, 10000); + this._step = 1 / this._precompute; + this._rect = this.o.rect || 100; + this._approximateMax = this.o.approximateMax || 5; + this._eps = this.o.eps || 0.001; + return this._boundsPrevProgress = -1; + }; + + function PathEasing(path, o1) { + this.o = o1 != null ? o1 : {}; + if (path === 'creator') { + return; + } + this.path = h.parsePath(path); + if (this.path == null) { + return h.error('Error while parsing the path'); + } + this._vars(); + this.path.setAttribute('d', this._normalizePath(this.path.getAttribute('d'))); + this.pathLength = this.path.getTotalLength(); + this.sample = h.bind(this.sample, this); + this._hardSample = h.bind(this._hardSample, this); + this._preSample(); + this; + } + + PathEasing.prototype._preSample = function() { + var i, j, length, point, progress, ref, results; + this._samples = []; + results = []; + for (i = j = 0, ref = this._precompute; 0 <= ref ? j <= ref : j >= ref; i = 0 <= ref ? ++j : --j) { + progress = i * this._step; + length = this.pathLength * progress; + point = this.path.getPointAtLength(length); + results.push(this._samples[i] = { + point: point, + length: length, + progress: progress + }); + } + return results; + }; + + PathEasing.prototype._findBounds = function(array, p) { + var buffer, direction, end, i, j, len, loopEnd, pointP, pointX, ref, ref1, start, value; + if (p === this._boundsPrevProgress) { + return this._prevBounds; + } + if (this._boundsStartIndex == null) { + this._boundsStartIndex = 0; + } + len = array.length; + if (this._boundsPrevProgress > p) { + loopEnd = 0; + direction = 'reverse'; + } else { + loopEnd = len; + direction = 'forward'; + } + if (direction === 'forward') { + start = array[0]; + end = array[array.length - 1]; + } else { + start = array[array.length - 1]; + end = array[0]; + } + for (i = j = ref = this._boundsStartIndex, ref1 = loopEnd; ref <= ref1 ? j < ref1 : j > ref1; i = ref <= ref1 ? ++j : --j) { + value = array[i]; + pointX = value.point.x / this._rect; + pointP = p; + if (direction === 'reverse') { + buffer = pointX; + pointX = pointP; + pointP = buffer; + } + if (pointX < pointP) { + start = value; + this._boundsStartIndex = i; + } else { + end = value; + break; + } + } + this._boundsPrevProgress = p; + return this._prevBounds = { + start: start, + end: end + }; + }; + + PathEasing.prototype.sample = function(p) { + var bounds, res; + p = h.clamp(p, 0, 1); + bounds = this._findBounds(this._samples, p); + res = this._checkIfBoundsCloseEnough(p, bounds); + if (res != null) { + return res; + } + return this._findApproximate(p, bounds.start, bounds.end); + }; + + PathEasing.prototype._checkIfBoundsCloseEnough = function(p, bounds) { + var point, y; + point = void 0; + y = this._checkIfPointCloseEnough(p, bounds.start.point); + if (y != null) { + return y; + } + return this._checkIfPointCloseEnough(p, bounds.end.point); + }; + + PathEasing.prototype._checkIfPointCloseEnough = function(p, point) { + if (h.closeEnough(p, point.x / this._rect, this._eps)) { + return this._resolveY(point); + } + }; + + PathEasing.prototype._approximate = function(start, end, p) { + var deltaP, percentP; + deltaP = end.point.x - start.point.x; + percentP = (p - (start.point.x / this._rect)) / (deltaP / this._rect); + return start.length + percentP * (end.length - start.length); + }; + + PathEasing.prototype._findApproximate = function(p, start, end, approximateMax) { + var approximation, args, newPoint, point, x; + if (approximateMax == null) { + approximateMax = this._approximateMax; + } + approximation = this._approximate(start, end, p); + point = this.path.getPointAtLength(approximation); + x = point.x / this._rect; + if (h.closeEnough(p, x, this._eps)) { + return this._resolveY(point); + } else { + if (--approximateMax < 1) { + return this._resolveY(point); + } + newPoint = { + point: point, + length: approximation + }; + args = p < x ? [p, start, newPoint, approximateMax] : [p, newPoint, end, approximateMax]; + return this._findApproximate.apply(this, args); + } + }; + + PathEasing.prototype._resolveY = function(point) { + return 1 - (point.y / this._rect); + }; + + PathEasing.prototype._normalizePath = function(path) { + var commands, endIndex, normalizedPath, points, startIndex, svgCommandsRegexp; + svgCommandsRegexp = /[M|L|H|V|C|S|Q|T|A]/gim; + points = path.split(svgCommandsRegexp); + points.shift(); + commands = path.match(svgCommandsRegexp); + startIndex = 0; + points[startIndex] = this._normalizeSegment(points[startIndex]); + endIndex = points.length - 1; + points[endIndex] = this._normalizeSegment(points[endIndex], this._rect || 100); + return normalizedPath = this._joinNormalizedPath(commands, points); + }; + + PathEasing.prototype._joinNormalizedPath = function(commands, points) { + var command, i, j, len1, normalizedPath, space; + normalizedPath = ''; + for (i = j = 0, len1 = commands.length; j < len1; i = ++j) { + command = commands[i]; + space = i === 0 ? '' : ' '; + normalizedPath += "" + space + command + (points[i].trim()); + } + return normalizedPath; + }; + + PathEasing.prototype._normalizeSegment = function(segment, value) { + var i, j, lastPoint, len1, nRgx, pairs, parsedX, point, space, x; + if (value == null) { + value = 0; + } + segment = segment.trim(); + nRgx = /(-|\+)?((\d+(\.(\d|\e(-|\+)?)+)?)|(\.?(\d|\e|(\-|\+))+))/gim; + pairs = this._getSegmentPairs(segment.match(nRgx)); + lastPoint = pairs[pairs.length - 1]; + x = lastPoint[0]; + parsedX = Number(x); + if (parsedX !== value) { + segment = ''; + lastPoint[0] = value; + for (i = j = 0, len1 = pairs.length; j < len1; i = ++j) { + point = pairs[i]; + space = i === 0 ? '' : ' '; + segment += "" + space + point[0] + "," + point[1]; + } + } + return segment; + }; + + PathEasing.prototype._getSegmentPairs = function(array) { + var i, j, len1, newArray, pair, value; + if (array.length % 2 !== 0) { + h.error('Failed to parse the path - segment pairs are not even.', array); + } + newArray = []; + for (i = j = 0, len1 = array.length; j < len1; i = j += 2) { + value = array[i]; + pair = [array[i], array[i + 1]]; + newArray.push(pair); + } + return newArray; + }; + + PathEasing.prototype.create = function(path, o) { + var handler; + handler = new PathEasing(path, o); + handler.sample.path = handler.path; + return handler.sample; + }; + + return PathEasing; + + })(); + + module.exports = PathEasing; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports) { + + var create, easing, getNearest, mix, parseIfEasing, sort, + slice = [].slice; + + easing = null; + + parseIfEasing = function(item) { + if (typeof item.value === 'number') { + return item.value; + } else { + return easing.parseEasing(item.value); + } + }; + + sort = function(a, b) { + var returnValue; + a.value = parseIfEasing(a); + b.value = parseIfEasing(b); + returnValue = 0; + a.to < b.to && (returnValue = -1); + a.to > b.to && (returnValue = 1); + return returnValue; + }; + + getNearest = function(array, progress) { + var i, index, j, len, value; + index = 0; + for (i = j = 0, len = array.length; j < len; i = ++j) { + value = array[i]; + index = i; + if (value.to > progress) { + break; + } + } + return index; + }; + + mix = function() { + var args; + args = 1 <= arguments.length ? slice.call(arguments, 0) : []; + if (args.length > 1) { + args = args.sort(sort); + } else { + args[0].value = parseIfEasing(args[0]); + } + return function(progress) { + var index, value; + index = getNearest(args, progress); + if (index !== -1) { + value = args[index].value; + if (index === args.length - 1 && progress > args[index].to) { + return 1; + } + if (typeof value === 'function') { + return value(progress); + } else { + return value; + } + } + }; + }; + + create = function(e) { + easing = e; + return mix; + }; + + module.exports = create; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _typeof2 = __webpack_require__(3); + + var _typeof3 = _interopRequireDefault(_typeof2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Method to bootstrap approximation function. + @private + @param {Object} Samples Object. + @returns {Function} Approximate function. + */ + var _proximate = function _proximate(samples) { + var n = samples.base, + samplesAmount = Math.pow(10, n), + samplesStep = 1 / samplesAmount; + + function RoundNumber(input, numberDecimals) { + numberDecimals = +numberDecimals || 0; // +var magic! + + var multiplyer = Math.pow(10.0, numberDecimals); + + return Math.round(input * multiplyer) / multiplyer; + } + + var cached = function cached(p) { + var newKey = RoundNumber(p, n), + sample = samples[newKey.toString()]; + + if (Math.abs(p - newKey) < samplesStep) { + return sample; + } + + if (p > newKey) { + var nextIndex = newKey + samplesStep; + var nextValue = samples[nextIndex]; + } else { + var nextIndex = newKey - samplesStep; + var nextValue = samples[nextIndex]; + } + + var dLength = nextIndex - newKey; + var dValue = nextValue - sample; + if (dValue < samplesStep) { + return sample; + } + + var progressScale = (p - newKey) / dLength; + var coef = nextValue > sample ? -1 : 1; + var scaledDifference = coef * progressScale * dValue; + + return sample + scaledDifference; + }; + + cached.getSamples = function () { + return samples; + }; + + return cached; + }; + /* + Method to take samples of the function and call the _proximate + method with the dunction and samples. Or if samples passed - pipe + them to the _proximate method without sampling. + @private + @param {Function} Function to sample. + @param {Number, Object, String} Precision or precomputed samples. + */ + var _sample = function _sample(fn) { + var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4; + + + var nType = typeof n === 'undefined' ? 'undefined' : (0, _typeof3.default)(n); + + var samples = {}; + if (nType === 'number') { + var p = 0, + samplesCount = Math.pow(10, n), + step = 1 / samplesCount; + + samples[0] = fn(0); + for (var i = 0; i < samplesCount - 1; i++) { + p += step; + + var index = parseFloat(p.toFixed(n)); + samples[index] = fn(p); + } + samples[1] = fn(1); + + samples.base = n; + } else if (nType === 'object') { + samples = n; + } else if (nType === 'string') { + samples = JSON.parse(n); + } + + return Approximate._sample._proximate(samples); + }; + + var Approximate = { _sample: _sample, _proximate: _proximate }; + Approximate._sample._proximate = Approximate._proximate; + + exports.default = Approximate._sample; + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _getIterator2 = __webpack_require__(111); + + var _getIterator3 = _interopRequireDefault(_getIterator2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tweener = __webpack_require__(102); + + var _tweener2 = _interopRequireDefault(_tweener); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Timeline = function (_Tween) { + (0, _inherits3.default)(Timeline, _Tween); + + /* + API method to add child tweens/timelines. + @public + @param {Object, Array} Tween/Timeline or an array of such. + @returns {Object} Self. + */ + Timeline.prototype.add = function add() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + this._pushTimelineArray(args); + this._calcDimentions(); + return this; + }; + /* + API method to append the Tween/Timeline to the end of the + timeline. Each argument is treated as a new append. + Array of tweens is treated as a parallel sequence. + @public + @param {Object, Array} Tween/Timeline to append or array of such. + @returns {Object} Self. + */ + + + Timeline.prototype.append = function append() { + for (var _len2 = arguments.length, timeline = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + timeline[_key2] = arguments[_key2]; + } + + for (var _iterator = timeline, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) { + var _ref; + + if (_isArray) { + if (_i >= _iterator.length) break; + _ref = _iterator[_i++]; + } else { + _i = _iterator.next(); + if (_i.done) break; + _ref = _i.value; + } + + var tm = _ref; + + if (_h2.default.isArray(tm)) { + this._appendTimelineArray(tm); + } else { + this._appendTimeline(tm, this._timelines.length); + } + this._calcDimentions(); + } + return this; + }; + /* + API method to stop the Tween. + @public + @param {Number} Progress [0..1] to set when stopped. + @returns {Object} Self. + */ + + + Timeline.prototype.stop = function stop(progress) { + _Tween.prototype.stop.call(this, progress); + this._stopChildren(progress); + return this; + }; + /* + Method to reset tween's state and properties. + @public + @overrides @ Tween + @returns this. + */ + + + Timeline.prototype.reset = function reset() { + _Tween.prototype.reset.call(this); + this._resetChildren(); + return this; + }; + /* + Method to call `reset` method on all children. + @private + */ + + + Timeline.prototype._resetChildren = function _resetChildren() { + for (var i = 0; i < this._timelines.length; i++) { + this._timelines[i].reset(); + } + }; + /* + Method to call `stop` method on all children. + @private + @param {Number} Progress [0..1] to set when stopped. + */ + + + Timeline.prototype._stopChildren = function _stopChildren(progress) { + for (var i = this._timelines.length - 1; i >= 0; i--) { + this._timelines[i].stop(progress); + } + }; + /* + Method to set tween's state to complete. + @private + @overrides @ Tween + @param {Number} Current time. + @param {Boolean} Is yoyo period. + */ + // _complete ( time, isYoyo ) { + // // this._updateChildren( 1, time, isYoyo ); + // // this._setProgress( 1, time, isYoyo ); + // super._complete( time, isYoyo ); + // // this._resetChildren(); + // } + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to append Tween/Timeline array or mix of such. + @private + @param {Array} Array of Tweens/Timelines. + */ + + + Timeline.prototype._appendTimelineArray = function _appendTimelineArray(timelineArray) { + var i = timelineArray.length, + time = this._props.repeatTime - this._props.delay, + len = this._timelines.length; + + while (i--) { + this._appendTimeline(timelineArray[i], len, time); + } + }; + /* + Method to append a single timeline to the Timeline. + @private + @param {Object} Tween/Timline to append. + @param {Number} Index of the append. + @param {Number} Shift time. + */ + + + Timeline.prototype._appendTimeline = function _appendTimeline(timeline, index, time) { + // if timeline is a module with timeline property then extract it + if (timeline.timeline instanceof Timeline) { + timeline = timeline.timeline; + } + if (timeline.tween instanceof _tween2.default) { + timeline = timeline.tween; + } + + var shift = time != null ? time : this._props.duration; + shift += timeline._props.shiftTime || 0; + timeline.index = index;this._pushTimeline(timeline, shift); + }; + /* + PrivateMethod to push Tween/Timeline array. + @private + @param {Array} Array of Tweens/Timelines. + */ + + + Timeline.prototype._pushTimelineArray = function _pushTimelineArray(array) { + for (var i = 0; i < array.length; i++) { + var tm = array[i]; + // recursive push to handle arrays of arrays + if (_h2.default.isArray(tm)) { + this._pushTimelineArray(tm); + } else { + this._pushTimeline(tm); + } + }; + }; + /* + Method to push a single Tween/Timeline. + @private + @param {Object} Tween or Timeline to push. + @param {Number} Number of milliseconds to shift the start time + of the Tween/Timeline. + */ + + + Timeline.prototype._pushTimeline = function _pushTimeline(timeline, shift) { + // if timeline is a module with timeline property then extract it + if (timeline.timeline instanceof Timeline) { + timeline = timeline.timeline; + } + if (timeline.tween instanceof _tween2.default) { + timeline = timeline.tween; + } + // add self delay to the timeline + shift != null && timeline._setProp({ 'shiftTime': shift }); + this._timelines.push(timeline); + this._recalcDuration(timeline); + }; + /* + Method set progress on self and child Tweens/Timelines. + @private + @param {Number} Progress to set. + @param {Number} Current update time. + */ + + + Timeline.prototype._setProgress = function _setProgress(p, time, isYoyo) { + // we need to pass self previous time to children + // to prevent initial _wasUnknownUpdate nested waterfall + // if not yoyo option set, pass the previous time + // otherwise, pass previous or next time regarding yoyo period. + + // COVER CURRENT SWAPPED ORDER + this._updateChildren(p, time, isYoyo); + + _tween2.default.prototype._setProgress.call(this, p, time); + }; + + Timeline.prototype._updateChildren = function _updateChildren(p, time, isYoyo) { + var coef = time > this._prevTime ? -1 : 1; + if (this._props.isYoyo && isYoyo) { + coef *= -1; + } + var timeToTimelines = this._props.startTime + p * this._props.duration, + prevTimeToTimelines = timeToTimelines + coef, + len = this._timelines.length; + + for (var i = 0; i < len; i++) { + // specify the children's array update loop direction + // if time > prevTime go from 0->length else from length->0 + // var j = ( time > this._prevTime ) ? i : (len-1) - i ; + var j = timeToTimelines > prevTimeToTimelines ? i : len - 1 - i; + this._timelines[j]._update(timeToTimelines, prevTimeToTimelines, this._prevYoyo, this._onEdge); + } + this._prevYoyo = isYoyo; + }; + /* + Method calculate self duration based on timeline's duration. + @private + @param {Object} Tween or Timeline to calculate. + */ + + + Timeline.prototype._recalcDuration = function _recalcDuration(timeline) { + var p = timeline._props, + timelineTime = p.repeatTime / p.speed + (p.shiftTime || 0) + timeline._negativeShift; + + this._props.duration = Math.max(timelineTime, this._props.duration); + }; + /* + Method calculate self duration from skretch. + @private + */ + + + Timeline.prototype._recalcTotalDuration = function _recalcTotalDuration() { + var i = this._timelines.length; + this._props.duration = 0; + while (i--) { + var tm = this._timelines[i]; + // recalc total duration on child timelines + tm._recalcTotalDuration && tm._recalcTotalDuration(); + // add the timeline's duration to selft duration + this._recalcDuration(tm); + } + this._calcDimentions(); + }; + /* + Method set start and end times. + @private + @param {Number, Null} Time to start with. + */ + + + Timeline.prototype._setStartTime = function _setStartTime(time) { + var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + _Tween.prototype._setStartTime.call(this, time); + this._startTimelines(this._props.startTime, isReset); + }; + /* + Method calculate self duration based on timeline's duration. + @private + @param {Number, Null} Time to start with. + */ + + + Timeline.prototype._startTimelines = function _startTimelines(time) { + var isReset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + var p = this._props, + isStop = this._state === 'stop'; + + time == null && (time = this._props.startTime); + + for (var i = 0; i < this._timelines.length; i++) { + var tm = this._timelines[i]; + tm._setStartTime(time, isReset); + // if from `_subPlay` and `_prevTime` is set and state is `stop` + // prevTime normalizing is for play/pause functionality, so no + // need to normalize if the timeline is in `stop` state. + if (!isReset && tm._prevTime != null && !isStop) { + tm._prevTime = tm._normPrevTimeForward(); + } + } + }; + /* + Method to launch onRefresh callback. + @method _refresh + @private + @overrides @ Tween + @param {Boolean} If refresh even before start time. + */ + + + Timeline.prototype._refresh = function _refresh(isBefore) { + var len = this._timelines.length; + for (var i = 0; i < len; i++) { + this._timelines[i]._refresh(isBefore); + } + _Tween.prototype._refresh.call(this, isBefore); + }; + /* + Method do declare defaults by this._defaults object + @private + */ + + + Timeline.prototype._declareDefaults = function _declareDefaults() { + // if duration was passed on initialization stage, warn user and reset it. + if (this._o.duration != null) { + _h2.default.error('Duration can not be declared on Timeline, but "' + this._o.duration + '" is. You probably want to use Tween instead.'); + this._o.duration = 0; + } + _Tween.prototype._declareDefaults.call(this); + // remove default + this._defaults.duration = 0; + this._defaults.easing = 'Linear.None'; + this._defaults.backwardEasing = 'Linear.None'; + this._defaults.nameBase = 'Timeline'; + }; + + function Timeline() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Timeline); + return (0, _possibleConstructorReturn3.default)(this, _Tween.call(this, o)); + } + /* + Method to declare some vars. + @private + */ + + + Timeline.prototype._vars = function _vars() { + this._timelines = []; + _Tween.prototype._vars.call(this); + }; + + return Timeline; + }(_tween2.default); + + exports.default = Timeline; + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(112), __esModule: true }; + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(50); + __webpack_require__(6); + module.exports = __webpack_require__(113); + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(19) + , get = __webpack_require__(114); + module.exports = __webpack_require__(14).getIterator = function(it){ + var iterFn = get(it); + if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!'); + return anObject(iterFn.call(it)); + }; + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + + var classof = __webpack_require__(115) + , ITERATOR = __webpack_require__(47)('iterator') + , Iterators = __webpack_require__(29); + module.exports = __webpack_require__(14).getIteratorMethod = function(it){ + if(it != undefined)return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; + }; + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + + // getting tag from 19.1.3.6 Object.prototype.toString() + var cof = __webpack_require__(37) + , TAG = __webpack_require__(47)('toStringTag') + // ES3 wrong here + , ARG = cof(function(){ return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function(it, key){ + try { + return it[key]; + } catch(e){ /* empty */ } + }; + + module.exports = function(it){ + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; + }; + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Tuneable = function (_Thenable) { + (0, _inherits3.default)(Tuneable, _Thenable); + + function Tuneable() { + (0, _classCallCheck3.default)(this, Tuneable); + return (0, _possibleConstructorReturn3.default)(this, _Thenable.apply(this, arguments)); + } + + /* + Method to start the animation with optional new options. + @public + @param {Object} New options to set on the run. + @returns {Object} this. + */ + Tuneable.prototype.tune = function tune(o) { + // if options object was passed + if (o && (0, _keys2.default)(o).length) { + this._transformHistory(o); + this._tuneNewOptions(o); + // restore array prop values because _props + // contain them as parsed arrays + // but we need the as strings to store in history + // and merge in history chains + this._history[0] = _h2.default.cloneObj(this._props); + for (var key in this._arrayPropertyMap) { + if (o[key] != null) { + this._history[0][key] = this._preparsePropValue(key, o[key]); + } + } + + this._tuneSubModules(); + this._resetTweens(); + } + return this; + }; + /* + Method to regenerate all the random properties form initial object. + @public + @returns this. + */ + + + Tuneable.prototype.generate = function generate() { + return this.tune(this._o); + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to preparse options in object. + @private + @param {Object} Object to preparse properties on. + @returns {Object} Passed object with preparsed props. + */ + // _preParseOptions ( o ) { + // for (var key in o) { + // o[key] = this._preparsePropValue( key, o[key] ); + // } + // return o; + // } + /* + Method to transform history rewrite new options object chain on run. + @private + @param {Object} New options to tune for. + */ + + + Tuneable.prototype._transformHistory = function _transformHistory(o) { + for (var key in o) { + var value = o[key]; + // don't transform for childOptions + // if ( key === 'childOptions' ) { continue; } + this._transformHistoryFor(key, this._preparsePropValue(key, value)); + } + }; + /* + Method to transform history chain for specific key/value. + @param {String} Name of the property to transform history for. + @param {Any} The new property's value. + */ + + + Tuneable.prototype._transformHistoryFor = function _transformHistoryFor(key, value) { + for (var i = 0; i < this._history.length; i++) { + if (value = this._transformHistoryRecord(i, key, value)) { + // break if no further history modifications needed + if (value == null) { + break; + } + } + } + }; + /* + Method to transform history recod with key/value. + @param {Number} Index of the history record to transform. + @param {String} Property name to transform. + @param {Any} Property value to transform to. + @param {Object} Optional the current history record. + @param {Object} Optional the next history record. + @returns {Boolean} Returns true if no further + history modifications is needed. + */ + + + Tuneable.prototype._transformHistoryRecord = function _transformHistoryRecord(index, key, newVal, currRecord, nextRecord) { + // newVal = this._parseProperty( key, newVal ); + if (newVal == null) { + return null; + } + + // fallback to history records, if wasn't specified + currRecord = currRecord == null ? this._history[index] : currRecord; + nextRecord = nextRecord == null ? this._history[index + 1] : nextRecord; + + var oldVal = currRecord[key], + nextVal = nextRecord == null ? null : nextRecord[key]; + + // if index is 0 - always save the newVal + // and return non-delta for subsequent modifications + if (index === 0) { + currRecord[key] = newVal; + // always return on tween properties + if (_h2.default.isTweenProp(key) && key !== 'duration') { + return null; + } + // nontween properties + var isRewriteNext = this._isRewriteNext(oldVal, nextVal), + returnVal = this._isDelta(newVal) ? _h2.default.getDeltaEnd(newVal) : newVal; + return isRewriteNext ? returnVal : null; + } else { + // if was delta and came none-deltta - rewrite + // the start of the delta and stop + if (this._isDelta(oldVal)) { + var _currRecord$key; + + currRecord[key] = (_currRecord$key = {}, _currRecord$key[newVal] = _h2.default.getDeltaEnd(oldVal), _currRecord$key); + return null; + } else { + // if the old value is not delta and the new one is + currRecord[key] = newVal; + // if the next item has the same value - return the + // item for subsequent modifications or stop + return this._isRewriteNext(oldVal, nextVal) ? newVal : null; + } + } + }; + /* + Method to check if the next item should + be rewrited in transform history operation. + @private + @param {Any} Current value. + @param {Any} Next value. + @returns {Boolean} If need to rewrite the next value. + */ + + + Tuneable.prototype._isRewriteNext = function _isRewriteNext(currVal, nextVal) { + // return false if nothing to rewrite next + if (nextVal == null && currVal != null) { + return false; + } + + var isEqual = currVal === nextVal, + isNextDelta = this._isDelta(nextVal), + isDelta = this._isDelta(currVal), + isValueDeltaChain = false, + isDeltaChain = false; + + if (isDelta && isNextDelta) { + if (_h2.default.getDeltaEnd(currVal) == _h2.default.getDeltaStart(nextVal)) { + isDeltaChain = true; + } + } else if (isNextDelta) { + isValueDeltaChain = _h2.default.getDeltaStart(nextVal) === '' + currVal; + } + + return isEqual || isValueDeltaChain || isDeltaChain; + }; + /* + Method to tune new history options to all the submodules. + @private + */ + + + Tuneable.prototype._tuneSubModules = function _tuneSubModules() { + for (var i = 1; i < this._modules.length; i++) { + this._modules[i]._tuneNewOptions(this._history[i]); + } + }; + /* + Method to set new options on run. + @param {Boolean} If foreign context. + @private + */ + + + Tuneable.prototype._resetTweens = function _resetTweens() { + var i = 0, + shift = 0, + tweens = this.timeline._timelines; + + // if `isTimelineLess` return + if (tweens == null) { + return; + } + + for (var i = 0; i < tweens.length; i++) { + var tween = tweens[i], + prevTween = tweens[i - 1]; + + shift += prevTween ? prevTween._props.repeatTime : 0; + this._resetTween(tween, this._history[i], shift); + } + this.timeline._setProp(this._props.timeline); + this.timeline._recalcTotalDuration(); + }; + /* + Method to reset tween with new options. + @param {Object} Tween to reset. + @param {Object} Tween's to reset tween with. + @param {Number} Optional number to shift tween start time. + */ + + + Tuneable.prototype._resetTween = function _resetTween(tween, o) { + var shift = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + + o.shiftTime = shift;tween._setProp(o); + }; + + return Tuneable; + }(_thenable2.default); + + exports.default = Tuneable; + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _shape = __webpack_require__(94); + + var _shape2 = _interopRequireDefault(_shape); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + *TODO:* + --- + - tweak then chains + */ + + var ShapeSwirl = function (_Shape) { + (0, _inherits3.default)(ShapeSwirl, _Shape); + + function ShapeSwirl() { + (0, _classCallCheck3.default)(this, ShapeSwirl); + return (0, _possibleConstructorReturn3.default)(this, _Shape.apply(this, arguments)); + } + + /* + Method to declare _defaults and other default objects. + @private + @override @ Shape + */ + ShapeSwirl.prototype._declareDefaults = function _declareDefaults() { + _Shape.prototype._declareDefaults.call(this); + + /* _DEFAULTS ARE - Shape DEFAULTS + THESE: */ + + /* [boolean] :: If shape should follow sinusoidal path. */ + this._defaults.isSwirl = true; + /* ∆ :: [number > 0] :: Degree size of the sinusoidal path. */ + this._defaults.swirlSize = 10; + /* ∆ :: [number > 0] :: Frequency of the sinusoidal path. */ + this._defaults.swirlFrequency = 3; + /* ∆ :: [number > 0] :: Sinusoidal path length scale. */ + this._defaults.pathScale = 1; + /* ∆ :: [number] :: Degree shift for the sinusoidal path. */ + this._defaults.degreeShift = 0; + /* ∆ :: [number] :: Radius of the shape. */ + this._defaults.radius = 5; + // ∆ :: Units :: Possible values: [ number, string ] + this._defaults.x = 0; + // ∆ :: Units :: Possible values: [ number, string ] + this._defaults.y = 0; + // ∆ :: Possible values: [ number ] + this._defaults.scale = { 1: 0 }; + /* [number: -1, 1] :: Directon of Swirl. */ + this._defaults.direction = 1; + }; + + // ^ PUBLIC METHOD(S) ^ + // v PRIVATE METHOD(S) v + + /* + Method to copy _o options to _props with + fallback to _defaults. + @private + @override @ Module + */ + + + ShapeSwirl.prototype._extendDefaults = function _extendDefaults() { + _Shape.prototype._extendDefaults.call(this); + this._calcPosData(); + }; + /* + Method to tune new oprions to _o and _props object. + @private + @overrides @ Module + @param {Object} Options object to tune to. + */ + + + ShapeSwirl.prototype._tuneNewOptions = function _tuneNewOptions(o) { + if (o == null) { + return; + } + + _Shape.prototype._tuneNewOptions.call(this, o); + if (o.x != null || o.y != null) { + this._calcPosData(); + } + }; + /* + Method to calculate Swirl's position data. + @private + */ + + + ShapeSwirl.prototype._calcPosData = function _calcPosData() { + var x = this._getPosValue('x'), + y = this._getPosValue('y'), + angle = 90 + Math.atan(y.delta / x.delta || 0) * _h2.default.RAD_TO_DEG; + + this._posData = { + radius: Math.sqrt(x.delta * x.delta + y.delta * y.delta), + angle: x.delta < 0 ? angle + 180 : angle, + x: x, y: y + }; + // set the last position to _props + // this._calcSwirlXY( 1 ); + }; + /* + Gets `x` or `y` position value. + @private + @param {String} Name of the property. + */ + + + ShapeSwirl.prototype._getPosValue = function _getPosValue(name) { + var delta = this._deltas[name]; + if (delta) { + // delete from deltas to prevent normal + delete this._deltas[name]; + return { + start: delta.start.value, + end: delta.end.value, + delta: delta.delta, + units: delta.end.unit + }; + } else { + var pos = _h2.default.parseUnit(this._props[name]); + return { start: pos.value, end: pos.value, delta: 0, units: pos.unit }; + } + }; + /* + Method to calculate the progress of the Swirl. + @private + @overrides @ Shape + @param {Numer} Eased progress of the Swirl in range of [0..1] + @param {Numer} Progress of the Swirl in range of [0..1] + */ + + + ShapeSwirl.prototype._setProgress = function _setProgress(easedProgress, progress) { + this._progress = easedProgress; + this._calcCurrentProps(easedProgress, progress); + this._calcSwirlXY(easedProgress); + // this._calcOrigin(); + this._draw(easedProgress); + }; + /* + Method to calculate x/y for Swirl's progress + @private + @mutates _props + @param {Number} Current progress in [0...1] + */ + + + ShapeSwirl.prototype._calcSwirlXY = function _calcSwirlXY(proc) { + var p = this._props, + angle = this._posData.angle + p.degreeShift, + point = _h2.default.getRadialPoint({ + angle: p.isSwirl ? angle + this._getSwirl(proc) : angle, + radius: proc * this._posData.radius * p.pathScale, + center: { + x: this._posData.x.start, + y: this._posData.y.start + } + }); + // if foreign svg canvas - set position without units + var x = point.x, + y = point.y, + smallNumber = 0.000001; + + // remove very small numbers to prevent exponential forms + if (x > 0 && x < smallNumber) { + x = smallNumber; + } + if (y > 0 && y < smallNumber) { + y = smallNumber; + } + if (x < 0 && x > -smallNumber) { + x = -smallNumber; + } + if (y < 0 && y > -smallNumber) { + y = -smallNumber; + } + + p.x = this._o.ctx ? x : '' + x + this._posData.x.units; + p.y = this._o.ctx ? y : '' + y + this._posData.y.units; + }; + /* + Method to get progress of the swirl. + @private + @param {Number} Progress of the Swirl. + @returns {Number} Progress of the swirl. + */ + + + ShapeSwirl.prototype._getSwirl = function _getSwirl(proc) { + var p = this._props; + return p.direction * p.swirlSize * Math.sin(p.swirlFrequency * proc); + }; + /* + Method to draw shape. + If !isWithShape - draw self el only, but not shape. + @private + @overrides @ Shape. + */ + + + ShapeSwirl.prototype._draw = function _draw() { + // call _draw or just _drawEl @ Shape depending if there is `shape` + var methodName = this._props.isWithShape ? '_draw' : '_drawEl'; + _shape2.default.prototype[methodName].call(this); + }; + + return ShapeSwirl; + }(_shape2.default); + + exports.default = ShapeSwirl; + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _shapeSwirl = __webpack_require__(117); + + var _shapeSwirl2 = _interopRequireDefault(_shapeSwirl); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + // import Shape from './shape'; + var Burst = function (_Tunable) { + (0, _inherits3.default)(Burst, _Tunable); + + function Burst() { + (0, _classCallCheck3.default)(this, Burst); + return (0, _possibleConstructorReturn3.default)(this, _Tunable.apply(this, arguments)); + } + + /* + Method to declare defaults. + @override @ ShapeSwirl. + */ + Burst.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + /* [number > 0] :: Quantity of Burst particles. */ + count: 5, + /* [0 < number < 360] :: Degree of the Burst. */ + degree: 360, + /* ∆ :: [number > 0] :: Radius of the Burst. */ + radius: { 0: 50 }, + /* ∆ :: [number > 0] :: X radius of the Burst. */ + radiusX: null, + /* ∆ :: [number > 0] :: Y radius of the Burst. */ + radiusY: null, + /* [number >= 0] :: width of the main swirl. */ + width: 0, + /* [number >= 0] :: height of the main swirl. */ + height: 0 + }; + }; + /* + Method to create a then record for the module. + @public + overrides @ Thenable + @param {Object} Options for the next animation. + @returns {Object} this. + */ + + + Burst.prototype.then = function then(o) { + // remove tween properties (not callbacks) + this._removeTweenProperties(o); + + var newMaster = this._masterThen(o), + newSwirls = this._childThen(o); + + this._setSwirlDuration(newMaster, this._calcPackTime(newSwirls)); + + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to start the animation with optional new options. + @public + @param {Object} New options to set on the run. + @returns {Object} this. + */ + + + Burst.prototype.tune = function tune(o) { + if (o == null) { + return this; + } + // save timeline options to _timelineOptions + // and delete the timeline options on o + // cuz masterSwirl should not get them + this._saveTimelineOptions(o); + + // add new timeline properties to timeline + this.timeline._setProp(this._timelineOptions); + + // remove tween options (not callbacks) + this._removeTweenProperties(o); + + // tune _props + this._tuneNewOptions(o); + + // tune master swirl + this.masterSwirl.tune(o); + + // tune child swirls + this._tuneSwirls(o); + + // recalc time for modules + this._recalcModulesTime(); + return this; + }; + + // ^ PUBLIC METHODS ^ + // v PRIVATE METHODS v + + /* + Method to copy `_o` options to `_props` object + with fallback to `_defaults`. + @private + @overrides @ Module + */ + + + Burst.prototype._extendDefaults = function _extendDefaults() { + // remove tween properties (not callbacks) + this._removeTweenProperties(this._o); + _Tunable.prototype._extendDefaults.call(this); + }; + /* + Method to remove all tween (excluding + callbacks) props from object. + @private + @param {Object} Object which should be cleaned + up from tween properties. + */ + + + Burst.prototype._removeTweenProperties = function _removeTweenProperties(o) { + for (var key in _h2.default.tweenOptionMap) { + // remove all items that are not declared in _defaults + if (this._defaults[key] == null) { + delete o[key]; + } + } + }; + /* + Method to recalc modules chain tween + times after tuning new options. + @private + */ + + + Burst.prototype._recalcModulesTime = function _recalcModulesTime() { + var modules = this.masterSwirl._modules, + swirls = this._swirls, + shiftTime = 0; + + for (var i = 0; i < modules.length; i++) { + var tween = modules[i].tween, + packTime = this._calcPackTime(swirls[i]); + tween._setProp({ 'duration': packTime, 'shiftTime': shiftTime }); + shiftTime += packTime; + } + + this.timeline._recalcTotalDuration(); + }; + /* + Method to tune Swirls with new options. + @private + @param {Object} New options. + */ + + + Burst.prototype._tuneSwirls = function _tuneSwirls(o) { + // get swirls in first pack + var pack0 = this._swirls[0]; + for (var i = 0; i < pack0.length; i++) { + var swirl = pack0[i], + option = this._getChildOption(o || {}, i); + + // since the `degreeShift` participate in + // children position calculations, we need to keep + // the old `degreeShift` value if new not set + var isDegreeShift = option.degreeShift != null; + if (!isDegreeShift) { + option.degreeShift = this._swirls[0][i]._props.degreeShift; + } + + this._addBurstProperties(option, i); + + // after burst position calculation - delete the old `degreeShift` + // from the options, since anyways we have copied it from the swirl + if (!isDegreeShift) { + delete option.degreeShift; + } + + swirl.tune(option); + this._refreshBurstOptions(swirl._modules, i); + } + }; + /* + Method to refresh burst x/y/angle options on further chained + swirls, because they will be overriden after `tune` call on + very first swirl. + @param {Array} Chained modules array + param {Number} Index of the first swirl in the chain. + */ + + + Burst.prototype._refreshBurstOptions = function _refreshBurstOptions(modules, i) { + for (var j = 1; j < modules.length; j++) { + var module = modules[j], + options = {}; + this._addBurstProperties(options, i, j); + module._tuneNewOptions(options); + } + }; + /* + Method to call then on masterSwirl. + @param {Object} Then options. + @returns {Object} New master swirl. + */ + + + Burst.prototype._masterThen = function _masterThen(o) { + this.masterSwirl.then(o); + // get the latest master swirl in then chain + var newMasterSwirl = _h2.default.getLastItem(this.masterSwirl._modules); + // save to masterSwirls + this._masterSwirls.push(newMasterSwirl); + return newMasterSwirl; + }; + /* + Method to call then on child swilrs. + @param {Object} Then options. + @return {Array} Array of new Swirls. + */ + + + Burst.prototype._childThen = function _childThen(o) { + var pack = this._swirls[0], + newPack = []; + + for (var i = 0; i < pack.length; i++) { + // get option by modulus + var options = this._getChildOption(o, i); + var swirl = pack[i]; + var lastSwirl = _h2.default.getLastItem(swirl._modules); + // add new Master Swirl as parent of new childswirl + options.parent = this.el; + + this._addBurstProperties(options, i, this._masterSwirls.length - 1); + + swirl.then(options); + + // save the new item in `then` chain + newPack.push(_h2.default.getLastItem(swirl._modules)); + } + // save the pack to _swirls object + this._swirls[this._masterSwirls.length - 1] = newPack; + return newPack; + }; + /* + Method to initialize properties. + @private + @overrides @ Thenable + */ + + + Burst.prototype._vars = function _vars() { + _Tunable.prototype._vars.call(this); + // just buffer timeline for calculations + this._bufferTimeline = new _timeline2.default(); + }; + /* + Method for initial render of the module. + */ + + + Burst.prototype._render = function _render() { + this._o.isWithShape = false; + this._o.isSwirl = this._props.isSwirl; + this._o.callbacksContext = this; + // save timeline options and remove from _o + // cuz the master swirl should not get them + this._saveTimelineOptions(this._o); + + this.masterSwirl = new MainSwirl(this._o); + this._masterSwirls = [this.masterSwirl]; + this.el = this.masterSwirl.el; + + this._renderSwirls(); + }; + /* + Method for initial render of swirls. + @private + */ + + + Burst.prototype._renderSwirls = function _renderSwirls() { + var p = this._props, + pack = []; + + for (var i = 0; i < p.count; i++) { + var option = this._getChildOption(this._o, i); + pack.push(new ChildSwirl(this._addOptionalProps(option, i))); + } + this._swirls = { 0: pack }; + this._setSwirlDuration(this.masterSwirl, this._calcPackTime(pack)); + }; + /* + Method to save timeline options to _timelineOptions + and delete the property on the object. + @private + @param {Object} The object to save the timeline options from. + */ + + + Burst.prototype._saveTimelineOptions = function _saveTimelineOptions(o) { + this._timelineOptions = o.timeline; + delete o.timeline; + }; + /* + Method to calculate total time of array of + concurrent tweens. + @param {Array} Pack to calculate the total time for. + @returns {Number} Total pack duration. + */ + + + Burst.prototype._calcPackTime = function _calcPackTime(pack) { + var maxTime = 0; + for (var i = 0; i < pack.length; i++) { + var tween = pack[i].tween, + p = tween._props; + + maxTime = Math.max(p.repeatTime / p.speed, maxTime); + } + + return maxTime; + }; + /* + Method to set duration for Swirl. + @param {Object} Swirl instance to set the duration to. + @param {Number} Duration to set. + */ + + + Burst.prototype._setSwirlDuration = function _setSwirlDuration(swirl, duration) { + swirl.tween._setProp('duration', duration); + var isRecalc = swirl.timeline && swirl.timeline._recalcTotalDuration; + isRecalc && swirl.timeline._recalcTotalDuration(); + }; + /* + Method to get childOption form object call by modulus. + @private + @param {Object} Object to look in. + @param {Number} Index of the current Swirl. + @returns {Object} Options for the current swirl. + */ + + + Burst.prototype._getChildOption = function _getChildOption(obj, i) { + var options = {}; + for (var key in obj.children) { + options[key] = this._getPropByMod(key, i, obj.children); + } + return options; + }; + /* + Method to get property by modulus. + @private + @param {String} Name of the property. + @param {Number} Index for the modulus. + @param {Object} Source object to check in. + @returns {Any} Property. + */ + + + Burst.prototype._getPropByMod = function _getPropByMod(name, index) { + var sourceObj = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var prop = sourceObj[name]; + return _h2.default.isArray(prop) ? prop[index % prop.length] : prop; + }; + /* + Method to add optional Swirls' properties to passed object. + @private + @param {Object} Object to add the properties to. + @param {Number} Index of the property. + */ + + + Burst.prototype._addOptionalProps = function _addOptionalProps(options, index) { + options.index = index; + options.parent = this.masterSwirl.el; + + this._addBurstProperties(options, index); + + return options; + }; + /* + Method to add Burst options to object. + @private + @param {Object} Options to add the properties to. + @param {Number} Index of the Swirl. + @param {Number} Index of the main swirl. + */ + + + Burst.prototype._addBurstProperties = function _addBurstProperties(options, index, i) { + // save index of the module + var mainIndex = this._index; + // temporary change the index to parse index based properties like stagger + this._index = index; + // parse degree shift for the bit + var degreeShift = this._parseProperty('degreeShift', options.degreeShift || 0); + // put the index of the module back + this._index = mainIndex; + + var p = this._props, + degreeCnt = p.degree % 360 === 0 ? p.count : p.count - 1 || 1, + step = p.degree / degreeCnt, + pointStart = this._getSidePoint('start', index * step + degreeShift, i), + pointEnd = this._getSidePoint('end', index * step + degreeShift, i); + + options.x = this._getDeltaFromPoints('x', pointStart, pointEnd); + options.y = this._getDeltaFromPoints('y', pointStart, pointEnd); + + options.angle = this._getBitAngle(options.angle || 0, degreeShift, index); + }; + /* + Method to get shapes angle in burst so + it will follow circular shape. + + @param {Number, Object} Base angle. + @param {Number} Angle shift for the bit + @param {Number} Shape's index in burst. + @returns {Number} Angle in burst. + */ + + + Burst.prototype._getBitAngle = function _getBitAngle() { + var angleProperty = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + var angleShift = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + var i = arguments[2]; + + var p = this._props, + degCnt = p.degree % 360 === 0 ? p.count : p.count - 1 || 1, + step = p.degree / degCnt, + angle = i * step + 90; + + angle += angleShift; + // if not delta option + if (!this._isDelta(angleProperty)) { + angleProperty += angle; + } else { + var delta = {}, + keys = (0, _keys2.default)(angleProperty), + start = keys[0], + end = angleProperty[start]; + + start = _h2.default.parseStringOption(start, i); + end = _h2.default.parseStringOption(end, i); + // new start = newEnd + delta[parseFloat(start) + angle] = parseFloat(end) + angle; + + angleProperty = delta; + } + return angleProperty; + }; + /* + Method to get radial point on `start` or `end`. + @private + @param {String} Name of the side - [start, end]. + @param {Number} Angle of the radial point. + @param {Number} Index of the main swirl. + @returns radial point. + */ + + + Burst.prototype._getSidePoint = function _getSidePoint(side, angle, i) { + var p = this._props, + sideRadius = this._getSideRadius(side, i); + + return _h2.default.getRadialPoint({ + radius: sideRadius.radius, + radiusX: sideRadius.radiusX, + radiusY: sideRadius.radiusY, + angle: angle, + // center: { x: p.center, y: p.center } + center: { x: 0, y: 0 } + }); + }; + /* + Method to get radius of the side. + @private + @param {String} Name of the side - [start, end]. + @param {Number} Index of the main swirl. + @returns {Object} Radius. + */ + + + Burst.prototype._getSideRadius = function _getSideRadius(side, i) { + return { + radius: this._getRadiusByKey('radius', side, i), + radiusX: this._getRadiusByKey('radiusX', side, i), + radiusY: this._getRadiusByKey('radiusY', side, i) + }; + }; + /* + Method to get radius from ∆ or plain property. + @private + @param {String} Key name. + @param {String} Side name - [start, end]. + @param {Number} Index of the main swirl. + @returns {Number} Radius value. + */ + + + Burst.prototype._getRadiusByKey = function _getRadiusByKey(key, side) { + var i = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0; + + var swirl = this._masterSwirls[i], + deltas = swirl._deltas, + props = swirl._props; + + if (deltas[key] != null) { + return deltas[key][side]; + } else if (props[key] != null) { + return props[key]; + } + }; + /* + Method to get delta from start and end position points. + @private + @param {String} Key name. + @param {Object} Start position point. + @param {Object} End position point. + @returns {Object} Delta of the end/start. + */ + + + Burst.prototype._getDeltaFromPoints = function _getDeltaFromPoints(key, pointStart, pointEnd) { + var delta = {}; + if (pointStart[key] === pointEnd[key]) { + delta = pointStart[key]; + } else { + delta[pointStart[key]] = pointEnd[key]; + } + return delta; + }; + /* + Method to create timeline. + @private + @override @ Tweenable + */ + + + Burst.prototype._makeTimeline = function _makeTimeline() { + // restore timeline options that were deleted in _render method + this._o.timeline = this._timelineOptions; + _Tunable.prototype._makeTimeline.call(this); + this.timeline.add(this.masterSwirl, this._swirls[0]); + }; + /* + Method to make Tween for the module. + @private + @override @ Tweenable + */ + + + Burst.prototype._makeTween = function _makeTween() {} /* don't create any tween */ + /* + Override `_hide` and `_show` methods on module + since we don't have to hide nor show on the module. + */ + ; + + Burst.prototype._hide = function _hide() {/* do nothing */}; + + Burst.prototype._show = function _show() {/* do nothing */}; + + return Burst; + }(_tunable2.default); + + var ChildSwirl = function (_ShapeSwirl) { + (0, _inherits3.default)(ChildSwirl, _ShapeSwirl); + + function ChildSwirl() { + (0, _classCallCheck3.default)(this, ChildSwirl); + return (0, _possibleConstructorReturn3.default)(this, _ShapeSwirl.apply(this, arguments)); + } + + ChildSwirl.prototype._declareDefaults = function _declareDefaults() { + _ShapeSwirl.prototype._declareDefaults.call(this); + this._defaults.isSwirl = false; + this._o.duration = this._o.duration != null ? this._o.duration : 700; + }; + // disable degreeshift calculations + + + ChildSwirl.prototype._calcSwirlXY = function _calcSwirlXY(proc) { + var degreeShift = this._props.degreeShift; + + this._props.degreeShift = 0; + _ShapeSwirl.prototype._calcSwirlXY.call(this, proc); + this._props.degreeShift = degreeShift; + }; + + return ChildSwirl; + }(_shapeSwirl2.default); + + var MainSwirl = function (_ChildSwirl) { + (0, _inherits3.default)(MainSwirl, _ChildSwirl); + + function MainSwirl() { + (0, _classCallCheck3.default)(this, MainSwirl); + return (0, _possibleConstructorReturn3.default)(this, _ChildSwirl.apply(this, arguments)); + } + + MainSwirl.prototype._declareDefaults = function _declareDefaults() { + _ChildSwirl.prototype._declareDefaults.call(this); + this._defaults.scale = 1; + this._defaults.width = 0; + this._defaults.height = 0; + this._defaults.radius = { 25: 75 }; + // this._defaults.duration = 2000; + }; + + return MainSwirl; + }(ChildSwirl); + + Burst.ChildSwirl = ChildSwirl; + Burst.MainSwirl = MainSwirl; + + exports.default = Burst; + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends4 = __webpack_require__(120); + + var _extends5 = _interopRequireDefault(_extends4); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _thenable = __webpack_require__(99); + + var _thenable2 = _interopRequireDefault(_thenable); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _deltas = __webpack_require__(125); + + var _deltas2 = _interopRequireDefault(_deltas); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + + + // get tween properties + var obj = {}; + _tween2.default.prototype._declareDefaults.call(obj); + var keys = (0, _keys2.default)(obj._defaults); + for (var i = 0; i < keys.length; i++) { + obj._defaults[keys[i]] = 1; + } + obj._defaults['timeline'] = 1; + var TWEEN_PROPERTIES = obj._defaults; + + /* + TODO: + + - change _props to _propsObj for animations + - current values in deltas + */ + + var Html = function (_Thenable) { + (0, _inherits3.default)(Html, _Thenable); + + function Html() { + (0, _classCallCheck3.default)(this, Html); + return (0, _possibleConstructorReturn3.default)(this, _Thenable.apply(this, arguments)); + } + + Html.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + x: 0, + y: 0, + z: 0, + + skewX: 0, + skewY: 0, + + // angle: 0, + angleX: 0, + angleY: 0, + angleZ: 0, + + scale: 1, + scaleX: 1, + scaleY: 1, + + isSoftHide: true, + isShowStart: true, + isShowEnd: true, + isForce3d: false, + isRefreshState: true + + }; + // exclude from automatic drawing + this._drawExclude = { el: 1 }; + // properties that cause 3d layer + this._3dProperties = ['angleX', 'angleY', 'z']; + // properties that have array values + this._arrayPropertyMap = { transformOrigin: 1, backgroundPosition: 1 }; + // properties that have no units + this._numberPropertyMap = { + opacity: 1, scale: 1, scaleX: 1, scaleY: 1, + // angle: 1, + angleX: 1, angleY: 1, angleZ: 1, + skewX: 1, skewY: 1 + }; + // properties that should be prefixed + this._prefixPropertyMap = { transform: 1, transformOrigin: 1 }; + // save prefix + this._prefix = h.prefix.css; + }; + + Html.prototype.then = function then(o) { + // return if nothing was passed + if (o == null || !(0, _keys2.default)(o).length) { + return 1; + } + + // get the last item in `then` chain + var prevModule = h.getLastItem(this._modules); + // set deltas to the finish state + prevModule.deltas.refresh(false); + // copy finish state to the last history record + this._history[this._history.length - 1] = prevModule._o; + // call super + _Thenable.prototype.then.call(this, o); + // restore the _props + prevModule.deltas.restore(); + + return this; + }; + /* + Method to pipe startValue of the delta. + @private + @ovarrides @ Thenable + @param {String} Start property name. + @param {Any} Start property value. + @returns {Any} Start property value. + */ + + + Html.prototype._checkStartValue = function _checkStartValue(key, value) { + if (value == null) { + // return default value for transforms + if (this._defaults[key] != null) { + return this._defaults[key]; + } + // return default value from _customProps + if (this._customProps[key] != null) { + return this._customProps[key]; + } + // try to get the default value + if (h.defaultStyles[key] != null) { + return h.defaultStyles[key]; + } + // at the end return 0 + return 0; + } + + return value; + }; + /* + Method to draw _props to el. + @private + */ + + + Html.prototype._draw = function _draw() { + var p = this._props; + for (var i = 0; i < this._drawProps.length; i++) { + var name = this._drawProps[i]; + this._setStyle(name, p[name]); + } + // draw transforms + this._drawTransform(); + // call custom transform callback if exist + this._customDraw && this._customDraw(this._props.el, this._props); + }; + /* + Method to set transform on element. + @private + */ + + + Html.prototype._drawTransform = function _drawTransform() { + var p = this._props; + var string = !this._is3d ? 'translate(' + p.x + ', ' + p.y + ')\n rotate(' + p.angleZ + 'deg)\n skew(' + p.skewX + 'deg, ' + p.skewY + 'deg)\n scale(' + p.scaleX + ', ' + p.scaleY + ')' : 'translate3d(' + p.x + ', ' + p.y + ', ' + p.z + ')\n rotateX(' + p.angleX + 'deg)\n rotateY(' + p.angleY + 'deg)\n rotateZ(' + p.angleZ + 'deg)\n skew(' + p.skewX + 'deg, ' + p.skewY + 'deg)\n scale(' + p.scaleX + ', ' + p.scaleY + ')'; + + this._setStyle('transform', string); + }; + /* + Method to render on initialization. + @private + @overrides @ Module + */ + + + Html.prototype._render = function _render() { + // return immediately if not the first in `then` chain + if (this._o.prevChainModule) { + return; + } + + var p = this._props; + + for (var i = 0; i < this._renderProps.length; i++) { + var name = this._renderProps[i], + value = p[name]; + + value = typeof value === 'number' ? value + 'px' : value; + this._setStyle(name, value); + } + + this._draw(); + + if (!p.isShowStart) { + this._hide(); + } + }; + /* + Method to set style on el. + @private + @param {String} Style property name. + @param {String} Style property value. + */ + + + Html.prototype._setStyle = function _setStyle(name, value) { + if (this._state[name] !== value) { + var style = this._props.el.style; + // set style + style[name] = value; + // if prefix needed - set it + if (this._prefixPropertyMap[name]) { + style['' + this._prefix + name] = value; + } + // cache the last set value + this._state[name] = value; + } + }; + /* + Method to copy `_o` options to `_props` object. + @private + */ + + + Html.prototype._extendDefaults = function _extendDefaults() { + this._props = this._o.props || {}; + // props for intial render only + this._renderProps = []; + // props for draw on every frame update + this._drawProps = []; + // save custom properties if present + this._saveCustomProperties(this._o); + // copy the options + var o = (0, _extends5.default)({}, this._o); + // extend options with defaults + o = this._addDefaults(o); + + var keys = (0, _keys2.default)(o); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + // include the property if it is not in drawExclude object + // and not in defaults = not a transform + var isInclude = !this._drawExclude[key] && // not in exclude map + this._defaults[key] == null && // not transform property + !TWEEN_PROPERTIES[key]; // not tween property + + var isCustom = this._customProps[key]; + // copy all non-delta properties to the props + // if not delta then add the property to render + // list that is called on initialization + // otherwise add it to the draw list that will + // be drawed on each frame + if (!h.isDelta(o[key]) && !TWEEN_PROPERTIES[key]) { + this._parseOption(key, o[key]); + if (key === 'el') { + this._props.el = h.parseEl(o.el); + this.el = this._props.el; + } + if (isInclude && !isCustom) { + this._renderProps.push(key); + } + // copy delta prop but not transforms + // otherwise push it to draw list that gets traversed on every draw + } else if (isInclude && !isCustom) { + this._drawProps.push(key); + } + } + + this._createDeltas(o); + }; + /* + Method to save customProperties to _customProps. + @param {Object} Options of the module. + */ + + + Html.prototype._saveCustomProperties = function _saveCustomProperties() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this._customProps = o.customProperties || {}; + this._customProps = (0, _extends5.default)({}, this._customProps); + this._customDraw = this._customProps.draw; + delete this._customProps.draw; + delete o.customProperties; + + this._copyDefaultCustomProps(); + + // if ( this._customProps ) {} + // this._customProps = this._customProps || {}; + }; + + Html.prototype._copyDefaultCustomProps = function _copyDefaultCustomProps() { + for (var key in this._customProps) { + if (this._o[key] == null) { + this._o[key] = this._customProps[key]; + } + } + }; + /* + Method to reset some flags on merged options object. + @private + @overrides @ Thenable + @param {Object} Options object. + @returns {Object} Options object. + */ + + + Html.prototype._resetMergedFlags = function _resetMergedFlags(o) { + _Thenable.prototype._resetMergedFlags.call(this, o); + o.props = this._props; + o.customProperties = this._customProps; + return o; + }; + /* + Method to parse option value. + @private + @param {String} Option name. + @param {Any} Option value. + */ + + + Html.prototype._parseOption = function _parseOption(key, value) { + _Thenable.prototype._parseOption.call(this, key, value); + // at this point the property is parsed + var parsed = this._props[key]; + // cast it to string if it is array + if (h.isArray(parsed)) { + this._props[key] = this._arrToString(parsed); + } + }; + /* + Method cast array to string value. + @private + @param {Array} Array of parsed numbers with units. + @returns {String} Casted array. + */ + + + Html.prototype._arrToString = function _arrToString(arr) { + var string = ''; + for (var i = 0; i < arr.length; i++) { + string += arr[i].string + ' '; + } + return string; + }; + /* + Method to add defauls to passed object. + @private + @param {Object} Object to add defaults to. + */ + + + Html.prototype._addDefaults = function _addDefaults(obj) { + // flag that after all defaults are set will indicate + // if user have set the 3d transform + this._is3d = false; + + for (var key in this._defaults) { + // skip property if it is listed in _skipProps + // if (this._skipProps && this._skipProps[key]) { continue; } + + // copy the properties to the _o object + // if it's null - set the default value + if (obj[key] == null) { + // scaleX and scaleY should fallback to scale + if (key === 'scaleX' || key === 'scaleY') { + obj[key] = obj['scale'] != null ? obj['scale'] : this._defaults['scale']; + } else { + obj[key] = this._defaults[key]; + } + } else { + // get if 3d property was set. + if (this._3dProperties.indexOf(key) !== -1) { + this._is3d = true; + } + } + } + + if (this._o.isForce3d) { + this._is3d = true; + } + + return obj; + }; + /* + Lifecycle method to declare variables. + @private + */ + + + Html.prototype._vars = function _vars() { + // set deltas to the last value, so the _props with + // end values will be copied to the _history, it is + // crucial for `then` chaining + this.deltas.refresh(false); + // call super vars + _Thenable.prototype._vars.call(this); + // state of set properties + this._state = {}; + // restore delta values that we have refreshed before + this.deltas.restore(false); + }; + /* + Method to create deltas from passed object. + @private + @param {Object} Options object to pass to the Deltas. + */ + + + Html.prototype._createDeltas = function _createDeltas(options) { + this.deltas = new _deltas2.default({ + options: options, + props: this._props, + arrayPropertyMap: this._arrayPropertyMap, + numberPropertyMap: this._numberPropertyMap, + customProps: this._customProps, + callbacksContext: options.callbacksContext || this, + isChained: !!this._o.prevChainModule + }); + + // if chained module set timeline to deltas' timeline + if (this._o.prevChainModule) { + this.timeline = this.deltas.timeline; + } + }; + /* @overrides @ Tweenable */ + + + Html.prototype._makeTween = function _makeTween() {}; + + Html.prototype._makeTimeline = function _makeTimeline() { + // do not create timeline if module if chained + if (this._o.prevChainModule) { + return; + } + // add callbacks overrides + this._o.timeline = this._o.timeline || {}; + this._addCallbackOverrides(this._o.timeline); + _Thenable.prototype._makeTimeline.call(this); + this.timeline.add(this.deltas); + }; + /* + Method to add callback overrides to passed object object. + @param {Object} Object to add overrides on. + */ + + + Html.prototype._addCallbackOverrides = function _addCallbackOverrides(o) { + var it = this; + var p = this._props; + o.callbackOverrides = { + onUpdate: this._draw, + onRefresh: this._props.isRefreshState ? this._draw : void 0, + onStart: function onStart(isFwd) { + // don't touch main `el` onStart in chained elements + if (it._isChained) { + return; + }; + // show if was hidden at start + if (isFwd && !p.isShowStart) { + it._show(); + } + // hide if should be hidden at start + else { + if (!p.isShowStart) { + it._hide(); + } + } + }, + onComplete: function onComplete(isFwd) { + // don't touch main `el` if not the last in `then` chain + if (it._isChained) { + return; + } + if (isFwd) { + if (!p.isShowEnd) { + it._hide(); + } + } else if (!p.isShowEnd) { + it._show(); + } + } + }; + }; + + /* + Method that gets called on `soft` show of the module, + it should restore transform styles of the module. + @private + @overrides @ Module + */ + + + Html.prototype._showByTransform = function _showByTransform() { + this._drawTransform(); + }; + + /* + Method to merge `start` and `end` for a property in then record. + @private + @param {String} Property name. + @param {Any} Start value of the property. + @param {Any} End value of the property. + */ + // !! COVER !! + + + Html.prototype._mergeThenProperty = function _mergeThenProperty(key, startValue, endValue) { + // if isnt tween property + var isBoolean = typeof endValue === 'boolean', + curve, + easing; + + if (!h.isTweenProp(key) && !this._nonMergeProps[key] && !isBoolean) { + + var TWEEN_PROPS = {}; + if (h.isObject(endValue) && endValue.to != null) { + for (var _key in endValue) { + if (TWEEN_PROPERTIES[_key] || _key === 'curve') { + TWEEN_PROPS[_key] = endValue[_key]; + delete endValue[_key]; + } + } + // curve = endValue.curve; + // easing = endValue.easing; + endValue = endValue.to; + } + + // if end value is delta - just save it + if (this._isDelta(endValue)) { + + var _TWEEN_PROPS = {}; + for (var _key2 in endValue) { + if (TWEEN_PROPERTIES[_key2] || _key2 === 'curve') { + _TWEEN_PROPS[_key2] = endValue[_key2]; + delete endValue[_key2]; + } + } + var result = this._parseDeltaValues(key, endValue); + + return (0, _extends5.default)({}, result, _TWEEN_PROPS); + } else { + var parsedEndValue = this._parsePreArrayProperty(key, endValue); + // if end value is not delta - merge with start value + if (this._isDelta(startValue)) { + var _extends2; + + // if start value is delta - take the end value + // as start value of the new delta + return (0, _extends5.default)((_extends2 = {}, _extends2[h.getDeltaEnd(startValue)] = parsedEndValue, _extends2), TWEEN_PROPS); + // if both start and end value are not ∆ - make ∆ + } else { + var _extends3; + + return (0, _extends5.default)((_extends3 = {}, _extends3[startValue] = parsedEndValue, _extends3), TWEEN_PROPS); + } + } + // copy the tween values unattended + } else { + return endValue; + } + }; + + return Html; + }(_thenable2.default); + + exports.default = Html; + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + + "use strict"; + + exports.__esModule = true; + + var _assign = __webpack_require__(121); + + var _assign2 = _interopRequireDefault(_assign); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + exports.default = _assign2.default || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = { "default": __webpack_require__(122), __esModule: true }; + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(123); + module.exports = __webpack_require__(14).Object.assign; + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.1 Object.assign(target, source) + var $export = __webpack_require__(12); + + $export($export.S + $export.F, 'Object', {assign: __webpack_require__(124)}); + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.2.1 Object.assign(target, source, ...) + var getKeys = __webpack_require__(33) + , gOPS = __webpack_require__(62) + , pIE = __webpack_require__(63) + , toObject = __webpack_require__(49) + , IObject = __webpack_require__(36) + , $assign = Object.assign; + + // should work with symbols and should have deterministic property order (V8 bug) + module.exports = !$assign || __webpack_require__(23)(function(){ + var A = {} + , B = {} + , S = Symbol() + , K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function(k){ B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; + }) ? function assign(target, source){ // eslint-disable-line no-unused-vars + var T = toObject(target) + , aLen = arguments.length + , index = 1 + , getSymbols = gOPS.f + , isEnum = pIE.f; + while(aLen > index){ + var S = IObject(arguments[index++]) + , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) + , length = keys.length + , j = 0 + , key; + while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + } return T; + } : $assign; + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _extends2 = __webpack_require__(120); + + var _extends3 = _interopRequireDefault(_extends2); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _delta = __webpack_require__(126); + + var _delta2 = _interopRequireDefault(_delta); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + This module's target is to parse options object, + find deltas in it and send them to `Delta` classes. + The `Delta` class is dull - they expect actual parsed deltas + and separated tween options, so we should parse them here. + The timeline of the module controls the `Delta` modules' tweens. + + @param {Object} props Object to set deltas result to (pass to the Delta classes). + @param {Object} options Object to parse the deltas from. + @param {Function} onUpdate onUpdate callback. + @param optional {Object} arrayPropertyMap List of properties with truthy + values which describe properties + that should be parsed as arrays. + @param optional {Object} numberPropertyMap List of properties with truthy + values which describe properties + that should be parsed as numbers + without units. + */ + + // TODO: + // - colors with curves change alpha level too + // const html = new mojs.Html({ + // el: '#js-el', + // x: { 0: 100 }, + // onUpdate () { + // console.log(this._props.originX); + // }, + // originX: { 'white': 'black', curve: 'M0,100 L100, 0' }, + // customProperties: { + // originX: { + // type: 'color', + // default: 'cyan' + // }, + // draw() { console.log('draw'); } + // } + // }); + + + var easing = __webpack_require__(105); + var h = __webpack_require__(71); + + + // get tween properties + var obj = {}; + _tween2.default.prototype._declareDefaults.call(obj); + var keys = (0, _keys2.default)(obj._defaults); + for (var i = 0; i < keys.length; i++) { + obj._defaults[keys[i]] = 1; + } + obj._defaults['timeline'] = 1; + var TWEEN_PROPERTIES = obj._defaults; + + var Deltas = function () { + function Deltas() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Deltas); + + this._o = o; + + this._shortColors = { + transparent: 'rgba(0,0,0,0)', + none: 'rgba(0,0,0,0)', + aqua: 'rgb(0,255,255)', + black: 'rgb(0,0,0)', + blue: 'rgb(0,0,255)', + fuchsia: 'rgb(255,0,255)', + gray: 'rgb(128,128,128)', + green: 'rgb(0,128,0)', + lime: 'rgb(0,255,0)', + maroon: 'rgb(128,0,0)', + navy: 'rgb(0,0,128)', + olive: 'rgb(128,128,0)', + purple: 'rgb(128,0,128)', + red: 'rgb(255,0,0)', + silver: 'rgb(192,192,192)', + teal: 'rgb(0,128,128)', + white: 'rgb(255,255,255)', + yellow: 'rgb(255,255,0)', + orange: 'rgb(255,128,0)' + }; + + this._ignoreDeltasMap = { prevChainModule: 1, masterModule: 1 }; + + this._parseDeltas(o.options); + this._createDeltas(); + this._createTimeline(this._mainTweenOptions); + } + /* + Method to call `refresh` on all child `delta` objects. + @public + @param {Boolean} If before start time (true) or after end time (false). + */ + + + Deltas.prototype.refresh = function refresh(isBefore) { + for (var i = 0; i < this._deltas.length; i++) { + this._deltas[i].refresh(isBefore); + } + return this; + }; + /* + Method to call `restore` on all child `delta` objects. + @public + */ + + + Deltas.prototype.restore = function restore() { + for (var i = 0; i < this._deltas.length; i++) { + this._deltas[i].restore(); + } + return this; + }; + /* + Method to create Timeline. + @private + @param {Object} Timeline options. + */ + + + Deltas.prototype._createTimeline = function _createTimeline() { + var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + // const o = this._o; + // opts.timeline = opts.timeline || {}; + // opts.timeline.callbackOverrides = { + // onUpdate: o.onUpdate, + // onRefresh: o.onUpdate + // } + // send callbacksContext to timeline if set + // o.callbacksContext && (opts.timeline.callbacksContext = o.callbacksContext); + // opts.timeline + this.timeline = new _timeline2.default(); + this.timeline.add(this._deltas); + }; + /* + Method to create Deltas from parsed options. + @private + */ + + + Deltas.prototype._createDeltas = function _createDeltas() { + this._deltas = []; + + // create main delta object + this._deltas.push(this._createDelta(this._mainDeltas, this._mainTweenOptions)); + + // create child delta object + for (var i = 0; i < this._childDeltas.length; i++) { + var delta = this._childDeltas[i]; + this._deltas.push(this._createDelta([delta.delta], delta.tweenOptions)); + } + }; + /* + Method to create Delta object with passed options. + @private + @param {Array} Array of deltas. + @param {Object} Tween properties. + @returns {Object} Delta object + */ + + + Deltas.prototype._createDelta = function _createDelta(deltas, tweenOptions) { + var o = this._o; + return new _delta2.default({ + deltas: deltas, tweenOptions: tweenOptions, + props: o.props, + isChained: o.isChained, + callbacksContext: o.callbacksContext + }); + }; + /* + Method to parse delta objects from options. + @private + @param {Object} Options object to parse the deltas from. + */ + + + Deltas.prototype._parseDeltas = function _parseDeltas(obj) { + // spilt main animation properties and main tween properties + var mainSplit = this._splitTweenOptions(obj); + // main animation properties + var opts = mainSplit.delta; + // main tween properties + this._mainTweenOptions = mainSplit.tweenOptions; + + this._mainDeltas = []; + this._childDeltas = []; + var keys = (0, _keys2.default)(opts); + // loop thru all properties without tween ones + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + // is property is delta - parse it + if (this._isDelta(opts[key]) && !this._ignoreDeltasMap[key]) { + var delta = this._splitAndParseDelta(key, opts[key]); + // if parsed object has no tween values - it's delta of the main object + if (!delta.tweenOptions) { + this._mainDeltas.push(delta.delta); + } + // otherwise it is distinct delta object + else { + this._childDeltas.push(delta); + } + } + } + }; + /* + Method to split tween values and parse single delta record. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @returns {Object} Split object. + @param {Object} tweenOptions Tween properties. + @param {Object} delta Parsed delta. + */ + + + Deltas.prototype._splitAndParseDelta = function _splitAndParseDelta(name, object) { + var split = this._splitTweenOptions(object); + // parse delta in the object + split.delta = this._parseDelta(name, split.delta); + return split; + }; + /* + Method to parse delta by delegating the variables to _parse*Delta methods. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDelta = function _parseDelta(name, object, index) { + // if name is in _o.customProps - parse it regarding the type + return this._o.customProps && this._o.customProps[name] != null ? this._parseDeltaByCustom(name, object, index) : this._parseDeltaByGuess(name, object, index); + }; + /** + Method to parse delta by taking the type from the customProps object. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDeltaByCustom = function _parseDeltaByCustom(name, object, index) { + return this._parseNumberDelta(name, object, index); + // const customRecord = this._o.customProps[name]; + // switch ( customRecord.type.toLowerCase() ) { + // case 'color': { return this._parseColorDelta( name, object ); } + // case 'array': { return this._parseArrayDelta( name, object ); } + // case 'number': { return this._parseNumberDelta( name, object, index ); } + // case 'unit': { return this._parseUnitDelta( name, object, index ); } + // } + }; + /** + Method to parse delta by reasoning about it's value. + @private + @param {String} Property name. + @param {Object} Raw delta object. + @param {Number} Module index. + */ + + + Deltas.prototype._parseDeltaByGuess = function _parseDeltaByGuess(name, object, index) { + var _preparseDelta2 = this._preparseDelta(object), + start = _preparseDelta2.start; + + var o = this._o; + + // color values + if (isNaN(parseFloat(start)) && !start.match(/rand\(/) && !start.match(/stagger\(/)) { + return this._parseColorDelta(name, object); + // array values + } else if (o.arrayPropertyMap && o.arrayPropertyMap[name]) { + return this._parseArrayDelta(name, object); + // unit or number values + } else { + return o.numberPropertyMap && o.numberPropertyMap[name] ? + // if the property is in the number property map - parse it like number + this._parseNumberDelta(name, object, index) + // otherwise - like number with units + : this._parseUnitDelta(name, object, index); + } + }; + /* + Method to separate tween options from delta properties. + @param {Object} Object for separation. + @returns {Object} Object that contains 2 objects + - one delta options + - one tween options ( could be empty if no tween opts ) + */ + + + Deltas.prototype._splitTweenOptions = function _splitTweenOptions(delta) { + delta = (0, _extends3.default)({}, delta); + + var keys = (0, _keys2.default)(delta), + tweenOptions = {}; + var isTween = null; + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (TWEEN_PROPERTIES[key]) { + if (delta[key] != null) { + tweenOptions[key] = delta[key]; + isTween = true; + } + delete delta[key]; + } + } + return { + delta: delta, + tweenOptions: isTween ? tweenOptions : undefined + }; + }; + /* + Method to check if the property is delta property. + @private + @param {Any} Parameter value to check. + @returns {Boolean} + */ + + + Deltas.prototype._isDelta = function _isDelta(optionsValue) { + var isObject = h.isObject(optionsValue); + isObject = isObject && !optionsValue.unit; + return !(!isObject || h.isArray(optionsValue) || h.isDOM(optionsValue)); + }; + /* + Method to parse color delta values. + @private + @param {String} Name of the property. + @param {Any} Property value. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseColorDelta = function _parseColorDelta(key, value) { + if (key === 'strokeLinecap') { + h.warn('Sorry, stroke-linecap property is not animatable yet, using the start(#{start}) value instead', value); + return {}; + } + var preParse = this._preparseDelta(value); + + var startColorObj = this._makeColorObj(preParse.start), + endColorObj = this._makeColorObj(preParse.end); + + var delta = { + type: 'color', + name: key, + start: startColorObj, + end: endColorObj, + curve: preParse.curve, + delta: { + r: endColorObj.r - startColorObj.r, + g: endColorObj.g - startColorObj.g, + b: endColorObj.b - startColorObj.b, + a: endColorObj.a - startColorObj.a + } + }; + return delta; + }; + /* + Method to parse array delta values. + @private + @param {String} Name of the property. + @param {Any} Property value. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseArrayDelta = function _parseArrayDelta(key, value) { + var preParse = this._preparseDelta(value); + + var startArr = this._strToArr(preParse.start), + endArr = this._strToArr(preParse.end); + + h.normDashArrays(startArr, endArr); + + for (var i = 0; i < startArr.length; i++) { + var end = endArr[i]; + h.mergeUnits(startArr[i], end, key); + } + + var delta = { + type: 'array', + name: key, + start: startArr, + end: endArr, + delta: h.calcArrDelta(startArr, endArr), + curve: preParse.curve + }; + + return delta; + }; + /* + Method to parse numeric delta values with units. + @private + @param {String} Name of the property. + @param {Any} Property value. + @param {Number} Index of the module. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseUnitDelta = function _parseUnitDelta(key, value, index) { + var preParse = this._preparseDelta(value); + + var end = h.parseUnit(h.parseStringOption(preParse.end, index)), + start = h.parseUnit(h.parseStringOption(preParse.start, index)); + + h.mergeUnits(start, end, key); + var delta = { + type: 'unit', + name: key, + start: start, + end: end, + delta: end.value - start.value, + curve: preParse.curve + }; + return delta; + }; + /* + Method to parse numeric delta values without units. + @private + @param {String} Name of the property. + @param {Any} Property value. + @param {Number} Index of the module. + @returns {Object} Parsed delta. + */ + + + Deltas.prototype._parseNumberDelta = function _parseNumberDelta(key, value, index) { + var preParse = this._preparseDelta(value); + + var end = parseFloat(h.parseStringOption(preParse.end, index)), + start = parseFloat(h.parseStringOption(preParse.start, index)); + + var delta = { + type: 'number', + name: key, + start: start, + end: end, + delta: end - start, + curve: preParse.curve + }; + + return delta; + }; + /* + Method to extract `curve` and `start`/`end` values. + @private + @param {Object} Delta object. + @returns {Object} Preparsed delta. + @property {String} Start value. + @property {String, Number} End value. + */ + + + Deltas.prototype._preparseDelta = function _preparseDelta(value) { + // clone value object + value = (0, _extends3.default)({}, value); + // parse curve if exist + var curve = value.curve; + if (curve != null) { + curve = easing.parseEasing(curve); + curve._parent = this; + } + delete value.curve; + // parse start and end values + var start = (0, _keys2.default)(value)[0], + end = value[start]; + + return { start: start, end: end, curve: curve }; + }; + /* + Method to parse color into usable object. + @private + @param {String} Color string. + @returns {Object} Parsed color value. + */ + + + Deltas.prototype._makeColorObj = function _makeColorObj(color) { + // HEX + var colorObj = {}; + if (color[0] === '#') { + var result = /^#?([a-f\d]{1,2})([a-f\d]{1,2})([a-f\d]{1,2})$/i.exec(color); + if (result) { + var r = result[1].length === 2 ? result[1] : result[1] + result[1], + g = result[2].length === 2 ? result[2] : result[2] + result[2], + b = result[3].length === 2 ? result[3] : result[3] + result[3]; + + colorObj = { + r: parseInt(r, 16), g: parseInt(g, 16), b: parseInt(b, 16), a: 1 + }; + } + } + + // not HEX + // shorthand color and rgb() + if (color[0] !== '#') { + var isRgb = color[0] === 'r' && color[1] === 'g' && color[2] === 'b'; + var rgbColor = void 0; + // rgb color + if (isRgb) { + rgbColor = color; + }; + // shorthand color name + if (!isRgb) { + if (!this._shortColors[color]) { + h.div.style.color = color; + rgbColor = h.computedStyle(h.div).color; + } else { + rgbColor = this._shortColors[color]; + } + } + + var regexString1 = '^rgba?\\((\\d{1,3}),\\s?(\\d{1,3}),', + regexString2 = '\\s?(\\d{1,3}),?\\s?(\\d{1}|0?\\.\\d{1,})?\\)$', + _result = new RegExp(regexString1 + regexString2, 'gi').exec(rgbColor), + alpha = parseFloat(_result[4] || 1); + + if (_result) { + colorObj = { + r: parseInt(_result[1], 10), + g: parseInt(_result[2], 10), + b: parseInt(_result[3], 10), + a: alpha != null && !isNaN(alpha) ? alpha : 1 + }; + } + } + + return colorObj; + }; + /* + Method to parse string into array. + @private + @param {String, Number} String or number to parse. + @returns {Array} Parsed array. + */ + + + Deltas.prototype._strToArr = function _strToArr(string) { + var arr = []; + // plain number + if (typeof string === 'number' && !isNaN(string)) { + arr.push(h.parseUnit(string)); + return arr; + } + // string array + string.trim().split(/\s+/gim).forEach(function (str) { + arr.push(h.parseUnit(h.parseIfRand(str))); + }); + return arr; + }; + + return Deltas; + }(); + + exports.default = Deltas; + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var h = __webpack_require__(71); + + var Delta = function () { + function Delta() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Delta); + + this._o = o; + this._createTween(o.tweenOptions); + // initial properties render + !this._o.isChained && this.refresh(true); + } + /* + Method to call `_refresh` method on `tween`. + Use switch between `0` and `1` progress for delta value. + @public + @param {Boolean} If refresh before start time or after. + @returns this. + */ + + + Delta.prototype.refresh = function refresh(isBefore) { + this._previousValues = []; + + var deltas = this._o.deltas; + for (var i = 0; i < deltas.length; i++) { + var name = deltas[i].name; + this._previousValues.push({ + name: name, value: this._o.props[name] + }); + } + + this.tween._refresh(isBefore); + return this; + }; + /* + Method to restore all saved properties from `_previousValues` array. + @public + @returns this. + */ + + + Delta.prototype.restore = function restore() { + var prev = this._previousValues; + for (var i = 0; i < prev.length; i++) { + var record = prev[i]; + this._o.props[record.name] = record.value; + } + return this; + }; + /* + Method to create tween of the delta. + @private + @param {Object} Options object. + */ + + + Delta.prototype._createTween = function _createTween() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var it = this; + o.callbackOverrides = { + onUpdate: function onUpdate(ep, p) { + it._calcCurrentProps(ep, p); + } + }; + + // if not chained - add the onRefresh callback + // to refresh the tween when needed + if (!this._o.isChained) { + o.callbackOverrides.onRefresh = function (isBefore, ep, p) { + it._calcCurrentProps(ep, p); + }; + } + + o.callbacksContext = this._o.callbacksContext; + this.tween = new _tween2.default(o); + }; + /* + Method to calculate current progress of the deltas. + @private + @param {Number} Eased progress to calculate - [0..1]. + @param {Number} Progress to calculate - [0..1]. + */ + + + Delta.prototype._calcCurrentProps = function _calcCurrentProps(easedProgress, p) { + var deltas = this._o.deltas; + for (var i = 0; i < deltas.length; i++) { + var type = deltas[i].type; + this['_calcCurrent_' + type](deltas[i], easedProgress, p); + } + }; + /* + Method to calc the current color delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_color = function _calcCurrent_color(delta, ep, p) { + var r, + g, + b, + a, + start = delta.start, + d = delta.delta; + if (!delta.curve) { + r = parseInt(start.r + ep * d.r, 10); + g = parseInt(start.g + ep * d.g, 10); + b = parseInt(start.b + ep * d.b, 10); + a = parseFloat(start.a + ep * d.a); + } else { + var cp = delta.curve(p); + r = parseInt(cp * (start.r + p * d.r), 10); + g = parseInt(cp * (start.g + p * d.g), 10); + b = parseInt(cp * (start.b + p * d.b), 10); + a = parseFloat(cp * (start.a + p * d.a)); + } + this._o.props[delta.name] = 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')'; + }; + /* + Method to calc the current number delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_number = function _calcCurrent_number(delta, ep, p) { + this._o.props[delta.name] = !delta.curve ? delta.start + ep * delta.delta : delta.curve(p) * (delta.start + p * delta.delta); + }; + /* + Method to calc the current number with units delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_unit = function _calcCurrent_unit(delta, ep, p) { + var currentValue = !delta.curve ? delta.start.value + ep * delta.delta : delta.curve(p) * (delta.start.value + p * delta.delta); + + this._o.props[delta.name] = '' + currentValue + delta.end.unit; + }; + /* + Method to calc the current array delta value. + @param {Object} Delta + @param {Number} Eased progress [0..1]. + @param {Number} Plain progress [0..1]. + */ + + + Delta.prototype._calcCurrent_array = function _calcCurrent_array(delta, ep, p) { + // var arr, + var name = delta.name, + props = this._o.props, + string = ''; + + // to prevent GC bothering with arrays garbage + // if ( h.isArray( props[name] ) ) { + // arr = props[name]; + // arr.length = 0; + // } else { arr = []; } + + // just optimization to prevent curve + // calculations on every array item + var proc = delta.curve ? delta.curve(p) : null; + + for (var i = 0; i < delta.delta.length; i++) { + var item = delta.delta[i], + dash = !delta.curve ? delta.start[i].value + ep * item.value : proc * (delta.start[i].value + p * item.value); + + string += '' + dash + item.unit + ' '; + // arr.push({ + // string: `${dash}${item.unit}`, + // value: dash, + // unit: item.unit, + // }); + } + props[name] = string; + }; + + return Delta; + }(); + + exports.default = Delta; + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + var _keys = __webpack_require__(95); + + var _keys2 = _interopRequireDefault(_keys); + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _possibleConstructorReturn2 = __webpack_require__(75); + + var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); + + var _inherits2 = __webpack_require__(76); + + var _inherits3 = _interopRequireDefault(_inherits2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + var _tunable = __webpack_require__(116); + + var _tunable2 = _interopRequireDefault(_tunable); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + var Stagger = function (_Tunable) { + (0, _inherits3.default)(Stagger, _Tunable); + + function Stagger(options, Module) { + var _ret; + + (0, _classCallCheck3.default)(this, Stagger); + + var _this = (0, _possibleConstructorReturn3.default)(this, _Tunable.call(this)); + + return _ret = _this._init(options, Module), (0, _possibleConstructorReturn3.default)(_this, _ret); + } + /* + Method to create then chain on child modules. + @param {Object} Then options. + @return {Object} this. + */ + + + Stagger.prototype.then = function then(o) { + if (o == null) { + return this; + } + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].then(this._getOptionByIndex(i, o)); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to tune child modules. + @param {Object} Tune options. + @return {Object} this. + */ + + + Stagger.prototype.tune = function tune(o) { + if (o == null) { + return this; + } + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].tune(this._getOptionByIndex(i, o)); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to generate child modules. + @return {Object} this. + */ + + + Stagger.prototype.generate = function generate() { + for (var i = 0; i < this._modules.length; i++) { + // get child module's option and pass to the child `then` + this._modules[i].generate(); + } + this.timeline._recalcTotalDuration(); + return this; + }; + /* + Method to get an option by modulo and name. + @param {String} Name of the property to get. + @param {Number} Index for the modulo calculation. + @param {Object} Options hash to look in. + @return {Any} Property. + */ + + + Stagger.prototype._getOptionByMod = function _getOptionByMod(name, i, store) { + var props = store[name]; + // if not dom list then clone it to array + if (props + '' === '[object NodeList]' || props + '' === '[object HTMLCollection]') props = Array.prototype.slice.call(props, 0); + // get the value in array or return the value itself + var value = _h2.default.isArray(props) ? props[i % props.length] : props; + // check if value has the stagger expression, if so parse it + return _h2.default.parseIfStagger(value, i); + }; + /* + Method to get option by modulo of index. + @param {Number} Index for modulo calculations. + @param {Object} Options hash to look in. + */ + + + Stagger.prototype._getOptionByIndex = function _getOptionByIndex(i, store) { + var _this2 = this; + + var options = {}; + (0, _keys2.default)(store).forEach(function (key) { + return options[key] = _this2._getOptionByMod(key, i, store); + }); + return options; + }; + /* + Method to get total child modules quantity. + @param {String} Name of quantifier in options hash. + @param {Object} Options hash object. + @return {Number} Number of child object that should be defined. + */ + + + Stagger.prototype._getChildQuantity = function _getChildQuantity(name, store) { + // if number was set + if (typeof name === 'number') { + return name; + } + + var quantifier = store[name]; + if (_h2.default.isArray(quantifier)) { + return quantifier.length; + } else if (quantifier + '' === '[object NodeList]') { + return quantifier.length; + } else if (quantifier + '' === '[object HTMLCollection]') { + return Array.prototype.slice.call(quantifier, 0).length; + } else if (quantifier instanceof HTMLElement) { + return 1; + } else if (typeof quantifier == 'string') { + return 1; + } + }; + /* + Method to make stagger form options + @param {Object} Options. + @param {Object} Child class. + */ + + + Stagger.prototype._init = function _init(options, Module) { + var count = this._getChildQuantity(options.quantifier || 'el', options); + this._createTimeline(options);this._modules = []; + for (var i = 0; i < count; i++) { + // get child module's option + var option = this._getOptionByIndex(i, options); + option.isRunLess = true; + // set index of the module + option.index = i; + // create child module + var module = new Module(option);this._modules.push(module); + // add child module's timeline to the self timeline + this.timeline.add(module); + } + return this; + }; + /* + Method to create timeline. + @param {Object} Timeline options. + */ + + + Stagger.prototype._createTimeline = function _createTimeline() { + var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + this.timeline = new _timeline2.default(options.timeline); + }; + + /* @overrides @ Tweenable */ + + + Stagger.prototype._makeTween = function _makeTween() {}; + + Stagger.prototype._makeTimeline = function _makeTimeline() {}; + + return Stagger; + }(_tunable2.default); + + module.exports = function (Module) { + return function (options) { + return new Stagger(options, Module); + }; + }; + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + + var _classCallCheck2 = __webpack_require__(74); + + var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); + + var _h = __webpack_require__(71); + + var _h2 = _interopRequireDefault(_h); + + var _tween = __webpack_require__(101); + + var _tween2 = _interopRequireDefault(_tween); + + var _timeline = __webpack_require__(110); + + var _timeline2 = _interopRequireDefault(_timeline); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + /* + Class for toggling opacity on bunch of elements + @class Spriter + @todo + - add isForce3d option + - add run new option merging + - add then chains + */ + var Spriter = function () { + /* + Defaults/APIs + */ + Spriter.prototype._declareDefaults = function _declareDefaults() { + this._defaults = { + /* + Duration + @property duration + @type {Number} + */ + duration: 500, + /* + Delay + @property delay + @type {Number} + */ + delay: 0, + /* + Easing. Please see the + [timeline module parseEasing function](timeline.coffee.html#parseEasing) + for all avaliable options. + @property easing + @type {String, Function} + */ + easing: 'linear.none', + /* + Repeat times count + + @property repeat + @type {Number} + */ + repeat: 0, + /* + Yoyo option defines if animation should be altered on repeat. + + @property yoyo + @type {Boolean} + */ + yoyo: false, + /* + isRunLess option prevents animation from running immediately after + initialization. + + @property isRunLess + @type {Boolean} + */ + isRunLess: false, + /* + isShowEnd option defines if the last frame should be shown when + animation completed. + + @property isShowEnd + @type {Boolean} + */ + isShowEnd: false, + /* + onStart callback will be called once on animation start. + + @property onStart + @type {Function} + */ + onStart: null, + /* + onUpdate callback will be called on every frame of the animation. + The current progress in range **[0,1]** will be passed to the callback. + + @property onUpdate + @type {Function} + */ + onUpdate: null, + /* + onComplete callback will be called once on animation complete. + + @property onComplete + @type {Function} + */ + onComplete: null + }; + }; + + function Spriter() { + var o = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + (0, _classCallCheck3.default)(this, Spriter); + + this.o = o; + if (!this.o.el) { + return _h2.default.error('No "el" option specified, aborting'); + } + this._vars();this._declareDefaults();this._extendDefaults();this._parseFrames(); + if (this._frames.length <= 2) _h2.default.warn('Spriter: only ' + this._frames.length + ' frames found'); + if (this._frames.length < 1) _h2.default.error("Spriter: there is no frames to animate, aborting"); + this._createTween(); + return this; + } + /* + Method to declare some variables. + + @method run + @param {Object} New options + @todo Implement new object merging + */ + + + Spriter.prototype._vars = function _vars() { + this._props = _h2.default.cloneObj(this.o); + this.el = this.o.el; + this._frames = []; + }; + /* + Method to run the spriter on demand. + + @method run + @param {Object} New options + @todo Implement new object merging + */ + + + Spriter.prototype.run = function run(o) { + return this.timeline.play(); + }; + /* + Method to extend _props by options(this.o) + + @method _extendDefaults + */ + + + Spriter.prototype._extendDefaults = function _extendDefaults() { + return _h2.default.extend(this._props, this._defaults); + }; + /* + Method to parse frames as child nodes of el. + + @method _parseFrames + */ + + + Spriter.prototype._parseFrames = function _parseFrames() { + this._frames = Array.prototype.slice.call(this.el.children, 0); + this._frames.forEach(function (frame, i) { + return frame.style.opacity = 0; + }); + this._frameStep = 1 / this._frames.length; + }; + + /* + Method to create tween and timeline and supply callbacks. + + @method _createTween + */ + + + Spriter.prototype._createTween = function _createTween() { + var _this = this; + + this._tween = new _tween2.default({ + duration: this._props.duration, + delay: this._props.delay, + yoyo: this._props.yoyo, + repeat: this._props.repeat, + easing: this._props.easing, + onStart: function onStart() { + return _this._props.onStart && _this._props.onStart(); + }, + onComplete: function onComplete() { + return _this._props.onComplete && _this._props.onComplete(); + }, + onUpdate: function onUpdate(p) { + return _this._setProgress(p); + } + }); + this.timeline = new _timeline2.default();this.timeline.add(this._tween); + if (!this._props.isRunLess) this._startTween(); + }; + + /* + Method to start tween + + @method _startTween + */ + + + Spriter.prototype._startTween = function _startTween() { + var _this2 = this; + + setTimeout(function () { + return _this2.timeline.play(); + }, 1); + }; + /* + Method to set progress of the sprite + + @method _setProgress + @param {Number} Progress in range **[0,1]** + */ + + + Spriter.prototype._setProgress = function _setProgress(p) { + // get the frame number + var proc = Math.floor(p / this._frameStep); + // react only if frame changes + if (this._prevFrame != this._frames[proc]) { + // if previous frame isnt current one, hide it + if (this._prevFrame) { + this._prevFrame.style.opacity = 0; + } + // if end of animation and isShowEnd flag was specified + // then show the last frame else show current frame + var currentNum = p === 1 && this._props.isShowEnd ? proc - 1 : proc; + // show the current frame + if (this._frames[currentNum]) { + this._frames[currentNum].style.opacity = 1; + } + // set previous frame as current + this._prevFrame = this._frames[proc]; + } + if (this._props.onUpdate) { + this._props.onUpdate(p); + } + }; + + return Spriter; + }(); + + exports.default = Spriter; + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + + var MotionPath, Timeline, Tween, h, resize, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + h = __webpack_require__(71); + + resize = __webpack_require__(130); + + Tween = __webpack_require__(101)["default"]; + + Timeline = __webpack_require__(110)["default"]; + + MotionPath = (function() { + MotionPath.prototype.defaults = { + path: null, + curvature: { + x: '75%', + y: '50%' + }, + isCompositeLayer: true, + delay: 0, + duration: 1000, + easing: null, + repeat: 0, + yoyo: false, + onStart: null, + onComplete: null, + onUpdate: null, + offsetX: 0, + offsetY: 0, + angleOffset: null, + pathStart: 0, + pathEnd: 1, + motionBlur: 0, + transformOrigin: null, + isAngle: false, + isReverse: false, + isRunLess: false, + isPresetPosition: true + }; + + function MotionPath(o1) { + this.o = o1 != null ? o1 : {}; + this.calcHeight = bind(this.calcHeight, this); + if (this.vars()) { + return; + } + this.createTween(); + this; + } + + MotionPath.prototype.vars = function() { + this.getScaler = h.bind(this.getScaler, this); + this.resize = resize; + this.props = h.cloneObj(this.defaults); + this.extendOptions(this.o); + this.isMotionBlurReset = h.isSafari || h.isIE; + this.isMotionBlurReset && (this.props.motionBlur = 0); + this.history = [h.cloneObj(this.props)]; + return this.postVars(); + }; + + MotionPath.prototype.curveToPath = function(o) { + var angle, curvature, curvatureX, curvatureY, curvePoint, curveXPoint, dX, dY, endPoint, path, percent, radius, start; + path = document.createElementNS(h.NS, 'path'); + start = o.start; + endPoint = { + x: start.x + o.shift.x, + y: start.x + o.shift.y + }; + curvature = o.curvature; + dX = o.shift.x; + dY = o.shift.y; + radius = Math.sqrt(dX * dX + dY * dY); + percent = radius / 100; + angle = Math.atan(dY / dX) * (180 / Math.PI) + 90; + if (o.shift.x < 0) { + angle = angle + 180; + } + curvatureX = h.parseUnit(curvature.x); + curvatureX = curvatureX.unit === '%' ? curvatureX.value * percent : curvatureX.value; + curveXPoint = h.getRadialPoint({ + center: { + x: start.x, + y: start.y + }, + radius: curvatureX, + angle: angle + }); + curvatureY = h.parseUnit(curvature.y); + curvatureY = curvatureY.unit === '%' ? curvatureY.value * percent : curvatureY.value; + curvePoint = h.getRadialPoint({ + center: { + x: curveXPoint.x, + y: curveXPoint.y + }, + radius: curvatureY, + angle: angle + 90 + }); + path.setAttribute('d', "M" + start.x + "," + start.y + " Q" + curvePoint.x + "," + curvePoint.y + " " + endPoint.x + "," + endPoint.y); + return path; + }; + + MotionPath.prototype.postVars = function() { + this.props.pathStart = h.clamp(this.props.pathStart, 0, 1); + this.props.pathEnd = h.clamp(this.props.pathEnd, this.props.pathStart, 1); + this.angle = 0; + this.speedX = 0; + this.speedY = 0; + this.blurX = 0; + this.blurY = 0; + this.prevCoords = {}; + this.blurAmount = 20; + this.props.motionBlur = h.clamp(this.props.motionBlur, 0, 1); + this.onUpdate = this.props.onUpdate; + if (!this.o.el) { + h.error('Missed "el" option. It could be a selector, DOMNode or another module.'); + return true; + } + this.el = this.parseEl(this.props.el); + this.props.motionBlur > 0 && this.createFilter(); + this.path = this.getPath(); + if (!this.path.getAttribute('d')) { + h.error('Path has no coordinates to work with, aborting'); + return true; + } + this.len = this.path.getTotalLength(); + this.slicedLen = this.len * (this.props.pathEnd - this.props.pathStart); + this.startLen = this.props.pathStart * this.len; + this.fill = this.props.fill; + if (this.fill != null) { + this.container = this.parseEl(this.props.fill.container); + this.fillRule = this.props.fill.fillRule || 'all'; + this.getScaler(); + if (this.container != null) { + this.removeEvent(this.container, 'onresize', this.getScaler); + return this.addEvent(this.container, 'onresize', this.getScaler); + } + } + }; + + MotionPath.prototype.addEvent = function(el, type, handler) { + return el.addEventListener(type, handler, false); + }; + + MotionPath.prototype.removeEvent = function(el, type, handler) { + return el.removeEventListener(type, handler, false); + }; + + MotionPath.prototype.createFilter = function() { + var div, svg; + div = document.createElement('div'); + this.filterID = "filter-" + (h.getUniqID()); + div.innerHTML = "\n \n \n \n \n \n \n \n \n"; + svg = div.querySelector("#svg-" + this.filterID); + this.filter = svg.querySelector('#blur'); + this.filterOffset = svg.querySelector('#blur-offset'); + document.body.insertBefore(svg, document.body.firstChild); + this.el.style['filter'] = "url(#" + this.filterID + ")"; + return this.el.style[h.prefix.css + "filter"] = "url(#" + this.filterID + ")"; + }; + + MotionPath.prototype.parseEl = function(el) { + if (typeof el === 'string') { + return document.querySelector(el); + } + if (el instanceof HTMLElement) { + return el; + } + if (el._setProp != null) { + this.isModule = true; + return el; + } + }; + + MotionPath.prototype.getPath = function() { + var path; + path = h.parsePath(this.props.path); + if (path) { + return path; + } + if (this.props.path.x || this.props.path.y) { + return this.curveToPath({ + start: { + x: 0, + y: 0 + }, + shift: { + x: this.props.path.x || 0, + y: this.props.path.y || 0 + }, + curvature: { + x: this.props.curvature.x || this.defaults.curvature.x, + y: this.props.curvature.y || this.defaults.curvature.y + } + }); + } + }; + + MotionPath.prototype.getScaler = function() { + var end, size, start; + this.cSize = { + width: this.container.offsetWidth || 0, + height: this.container.offsetHeight || 0 + }; + start = this.path.getPointAtLength(0); + end = this.path.getPointAtLength(this.len); + size = {}; + this.scaler = {}; + size.width = end.x >= start.x ? end.x - start.x : start.x - end.x; + size.height = end.y >= start.y ? end.y - start.y : start.y - end.y; + switch (this.fillRule) { + case 'all': + this.calcWidth(size); + return this.calcHeight(size); + case 'width': + this.calcWidth(size); + return this.scaler.y = this.scaler.x; + case 'height': + this.calcHeight(size); + return this.scaler.x = this.scaler.y; + } + }; + + MotionPath.prototype.calcWidth = function(size) { + this.scaler.x = this.cSize.width / size.width; + return !isFinite(this.scaler.x) && (this.scaler.x = 1); + }; + + MotionPath.prototype.calcHeight = function(size) { + this.scaler.y = this.cSize.height / size.height; + return !isFinite(this.scaler.y) && (this.scaler.y = 1); + }; + + MotionPath.prototype.run = function(o) { + var fistItem, key, value; + if (o) { + fistItem = this.history[0]; + for (key in o) { + value = o[key]; + if (h.callbacksMap[key] || h.tweenOptionMap[key]) { + h.warn("the property \"" + key + "\" property can not be overridden on run yet"); + delete o[key]; + } else { + this.history[0][key] = value; + } + } + this.tuneOptions(o); + } + return this.startTween(); + }; + + MotionPath.prototype.createTween = function() { + this.tween = new Tween({ + duration: this.props.duration, + delay: this.props.delay, + yoyo: this.props.yoyo, + repeat: this.props.repeat, + easing: this.props.easing, + onStart: (function(_this) { + return function() { + var ref; + return (ref = _this.props.onStart) != null ? ref.apply(_this) : void 0; + }; + })(this), + onComplete: (function(_this) { + return function() { + var ref; + _this.props.motionBlur && _this.setBlur({ + blur: { + x: 0, + y: 0 + }, + offset: { + x: 0, + y: 0 + } + }); + return (ref = _this.props.onComplete) != null ? ref.apply(_this) : void 0; + }; + })(this), + onUpdate: (function(_this) { + return function(p) { + return _this.setProgress(p); + }; + })(this), + onFirstUpdate: (function(_this) { + return function(isForward, isYoyo) { + if (!isForward) { + return _this.history.length > 1 && _this.tuneOptions(_this.history[0]); + } + }; + })(this) + }); + this.timeline = new Timeline; + this.timeline.add(this.tween); + !this.props.isRunLess && this.startTween(); + return this.props.isPresetPosition && this.setProgress(0, true); + }; + + MotionPath.prototype.startTween = function() { + return setTimeout(((function(_this) { + return function() { + var ref; + return (ref = _this.timeline) != null ? ref.play() : void 0; + }; + })(this)), 1); + }; + + MotionPath.prototype.setProgress = function(p, isInit) { + var len, point, x, y; + len = this.startLen + (!this.props.isReverse ? p * this.slicedLen : (1 - p) * this.slicedLen); + point = this.path.getPointAtLength(len); + x = point.x + this.props.offsetX; + y = point.y + this.props.offsetY; + this._getCurrentAngle(point, len, p); + this._setTransformOrigin(p); + this._setTransform(x, y, p, isInit); + return this.props.motionBlur && this.makeMotionBlur(x, y); + }; + + MotionPath.prototype.setElPosition = function(x, y, p) { + var composite, isComposite, rotate, transform; + rotate = this.angle !== 0 ? "rotate(" + this.angle + "deg)" : ''; + isComposite = this.props.isCompositeLayer && h.is3d; + composite = isComposite ? 'translateZ(0)' : ''; + transform = "translate(" + x + "px," + y + "px) " + rotate + " " + composite; + return h.setPrefixedStyle(this.el, 'transform', transform); + }; + + MotionPath.prototype.setModulePosition = function(x, y) { + this.el._setProp({ + shiftX: x + "px", + shiftY: y + "px", + angle: this.angle + }); + return this.el._draw(); + }; + + MotionPath.prototype._getCurrentAngle = function(point, len, p) { + var atan, isTransformFunOrigin, prevPoint, x1, x2; + isTransformFunOrigin = typeof this.props.transformOrigin === 'function'; + if (this.props.isAngle || (this.props.angleOffset != null) || isTransformFunOrigin) { + prevPoint = this.path.getPointAtLength(len - 1); + x1 = point.y - prevPoint.y; + x2 = point.x - prevPoint.x; + atan = Math.atan(x1 / x2); + !isFinite(atan) && (atan = 0); + this.angle = atan * h.RAD_TO_DEG; + if ((typeof this.props.angleOffset) !== 'function') { + return this.angle += this.props.angleOffset || 0; + } else { + return this.angle = this.props.angleOffset.call(this, this.angle, p); + } + } else { + return this.angle = 0; + } + }; + + MotionPath.prototype._setTransform = function(x, y, p, isInit) { + var transform; + if (this.scaler) { + x *= this.scaler.x; + y *= this.scaler.y; + } + transform = null; + if (!isInit) { + transform = typeof this.onUpdate === "function" ? this.onUpdate(p, { + x: x, + y: y, + angle: this.angle + }) : void 0; + } + if (this.isModule) { + return this.setModulePosition(x, y); + } else { + if (typeof transform !== 'string') { + return this.setElPosition(x, y, p); + } else { + return h.setPrefixedStyle(this.el, 'transform', transform); + } + } + }; + + MotionPath.prototype._setTransformOrigin = function(p) { + var isTransformFunOrigin, tOrigin; + if (this.props.transformOrigin) { + isTransformFunOrigin = typeof this.props.transformOrigin === 'function'; + tOrigin = !isTransformFunOrigin ? this.props.transformOrigin : this.props.transformOrigin(this.angle, p); + return h.setPrefixedStyle(this.el, 'transform-origin', tOrigin); + } + }; + + MotionPath.prototype.makeMotionBlur = function(x, y) { + var absoluteAngle, coords, dX, dY, signX, signY, tailAngle; + tailAngle = 0; + signX = 1; + signY = 1; + if ((this.prevCoords.x == null) || (this.prevCoords.y == null)) { + this.speedX = 0; + this.speedY = 0; + } else { + dX = x - this.prevCoords.x; + dY = y - this.prevCoords.y; + if (dX > 0) { + signX = -1; + } + if (signX < 0) { + signY = -1; + } + this.speedX = Math.abs(dX); + this.speedY = Math.abs(dY); + tailAngle = Math.atan(dY / dX) * (180 / Math.PI) + 90; + } + absoluteAngle = tailAngle - this.angle; + coords = this.angToCoords(absoluteAngle); + this.blurX = h.clamp((this.speedX / 16) * this.props.motionBlur, 0, 1); + this.blurY = h.clamp((this.speedY / 16) * this.props.motionBlur, 0, 1); + this.setBlur({ + blur: { + x: 3 * this.blurX * this.blurAmount * Math.abs(coords.x), + y: 3 * this.blurY * this.blurAmount * Math.abs(coords.y) + }, + offset: { + x: 3 * signX * this.blurX * coords.x * this.blurAmount, + y: 3 * signY * this.blurY * coords.y * this.blurAmount + } + }); + this.prevCoords.x = x; + return this.prevCoords.y = y; + }; + + MotionPath.prototype.setBlur = function(o) { + if (!this.isMotionBlurReset) { + this.filter.setAttribute('stdDeviation', o.blur.x + "," + o.blur.y); + this.filterOffset.setAttribute('dx', o.offset.x); + return this.filterOffset.setAttribute('dy', o.offset.y); + } + }; + + MotionPath.prototype.extendDefaults = function(o) { + var key, results, value; + results = []; + for (key in o) { + value = o[key]; + results.push(this[key] = value); + } + return results; + }; + + MotionPath.prototype.extendOptions = function(o) { + var key, results, value; + results = []; + for (key in o) { + value = o[key]; + results.push(this.props[key] = value); + } + return results; + }; + + MotionPath.prototype.then = function(o) { + var it, key, opts, prevOptions, value; + prevOptions = this.history[this.history.length - 1]; + opts = {}; + for (key in prevOptions) { + value = prevOptions[key]; + if (!h.callbacksMap[key] && !h.tweenOptionMap[key] || key === 'duration') { + if (o[key] == null) { + o[key] = value; + } + } else { + if (o[key] == null) { + o[key] = void 0; + } + } + if (h.tweenOptionMap[key]) { + opts[key] = key !== 'duration' ? o[key] : o[key] != null ? o[key] : prevOptions[key]; + } + } + this.history.push(o); + it = this; + opts.onUpdate = (function(_this) { + return function(p) { + return _this.setProgress(p); + }; + })(this); + opts.onStart = (function(_this) { + return function() { + var ref; + return (ref = _this.props.onStart) != null ? ref.apply(_this) : void 0; + }; + })(this); + opts.onComplete = (function(_this) { + return function() { + var ref; + return (ref = _this.props.onComplete) != null ? ref.apply(_this) : void 0; + }; + })(this); + opts.onFirstUpdate = function() { + return it.tuneOptions(it.history[this.index]); + }; + opts.isChained = !o.delay; + this.timeline.append(new Tween(opts)); + return this; + }; + + MotionPath.prototype.tuneOptions = function(o) { + this.extendOptions(o); + return this.postVars(); + }; + + MotionPath.prototype.angToCoords = function(angle) { + var radAngle, x, y; + angle = angle % 360; + radAngle = ((angle - 90) * Math.PI) / 180; + x = Math.cos(radAngle); + y = Math.sin(radAngle); + x = x < 0 ? Math.max(x, -0.7) : Math.min(x, .7); + y = y < 0 ? Math.max(y, -0.7) : Math.min(y, .7); + return { + x: x * 1.428571429, + y: y * 1.428571429 + }; + }; + + return MotionPath; + + })(); + + module.exports = MotionPath; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + /*! + LegoMushroom @legomushroom http://legomushroom.com + MIT License 2014 + */ + + /* istanbul ignore next */ + (function() { + var Main; + Main = (function() { + function Main(o) { + this.o = o != null ? o : {}; + if (window.isAnyResizeEventInited) { + return; + } + this.vars(); + this.redefineProto(); + } + + Main.prototype.vars = function() { + window.isAnyResizeEventInited = true; + this.allowedProtos = [HTMLDivElement, HTMLFormElement, HTMLLinkElement, HTMLBodyElement, HTMLParagraphElement, HTMLFieldSetElement, HTMLLegendElement, HTMLLabelElement, HTMLButtonElement, HTMLUListElement, HTMLOListElement, HTMLLIElement, HTMLHeadingElement, HTMLQuoteElement, HTMLPreElement, HTMLBRElement, HTMLFontElement, HTMLHRElement, HTMLModElement, HTMLParamElement, HTMLMapElement, HTMLTableElement, HTMLTableCaptionElement, HTMLImageElement, HTMLTableCellElement, HTMLSelectElement, HTMLInputElement, HTMLTextAreaElement, HTMLAnchorElement, HTMLObjectElement, HTMLTableColElement, HTMLTableSectionElement, HTMLTableRowElement]; + return this.timerElements = { + img: 1, + textarea: 1, + input: 1, + embed: 1, + object: 1, + svg: 1, + canvas: 1, + tr: 1, + tbody: 1, + thead: 1, + tfoot: 1, + a: 1, + select: 1, + option: 1, + optgroup: 1, + dl: 1, + dt: 1, + br: 1, + basefont: 1, + font: 1, + col: 1, + iframe: 1 + }; + }; + + Main.prototype.redefineProto = function() { + var i, it, proto, t; + it = this; + return t = (function() { + var j, len, ref, results; + ref = this.allowedProtos; + results = []; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + proto = ref[i]; + if (proto.prototype == null) { + continue; + } + results.push((function(proto) { + var listener, remover; + listener = proto.prototype.addEventListener || proto.prototype.attachEvent; + (function(listener) { + var wrappedListener; + wrappedListener = function() { + var option; + if (this !== window || this !== document) { + option = arguments[0] === 'onresize' && !this.isAnyResizeEventInited; + option && it.handleResize({ + args: arguments, + that: this + }); + } + return listener.apply(this, arguments); + }; + if (proto.prototype.addEventListener) { + return proto.prototype.addEventListener = wrappedListener; + } else if (proto.prototype.attachEvent) { + return proto.prototype.attachEvent = wrappedListener; + } + })(listener); + remover = proto.prototype.removeEventListener || proto.prototype.detachEvent; + return (function(remover) { + var wrappedRemover; + wrappedRemover = function() { + this.isAnyResizeEventInited = false; + this.iframe && this.removeChild(this.iframe); + return remover.apply(this, arguments); + }; + if (proto.prototype.removeEventListener) { + return proto.prototype.removeEventListener = wrappedRemover; + } else if (proto.prototype.detachEvent) { + return proto.prototype.detachEvent = wrappedListener; + } + })(remover); + })(proto)); + } + return results; + }).call(this); + }; + + Main.prototype.handleResize = function(args) { + var computedStyle, el, iframe, isEmpty, isNoPos, isStatic, ref; + el = args.that; + if (!this.timerElements[el.tagName.toLowerCase()]) { + iframe = document.createElement('iframe'); + el.appendChild(iframe); + iframe.style.width = '100%'; + iframe.style.height = '100%'; + iframe.style.position = 'absolute'; + iframe.style.zIndex = -999; + iframe.style.opacity = 0; + iframe.style.top = 0; + iframe.style.left = 0; + computedStyle = window.getComputedStyle ? getComputedStyle(el) : el.currentStyle; + isNoPos = el.style.position === ''; + isStatic = computedStyle.position === 'static' && isNoPos; + isEmpty = computedStyle.position === '' && el.style.position === ''; + if (isStatic || isEmpty) { + el.style.position = 'relative'; + } + if ((ref = iframe.contentWindow) != null) { + ref.onresize = (function(_this) { + return function(e) { + return _this.dispatchEvent(el); + }; + })(this); + } + el.iframe = iframe; + } else { + this.initTimer(el); + } + return el.isAnyResizeEventInited = true; + }; + + Main.prototype.initTimer = function(el) { + var height, width; + width = 0; + height = 0; + return this.interval = setInterval((function(_this) { + return function() { + var newHeight, newWidth; + newWidth = el.offsetWidth; + newHeight = el.offsetHeight; + if (newWidth !== width || newHeight !== height) { + _this.dispatchEvent(el); + width = newWidth; + return height = newHeight; + } + }; + })(this), this.o.interval || 62.5); + }; + + Main.prototype.dispatchEvent = function(el) { + var e; + if (document.createEvent) { + e = document.createEvent('HTMLEvents'); + e.initEvent('onresize', false, false); + return el.dispatchEvent(e); + } else if (document.createEventObject) { + e = document.createEventObject(); + return el.fireEvent('onresize', e); + } else { + return false; + } + }; + + Main.prototype.destroy = function() { + var i, it, j, len, proto, ref, results; + clearInterval(this.interval); + this.interval = null; + window.isAnyResizeEventInited = false; + it = this; + ref = this.allowedProtos; + results = []; + for (i = j = 0, len = ref.length; j < len; i = ++j) { + proto = ref[i]; + if (proto.prototype == null) { + continue; + } + results.push((function(proto) { + var listener; + listener = proto.prototype.addEventListener || proto.prototype.attachEvent; + if (proto.prototype.addEventListener) { + proto.prototype.addEventListener = Element.prototype.addEventListener; + } else if (proto.prototype.attachEvent) { + proto.prototype.attachEvent = Element.prototype.attachEvent; + } + if (proto.prototype.removeEventListener) { + return proto.prototype.removeEventListener = Element.prototype.removeEventListener; + } else if (proto.prototype.detachEvent) { + return proto.prototype.detachEvent = Element.prototype.detachEvent; + } + })(proto)); + } + return results; + }; + + return Main; + + })(); + if (true) { + return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return new Main; + }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} + })(); + + +/***/ }) +/******/ ]) +}); +; + +/***/ }), + +/***/ "./node_modules/qrcode/lib/browser.js": +/*!********************************************!*\ + !*** ./node_modules/qrcode/lib/browser.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var canPromise = __webpack_require__(/*! ./can-promise */ "./node_modules/qrcode/lib/can-promise.js") + +var QRCode = __webpack_require__(/*! ./core/qrcode */ "./node_modules/qrcode/lib/core/qrcode.js") +var CanvasRenderer = __webpack_require__(/*! ./renderer/canvas */ "./node_modules/qrcode/lib/renderer/canvas.js") +var SvgRenderer = __webpack_require__(/*! ./renderer/svg-tag.js */ "./node_modules/qrcode/lib/renderer/svg-tag.js") + +function renderCanvas (renderFunc, canvas, text, opts, cb) { + var args = [].slice.call(arguments, 1) + var argsNum = args.length + var isLastArgCb = typeof args[argsNum - 1] === 'function' + + if (!isLastArgCb && !canPromise()) { + throw new Error('Callback required as last argument') + } + + if (isLastArgCb) { + if (argsNum < 2) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 2) { + cb = text + text = canvas + canvas = opts = undefined + } else if (argsNum === 3) { + if (canvas.getContext && typeof cb === 'undefined') { + cb = opts + opts = undefined + } else { + cb = opts + opts = text + text = canvas + canvas = undefined + } + } + } else { + if (argsNum < 1) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 1) { + text = canvas + canvas = opts = undefined + } else if (argsNum === 2 && !canvas.getContext) { + opts = text + text = canvas + canvas = undefined + } + + return new Promise(function (resolve, reject) { + try { + var data = QRCode.create(text, opts) + resolve(renderFunc(data, canvas, opts)) + } catch (e) { + reject(e) + } + }) + } + + try { + var data = QRCode.create(text, opts) + cb(null, renderFunc(data, canvas, opts)) + } catch (e) { + cb(e) + } +} + +exports.create = QRCode.create +exports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render) +exports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL) + +// only svg for now. +exports.toString = renderCanvas.bind(null, function (data, _, opts) { + return SvgRenderer.render(data, opts) +}) + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/can-promise.js": +/*!************************************************!*\ + !*** ./node_modules/qrcode/lib/can-promise.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// can-promise has a crash in some versions of react native that dont have +// standard global objects +// https://github.com/soldair/node-qrcode/issues/157 + +module.exports = function () { + return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/alignment-pattern.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/alignment-pattern.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Alignment pattern are fixed reference pattern in defined positions + * in a matrix symbology, which enables the decode software to re-synchronise + * the coordinate mapping of the image modules in the event of moderate amounts + * of distortion of the image. + * + * Alignment patterns are present only in QR Code symbols of version 2 or larger + * and their number depends on the symbol version. + */ + +var getSymbolSize = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js").getSymbolSize + +/** + * Calculate the row/column coordinates of the center module of each alignment pattern + * for the specified QR Code version. + * + * The alignment patterns are positioned symmetrically on either side of the diagonal + * running from the top left corner of the symbol to the bottom right corner. + * + * Since positions are simmetrical only half of the coordinates are returned. + * Each item of the array will represent in turn the x and y coordinate. + * @see {@link getPositions} + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinate + */ +exports.getRowColCoords = function getRowColCoords (version) { + if (version === 1) return [] + + var posCount = Math.floor(version / 7) + 2 + var size = getSymbolSize(version) + var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2 + var positions = [size - 7] // Last coord is always (size - 7) + + for (var i = 1; i < posCount - 1; i++) { + positions[i] = positions[i - 1] - intervals + } + + positions.push(6) // First coord is always 6 + + return positions.reverse() +} + +/** + * Returns an array containing the positions of each alignment pattern. + * Each array's element represent the center point of the pattern as (x, y) coordinates + * + * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords} + * and filtering out the items that overlaps with finder pattern + * + * @example + * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38. + * The alignment patterns, therefore, are to be centered on (row, column) + * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38). + * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns + * and are not therefore used for alignment patterns. + * + * var pos = getPositions(7) + * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]] + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var coords = [] + var pos = exports.getRowColCoords(version) + var posLength = pos.length + + for (var i = 0; i < posLength; i++) { + for (var j = 0; j < posLength; j++) { + // Skip if position is occupied by finder patterns + if ((i === 0 && j === 0) || // top-left + (i === 0 && j === posLength - 1) || // bottom-left + (i === posLength - 1 && j === 0)) { // top-right + continue + } + + coords.push([pos[i], pos[j]]) + } + } + + return coords +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/alphanumeric-data.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/alphanumeric-data.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +/** + * Array of characters available in alphanumeric mode + * + * As per QR Code specification, to each character + * is assigned a value from 0 to 44 which in this case coincides + * with the array index + * + * @type {Array} + */ +var ALPHA_NUM_CHARS = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + ' ', '$', '%', '*', '+', '-', '.', '/', ':' +] + +function AlphanumericData (data) { + this.mode = Mode.ALPHANUMERIC + this.data = data +} + +AlphanumericData.getBitsLength = function getBitsLength (length) { + return 11 * Math.floor(length / 2) + 6 * (length % 2) +} + +AlphanumericData.prototype.getLength = function getLength () { + return this.data.length +} + +AlphanumericData.prototype.getBitsLength = function getBitsLength () { + return AlphanumericData.getBitsLength(this.data.length) +} + +AlphanumericData.prototype.write = function write (bitBuffer) { + var i + + // Input data characters are divided into groups of two characters + // and encoded as 11-bit binary codes. + for (i = 0; i + 2 <= this.data.length; i += 2) { + // The character value of the first character is multiplied by 45 + var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45 + + // The character value of the second digit is added to the product + value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]) + + // The sum is then stored as 11-bit binary number + bitBuffer.put(value, 11) + } + + // If the number of input data characters is not a multiple of two, + // the character value of the final character is encoded as a 6-bit binary number. + if (this.data.length % 2) { + bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6) + } +} + +module.exports = AlphanumericData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/bit-buffer.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/bit-buffer.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function BitBuffer () { + this.buffer = [] + this.length = 0 +} + +BitBuffer.prototype = { + + get: function (index) { + var bufIndex = Math.floor(index / 8) + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1 + }, + + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1) === 1) + } + }, + + getLengthInBits: function () { + return this.length + }, + + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8) + if (this.buffer.length <= bufIndex) { + this.buffer.push(0) + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)) + } + + this.length++ + } +} + +module.exports = BitBuffer + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/bit-matrix.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/bit-matrix.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") + +/** + * Helper class to handle QR Code symbol modules + * + * @param {Number} size Symbol size + */ +function BitMatrix (size) { + if (!size || size < 1) { + throw new Error('BitMatrix size must be defined and greater than 0') + } + + this.size = size + this.data = new Buffer(size * size) + this.data.fill(0) + this.reservedBit = new Buffer(size * size) + this.reservedBit.fill(0) +} + +/** + * Set bit value at specified location + * If reserved flag is set, this bit will be ignored during masking process + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + * @param {Boolean} reserved + */ +BitMatrix.prototype.set = function (row, col, value, reserved) { + var index = row * this.size + col + this.data[index] = value + if (reserved) this.reservedBit[index] = true +} + +/** + * Returns bit value at specified location + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.get = function (row, col) { + return this.data[row * this.size + col] +} + +/** + * Applies xor operator at specified location + * (used during masking process) + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + */ +BitMatrix.prototype.xor = function (row, col, value) { + this.data[row * this.size + col] ^= value +} + +/** + * Check if bit at specified location is reserved + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.isReserved = function (row, col) { + return this.reservedBit[row * this.size + col] +} + +module.exports = BitMatrix + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/byte-data.js": +/*!***************************************************!*\ + !*** ./node_modules/qrcode/lib/core/byte-data.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +function ByteData (data) { + this.mode = Mode.BYTE + this.data = new Buffer(data) +} + +ByteData.getBitsLength = function getBitsLength (length) { + return length * 8 +} + +ByteData.prototype.getLength = function getLength () { + return this.data.length +} + +ByteData.prototype.getBitsLength = function getBitsLength () { + return ByteData.getBitsLength(this.data.length) +} + +ByteData.prototype.write = function (bitBuffer) { + for (var i = 0, l = this.data.length; i < l; i++) { + bitBuffer.put(this.data[i], 8) + } +} + +module.exports = ByteData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/error-correction-code.js": +/*!***************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/error-correction-code.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") + +var EC_BLOCKS_TABLE = [ +// L M Q H + 1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 2, 2, + 1, 2, 2, 4, + 1, 2, 4, 4, + 2, 4, 4, 4, + 2, 4, 6, 5, + 2, 4, 6, 6, + 2, 5, 8, 8, + 4, 5, 8, 8, + 4, 5, 8, 11, + 4, 8, 10, 11, + 4, 9, 12, 16, + 4, 9, 16, 16, + 6, 10, 12, 18, + 6, 10, 17, 16, + 6, 11, 16, 19, + 6, 13, 18, 21, + 7, 14, 21, 25, + 8, 16, 20, 25, + 8, 17, 23, 25, + 9, 17, 23, 34, + 9, 18, 25, 30, + 10, 20, 27, 32, + 12, 21, 29, 35, + 12, 23, 34, 37, + 12, 25, 34, 40, + 13, 26, 35, 42, + 14, 28, 38, 45, + 15, 29, 40, 48, + 16, 31, 43, 51, + 17, 33, 45, 54, + 18, 35, 48, 57, + 19, 37, 51, 60, + 19, 38, 53, 63, + 20, 40, 56, 66, + 21, 43, 59, 70, + 22, 45, 62, 74, + 24, 47, 65, 77, + 25, 49, 68, 81 +] + +var EC_CODEWORDS_TABLE = [ +// L M Q H + 7, 10, 13, 17, + 10, 16, 22, 28, + 15, 26, 36, 44, + 20, 36, 52, 64, + 26, 48, 72, 88, + 36, 64, 96, 112, + 40, 72, 108, 130, + 48, 88, 132, 156, + 60, 110, 160, 192, + 72, 130, 192, 224, + 80, 150, 224, 264, + 96, 176, 260, 308, + 104, 198, 288, 352, + 120, 216, 320, 384, + 132, 240, 360, 432, + 144, 280, 408, 480, + 168, 308, 448, 532, + 180, 338, 504, 588, + 196, 364, 546, 650, + 224, 416, 600, 700, + 224, 442, 644, 750, + 252, 476, 690, 816, + 270, 504, 750, 900, + 300, 560, 810, 960, + 312, 588, 870, 1050, + 336, 644, 952, 1110, + 360, 700, 1020, 1200, + 390, 728, 1050, 1260, + 420, 784, 1140, 1350, + 450, 812, 1200, 1440, + 480, 868, 1290, 1530, + 510, 924, 1350, 1620, + 540, 980, 1440, 1710, + 570, 1036, 1530, 1800, + 570, 1064, 1590, 1890, + 600, 1120, 1680, 1980, + 630, 1204, 1770, 2100, + 660, 1260, 1860, 2220, + 720, 1316, 1950, 2310, + 750, 1372, 2040, 2430 +] + +/** + * Returns the number of error correction block that the QR Code should contain + * for the specified version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction blocks + */ +exports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + +/** + * Returns the number of error correction codewords to use for the specified + * version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction codewords + */ +exports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/error-correction-level.js": +/*!****************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/error-correction-level.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +exports.L = { bit: 1 } +exports.M = { bit: 0 } +exports.Q = { bit: 3 } +exports.H = { bit: 2 } + +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'l': + case 'low': + return exports.L + + case 'm': + case 'medium': + return exports.M + + case 'q': + case 'quartile': + return exports.Q + + case 'h': + case 'high': + return exports.H + + default: + throw new Error('Unknown EC Level: ' + string) + } +} + +exports.isValid = function isValid (level) { + return level && typeof level.bit !== 'undefined' && + level.bit >= 0 && level.bit < 4 +} + +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/finder-pattern.js": +/*!********************************************************!*\ + !*** ./node_modules/qrcode/lib/core/finder-pattern.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var getSymbolSize = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js").getSymbolSize +var FINDER_PATTERN_SIZE = 7 + +/** + * Returns an array containing the positions of each finder pattern. + * Each array's element represent the top-left point of the pattern as (x, y) coordinates + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var size = getSymbolSize(version) + + return [ + // top-left + [0, 0], + // top-right + [size - FINDER_PATTERN_SIZE, 0], + // bottom-left + [0, size - FINDER_PATTERN_SIZE] + ] +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/format-info.js": +/*!*****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/format-info.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") + +var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) +var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) +var G15_BCH = Utils.getBCHDigit(G15) + +/** + * Returns format information with relative error correction bits + * + * The format information is a 15-bit sequence containing 5 data bits, + * with 10 error correction bits calculated using the (15, 5) BCH code. + * + * @param {Number} errorCorrectionLevel Error correction level + * @param {Number} mask Mask pattern + * @return {Number} Encoded format information bits + */ +exports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) { + var data = ((errorCorrectionLevel.bit << 3) | mask) + var d = data << 10 + + while (Utils.getBCHDigit(d) - G15_BCH >= 0) { + d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH)) + } + + // xor final data with mask pattern in order to ensure that + // no combination of Error Correction Level and data mask pattern + // will result in an all-zero data string + return ((data << 10) | d) ^ G15_MASK +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/galois-field.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/galois-field.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") + +var EXP_TABLE +var LOG_TABLE + +if (Buffer.alloc) { + EXP_TABLE = Buffer.alloc(512) + LOG_TABLE = Buffer.alloc(256) +} else { + EXP_TABLE = new Buffer(512) + LOG_TABLE = new Buffer(256) +} +/** + * Precompute the log and anti-log tables for faster computation later + * + * For each possible value in the galois field 2^8, we will pre-compute + * the logarithm and anti-logarithm (exponential) of this value + * + * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields} + */ +;(function initTables () { + var x = 1 + for (var i = 0; i < 255; i++) { + EXP_TABLE[i] = x + LOG_TABLE[x] = i + + x <<= 1 // multiply by 2 + + // The QR code specification says to use byte-wise modulo 100011101 arithmetic. + // This means that when a number is 256 or larger, it should be XORed with 0x11D. + if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256) + x ^= 0x11D + } + } + + // Optimization: double the size of the anti-log table so that we don't need to mod 255 to + // stay inside the bounds (because we will mainly use this table for the multiplication of + // two GF numbers, no more). + // @see {@link mul} + for (i = 255; i < 512; i++) { + EXP_TABLE[i] = EXP_TABLE[i - 255] + } +}()) + +/** + * Returns log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.log = function log (n) { + if (n < 1) throw new Error('log(' + n + ')') + return LOG_TABLE[n] +} + +/** + * Returns anti-log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.exp = function exp (n) { + return EXP_TABLE[n] +} + +/** + * Multiplies two number inside Galois Field + * + * @param {Number} x + * @param {Number} y + * @return {Number} + */ +exports.mul = function mul (x, y) { + if (x === 0 || y === 0) return 0 + + // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized + // @see {@link initTables} + return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]] +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/kanji-data.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/kanji-data.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") + +function KanjiData (data) { + this.mode = Mode.KANJI + this.data = data +} + +KanjiData.getBitsLength = function getBitsLength (length) { + return length * 13 +} + +KanjiData.prototype.getLength = function getLength () { + return this.data.length +} + +KanjiData.prototype.getBitsLength = function getBitsLength () { + return KanjiData.getBitsLength(this.data.length) +} + +KanjiData.prototype.write = function (bitBuffer) { + var i + + // In the Shift JIS system, Kanji characters are represented by a two byte combination. + // These byte values are shifted from the JIS X 0208 values. + // JIS X 0208 gives details of the shift coded representation. + for (i = 0; i < this.data.length; i++) { + var value = Utils.toSJIS(this.data[i]) + + // For characters with Shift JIS values from 0x8140 to 0x9FFC: + if (value >= 0x8140 && value <= 0x9FFC) { + // Subtract 0x8140 from Shift JIS value + value -= 0x8140 + + // For characters with Shift JIS values from 0xE040 to 0xEBBF + } else if (value >= 0xE040 && value <= 0xEBBF) { + // Subtract 0xC140 from Shift JIS value + value -= 0xC140 + } else { + throw new Error( + 'Invalid SJIS character: ' + this.data[i] + '\n' + + 'Make sure your charset is UTF-8') + } + + // Multiply most significant byte of result by 0xC0 + // and add least significant byte to product + value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff) + + // Convert result to a 13-bit binary string + bitBuffer.put(value, 13) + } +} + +module.exports = KanjiData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/mask-pattern.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/mask-pattern.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Data mask pattern reference + * @type {Object} + */ +exports.Patterns = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 +} + +/** + * Weighted penalty scores for the undesirable features + * @type {Object} + */ +var PenaltyScores = { + N1: 3, + N2: 3, + N3: 40, + N4: 10 +} + +/** + * Check if mask pattern value is valid + * + * @param {Number} mask Mask pattern + * @return {Boolean} true if valid, false otherwise + */ +exports.isValid = function isValid (mask) { + return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7 +} + +/** + * Returns mask pattern from a value. + * If value is not valid, returns undefined + * + * @param {Number|String} value Mask pattern value + * @return {Number} Valid mask pattern or undefined + */ +exports.from = function from (value) { + return exports.isValid(value) ? parseInt(value, 10) : undefined +} + +/** +* Find adjacent modules in row/column with the same color +* and assign a penalty value. +* +* Points: N1 + i +* i is the amount by which the number of adjacent modules of the same color exceeds 5 +*/ +exports.getPenaltyN1 = function getPenaltyN1 (data) { + var size = data.size + var points = 0 + var sameCountCol = 0 + var sameCountRow = 0 + var lastCol = null + var lastRow = null + + for (var row = 0; row < size; row++) { + sameCountCol = sameCountRow = 0 + lastCol = lastRow = null + + for (var col = 0; col < size; col++) { + var module = data.get(row, col) + if (module === lastCol) { + sameCountCol++ + } else { + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + lastCol = module + sameCountCol = 1 + } + + module = data.get(col, row) + if (module === lastRow) { + sameCountRow++ + } else { + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + lastRow = module + sameCountRow = 1 + } + } + + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + } + + return points +} + +/** + * Find 2x2 blocks with the same color and assign a penalty value + * + * Points: N2 * (m - 1) * (n - 1) + */ +exports.getPenaltyN2 = function getPenaltyN2 (data) { + var size = data.size + var points = 0 + + for (var row = 0; row < size - 1; row++) { + for (var col = 0; col < size - 1; col++) { + var last = data.get(row, col) + + data.get(row, col + 1) + + data.get(row + 1, col) + + data.get(row + 1, col + 1) + + if (last === 4 || last === 0) points++ + } + } + + return points * PenaltyScores.N2 +} + +/** + * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column, + * preceded or followed by light area 4 modules wide + * + * Points: N3 * number of pattern found + */ +exports.getPenaltyN3 = function getPenaltyN3 (data) { + var size = data.size + var points = 0 + var bitsCol = 0 + var bitsRow = 0 + + for (var row = 0; row < size; row++) { + bitsCol = bitsRow = 0 + for (var col = 0; col < size; col++) { + bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col) + if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++ + + bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row) + if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++ + } + } + + return points * PenaltyScores.N3 +} + +/** + * Calculate proportion of dark modules in entire symbol + * + * Points: N4 * k + * + * k is the rating of the deviation of the proportion of dark modules + * in the symbol from 50% in steps of 5% + */ +exports.getPenaltyN4 = function getPenaltyN4 (data) { + var darkCount = 0 + var modulesCount = data.data.length + + for (var i = 0; i < modulesCount; i++) darkCount += data.data[i] + + var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10) + + return k * PenaltyScores.N4 +} + +/** + * Return mask value at given position + * + * @param {Number} maskPattern Pattern reference value + * @param {Number} i Row + * @param {Number} j Column + * @return {Boolean} Mask value + */ +function getMaskAt (maskPattern, i, j) { + switch (maskPattern) { + case exports.Patterns.PATTERN000: return (i + j) % 2 === 0 + case exports.Patterns.PATTERN001: return i % 2 === 0 + case exports.Patterns.PATTERN010: return j % 3 === 0 + case exports.Patterns.PATTERN011: return (i + j) % 3 === 0 + case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0 + case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0 + case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0 + case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0 + + default: throw new Error('bad maskPattern:' + maskPattern) + } +} + +/** + * Apply a mask pattern to a BitMatrix + * + * @param {Number} pattern Pattern reference number + * @param {BitMatrix} data BitMatrix data + */ +exports.applyMask = function applyMask (pattern, data) { + var size = data.size + + for (var col = 0; col < size; col++) { + for (var row = 0; row < size; row++) { + if (data.isReserved(row, col)) continue + data.xor(row, col, getMaskAt(pattern, row, col)) + } + } +} + +/** + * Returns the best mask pattern for data + * + * @param {BitMatrix} data + * @return {Number} Mask pattern reference number + */ +exports.getBestMask = function getBestMask (data, setupFormatFunc) { + var numPatterns = Object.keys(exports.Patterns).length + var bestPattern = 0 + var lowerPenalty = Infinity + + for (var p = 0; p < numPatterns; p++) { + setupFormatFunc(p) + exports.applyMask(p, data) + + // Calculate penalty + var penalty = + exports.getPenaltyN1(data) + + exports.getPenaltyN2(data) + + exports.getPenaltyN3(data) + + exports.getPenaltyN4(data) + + // Undo previously applied mask + exports.applyMask(p, data) + + if (penalty < lowerPenalty) { + lowerPenalty = penalty + bestPattern = p + } + } + + return bestPattern +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/mode.js": +/*!**********************************************!*\ + !*** ./node_modules/qrcode/lib/core/mode.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var VersionCheck = __webpack_require__(/*! ./version-check */ "./node_modules/qrcode/lib/core/version-check.js") +var Regex = __webpack_require__(/*! ./regex */ "./node_modules/qrcode/lib/core/regex.js") + +/** + * Numeric mode encodes data from the decimal digit set (0 - 9) + * (byte values 30HEX to 39HEX). + * Normally, 3 data characters are represented by 10 bits. + * + * @type {Object} + */ +exports.NUMERIC = { + id: 'Numeric', + bit: 1 << 0, + ccBits: [10, 12, 14] +} + +/** + * Alphanumeric mode encodes data from a set of 45 characters, + * i.e. 10 numeric digits (0 - 9), + * 26 alphabetic characters (A - Z), + * and 9 symbols (SP, $, %, *, +, -, ., /, :). + * Normally, two input characters are represented by 11 bits. + * + * @type {Object} + */ +exports.ALPHANUMERIC = { + id: 'Alphanumeric', + bit: 1 << 1, + ccBits: [9, 11, 13] +} + +/** + * In byte mode, data is encoded at 8 bits per character. + * + * @type {Object} + */ +exports.BYTE = { + id: 'Byte', + bit: 1 << 2, + ccBits: [8, 16, 16] +} + +/** + * The Kanji mode efficiently encodes Kanji characters in accordance with + * the Shift JIS system based on JIS X 0208. + * The Shift JIS values are shifted from the JIS X 0208 values. + * JIS X 0208 gives details of the shift coded representation. + * Each two-byte character value is compacted to a 13-bit binary codeword. + * + * @type {Object} + */ +exports.KANJI = { + id: 'Kanji', + bit: 1 << 3, + ccBits: [8, 10, 12] +} + +/** + * Mixed mode will contain a sequences of data in a combination of any of + * the modes described above + * + * @type {Object} + */ +exports.MIXED = { + bit: -1 +} + +/** + * Returns the number of bits needed to store the data length + * according to QR Code specifications. + * + * @param {Mode} mode Data mode + * @param {Number} version QR Code version + * @return {Number} Number of bits + */ +exports.getCharCountIndicator = function getCharCountIndicator (mode, version) { + if (!mode.ccBits) throw new Error('Invalid mode: ' + mode) + + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid version: ' + version) + } + + if (version >= 1 && version < 10) return mode.ccBits[0] + else if (version < 27) return mode.ccBits[1] + return mode.ccBits[2] +} + +/** + * Returns the most efficient mode to store the specified data + * + * @param {String} dataStr Input data string + * @return {Mode} Best mode + */ +exports.getBestModeForData = function getBestModeForData (dataStr) { + if (Regex.testNumeric(dataStr)) return exports.NUMERIC + else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC + else if (Regex.testKanji(dataStr)) return exports.KANJI + else return exports.BYTE +} + +/** + * Return mode name as string + * + * @param {Mode} mode Mode object + * @returns {String} Mode name + */ +exports.toString = function toString (mode) { + if (mode && mode.id) return mode.id + throw new Error('Invalid mode') +} + +/** + * Check if input param is a valid mode object + * + * @param {Mode} mode Mode object + * @returns {Boolean} True if valid mode, false otherwise + */ +exports.isValid = function isValid (mode) { + return mode && mode.bit && mode.ccBits +} + +/** + * Get mode object from its name + * + * @param {String} string Mode name + * @returns {Mode} Mode object + */ +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'numeric': + return exports.NUMERIC + case 'alphanumeric': + return exports.ALPHANUMERIC + case 'kanji': + return exports.KANJI + case 'byte': + return exports.BYTE + default: + throw new Error('Unknown mode: ' + string) + } +} + +/** + * Returns mode from a value. + * If value is not a valid mode, returns defaultValue + * + * @param {Mode|String} value Encoding mode + * @param {Mode} defaultValue Fallback value + * @return {Mode} Encoding mode + */ +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/numeric-data.js": +/*!******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/numeric-data.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") + +function NumericData (data) { + this.mode = Mode.NUMERIC + this.data = data.toString() +} + +NumericData.getBitsLength = function getBitsLength (length) { + return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0) +} + +NumericData.prototype.getLength = function getLength () { + return this.data.length +} + +NumericData.prototype.getBitsLength = function getBitsLength () { + return NumericData.getBitsLength(this.data.length) +} + +NumericData.prototype.write = function write (bitBuffer) { + var i, group, value + + // The input data string is divided into groups of three digits, + // and each group is converted to its 10-bit binary equivalent. + for (i = 0; i + 3 <= this.data.length; i += 3) { + group = this.data.substr(i, 3) + value = parseInt(group, 10) + + bitBuffer.put(value, 10) + } + + // If the number of input digits is not an exact multiple of three, + // the final one or two digits are converted to 4 or 7 bits respectively. + var remainingNum = this.data.length - i + if (remainingNum > 0) { + group = this.data.substr(i) + value = parseInt(group, 10) + + bitBuffer.put(value, remainingNum * 3 + 1) + } +} + +module.exports = NumericData + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/polynomial.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/core/polynomial.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var GF = __webpack_require__(/*! ./galois-field */ "./node_modules/qrcode/lib/core/galois-field.js") + +/** + * Multiplies two polynomials inside Galois Field + * + * @param {Buffer} p1 Polynomial + * @param {Buffer} p2 Polynomial + * @return {Buffer} Product of p1 and p2 + */ +exports.mul = function mul (p1, p2) { + var coeff = new Buffer(p1.length + p2.length - 1) + coeff.fill(0) + + for (var i = 0; i < p1.length; i++) { + for (var j = 0; j < p2.length; j++) { + coeff[i + j] ^= GF.mul(p1[i], p2[j]) + } + } + + return coeff +} + +/** + * Calculate the remainder of polynomials division + * + * @param {Buffer} divident Polynomial + * @param {Buffer} divisor Polynomial + * @return {Buffer} Remainder + */ +exports.mod = function mod (divident, divisor) { + var result = new Buffer(divident) + + while ((result.length - divisor.length) >= 0) { + var coeff = result[0] + + for (var i = 0; i < divisor.length; i++) { + result[i] ^= GF.mul(divisor[i], coeff) + } + + // remove all zeros from buffer head + var offset = 0 + while (offset < result.length && result[offset] === 0) offset++ + result = result.slice(offset) + } + + return result +} + +/** + * Generate an irreducible generator polynomial of specified degree + * (used by Reed-Solomon encoder) + * + * @param {Number} degree Degree of the generator polynomial + * @return {Buffer} Buffer containing polynomial coefficients + */ +exports.generateECPolynomial = function generateECPolynomial (degree) { + var poly = new Buffer([1]) + for (var i = 0; i < degree; i++) { + poly = exports.mul(poly, [1, GF.exp(i)]) + } + + return poly +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/qrcode.js": +/*!************************************************!*\ + !*** ./node_modules/qrcode/lib/core/qrcode.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") +var BitBuffer = __webpack_require__(/*! ./bit-buffer */ "./node_modules/qrcode/lib/core/bit-buffer.js") +var BitMatrix = __webpack_require__(/*! ./bit-matrix */ "./node_modules/qrcode/lib/core/bit-matrix.js") +var AlignmentPattern = __webpack_require__(/*! ./alignment-pattern */ "./node_modules/qrcode/lib/core/alignment-pattern.js") +var FinderPattern = __webpack_require__(/*! ./finder-pattern */ "./node_modules/qrcode/lib/core/finder-pattern.js") +var MaskPattern = __webpack_require__(/*! ./mask-pattern */ "./node_modules/qrcode/lib/core/mask-pattern.js") +var ECCode = __webpack_require__(/*! ./error-correction-code */ "./node_modules/qrcode/lib/core/error-correction-code.js") +var ReedSolomonEncoder = __webpack_require__(/*! ./reed-solomon-encoder */ "./node_modules/qrcode/lib/core/reed-solomon-encoder.js") +var Version = __webpack_require__(/*! ./version */ "./node_modules/qrcode/lib/core/version.js") +var FormatInfo = __webpack_require__(/*! ./format-info */ "./node_modules/qrcode/lib/core/format-info.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var Segments = __webpack_require__(/*! ./segments */ "./node_modules/qrcode/lib/core/segments.js") +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +/** + * QRCode for JavaScript + * + * modified by Ryan Day for nodejs support + * Copyright (c) 2011 Ryan Day + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * +//--------------------------------------------------------------------- +// QRCode for JavaScript +// +// Copyright (c) 2009 Kazuhiko Arase +// +// URL: http://www.d-project.com/ +// +// Licensed under the MIT license: +// http://www.opensource.org/licenses/mit-license.php +// +// The word "QR Code" is registered trademark of +// DENSO WAVE INCORPORATED +// http://www.denso-wave.com/qrcode/faqpatent-e.html +// +//--------------------------------------------------------------------- +*/ + +/** + * Add finder patterns bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupFinderPattern (matrix, version) { + var size = matrix.size + var pos = FinderPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || size <= row + r) continue + + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || size <= col + c) continue + + if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) || + (c >= 0 && c <= 6 && (r === 0 || r === 6)) || + (r >= 2 && r <= 4 && c >= 2 && c <= 4)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add timing pattern bits to matrix + * + * Note: this function must be called before {@link setupAlignmentPattern} + * + * @param {BitMatrix} matrix Modules matrix + */ +function setupTimingPattern (matrix) { + var size = matrix.size + + for (var r = 8; r < size - 8; r++) { + var value = r % 2 === 0 + matrix.set(r, 6, value, true) + matrix.set(6, r, value, true) + } +} + +/** + * Add alignment patterns bits to matrix + * + * Note: this function must be called after {@link setupTimingPattern} + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupAlignmentPattern (matrix, version) { + var pos = AlignmentPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r === -2 || r === 2 || c === -2 || c === 2 || + (r === 0 && c === 0)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add version info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupVersionInfo (matrix, version) { + var size = matrix.size + var bits = Version.getEncodedBits(version) + var row, col, mod + + for (var i = 0; i < 18; i++) { + row = Math.floor(i / 3) + col = i % 3 + size - 8 - 3 + mod = ((bits >> i) & 1) === 1 + + matrix.set(row, col, mod, true) + matrix.set(col, row, mod, true) + } +} + +/** + * Add format info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {Number} maskPattern Mask pattern reference value + */ +function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) { + var size = matrix.size + var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern) + var i, mod + + for (i = 0; i < 15; i++) { + mod = ((bits >> i) & 1) === 1 + + // vertical + if (i < 6) { + matrix.set(i, 8, mod, true) + } else if (i < 8) { + matrix.set(i + 1, 8, mod, true) + } else { + matrix.set(size - 15 + i, 8, mod, true) + } + + // horizontal + if (i < 8) { + matrix.set(8, size - i - 1, mod, true) + } else if (i < 9) { + matrix.set(8, 15 - i - 1 + 1, mod, true) + } else { + matrix.set(8, 15 - i - 1, mod, true) + } + } + + // fixed module + matrix.set(size - 8, 8, 1, true) +} + +/** + * Add encoded data bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Buffer} data Data codewords + */ +function setupData (matrix, data) { + var size = matrix.size + var inc = -1 + var row = size - 1 + var bitIndex = 7 + var byteIndex = 0 + + for (var col = size - 1; col > 0; col -= 2) { + if (col === 6) col-- + + while (true) { + for (var c = 0; c < 2; c++) { + if (!matrix.isReserved(row, col - c)) { + var dark = false + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) === 1) + } + + matrix.set(row, col - c, dark) + bitIndex-- + + if (bitIndex === -1) { + byteIndex++ + bitIndex = 7 + } + } + } + + row += inc + + if (row < 0 || size <= row) { + row -= inc + inc = -inc + break + } + } + } +} + +/** + * Create encoded codewords from data input + * + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {ByteData} data Data input + * @return {Buffer} Buffer containing encoded codewords + */ +function createData (version, errorCorrectionLevel, segments) { + // Prepare data buffer + var buffer = new BitBuffer() + + segments.forEach(function (data) { + // prefix data with mode indicator (4 bits) + buffer.put(data.mode.bit, 4) + + // Prefix data with character count indicator. + // The character count indicator is a string of bits that represents the + // number of characters that are being encoded. + // The character count indicator must be placed after the mode indicator + // and must be a certain number of bits long, depending on the QR version + // and data mode + // @see {@link Mode.getCharCountIndicator}. + buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version)) + + // add binary data sequence to buffer + data.write(buffer) + }) + + // Calculate required number of bits + var totalCodewords = Utils.getSymbolTotalCodewords(version) + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + // Add a terminator. + // If the bit string is shorter than the total number of required bits, + // a terminator of up to four 0s must be added to the right side of the string. + // If the bit string is more than four bits shorter than the required number of bits, + // add four 0s to the end. + if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) { + buffer.put(0, 4) + } + + // If the bit string is fewer than four bits shorter, add only the number of 0s that + // are needed to reach the required number of bits. + + // After adding the terminator, if the number of bits in the string is not a multiple of 8, + // pad the string on the right with 0s to make the string's length a multiple of 8. + while (buffer.getLengthInBits() % 8 !== 0) { + buffer.putBit(0) + } + + // Add pad bytes if the string is still shorter than the total number of required bits. + // Extend the buffer to fill the data capacity of the symbol corresponding to + // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC) + // and 00010001 (0x11) alternately. + var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8 + for (var i = 0; i < remainingByte; i++) { + buffer.put(i % 2 ? 0x11 : 0xEC, 8) + } + + return createCodewords(buffer, version, errorCorrectionLevel) +} + +/** + * Encode input data with Reed-Solomon and return codewords with + * relative error correction bits + * + * @param {BitBuffer} bitBuffer Data to encode + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @return {Buffer} Buffer containing encoded codewords + */ +function createCodewords (bitBuffer, version, errorCorrectionLevel) { + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewords = totalCodewords - ecTotalCodewords + + // Total number of blocks + var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel) + + // Calculate how many blocks each group should contain + var blocksInGroup2 = totalCodewords % ecTotalBlocks + var blocksInGroup1 = ecTotalBlocks - blocksInGroup2 + + var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks) + + var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks) + var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1 + + // Number of EC codewords is the same for both groups + var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1 + + // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount + var rs = new ReedSolomonEncoder(ecCount) + + var offset = 0 + var dcData = new Array(ecTotalBlocks) + var ecData = new Array(ecTotalBlocks) + var maxDataSize = 0 + var buffer = new Buffer(bitBuffer.buffer) + + // Divide the buffer into the required number of blocks + for (var b = 0; b < ecTotalBlocks; b++) { + var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2 + + // extract a block of data from buffer + dcData[b] = buffer.slice(offset, offset + dataSize) + + // Calculate EC codewords for this data block + ecData[b] = rs.encode(dcData[b]) + + offset += dataSize + maxDataSize = Math.max(maxDataSize, dataSize) + } + + // Create final data + // Interleave the data and error correction codewords from each block + var data = new Buffer(totalCodewords) + var index = 0 + var i, r + + // Add data codewords + for (i = 0; i < maxDataSize; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + if (i < dcData[r].length) { + data[index++] = dcData[r][i] + } + } + } + + // Apped EC codewords + for (i = 0; i < ecCount; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + data[index++] = ecData[r][i] + } + } + + return data +} + +/** + * Build QR Code symbol + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @param {ErrorCorretionLevel} errorCorrectionLevel Error level + * @param {MaskPattern} maskPattern Mask pattern + * @return {Object} Object containing symbol data + */ +function createSymbol (data, version, errorCorrectionLevel, maskPattern) { + var segments + + if (isArray(data)) { + segments = Segments.fromArray(data) + } else if (typeof data === 'string') { + var estimatedVersion = version + + if (!estimatedVersion) { + var rawSegments = Segments.rawSplit(data) + + // Estimate best version that can contain raw splitted segments + estimatedVersion = Version.getBestVersionForData(rawSegments, + errorCorrectionLevel) + } + + // Build optimized segments + // If estimated version is undefined, try with the highest version + segments = Segments.fromString(data, estimatedVersion || 40) + } else { + throw new Error('Invalid data') + } + + // Get the min version that can contain data + var bestVersion = Version.getBestVersionForData(segments, + errorCorrectionLevel) + + // If no version is found, data cannot be stored + if (!bestVersion) { + throw new Error('The amount of data is too big to be stored in a QR Code') + } + + // If not specified, use min version as default + if (!version) { + version = bestVersion + + // Check if the specified version can contain the data + } else if (version < bestVersion) { + throw new Error('\n' + + 'The chosen QR Code version cannot contain this amount of data.\n' + + 'Minimum version required to store current data is: ' + bestVersion + '.\n' + ) + } + + var dataBits = createData(version, errorCorrectionLevel, segments) + + // Allocate matrix buffer + var moduleCount = Utils.getSymbolSize(version) + var modules = new BitMatrix(moduleCount) + + // Add function modules + setupFinderPattern(modules, version) + setupTimingPattern(modules) + setupAlignmentPattern(modules, version) + + // Add temporary dummy bits for format info just to set them as reserved. + // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask} + // since the masking operation must be performed only on the encoding region. + // These blocks will be replaced with correct values later in code. + setupFormatInfo(modules, errorCorrectionLevel, 0) + + if (version >= 7) { + setupVersionInfo(modules, version) + } + + // Add data codewords + setupData(modules, dataBits) + + if (isNaN(maskPattern)) { + // Find best mask pattern + maskPattern = MaskPattern.getBestMask(modules, + setupFormatInfo.bind(null, modules, errorCorrectionLevel)) + } + + // Apply mask pattern + MaskPattern.applyMask(maskPattern, modules) + + // Replace format info bits with correct values + setupFormatInfo(modules, errorCorrectionLevel, maskPattern) + + return { + modules: modules, + version: version, + errorCorrectionLevel: errorCorrectionLevel, + maskPattern: maskPattern, + segments: segments + } +} + +/** + * QR Code + * + * @param {String | Array} data Input data + * @param {Object} options Optional configurations + * @param {Number} options.version QR Code version + * @param {String} options.errorCorrectionLevel Error correction level + * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis + */ +exports.create = function create (data, options) { + if (typeof data === 'undefined' || data === '') { + throw new Error('No input text') + } + + var errorCorrectionLevel = ECLevel.M + var version + var mask + + if (typeof options !== 'undefined') { + // Use higher error correction level as default + errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M) + version = Version.from(options.version) + mask = MaskPattern.from(options.maskPattern) + + if (options.toSJISFunc) { + Utils.setToSJISFunction(options.toSJISFunc) + } + } + + return createSymbol(data, version, errorCorrectionLevel, mask) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/reed-solomon-encoder.js": +/*!**************************************************************!*\ + !*** ./node_modules/qrcode/lib/core/reed-solomon-encoder.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Buffer = __webpack_require__(/*! ../utils/buffer */ "./node_modules/qrcode/lib/utils/typedarray-buffer.js") +var Polynomial = __webpack_require__(/*! ./polynomial */ "./node_modules/qrcode/lib/core/polynomial.js") + +function ReedSolomonEncoder (degree) { + this.genPoly = undefined + this.degree = degree + + if (this.degree) this.initialize(this.degree) +} + +/** + * Initialize the encoder. + * The input param should correspond to the number of error correction codewords. + * + * @param {Number} degree + */ +ReedSolomonEncoder.prototype.initialize = function initialize (degree) { + // create an irreducible generator polynomial + this.degree = degree + this.genPoly = Polynomial.generateECPolynomial(this.degree) +} + +/** + * Encodes a chunk of data + * + * @param {Buffer} data Buffer containing input data + * @return {Buffer} Buffer containing encoded data + */ +ReedSolomonEncoder.prototype.encode = function encode (data) { + if (!this.genPoly) { + throw new Error('Encoder not initialized') + } + + // Calculate EC for this data block + // extends data size to data+genPoly size + var pad = new Buffer(this.degree) + pad.fill(0) + var paddedData = Buffer.concat([data, pad], data.length + this.degree) + + // The error correction codewords are the remainder after dividing the data codewords + // by a generator polynomial + var remainder = Polynomial.mod(paddedData, this.genPoly) + + // return EC data blocks (last n byte, where n is the degree of genPoly) + // If coefficients number in remainder are less than genPoly degree, + // pad with 0s to the left to reach the needed number of coefficients + var start = this.degree - remainder.length + if (start > 0) { + var buff = new Buffer(this.degree) + buff.fill(0) + remainder.copy(buff, start) + + return buff + } + + return remainder +} + +module.exports = ReedSolomonEncoder + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/regex.js": +/*!***********************************************!*\ + !*** ./node_modules/qrcode/lib/core/regex.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var numeric = '[0-9]+' +var alphanumeric = '[A-Z $%*+\\-./:]+' +var kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + + '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' + + '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' + + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+' +kanji = kanji.replace(/u/g, '\\u') + +var byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+' + +exports.KANJI = new RegExp(kanji, 'g') +exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g') +exports.BYTE = new RegExp(byte, 'g') +exports.NUMERIC = new RegExp(numeric, 'g') +exports.ALPHANUMERIC = new RegExp(alphanumeric, 'g') + +var TEST_KANJI = new RegExp('^' + kanji + '$') +var TEST_NUMERIC = new RegExp('^' + numeric + '$') +var TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$') + +exports.testKanji = function testKanji (str) { + return TEST_KANJI.test(str) +} + +exports.testNumeric = function testNumeric (str) { + return TEST_NUMERIC.test(str) +} + +exports.testAlphanumeric = function testAlphanumeric (str) { + return TEST_ALPHANUMERIC.test(str) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/segments.js": +/*!**************************************************!*\ + !*** ./node_modules/qrcode/lib/core/segments.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var NumericData = __webpack_require__(/*! ./numeric-data */ "./node_modules/qrcode/lib/core/numeric-data.js") +var AlphanumericData = __webpack_require__(/*! ./alphanumeric-data */ "./node_modules/qrcode/lib/core/alphanumeric-data.js") +var ByteData = __webpack_require__(/*! ./byte-data */ "./node_modules/qrcode/lib/core/byte-data.js") +var KanjiData = __webpack_require__(/*! ./kanji-data */ "./node_modules/qrcode/lib/core/kanji-data.js") +var Regex = __webpack_require__(/*! ./regex */ "./node_modules/qrcode/lib/core/regex.js") +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var dijkstra = __webpack_require__(/*! dijkstrajs */ "./node_modules/dijkstrajs/dijkstra.js") + +/** + * Returns UTF8 byte length + * + * @param {String} str Input string + * @return {Number} Number of byte + */ +function getStringByteLength (str) { + return unescape(encodeURIComponent(str)).length +} + +/** + * Get a list of segments of the specified mode + * from a string + * + * @param {Mode} mode Segment mode + * @param {String} str String to process + * @return {Array} Array of object with segments data + */ +function getSegments (regex, mode, str) { + var segments = [] + var result + + while ((result = regex.exec(str)) !== null) { + segments.push({ + data: result[0], + index: result.index, + mode: mode, + length: result[0].length + }) + } + + return segments +} + +/** + * Extracts a series of segments with the appropriate + * modes from a string + * + * @param {String} dataStr Input string + * @return {Array} Array of object with segments data + */ +function getSegmentsFromString (dataStr) { + var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr) + var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr) + var byteSegs + var kanjiSegs + + if (Utils.isKanjiModeEnabled()) { + byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr) + kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr) + } else { + byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr) + kanjiSegs = [] + } + + var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs) + + return segs + .sort(function (s1, s2) { + return s1.index - s2.index + }) + .map(function (obj) { + return { + data: obj.data, + mode: obj.mode, + length: obj.length + } + }) +} + +/** + * Returns how many bits are needed to encode a string of + * specified length with the specified mode + * + * @param {Number} length String length + * @param {Mode} mode Segment mode + * @return {Number} Bit length + */ +function getSegmentBitsLength (length, mode) { + switch (mode) { + case Mode.NUMERIC: + return NumericData.getBitsLength(length) + case Mode.ALPHANUMERIC: + return AlphanumericData.getBitsLength(length) + case Mode.KANJI: + return KanjiData.getBitsLength(length) + case Mode.BYTE: + return ByteData.getBitsLength(length) + } +} + +/** + * Merges adjacent segments which have the same mode + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function mergeSegments (segs) { + return segs.reduce(function (acc, curr) { + var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null + if (prevSeg && prevSeg.mode === curr.mode) { + acc[acc.length - 1].data += curr.data + return acc + } + + acc.push(curr) + return acc + }, []) +} + +/** + * Generates a list of all possible nodes combination which + * will be used to build a segments graph. + * + * Nodes are divided by groups. Each group will contain a list of all the modes + * in which is possible to encode the given text. + * + * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte. + * The group for '12345' will contain then 3 objects, one for each + * possible encoding mode. + * + * Each node represents a possible segment. + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function buildNodes (segs) { + var nodes = [] + for (var i = 0; i < segs.length; i++) { + var seg = segs[i] + + switch (seg.mode) { + case Mode.NUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length }, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.ALPHANUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.KANJI: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + break + case Mode.BYTE: + nodes.push([ + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + } + } + + return nodes +} + +/** + * Builds a graph from a list of nodes. + * All segments in each node group will be connected with all the segments of + * the next group and so on. + * + * At each connection will be assigned a weight depending on the + * segment's byte length. + * + * @param {Array} nodes Array of object with segments data + * @param {Number} version QR Code version + * @return {Object} Graph of all possible segments + */ +function buildGraph (nodes, version) { + var table = {} + var graph = {'start': {}} + var prevNodeIds = ['start'] + + for (var i = 0; i < nodes.length; i++) { + var nodeGroup = nodes[i] + var currentNodeIds = [] + + for (var j = 0; j < nodeGroup.length; j++) { + var node = nodeGroup[j] + var key = '' + i + j + + currentNodeIds.push(key) + table[key] = { node: node, lastCount: 0 } + graph[key] = {} + + for (var n = 0; n < prevNodeIds.length; n++) { + var prevNodeId = prevNodeIds[n] + + if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) { + graph[prevNodeId][key] = + getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - + getSegmentBitsLength(table[prevNodeId].lastCount, node.mode) + + table[prevNodeId].lastCount += node.length + } else { + if (table[prevNodeId]) table[prevNodeId].lastCount = node.length + + graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + + 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost + } + } + } + + prevNodeIds = currentNodeIds + } + + for (n = 0; n < prevNodeIds.length; n++) { + graph[prevNodeIds[n]]['end'] = 0 + } + + return { map: graph, table: table } +} + +/** + * Builds a segment from a specified data and mode. + * If a mode is not specified, the more suitable will be used. + * + * @param {String} data Input data + * @param {Mode | String} modesHint Data mode + * @return {Segment} Segment + */ +function buildSingleSegment (data, modesHint) { + var mode + var bestMode = Mode.getBestModeForData(data) + + mode = Mode.from(modesHint, bestMode) + + // Make sure data can be encoded + if (mode !== Mode.BYTE && mode.bit < bestMode.bit) { + throw new Error('"' + data + '"' + + ' cannot be encoded with mode ' + Mode.toString(mode) + + '.\n Suggested mode is: ' + Mode.toString(bestMode)) + } + + // Use Mode.BYTE if Kanji support is disabled + if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) { + mode = Mode.BYTE + } + + switch (mode) { + case Mode.NUMERIC: + return new NumericData(data) + + case Mode.ALPHANUMERIC: + return new AlphanumericData(data) + + case Mode.KANJI: + return new KanjiData(data) + + case Mode.BYTE: + return new ByteData(data) + } +} + +/** + * Builds a list of segments from an array. + * Array can contain Strings or Objects with segment's info. + * + * For each item which is a string, will be generated a segment with the given + * string and the more appropriate encoding mode. + * + * For each item which is an object, will be generated a segment with the given + * data and mode. + * Objects must contain at least the property "data". + * If property "mode" is not present, the more suitable mode will be used. + * + * @param {Array} array Array of objects with segments data + * @return {Array} Array of Segments + */ +exports.fromArray = function fromArray (array) { + return array.reduce(function (acc, seg) { + if (typeof seg === 'string') { + acc.push(buildSingleSegment(seg, null)) + } else if (seg.data) { + acc.push(buildSingleSegment(seg.data, seg.mode)) + } + + return acc + }, []) +} + +/** + * Builds an optimized sequence of segments from a string, + * which will produce the shortest possible bitstream. + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @return {Array} Array of segments + */ +exports.fromString = function fromString (data, version) { + var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + + var nodes = buildNodes(segs) + var graph = buildGraph(nodes, version) + var path = dijkstra.find_path(graph.map, 'start', 'end') + + var optimizedSegs = [] + for (var i = 1; i < path.length - 1; i++) { + optimizedSegs.push(graph.table[path[i]].node) + } + + return exports.fromArray(mergeSegments(optimizedSegs)) +} + +/** + * Splits a string in various segments with the modes which + * best represent their content. + * The produced segments are far from being optimized. + * The output of this function is only used to estimate a QR Code version + * which may contain the data. + * + * @param {string} data Input string + * @return {Array} Array of segments + */ +exports.rawSplit = function rawSplit (data) { + return exports.fromArray( + getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + ) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/utils.js": +/*!***********************************************!*\ + !*** ./node_modules/qrcode/lib/core/utils.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toSJISFunction +var CODEWORDS_COUNT = [ + 0, // Not used + 26, 44, 70, 100, 134, 172, 196, 242, 292, 346, + 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, + 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, + 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706 +] + +/** + * Returns the QR Code size for the specified version + * + * @param {Number} version QR Code version + * @return {Number} size of QR code + */ +exports.getSymbolSize = function getSymbolSize (version) { + if (!version) throw new Error('"version" cannot be null or undefined') + if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40') + return version * 4 + 17 +} + +/** + * Returns the total number of codewords used to store data and EC information. + * + * @param {Number} version QR Code version + * @return {Number} Data length in bits + */ +exports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) { + return CODEWORDS_COUNT[version] +} + +/** + * Encode data with Bose-Chaudhuri-Hocquenghem + * + * @param {Number} data Value to encode + * @return {Number} Encoded value + */ +exports.getBCHDigit = function (data) { + var digit = 0 + + while (data !== 0) { + digit++ + data >>>= 1 + } + + return digit +} + +exports.setToSJISFunction = function setToSJISFunction (f) { + if (typeof f !== 'function') { + throw new Error('"toSJISFunc" is not a valid function.') + } + + toSJISFunction = f +} + +exports.isKanjiModeEnabled = function () { + return typeof toSJISFunction !== 'undefined' +} + +exports.toSJIS = function toSJIS (kanji) { + return toSJISFunction(kanji) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/version-check.js": +/*!*******************************************************!*\ + !*** ./node_modules/qrcode/lib/core/version-check.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/** + * Check if QR Code version is valid + * + * @param {Number} version QR Code version + * @return {Boolean} true if valid version, false otherwise + */ +exports.isValid = function isValid (version) { + return !isNaN(version) && version >= 1 && version <= 40 +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/core/version.js": +/*!*************************************************!*\ + !*** ./node_modules/qrcode/lib/core/version.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/core/utils.js") +var ECCode = __webpack_require__(/*! ./error-correction-code */ "./node_modules/qrcode/lib/core/error-correction-code.js") +var ECLevel = __webpack_require__(/*! ./error-correction-level */ "./node_modules/qrcode/lib/core/error-correction-level.js") +var Mode = __webpack_require__(/*! ./mode */ "./node_modules/qrcode/lib/core/mode.js") +var VersionCheck = __webpack_require__(/*! ./version-check */ "./node_modules/qrcode/lib/core/version-check.js") +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +// Generator polynomial used to encode version information +var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0) +var G18_BCH = Utils.getBCHDigit(G18) + +function getBestVersionForDataLength (mode, length, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) { + return currentVersion + } + } + + return undefined +} + +function getReservedBitsCount (mode, version) { + // Character count indicator + mode indicator bits + return Mode.getCharCountIndicator(mode, version) + 4 +} + +function getTotalBitsFromDataArray (segments, version) { + var totalBits = 0 + + segments.forEach(function (data) { + var reservedBits = getReservedBitsCount(data.mode, version) + totalBits += reservedBits + data.getBitsLength() + }) + + return totalBits +} + +function getBestVersionForMixedData (segments, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + var length = getTotalBitsFromDataArray(segments, currentVersion) + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) { + return currentVersion + } + } + + return undefined +} + +/** + * Returns version number from a value. + * If value is not a valid version, returns defaultValue + * + * @param {Number|String} value QR Code version + * @param {Number} defaultValue Fallback value + * @return {Number} QR Code version number + */ +exports.from = function from (value, defaultValue) { + if (VersionCheck.isValid(value)) { + return parseInt(value, 10) + } + + return defaultValue +} + +/** + * Returns how much data can be stored with the specified QR code version + * and error correction level + * + * @param {Number} version QR Code version (1-40) + * @param {Number} errorCorrectionLevel Error correction level + * @param {Mode} mode Data mode + * @return {Number} Quantity of storable data + */ +exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) { + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid QR Code version') + } + + // Use Byte mode as default + if (typeof mode === 'undefined') mode = Mode.BYTE + + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + if (mode === Mode.MIXED) return dataTotalCodewordsBits + + var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version) + + // Return max number of storable codewords + switch (mode) { + case Mode.NUMERIC: + return Math.floor((usableBits / 10) * 3) + + case Mode.ALPHANUMERIC: + return Math.floor((usableBits / 11) * 2) + + case Mode.KANJI: + return Math.floor(usableBits / 13) + + case Mode.BYTE: + default: + return Math.floor(usableBits / 8) + } +} + +/** + * Returns the minimum version needed to contain the amount of data + * + * @param {Segment} data Segment of data + * @param {Number} [errorCorrectionLevel=H] Error correction level + * @param {Mode} mode Data mode + * @return {Number} QR Code version + */ +exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) { + var seg + + var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M) + + if (isArray(data)) { + if (data.length > 1) { + return getBestVersionForMixedData(data, ecl) + } + + if (data.length === 0) { + return 1 + } + + seg = data[0] + } else { + seg = data + } + + return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl) +} + +/** + * Returns version information with relative error correction bits + * + * The version information is included in QR Code symbols of version 7 or larger. + * It consists of an 18-bit sequence containing 6 data bits, + * with 12 error correction bits calculated using the (18, 6) Golay code. + * + * @param {Number} version QR Code version + * @return {Number} Encoded version info bits + */ +exports.getEncodedBits = function getEncodedBits (version) { + if (!VersionCheck.isValid(version) || version < 7) { + throw new Error('Invalid QR Code version') + } + + var d = version << 12 + + while (Utils.getBCHDigit(d) - G18_BCH >= 0) { + d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH)) + } + + return (version << 12) | d +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/canvas.js": +/*!****************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/canvas.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/renderer/utils.js") + +function clearCanvas (ctx, canvas, size) { + ctx.clearRect(0, 0, canvas.width, canvas.height) + + if (!canvas.style) canvas.style = {} + canvas.height = size + canvas.width = size + canvas.style.height = size + 'px' + canvas.style.width = size + 'px' +} + +function getCanvasElement () { + try { + return document.createElement('canvas') + } catch (e) { + throw new Error('You need to specify a canvas element') + } +} + +exports.render = function render (qrData, canvas, options) { + var opts = options + var canvasEl = canvas + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!canvas) { + canvasEl = getCanvasElement() + } + + opts = Utils.getOptions(opts) + var size = Utils.getImageWidth(qrData.modules.size, opts) + + var ctx = canvasEl.getContext('2d') + var image = ctx.createImageData(size, size) + Utils.qrToImageData(image.data, qrData, opts) + + clearCanvas(ctx, canvasEl, size) + ctx.putImageData(image, 0, 0) + + return canvasEl +} + +exports.renderToDataURL = function renderToDataURL (qrData, canvas, options) { + var opts = options + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!opts) opts = {} + + var canvasEl = exports.render(qrData, canvas, opts) + + var type = opts.type || 'image/png' + var rendererOpts = opts.rendererOpts || {} + + return canvasEl.toDataURL(type, rendererOpts.quality) +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/svg-tag.js": +/*!*****************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/svg-tag.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Utils = __webpack_require__(/*! ./utils */ "./node_modules/qrcode/lib/renderer/utils.js") + +function getColorAttrib (color, attrib) { + var alpha = color.a / 255 + var str = attrib + '="' + color.hex + '"' + + return alpha < 1 + ? str + ' ' + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' + : str +} + +function svgCmd (cmd, x, y) { + var str = cmd + x + if (typeof y !== 'undefined') str += ' ' + y + + return str +} + +function qrToPath (data, size, margin) { + var path = '' + var moveBy = 0 + var newRow = false + var lineLength = 0 + + for (var i = 0; i < data.length; i++) { + var col = Math.floor(i % size) + var row = Math.floor(i / size) + + if (!col && !newRow) newRow = true + + if (data[i]) { + lineLength++ + + if (!(i > 0 && col > 0 && data[i - 1])) { + path += newRow + ? svgCmd('M', col + margin, 0.5 + row + margin) + : svgCmd('m', moveBy, 0) + + moveBy = 0 + newRow = false + } + + if (!(col + 1 < size && data[i + 1])) { + path += svgCmd('h', lineLength) + lineLength = 0 + } + } else { + moveBy++ + } + } + + return path +} + +exports.render = function render (qrData, options, cb) { + var opts = Utils.getOptions(options) + var size = qrData.modules.size + var data = qrData.modules.data + var qrcodesize = size + opts.margin * 2 + + var bg = !opts.color.light.a + ? '' + : '' + + var path = + '' + + var viewBox = 'viewBox="' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '"' + + var width = !opts.width ? '' : 'width="' + opts.width + '" height="' + opts.width + '" ' + + var svgTag = '' + bg + path + '\n' + + if (typeof cb === 'function') { + cb(null, svgTag) + } + + return svgTag +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/renderer/utils.js": +/*!***************************************************!*\ + !*** ./node_modules/qrcode/lib/renderer/utils.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function hex2rgba (hex) { + if (typeof hex === 'number') { + hex = hex.toString() + } + + if (typeof hex !== 'string') { + throw new Error('Color should be defined as hex string') + } + + var hexCode = hex.slice().replace('#', '').split('') + if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) { + throw new Error('Invalid hex color: ' + hex) + } + + // Convert from short to long form (fff -> ffffff) + if (hexCode.length === 3 || hexCode.length === 4) { + hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) { + return [c, c] + })) + } + + // Add default alpha value + if (hexCode.length === 6) hexCode.push('F', 'F') + + var hexValue = parseInt(hexCode.join(''), 16) + + return { + r: (hexValue >> 24) & 255, + g: (hexValue >> 16) & 255, + b: (hexValue >> 8) & 255, + a: hexValue & 255, + hex: '#' + hexCode.slice(0, 6).join('') + } +} + +exports.getOptions = function getOptions (options) { + if (!options) options = {} + if (!options.color) options.color = {} + + var margin = typeof options.margin === 'undefined' || + options.margin === null || + options.margin < 0 ? 4 : options.margin + + var width = options.width && options.width >= 21 ? options.width : undefined + var scale = options.scale || 4 + + return { + width: width, + scale: width ? 4 : scale, + margin: margin, + color: { + dark: hex2rgba(options.color.dark || '#000000ff'), + light: hex2rgba(options.color.light || '#ffffffff') + }, + type: options.type, + rendererOpts: options.rendererOpts || {} + } +} + +exports.getScale = function getScale (qrSize, opts) { + return opts.width && opts.width >= qrSize + opts.margin * 2 + ? opts.width / (qrSize + opts.margin * 2) + : opts.scale +} + +exports.getImageWidth = function getImageWidth (qrSize, opts) { + var scale = exports.getScale(qrSize, opts) + return Math.floor((qrSize + opts.margin * 2) * scale) +} + +exports.qrToImageData = function qrToImageData (imgData, qr, opts) { + var size = qr.modules.size + var data = qr.modules.data + var scale = exports.getScale(size, opts) + var symbolSize = Math.floor((size + opts.margin * 2) * scale) + var scaledMargin = opts.margin * scale + var palette = [opts.color.light, opts.color.dark] + + for (var i = 0; i < symbolSize; i++) { + for (var j = 0; j < symbolSize; j++) { + var posDst = (i * symbolSize + j) * 4 + var pxColor = opts.color.light + + if (i >= scaledMargin && j >= scaledMargin && + i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) { + var iSrc = Math.floor((i - scaledMargin) / scale) + var jSrc = Math.floor((j - scaledMargin) / scale) + pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0] + } + + imgData[posDst++] = pxColor.r + imgData[posDst++] = pxColor.g + imgData[posDst++] = pxColor.b + imgData[posDst] = pxColor.a + } + } +} + + +/***/ }), + +/***/ "./node_modules/qrcode/lib/utils/typedarray-buffer.js": +/*!************************************************************!*\ + !*** ./node_modules/qrcode/lib/utils/typedarray-buffer.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Implementation of a subset of node.js Buffer methods for the browser. + * Based on https://github.com/feross/buffer + */ + +/* eslint-disable no-proto */ + + + +var isArray = __webpack_require__(/*! isarray */ "./node_modules/qrcode/node_modules/isarray/index.js") + +function typedArraySupport () { + // Can typed array instances be augmented? + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 + } catch (e) { + return false + } +} + +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +var K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff + +function Buffer (arg, offset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, offset, length) + } + + if (typeof arg === 'number') { + return allocUnsafe(this, arg) + } + + return from(this, arg, offset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) + } +} + +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +function createBuffer (that, length) { + var buf + if (Buffer.TYPED_ARRAY_SUPPORT) { + buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = that + if (buf === null) { + buf = new Buffer(length) + } + buf.length = length + } + + return buf +} + +function allocUnsafe (that, size) { + var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + buf[i] = 0 + } + } + + return buf +} + +function fromString (that, string) { + var length = byteLength(string) | 0 + var buf = createBuffer(that, length) + + var actual = buf.write(string) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} + +function fromArrayBuffer (that, array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = fromArrayLike(that, buf) + } + + return buf +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(that, len) + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len) + return buf + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function byteLength (string) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + return utf8ToBytes(string).length +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function from (that, value, offset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, offset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, offset) + } + + return fromObject(that, value) +} + +Buffer.prototype.write = function write (string, offset, length) { + // Buffer#write(string) + if (offset === undefined) { + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + length = this.length + offset = 0 + // Buffer#write(string, offset[, length]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + } else { + length = undefined + } + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + return utf8Write(this, string, offset, length) +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +Buffer.prototype.fill = function fill (val, start, end) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + start = 0 + end = this.length + } else if (typeof end === 'string') { + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : new Buffer(val) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return createBuffer(null, 0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = allocUnsafe(null, length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +Buffer.byteLength = byteLength + +Buffer.prototype._isBuffer = true +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +module.exports = Buffer + + +/***/ }), + +/***/ "./node_modules/qrcode/node_modules/isarray/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/qrcode/node_modules/isarray/index.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AlertBoxIcon", + props: { + title: { + type: String, + default: "Alert Box icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "DeleteIcon", + props: { + title: { + type: String, + default: "Delete icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "DotsHorizontalIcon", + props: { + title: { + type: String, + default: "Dots Horizontal icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LinkVariantIcon", + props: { + title: { + type: String, + default: "Link Variant icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LockAlertIcon", + props: { + title: { + type: String, + default: "Lock Alert icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MarkdownIcon", + props: { + title: { + type: String, + default: "Markdown icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PencilIcon", + props: { + title: { + type: String, + default: "Pencil icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ReplyIcon", + props: { + title: { + type: String, + default: "Reply icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ShareIcon", + props: { + title: { + type: String, + default: "Share icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "StarIcon", + props: { + title: { + type: String, + default: "Star icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbDownIcon", + props: { + title: { + type: String, + default: "Thumb Down icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbDownOutlineIcon", + props: { + title: { + type: String, + default: "Thumb Down Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbUpIcon", + props: { + title: { + type: String, + default: "Thumb Up icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ThumbUpOutlineIcon", + props: { + title: { + type: String, + default: "Thumb Up Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeHighIcon", + props: { + title: { + type: String, + default: "Volume High icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeMuteIcon", + props: { + title: { + type: String, + default: "Volume Mute icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon alert-box-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,3H19C20.1,3 21,3.9 21,5V19C21,20.1 20.1,21 19,21H5C3.9,21 3,20.1 3,19V5C3,3.9 3.9,3 5,3M13,13V7H11V13H13M13,17V15H11V17H13Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon delete-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19C6,20.1 6.9,21 8,21H16C17.1,21 18,20.1 18,19V7H6V19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon dots-horizontal-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M16,12C16,10.9 16.9,10 18,10C19.1,10 20,10.9 20,12C20,13.1 19.1,14 18,14C16.9,14 16,13.1 16,12M10,12C10,10.9 10.9,10 12,10C13.1,10 14,10.9 14,12C14,13.1 13.1,14 12,14C10.9,14 10,13.1 10,12M4,12C4,10.9 4.9,10 6,10C7.1,10 8,10.9 8,12C8,13.1 7.1,14 6,14C4.9,14 4,13.1 4,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon link-variant-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M10.59,13.41C11,13.8 11,14.44 10.59,14.83C10.2,15.22 9.56,15.22 9.17,14.83C7.22,12.88 7.22,9.71 9.17,7.76V7.76L12.71,4.22C14.66,2.27 17.83,2.27 19.78,4.22C21.73,6.17 21.73,9.34 19.78,11.29L18.29,12.78C18.3,11.96 18.17,11.14 17.89,10.36L18.36,9.88C19.54,8.71 19.54,6.81 18.36,5.64C17.19,4.46 15.29,4.46 14.12,5.64L10.59,9.17C9.41,10.34 9.41,12.24 10.59,13.41M13.41,9.17C13.8,8.78 14.44,8.78 14.83,9.17C16.78,11.12 16.78,14.29 14.83,16.24V16.24L11.29,19.78C9.34,21.73 6.17,21.73 4.22,19.78C2.27,17.83 2.27,14.66 4.22,12.71L5.71,11.22C5.7,12.04 5.83,12.86 6.11,13.65L5.64,14.12C4.46,15.29 4.46,17.19 5.64,18.36C6.81,19.54 8.71,19.54 9.88,18.36L13.41,14.83C14.59,13.66 14.59,11.76 13.41,10.59C13,10.2 13,9.56 13.41,9.17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon lock-alert-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,1C9.24,1 7,3.24 7,6V8H6C4.9,8 4,8.9 4,10V20C4,21.1 4.9,22 6,22H18C19.1,22 20,21.1 20,20V10C20,8.9 19.1,8 18,8H17V6C17,3.24 14.76,1 12,1M12,2.9C13.71,2.9 15.1,4.29 15.1,6V8H8.9V6C8.9,4.29 10.29,2.9 12,2.9M11,11H13V15H11V11M11,17H13V19H11V17Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon markdown-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M2,16V8H4L7,11L10,8H12V16H10V10.83L7,13.83L4,10.83V16H2M16,8H19V12H21.5L17.5,16.5L13.5,12H16V8Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&": +/*!************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9& ***! + \************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon pencil-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon reply-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M10,9V5L3,12L10,19V14.9C15,14.9 18.5,16.5 21,20C20,15 17,10 10,9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon share-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,12L14,5V9C7,10 4,15 3,20C5.5,16.5 9,14.9 14,14.9V19L21,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon star-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-down-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15H23V3H19M15,3H6C5.17,3 4.46,3.5 4.16,4.22L1.14,11.27C1.05,11.5 1,11.74 1,12V14C1,15.1 1.9,16 3,16H9.31L8.36,20.57C8.34,20.67 8.33,20.77 8.33,20.88C8.33,21.3 8.5,21.67 8.77,21.94L9.83,23L16.41,16.41C16.78,16.05 17,15.55 17,15V5C17,3.89 16.1,3 15,3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&": +/*!**********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6& ***! + \**********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-down-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15V3H23V15H19M15,3C16.1,3 17,3.9 17,5V15C17,15.55 16.78,16.05 16.41,16.41L9.83,23L8.77,21.94C8.5,21.67 8.33,21.3 8.33,20.88L8.36,20.57L9.31,16H3C1.89,16 1,15.1 1,14V12C1,11.74 1.05,11.5 1.14,11.27L4.16,4.22C4.46,3.5 5.17,3 6,3H15M15,5H5.97L3,12V14H11.78L10.65,19.32L15,14.97V5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-up-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M23,10C23,8.89 22.1,8 21,8H14.68L15.64,3.43C15.66,3.33 15.67,3.22 15.67,3.11C15.67,2.7 15.5,2.32 15.23,2.05L14.17,1L7.59,7.58C7.22,7.95 7,8.45 7,9V19C7,20.1 7.9,21 9,21H18C18.83,21 19.54,20.5 19.84,19.78L22.86,12.73C22.95,12.5 23,12.26 23,12V10M1,21H5V9H1V21Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon thumb-up-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,9V21H1V9H5M9,21C7.9,21 7,20.1 7,19V9C7,8.45 7.22,7.95 7.59,7.59L14.17,1L15.23,2.06C15.5,2.33 15.67,2.7 15.67,3.11L15.64,3.43L14.69,8H21C22.11,8 23,8.9 23,10V12C23,12.26 22.95,12.5 22.86,12.73L19.84,19.78C19.54,20.5 18.83,21 18,21H9M9,19H18.03L21,12V10H12.21L13.34,4.68L9,9.03V19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-high-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-mute-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlertBox.vue?vue&type=template&id=b373690a& */ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&"); +/* harmony import */ var _AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlertBox.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["render"], + _AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AlertBox.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AlertBox.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AlertBox.vue?vue&type=template&id=b373690a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertBox.vue?vue&type=template&id=b373690a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertBox_vue_vue_type_template_id_b373690a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Delete.vue?vue&type=template&id=423aa957& */ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&"); +/* harmony import */ var _Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Delete.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["render"], + _Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Delete.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Delete.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Delete.vue?vue&type=template&id=423aa957& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=423aa957&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Delete_vue_vue_type_template_id_423aa957___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=template&id=3174c38c& */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&"); +/* harmony import */ var _DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["render"], + _DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/DotsHorizontal.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./DotsHorizontal.vue?vue&type=template&id=3174c38c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LinkVariant.vue?vue&type=template&id=36a2ce2f& */ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&"); +/* harmony import */ var _LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LinkVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["render"], + _LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LinkVariant.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LinkVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LinkVariant.vue?vue&type=template&id=36a2ce2f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LinkVariant.vue?vue&type=template&id=36a2ce2f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LinkVariant_vue_vue_type_template_id_36a2ce2f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LockAlert.vue?vue&type=template&id=0b3b71f5& */ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&"); +/* harmony import */ var _LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LockAlert.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["render"], + _LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LockAlert.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LockAlert.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LockAlert.vue?vue&type=template&id=0b3b71f5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LockAlert.vue?vue&type=template&id=0b3b71f5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LockAlert_vue_vue_type_template_id_0b3b71f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=5bbcecca& */ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&"); +/* harmony import */ var _Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Markdown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Markdown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Markdown.vue?vue&type=template&id=5bbcecca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Markdown.vue?vue&type=template&id=5bbcecca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_5bbcecca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue ***! + \***********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Pencil.vue?vue&type=template&id=093f2fb9& */ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&"); +/* harmony import */ var _Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Pencil.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["render"], + _Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Pencil.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&": +/*!************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js& ***! + \************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Pencil.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9& ***! + \******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Pencil.vue?vue&type=template&id=093f2fb9& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Pencil.vue?vue&type=template&id=093f2fb9&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Pencil_vue_vue_type_template_id_093f2fb9___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Reply.vue?vue&type=template&id=3faadf6e& */ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&"); +/* harmony import */ var _Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Reply.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["render"], + _Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Reply.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Reply.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Reply.vue?vue&type=template&id=3faadf6e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Reply.vue?vue&type=template&id=3faadf6e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Reply_vue_vue_type_template_id_3faadf6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Share.vue?vue&type=template&id=098ecc3a& */ "./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&"); +/* harmony import */ var _Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Share.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Share.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Share.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Share.vue?vue&type=template&id=098ecc3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Share.vue?vue&type=template&id=098ecc3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Share_vue_vue_type_template_id_098ecc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Star.vue?vue&type=template&id=553bd904& */ "./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&"); +/* harmony import */ var _Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Star.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["render"], + _Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Star.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Star.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Star.vue?vue&type=template&id=553bd904& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Star.vue?vue&type=template&id=553bd904&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Star_vue_vue_type_template_id_553bd904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbDown.vue?vue&type=template&id=b61641c8& */ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&"); +/* harmony import */ var _ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbDown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbDown.vue?vue&type=template&id=b61641c8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDown.vue?vue&type=template&id=b61641c8&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDown_vue_vue_type_template_id_b61641c8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue": +/*!*********************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbDownOutline.vue?vue&type=template&id=1721e8b6& */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&"); +/* harmony import */ var _ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbDownOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbDownOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbDownOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6& ***! + \****************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbDownOutline.vue?vue&type=template&id=1721e8b6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbDownOutline.vue?vue&type=template&id=1721e8b6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbDownOutline_vue_vue_type_template_id_1721e8b6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbUp.vue?vue&type=template&id=549215d6& */ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&"); +/* harmony import */ var _ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbUp.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbUp.vue?vue&type=template&id=549215d6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUp.vue?vue&type=template&id=549215d6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUp_vue_vue_type_template_id_549215d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&"); +/* harmony import */ var _ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ThumbUpOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["render"], + _ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ThumbUpOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ThumbUpOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ThumbUpOutline.vue?vue&type=template&id=6ad2d89d& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ThumbUpOutline.vue?vue&type=template&id=6ad2d89d&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ThumbUpOutline_vue_vue_type_template_id_6ad2d89d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony import */ var _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeHigh.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony import */ var _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeMute.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/17.731bae53e208787b7c5c.js b/public/17.731bae53e208787b7c5c.js new file mode 100644 index 00000000..ff680ae9 --- /dev/null +++ b/public/17.731bae53e208787b7c5c.js @@ -0,0 +1,4264 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[17],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var mo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mo-js */ "./node_modules/mo-js/build/mo.js"); +/* harmony import */ var mo_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mo_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ThumbUpOutline */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_3__["default"], + ThumbUp: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_2__["default"], + ThumbUpOutline: $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + likers: this.item.cache.likes_count, + animationTimeline: null + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])), + methods: { + toggle: function toggle() { + var _this = this; + + if (!this.currentUser.id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + this.$http.post("relations/like", { + followable_type: 'App\\Thread', + followable_id: this.item.id + }).then(function () { + _this.item.has_liked = !_this.item.has_liked; + _this.item.has_liked ? _this.$parent.thread.cache.likes_count++ : _this.$parent.thread.cache.likes_count--; + }); + }, + repeatClapping: function repeatClapping() { + var clapIcon = document.getElementById('clap--icon'); + this.updateNumberOfClaps(); + this.animationTimeline.replay(); + clapIcon.classList.add('checked'); + }, + updateNumberOfClaps: function updateNumberOfClaps() { + var clapCount = document.getElementById('clap--count'); + var clapTotalCount = document.getElementById('clap--count-total'); + this.likers = this.$parent.thread.cache.likes_count; + + if (this.item.has_liked) { + clapCount.innerHTML = '-1'; + clapTotalCount.innerHTML = this.likers - 1; + this.likers--; + } else { + clapCount.innerHTML = '+1'; + clapTotalCount.innerHTML = this.likers + 1; + this.likers++; + } + } + }, + mounted: function mounted() { + var vm = this; + var clap = document.getElementById('clap'); + var tlDuration = 300; + var clapHold; + var triangleBurst = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Burst({ + parent: clap, + radius: { + 50: 95 + }, + count: 5, + angle: 30, + children: { + shape: 'polygon', + radius: { + 6: 0 + }, + scale: 1, + stroke: 'rgba(211,84,0 ,0.5)', + strokeWidth: 2, + angle: 210, + delay: 30, + speed: 0.2, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.bezier(0.1, 1, 0.3, 1), + duration: tlDuration + } + }); + var circleBurst = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Burst({ + parent: clap, + radius: { + 50: 75 + }, + angle: 25, + duration: tlDuration, + children: { + shape: 'circle', + fill: 'rgba(149,165,166 ,0.5)', + delay: 30, + speed: 0.2, + radius: { + 3: 0 + }, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.bezier(0.1, 1, 0.3, 1) + } + }); + var countAnimation = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap--count', + isShowStart: false, + isShowEnd: true, + y: { + 0: -30 + }, + opacity: { + 0: 1 + }, + duration: tlDuration + }).then({ + opacity: { + 1: 0 + }, + y: -80, + delay: tlDuration / 2 + }); + var countTotalAnimation = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap--count-total', + isShowStart: false, + isShowEnd: true, + opacity: { + 0: 1 + }, + delay: 3 * tlDuration / 2, + duration: tlDuration, + y: { + 0: -3 + } + }); + var scaleButton = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Html({ + el: '#clap', + duration: tlDuration, + scale: { + 1.3: 1 + }, + easing: mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.easing.out + }); + clap.style.transform = 'scale(1, 1)'; + /* Bug1 fix */ + + this.animationTimeline = new mo_js__WEBPACK_IMPORTED_MODULE_0___default.a.Timeline(); + this.animationTimeline.add([triangleBurst, circleBurst, countAnimation, countTotalAnimation, scaleButton]); + clap.addEventListener('click', function () { + vm.repeatClapping(); + }); + clap.addEventListener('mousedown', function () { + clapHold = setInterval(function () { + vm.repeatClapping(); + }, 400); + }); + clap.addEventListener('mouseup', function () { + clearInterval(clapHold); + }); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/like-btn.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'like-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + ThumbUpIcon: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + methods: { + afterToggle: function afterToggle(bool) { + bool ? this.item.cache.likes_count++ : this.item.cache.likes_count--; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/LinkVariant */ "./node_modules/vue-material-design-icons/LinkVariant.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Twitter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Twitter */ "./node_modules/vue-material-design-icons/Twitter.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! clipboard */ "./node_modules/clipboard/dist/clipboard.js"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_7__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'share-action', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + LinkVariant: $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_2__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_3__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_4__["default"], + TwitterIcon: $icons_Twitter__WEBPACK_IMPORTED_MODULE_5__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + props: { + item: { + type: Object, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + weibo: '', + twitter: '', + facebook: '', + btnClasses: 'btn btn-icon d-block mx-auto mt-2 bg-white text-18 text-gray-50', + hovering: false, + title: encodeURIComponent(this.item.title + ' -- via ' + document.title) + }; + }, + computed: { + copyText: function copyText() { + return this.title + '\n\n' + window.location.href; + } + }, + mounted: function mounted() { + var _this = this; + + var url = encodeURIComponent(window.location.href); + this.weibo = "https://service.weibo.com/share/share.php?url=".concat(url, "&title=").concat(this.title, "&pic=&appkey="); + this.twitter = "https://twitter.com/intent/tweet?text=".concat(this.title, "&url=").concat(url); + this.facebook = "https://www.facebook.com/sharer/sharer.php?u=".concat(url); + var btn = new clipboard__WEBPACK_IMPORTED_MODULE_7___default.a('.copy-link'); + btn.on('success', function () { + _this.$message.success('链接已复制'); + }); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'subscribe-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + hovering: false + }; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/editor */ "./src/components/editor/index.js"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $components_markdown_body__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/markdown-body */ "./src/components/markdown-body.vue"); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! localforage */ "./node_modules/localforage/dist/localforage.js"); +/* harmony import */ var localforage__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(localforage__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/ThumbUp */ "./node_modules/vue-material-design-icons/ThumbUp.vue"); +/* harmony import */ var $icons_Reply__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/Reply */ "./node_modules/vue-material-design-icons/Reply.vue"); +/* harmony import */ var $icons_Markdown__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $icons/Markdown */ "./node_modules/vue-material-design-icons/Markdown.vue"); +/* harmony import */ var $icons_ThumbDown__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $icons/ThumbDown */ "./node_modules/vue-material-design-icons/ThumbDown.vue"); +/* harmony import */ var $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $icons/ThumbUpOutline */ "./node_modules/vue-material-design-icons/ThumbUpOutline.vue"); +/* harmony import */ var $icons_ThumbDownOutline__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $icons/ThumbDownOutline */ "./node_modules/vue-material-design-icons/ThumbDownOutline.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'comments', + components: { + Editor: $components_editor__WEBPACK_IMPORTED_MODULE_0__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_3__["default"], + Markdown: $icons_Markdown__WEBPACK_IMPORTED_MODULE_8__["default"], + MarkdownBody: $components_markdown_body__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_1__["default"], + ThumbUp: $icons_ThumbUp__WEBPACK_IMPORTED_MODULE_6__["default"], + Reply: $icons_Reply__WEBPACK_IMPORTED_MODULE_7__["default"], + ThumbDown: $icons_ThumbDown__WEBPACK_IMPORTED_MODULE_9__["default"], + ThumbUpOutline: $icons_ThumbUpOutline__WEBPACK_IMPORTED_MODULE_10__["default"], + ThumbDownOutline: $icons_ThumbDownOutline__WEBPACK_IMPORTED_MODULE_11__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_5__["mapGetters"])(['currentUser']), { + formReady: function formReady() { + return this.content.length >= 3; + }, + cacheKey: function cacheKey() { + return 'comment.content_' + this.objectType.replace('\\\\', '_').toLowerCase() + '_' + this.objectId; + } + }), + props: { + objectId: { + type: Number, + required: true + }, + objectType: { + type: String, + default: 'App\\Thread' + } + }, + data: function data() { + return { + writing: false, + content: '', + comments: [], + editorOptions: { + minLines: 3, + maxLines: 20 + }, + query: Object.assign({ + page: 1 + }, this.$route.query) + }; + }, + watch: { + query: { + deep: true, + handler: function handler() { + this.$router.replace({ + query: this.query + }); + this.loadComments(); + } + }, + content: function content() { + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.setItem(this.cacheKey, this.content); + }, + writing: function writing() { + if (!this.writing) { + this.content = ''; + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.removeItem(this.cacheKey); + this.$refs['editor'].editor.setValue(''); + } else { + var editor = this.$refs['editor'].editor; + editor.focus(); + setTimeout(function () { + editor.setCursor(editor.lineCount(), 0); + }); + } + } + }, + mounted: function mounted() { + this.loadComments().then(function () { + if (window.location.hash.length > 0) { + setTimeout(function () { + window.location.replace(window.location.hash); + }); + } + }); + this.syncCachedContent(); + }, + methods: { + handlePaginate: function handlePaginate(page) { + this.query.page = page; + }, + vote: function vote() { + var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'up'; + var item = arguments.length > 1 ? arguments[1] : undefined; + var index = arguments.length > 2 ? arguments[2] : undefined; + + if (!this.$user().id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + var reverse = type == 'up' ? 'down' : 'up'; + + if (item["has_".concat(type, "_voted")]) { + this.$http.post("comments/".concat(item.id, "/cancel-vote")); + this.comments.data[index]["".concat(type, "_voters")]--; + this.comments.data[index]["has_".concat(type, "_voted")] = false; + } else { + this.$http.post("comments/".concat(item.id, "/").concat(type, "-vote")); + + if (item["has_".concat(reverse, "_voted")]) { + this.comments.data[index]["".concat(reverse, "_voters")]--; + this.comments.data[index]["has_".concat(reverse, "_voted")] = false; + } + + this.comments.data[index]["".concat(type, "_voters")]++; + this.comments.data[index]["has_".concat(type, "_voted")] = true; + } + }, + reply: function reply(item) { + if (!this.$user().id) { + return this.$router.push({ + name: 'auth.login' + }); + } + + this.content = "@".concat(item.user.username, " "); + this.writing = true; + window.scrollTo(0, document.querySelector('[name="comments"]').offsetTop); + }, + submit: function submit() { + var _this = this; + + this.$http.post('comments', { + commentable_type: this.objectType, + commentable_id: this.objectId, + content: { + markdown: this.content, + type: 'markdown' + } + }).then(function () { + _this.content = ''; + _this.writing = false; + + _this.$message.success('评论成功!'); + + _this.$emit('created'); + + _this.loadComments(); + }); + }, + syncCachedContent: function syncCachedContent() { + var _this2 = this; + + localforage__WEBPACK_IMPORTED_MODULE_4___default.a.getItem(this.cacheKey, function (err, content) { + if (!err && content && content.length > 0) { + _this2.writing = true; + _this2.content = content; + } + }); + }, + loadComments: function loadComments() { + var _this3 = this; + + return this.$http.get("comments?commentable_type=".concat(this.objectType, "&commentable_id=").concat(this.objectId, "&page=").concat(this.query.page)).then(function (comments) { + _this3.comments = comments; + + _this3.mapCommentsUserForMention(comments.data); + }); + }, + mapCommentsUserForMention: function mapCommentsUserForMention(comments) { + comments.map(function (comment) { + window.pageUsers.some(function (u) { + return u.id === comment.user_id; + }) || window.pageUsers.push(comment.user); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/LinkVariant */ "./node_modules/vue-material-design-icons/LinkVariant.vue"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! clipboard */ "./node_modules/clipboard/dist/clipboard.js"); +/* harmony import */ var clipboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(clipboard__WEBPACK_IMPORTED_MODULE_1__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'share-dropdown', + components: { + LinkVariant: $icons_LinkVariant__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + data: function data() { + return { + url: encodeURI(window.location.href), + title: encodeURIComponent(window.document.title), + description: '' + }; + }, + computed: { + weibo: function weibo() { + return "https://service.weibo.com/share/share.php?url=".concat(this.url, "&title=").concat(this.title, "&pic=&appkey="); + }, + qq: function qq() { + return "http://connect.qq.com/widget/shareqq/index.html?url=".concat(this.url, "&title=").concat(this.title, "&source=").concat(window.location.host, "&desc=").concat(this.description); + }, + qzone: function qzone() { + return "http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=".concat(this.url, "&summary=").concat(this.title, "&site=").concat(window.location.host); + } + }, + methods: { + getDescription: function getDescription() { + var d = document.querySelector('[name="description"]'); + + if (d) { + return encodeURIComponent(d.getAttribute('content')); + } + + return encodeURIComponent(document.querySelector('.markdown-body').textContent.substr(0, 40).trim().replace(new RegExp(/\n/, 'g'), '')); + } + }, + mounted: function mounted() { + var _this = this; + + new clipboard__WEBPACK_IMPORTED_MODULE_1___default.a('.copy-link'); + setTimeout(function () { + _this.description = _this.getDescription(); + }, 1000); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-card.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-list-card', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + title: { + type: String, + default: null + }, + users: { + type: Array, + default: function _default() { + return []; + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-profile-card.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_user_social_btns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-social-btns */ "./src/components/user-social-btns.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-profile-card', + props: { + user: { + type: Object, + required: true + } + }, + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_2__["default"], + UserSocialBtns: $components_user_social_btns__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/wechat-qrcode.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! qrcode */ "./node_modules/qrcode/lib/browser.js"); +/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(qrcode__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'wechat-qrcode', + mounted: function mounted() { + setTimeout(function () { + qrcode__WEBPACK_IMPORTED_MODULE_0___default.a.toCanvas(document.getElementById('page-wechat-qrcode-canvas'), window.location.href, { + width: 200 + }); + }, 500); + document.body.appendChild(this.$refs['pageWechatQrcode']); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui */ "./node_modules/element-ui/lib/element-ui.common.js"); +/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_0__); +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + 'el-dialog': element_ui__WEBPACK_IMPORTED_MODULE_0__["Dialog"] + }, + props: { + visible: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + remark: '' + }; + }, + methods: { + report: function report() { + var _this = this; + + this.$http.post("threads/".concat(this.$route.params.id, "/report"), { + remark: this.remark + }).then(function () { + _this.close(); + + _this.$message.success('举报成功!'); + }); + }, + close: function close() { + this.$emit('close'); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dayjs */ "./node_modules/dayjs/dayjs.min.js"); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var $icons_Medal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Medal */ "./node_modules/vue-material-design-icons/Medal.vue"); +/* harmony import */ var $icons_LockAlert__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/LockAlert */ "./node_modules/vue-material-design-icons/LockAlert.vue"); +/* harmony import */ var $icons_FormatVerticalAlignTop__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/FormatVerticalAlignTop */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue"); +/* harmony import */ var $icons_Pencil__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Pencil */ "./node_modules/vue-material-design-icons/Pencil.vue"); +/* harmony import */ var $icons_Delete__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Delete */ "./node_modules/vue-material-design-icons/Delete.vue"); +/* harmony import */ var $icons_AlertBox__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/AlertBox */ "./node_modules/vue-material-design-icons/AlertBox.vue"); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_list_card__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $components/user-list-card */ "./src/components/user-list-card.vue"); +/* harmony import */ var $components_wechat_qrcode__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $components/wechat-qrcode */ "./src/components/wechat-qrcode.vue"); +/* harmony import */ var $components_comments__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $components/comments */ "./src/components/comments.vue"); +/* harmony import */ var $icons_Star__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! $icons/Star */ "./node_modules/vue-material-design-icons/Star.vue"); +/* harmony import */ var $icons_DotsHorizontal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! $icons/DotsHorizontal */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue"); +/* harmony import */ var $icons_Share__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! $icons/Share */ "./node_modules/vue-material-design-icons/Share.vue"); +/* harmony import */ var $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! $components/buttons/subscribe-btn */ "./src/components/buttons/subscribe-btn.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $components_buttons_like_btn__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! $components/buttons/like-btn */ "./src/components/buttons/like-btn.vue"); +/* harmony import */ var $components_markdown_body__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! $components/markdown-body */ "./src/components/markdown-body.vue"); +/* harmony import */ var _report_form__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./report-form */ "./src/modules/threads/report-form.vue"); +/* harmony import */ var $components_buttons_animate_action__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! $components/buttons/animate-action */ "./src/components/buttons/animate-action.vue"); +/* harmony import */ var $components_buttons_share_action__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! $components/buttons/share-action */ "./src/components/buttons/share-action.vue"); +/* harmony import */ var $components_user_profile_card__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! $components/user-profile-card */ "./src/components/user-profile-card.vue"); +/* harmony import */ var $components_share_dropdown__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! $components/share-dropdown */ "./src/components/share-dropdown.vue"); +/* harmony import */ var $icons_Comment__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! $icons/Comment */ "./node_modules/vue-material-design-icons/Comment.vue"); +/* harmony import */ var $icons_Eye__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! $icons/Eye */ "./node_modules/vue-material-design-icons/Eye.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + UserListCard: $components_user_list_card__WEBPACK_IMPORTED_MODULE_9__["default"], + LikeBtn: $components_buttons_like_btn__WEBPACK_IMPORTED_MODULE_17__["default"], + AnimateAction: $components_buttons_animate_action__WEBPACK_IMPORTED_MODULE_20__["default"], + ShareAction: $components_buttons_share_action__WEBPACK_IMPORTED_MODULE_21__["default"], + ReportForm: _report_form__WEBPACK_IMPORTED_MODULE_19__["default"], + SubscribeBtn: $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_15__["default"], + CommentIcon: $icons_Comment__WEBPACK_IMPORTED_MODULE_24__["default"], + ViewIcon: $icons_Eye__WEBPACK_IMPORTED_MODULE_25__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_16__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_7__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_8__["default"], + PencilIcon: $icons_Pencil__WEBPACK_IMPORTED_MODULE_4__["default"], + AlertBoxIcon: $icons_AlertBox__WEBPACK_IMPORTED_MODULE_6__["default"], + DeleteIcon: $icons_Delete__WEBPACK_IMPORTED_MODULE_5__["default"], + ShareIcon: $icons_Share__WEBPACK_IMPORTED_MODULE_14__["default"], + StarIcon: $icons_Star__WEBPACK_IMPORTED_MODULE_12__["default"], + MoreIcon: $icons_DotsHorizontal__WEBPACK_IMPORTED_MODULE_13__["default"], + MedalIcon: $icons_Medal__WEBPACK_IMPORTED_MODULE_1__["default"], + TopIcon: $icons_FormatVerticalAlignTop__WEBPACK_IMPORTED_MODULE_3__["default"], + LockIcon: $icons_LockAlert__WEBPACK_IMPORTED_MODULE_2__["default"], + MarkdownBody: $components_markdown_body__WEBPACK_IMPORTED_MODULE_18__["default"], + Comments: $components_comments__WEBPACK_IMPORTED_MODULE_11__["default"], + UserProfileCard: $components_user_profile_card__WEBPACK_IMPORTED_MODULE_22__["default"], + ShareDropdown: $components_share_dropdown__WEBPACK_IMPORTED_MODULE_23__["default"], + WechatQrcode: $components_wechat_qrcode__WEBPACK_IMPORTED_MODULE_10__["default"] + }, + data: function data() { + return { + thread: null, + showReportForm: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_26__["mapGetters"])(['currentUser']), { + canEdit: function canEdit() { + return this.thread.user_id === this.$user().id || this.$user().is_admin; + } + }), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.id !== from.params.id) { + this.loadThread(); + } + + next(); + }, + methods: { + loadThread: function loadThread() { + var _this = this; + + this.$http.get("threads/".concat(this.$route.params.id, "?include=user,likers")).then(function (response) { + return _this.thread = response; + }).then(this.registerEventListener).catch(function (response) { + if (response.status === 404) { + _this.$message.error('该主题已被删除或锁定!'); + + setTimeout(function () { + _this.$router.go(-1); + }, 1000); + } + }).then(function () { + window.pageUsers = [_this.thread.user]; + }); + }, + handleDelete: function handleDelete(thread) { + var _this2 = this; + + this.$http.delete("threads/".concat(thread.id)).then(function () { + _this2.$message.success('已删除!'); + + _this2.$router.go(-1); + }); + }, + toggleStatus: function toggleStatus(timestamp) { + var _this3 = this; + + this.thread[timestamp] = this.thread[timestamp] ? null : dayjs__WEBPACK_IMPORTED_MODULE_0___default()().format('YYYY-MM-DD HH:mm:ss'); + this.$http.patch("threads/".concat(this.thread.id), this.thread).then(function () { + _this3.$message.success('搞定!'); + + _this3.loadThread(); + }); + } + }, + mounted: function mounted() { + this.loadThread(); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "/*========================\n SASS definitions\n =======================*/\n/*========================\n BUTTON styles\n =======================*/\n.clap--icon {\n color: #0078ff;\n}\n.clap {\n position: relative;\n border-radius: 50%;\n background: #fff;\n font-size: 24px;\n width: 60px;\n height: 60px;\n}\n.clap:after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n border-radius: 50%;\n width: 59px;\n height: 59px;\n}\n.clap:hover {\n cursor: pointer;\n background: #fff60;\n font-size: 26px;\n -webkit-transition: all 0.3s ease-in;\n transition: all 0.3s ease-in;\n}\n.clap:hover:after {\n -webkit-animation: shockwave 1s ease-in infinite;\n animation: shockwave 1s ease-in infinite;\n}\n.clap .clap--count {\n position: absolute;\n top: -37.5px;\n left: 15px;\n font-size: 0.8rem;\n color: white;\n background: #0078ff;\n border-radius: 50%;\n height: 30px;\n width: 30px;\n line-height: 30px;\n}\n.clap .clap--count-total {\n position: absolute;\n font-size: 0.8rem;\n width: 60px;\n text-align: center;\n left: 0;\n bottom: -24px;\n color: #bdc3c7;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".share-action .material-design-icon[data-v-fde12a7c] {\n vertical-align: middle;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".comments .pop-comment-form {\n border: none;\n max-height: 0;\n}\n.comments .pop-comment-form.show {\n max-height: 320px;\n}\n.comments .comment-editor .CodeMirror {\n height: auto;\n min-height: 100px;\n max-height: 180px;\n}\n.comments .pop-comment-form {\n position: -webkit-sticky;\n position: sticky;\n bottom: 55px;\n min-width: 500px;\n max-width: 100%;\n max-height: 0;\n overflow: hidden;\n -webkit-transition: max-height 0.5s;\n transition: max-height 0.5s;\n}\n.comments .markdown-body.comment-content p:last-child {\n margin-bottom: 0;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".dropdown-toggle[data-v-035c7ccf]::after {\n display: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, "textarea {\n resize: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".thread-toolbar {\n position: fixed;\n top: 150px;\n margin-left: -80px;\n}\n.thread-stats-bar {\n position: -webkit-sticky;\n position: sticky;\n bottom: 0;\n width: 100%;\n left: 0;\n}\n.thread-stats-bar .material-design-icon {\n font-size: 1.2em;\n bottom: -0.06em;\n}\n.user-profile-card {\n position: -webkit-sticky;\n position: sticky;\n top: 20px;\n}\n@media screen and (min-width: 1200px) and (max-width: 1350px) {\n.page-threads-show {\n margin-left: 65px;\n}\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&": +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00& ***! + \****************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "text-center clap d-flex align-items-center justify-content-center", + attrs: { id: "clap" }, + on: { click: _vm.toggle } + }, + [ + _c( + "span", + { staticClass: "clap--icon", attrs: { id: "clap--icon" } }, + [!_vm.item.has_liked ? _c("thumb-up-outline") : _c("thumb-up")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "clap--count", attrs: { id: "clap--count" } }), + _vm._v(" "), + _c("span", { + staticClass: "clap--count-total", + attrs: { id: "clap--count-total" } + }) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { + attrs: { relation: _vm.relation, action: "like", item: _vm.item }, + on: { "after-toggle": _vm.afterToggle } + }, + [ + _c( + "a", + { + staticClass: "btn btn-sm btn-link text-gray-50", + attrs: { slot: "on", href: "javascript:void(0)" }, + slot: "on" + }, + [ + _c("thumb-up-icon"), + _vm._v(" " + _vm._s(_vm.item.cache.likes_count) + "\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "btn btn-sm btn-primary", + attrs: { slot: "off", href: "javascript:void(0)" }, + slot: "off" + }, + [ + _c("thumb-up-icon"), + _vm._v(" " + _vm._s(_vm.item.cache.likes_count) + "\n ") + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "share-action" }, [ + _c("p", { staticClass: "text-center text-gray-40 text-14" }, [ + _vm._v("分享") + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "mx-auto btn btn-icon text-18 copy-link text-gray-50", + attrs: { + "data-clipboard-text": _vm.copyText, + "data-toggle": "tooltip", + title: "复制链接" + } + }, + [_c("link-variant", { attrs: { title: "复制链接" } })], + 1 + ), + _vm._v(" "), + _c("div", [ + _c( + "a", + { + class: _vm.btnClasses, + attrs: { target: "_blank", href: _vm.weibo, title: "分享到微博" } + }, + [ + _c("span", { staticClass: "material-design-icon sina-icon" }, [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1528816678350", + viewBox: "0 0 1260 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1944", + "xmlns:xlink": "http://www.w3.org/1999/xlink", + width: "17.5", + height: "14" + } + }, + [ + _c("path", { + attrs: { + d: + "M1174.286235 110.614403A330.443026 330.443026 0 0 0 858.311759 7.467639a50.406563 50.406563 0 0 0-37.804922 58.34093 50.406563 50.406563 0 0 0 58.34093 37.804922 238.497721 238.497721 0 0 1 226.829535 72.342753 233.363719 233.363719 0 0 1 46.672744 233.36372 46.672744 46.672744 0 0 0 3.267092 37.804922 60.674567 60.674567 0 0 0 27.536919 24.269827 53.673655 53.673655 0 0 0 61.608021-30.804011 351.445761 351.445761 0 0 0-72.342753-329.509572z m0 0", + "p-id": "1945" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M1026.800365 412.587056a40.13856 40.13856 0 0 0 51.340018-27.536919 158.220602 158.220602 0 0 0-34.537831-157.753874 167.088423 167.088423 0 0 0-154.486782-51.340019 37.338195 37.338195 0 0 0-30.804011 46.672744 37.338195 37.338195 0 0 0 46.672744 30.804011A79.343665 79.343665 0 0 1 980.127621 280.036463a82.144029 82.144029 0 0 1 17.268915 78.876937A46.672744 46.672744 0 0 0 1026.800365 412.587056z m-82.610757 78.876937c-17.268915-7.000912-30.804011-10.268004-20.536007-30.804011a136.751139 136.751139 0 0 0 0-126.949863c-41.072015-58.34093-154.486782-55.073838-280.036463 0 0 0-41.072015 17.268915-30.804011-13.535096 20.536007-65.341841 17.268915-116.68186-13.535096-147.485871-70.475843-69.075661-255.766636 2.800365-412.587056 161.020967-116.68186 119.948952-186.690975 243.631723-186.690975 353.779398 0 209.56062 267.90155 336.510483 528.802188 336.510483 343.511395 0 569.874202-199.292616 569.874202-357.04649 0-96.145852-82.610757-151.21969-154.486782-175.02279z m-415.38742 456.926162c-209.56062 20.536007-388.783956-75.609845-401.852325-209.56062s144.218778-264.634458 353.779399-285.170465 387.850501 75.609845 401.852324 209.56062-144.218778 264.16773-353.779398 285.170465z m0 0", + "p-id": "1946" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M549.338195 556.805834a224.495898 224.495898 0 0 0-253.899726 109.680948A154.020055 154.020055 0 0 0 394.851413 886.782133a222.628988 222.628988 0 0 0 267.90155-113.414767 155.420237 155.420237 0 0 0-113.414768-216.561532z m-75.609845 230.096627a77.476755 77.476755 0 0 1-96.145852 30.804011 54.60711 54.60711 0 0 1-20.536008-82.610756 78.41021 78.41021 0 0 1 93.345488-30.804011 52.273473 52.273473 0 0 1 24.269827 82.610756z m0 0", + "p-id": "1947" + } + }) + ] + ) + ]) + ] + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + "data-toggle": "modal", + "data-target": "#page-wechat-qrcode", + title: "分享到微信" + } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531575816445", + viewBox: "0 0 1171 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1968", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M331.428571 263.428571q0-23.428571-14.285714-37.714286t-37.714286-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.714286-14t14.285714-37.428571zm424.571429 289.714286q0-16-14.571429-28.571429t-37.428571-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.857143 0 37.428571-12.571429t14.571429-29.142857zm-134.857143-289.714286q0-23.428571-14-37.714286t-37.428571-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.428571-14t14-37.428571zm362.857143 289.714286q0-16-14.857143-28.571429t-37.142857-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.285714 0 37.142857-12.571429t14.857143-29.142857zm-152-226.857143q-17.714286-2.285714-40-2.285714-96.571429 0-177.714286 44t-127.714286 119.142857-46.571429 164.285714q0 44.571429 13.142857 86.857143-20 1.714286-38.857143 1.714286-14.857143 0-28.571429-0.857143t-31.428571-3.714286-25.428571-4-31.142857-6-28.571429-6l-144.571429 72.571429 41.142857-124.571429q-165.714286-116-165.714286-280 0-96.571429 55.714286-177.714286t150.857143-127.714286 207.714286-46.571429q100.571429 0 190 37.714286t149.714286 104.285714 78 148.857143zm338.285714 320.571429q0 66.857143-39.142857 127.714286t-106 110.571429l31.428571 103.428571-113.714286-62.285714q-85.714286 21.142857-124.571429 21.142857-96.571429 0-177.714286-40.285714t-127.714286-109.428571-46.571429-150.857143 46.571429-150.857143 127.714286-109.428571 177.714286-40.285714q92 0 173.142857 40.285714t130 109.714286 48.857143 150.571429z", + "p-id": "1969" + } + }) + ] + ) + ] + ) + ] + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + target: "_blank", + title: "分享到 Twitter", + href: _vm.twitter + } + }, + [_c("twitter-icon")], + 1 + ), + _vm._v(" "), + _c( + "a", + { + class: _vm.btnClasses, + attrs: { + target: "_blank", + title: "分享到 Facebook", + href: _vm.facebook + } + }, + [_c("facebook-icon")], + 1 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { attrs: { relation: _vm.relation, action: "subscribe", item: _vm.item } }, + [ + _c( + "button", + { + staticClass: "btn btn-sm text-gray-50", + attrs: { slot: "on" }, + slot: "on" + }, + [ + _c("volume-high"), + _c("span", { staticClass: "pl-1" }, [_vm._v("订阅")]) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "btn btn-sm", + class: { "btn-primary": !_vm.hovering, "btn-danger": _vm.hovering }, + attrs: { slot: "off" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + }, + slot: "off" + }, + [ + _vm.hovering ? _c("volume-mute") : _c("check-icon"), + _vm._v(" "), + _c("span", { staticClass: "pl-1" }, [ + _vm._v(_vm._s(_vm.hovering ? "取消订阅" : "已订阅")) + ]) + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=template&id=4e7c9004&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/comments.vue?vue&type=template&id=4e7c9004& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { staticClass: "comments", attrs: { name: "comments" } }, + [ + _c("div", { staticClass: "py-2" }, [ + _c("div", { staticClass: "text-16 text-gray-50" }, [ + _vm._v( + _vm._s(_vm.comments.meta ? _vm.comments.meta.total : 0) + " 条评论" + ) + ]) + ]), + _vm._v(" "), + _vm.currentUser.id + ? _c( + "div", + { staticClass: "box mb-3" }, + [ + _vm.currentUser.has_activated + ? [ + _c("div", { staticClass: "d-flex align-items-center" }, [ + _c("img", { + staticClass: "avatar-40", + attrs: { + src: _vm.currentUser.avatar, + alt: _vm.currentUser.username + } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-18 text-muted ml-2 w-100", + on: { + click: function($event) { + _vm.writing = true + } + } + }, + [_vm._v("撰写评论...")] + ) + ]) + ] + : [ + _c( + "div", + { staticClass: "text-18 ml-2 text-muted text-center" }, + [_vm._v("您需要激活账户才能评论~")] + ) + ] + ], + 2 + ) + : _c("div", [ + _vm.currentUser + ? _c("div", { staticClass: "box mb-3" }, [ + _c( + "div", + { staticClass: "text-18 ml-2 text-center" }, + [ + _vm._v("\n 您需要\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.login" }, tag: "a" } + }, + [_vm._v("登录")] + ), + _vm._v("\n 或\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.register" }, tag: "a" } + }, + [_vm._v("注册")] + ), + _vm._v("\n 才能发表评论\n ") + ], + 1 + ) + ]) + : _vm._e() + ]), + _vm._v(" "), + _c("paginator", { + attrs: { meta: _vm.comments.meta }, + on: { change: _vm.handlePaginate } + }), + _vm._v(" "), + _c( + "div", + { staticClass: "box box-flush" }, + _vm._l(_vm.comments.data, function(item, index) { + return item.content && item.content.body + ? _c( + "div", + { + key: item.id, + staticClass: "border-bottom box-body py-2", + class: { + "animated flash": _vm.$route.hash === "#comment-" + item.id + }, + attrs: { + id: "comment-" + item.id, + name: "comment-" + item.id + } + }, + [ + _c( + "user-media", + { attrs: { user: item.user } }, + [ + _c( + "template", + { slot: "name-appends" }, + [ + _c( + "router-link", + { + staticClass: "text-muted text-12 ml-1", + attrs: { + tag: "a", + to: { + name: "users.show", + params: { username: item.user.username } + } + } + }, + [_vm._v(_vm._s(item.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "small", + { attrs: { slot: "description" }, slot: "description" }, + [ + _c( + "a", + { + staticClass: "text-gray-70", + attrs: { href: "#comment-" + item.id } + }, + [_vm._v(_vm._s(item.created_at_timeago))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: + "text-16 text-gray-60 ml-auto d-flex align-items-center", + attrs: { slot: "appends" }, + slot: "appends" + }, + [ + _c( + "div", + { + staticClass: "mx-1 cursor-pointer d-flex", + on: { + click: function($event) { + return _vm.vote("up", item, index) + } + } + }, + [ + !item.has_up_voted + ? _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("thumb-up-outline")], + 1 + ) + : _c( + "button", + { staticClass: "btn btn-icon btn-primary" }, + [_c("thumb-up")], + 1 + ), + _vm._v(" "), + _c( + "span", + { staticClass: "ml-1 align-self-center" }, + [_vm._v(_vm._s(item.up_voters))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "mx-1 cursor-pointer d-flex", + on: { + click: function($event) { + return _vm.vote("down", item, index) + } + } + }, + [ + !item.has_down_voted + ? _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("thumb-down-outline")], + 1 + ) + : _c( + "button", + { staticClass: "btn btn-icon btn-danger" }, + [_c("thumb-down")], + 1 + ), + _vm._v(" "), + _c( + "span", + { staticClass: "ml-1 align-self-center" }, + [_vm._v(_vm._s(item.down_voters))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "mx-1 cursor-pointer", + on: { + click: function($event) { + return _vm.reply(item) + } + } + }, + [ + _c( + "button", + { + staticClass: + "btn btn-icon btn-light text-gray-60" + }, + [_c("reply")], + 1 + ) + ] + ) + ] + ) + ], + 2 + ), + _vm._v(" "), + _c("markdown-body", { + staticClass: "comment-content text-gray-40 pt-2", + model: { + value: item.content.body, + callback: function($$v) { + _vm.$set(item.content, "body", $$v) + }, + expression: "item.content.body" + } + }) + ], + 1 + ) + : _vm._e() + }), + 0 + ), + _vm._v(" "), + _c("paginator", { + attrs: { meta: _vm.comments.meta }, + on: { change: _vm.handlePaginate } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: "card card-flush shadow-30 pop-comment-form", + class: { show: _vm.writing } + }, + [ + _c("editor", { + ref: "editor", + staticClass: "comment-editor", + attrs: { + placeholder: "请使用 markdown 语法", + options: _vm.editorOptions + }, + model: { + value: _vm.content, + callback: function($$v) { + _vm.content = $$v + }, + expression: "content" + } + }), + _vm._v(" "), + _c( + "div", + { + staticClass: + "p-2 d-flex align-items-center justify-content-between" + }, + [ + _c("div", { staticClass: "d-flex align-items-end" }, [ + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://guides.github.com/features/mastering-markdown/", + target: "_blank" + } + }, + [ + _c( + "span", + { staticClass: "text-14 material-design-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + viewBox: "0 0 16 16", + version: "1.1", + "aria-hidden": "true" + } + }, + [ + _c("path", { + attrs: { + "fill-rule": "evenodd", + d: + "M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z" + } + }) + ] + ) + ] + ), + _vm._v(" Markdown 语法指南") + ] + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "pop-form-btns" }, [ + _c( + "button", + { + staticClass: "btn btn-sm btn-primary", + attrs: { type: "button", disabled: !_vm.formReady }, + on: { click: _vm.submit } + }, + [_vm._v("提交")] + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "ml-2 btn btn-sm btn-secondary", + attrs: { type: "button" }, + on: { + click: function($event) { + _vm.writing = false + } + } + }, + [_vm._v("取消")] + ) + ]) + ] + ) + ], + 1 + ) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "dropdown" }, [ + _c( + "div", + { + attrs: { + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [ + _vm._t("default", [ + _c( + "a", + { staticClass: "nav-link text-gray-50 btn btn-sm btn-link" }, + [_vm._v("分享")] + ) + ]) + ], + 2 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "dropdown-menu", + attrs: { "aria-labelledby": "share-dropdown-menu" } + }, + [ + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.weibo } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1528816678350", + viewBox: "0 0 1260 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1944", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M1174.286235 110.614403A330.443026 330.443026 0 0 0 858.311759 7.467639a50.406563 50.406563 0 0 0-37.804922 58.34093 50.406563 50.406563 0 0 0 58.34093 37.804922 238.497721 238.497721 0 0 1 226.829535 72.342753 233.363719 233.363719 0 0 1 46.672744 233.36372 46.672744 46.672744 0 0 0 3.267092 37.804922 60.674567 60.674567 0 0 0 27.536919 24.269827 53.673655 53.673655 0 0 0 61.608021-30.804011 351.445761 351.445761 0 0 0-72.342753-329.509572z m0 0", + "p-id": "1945" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M1026.800365 412.587056a40.13856 40.13856 0 0 0 51.340018-27.536919 158.220602 158.220602 0 0 0-34.537831-157.753874 167.088423 167.088423 0 0 0-154.486782-51.340019 37.338195 37.338195 0 0 0-30.804011 46.672744 37.338195 37.338195 0 0 0 46.672744 30.804011A79.343665 79.343665 0 0 1 980.127621 280.036463a82.144029 82.144029 0 0 1 17.268915 78.876937A46.672744 46.672744 0 0 0 1026.800365 412.587056z m-82.610757 78.876937c-17.268915-7.000912-30.804011-10.268004-20.536007-30.804011a136.751139 136.751139 0 0 0 0-126.949863c-41.072015-58.34093-154.486782-55.073838-280.036463 0 0 0-41.072015 17.268915-30.804011-13.535096 20.536007-65.341841 17.268915-116.68186-13.535096-147.485871-70.475843-69.075661-255.766636 2.800365-412.587056 161.020967-116.68186 119.948952-186.690975 243.631723-186.690975 353.779398 0 209.56062 267.90155 336.510483 528.802188 336.510483 343.511395 0 569.874202-199.292616 569.874202-357.04649 0-96.145852-82.610757-151.21969-154.486782-175.02279z m-415.38742 456.926162c-209.56062 20.536007-388.783956-75.609845-401.852325-209.56062s144.218778-264.634458 353.779399-285.170465 387.850501 75.609845 401.852324 209.56062-144.218778 264.16773-353.779398 285.170465z m0 0", + "p-id": "1946" + } + }), + _vm._v(" "), + _c("path", { + attrs: { + d: + "M549.338195 556.805834a224.495898 224.495898 0 0 0-253.899726 109.680948A154.020055 154.020055 0 0 0 394.851413 886.782133a222.628988 222.628988 0 0 0 267.90155-113.414767 155.420237 155.420237 0 0 0-113.414768-216.561532z m-75.609845 230.096627a77.476755 77.476755 0 0 1-96.145852 30.804011 54.60711 54.60711 0 0 1-20.536008-82.610756 78.41021 78.41021 0 0 1 93.345488-30.804011 52.273473 52.273473 0 0 1 24.269827 82.610756z m0 0", + "p-id": "1947" + } + }) + ] + ) + ] + ), + _vm._v(" 新浪微博") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.qq } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531573585923", + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "18559", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M936.194300839506 691.6934192494618c-5.891587367822223-94.26540047423211-70.69904970840491-170.8560375504593-106.04857520987652-212.09715041975304 5.891587367822223-11.783174735644446 17.674762103466666-79.53643140740742-29.457938133649378-126.66913164452346V349.981342854005c0-182.63921228610366-129.61492468116543-315.1999312984493-294.57937486380246-315.1999312984493s-294.57937615834066 132.5607190123457-294.57937615834066 315.1999312984493v2.9457943311802466c-47.132700237116055 47.132700237116055-35.349525501471604 114.885956908879-29.45793683911111 126.66913164452346-35.349525501471604 41.24111286929382-100.15698784205432 117.83174994552098-106.04857520987652 212.09715041975304 0 23.56634947128889 2.9457943311802466 58.91587497276049 14.728969066824689 76.59063707622718 14.728969066824689 20.62055643464691 55.97008193611851-2.9457943311802466 82.48222444404936-64.80746234058272 8.837381699002469 29.457938133649378 26.51214380246913 73.64484403958517 67.75325667176295 126.66913164452346-70.69904970840491 14.728969066824689-88.37381310640988 85.42801877522965-64.80746234058272 123.72333731334321 17.674762103466666 26.51214380246913 53.02428760493826 47.132700237116055 120.77754298216297 47.132700237116055 114.885956908879 0 167.9102445138173-32.40373117029136 191.4765952796444-53.02428760493826 5.891587367822223-5.891587367822223 11.783174735644446-5.891587367822223 20.620555140108642-5.891587367822223 8.837381699002469 0 14.728969066824689 2.9457943311802466 20.62055643464691 5.891587367822223 23.56634947128889 20.62055643464691 73.64484403958517 53.02428760493826 191.4765939851062 53.02428760493826 64.80746234058272 0 103.10278087869627-20.62055643464691 120.77754427670124-47.132700237116055 23.56634947128889-38.29531853811359 2.9457943311802466-106.04857520987652-64.80746234058272-123.72333731334321 41.24111286929382-55.97008193611851 58.91587497276049-100.15698784205432 67.75325667176295-126.66913164452346 29.457938133649378 61.86166930394074 67.75325667176295 85.42801877522965 82.48222444404936 64.80746234058272 5.891587367822223-17.674762103466666 11.783174735644446-53.02428760493826 8.837381699002469-76.59063707622718z m0 0", + "p-id": "18560" + } + }) + ] + ) + ] + ), + _vm._v(" QQ 好友") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { + "data-toggle": "modal", + "data-target": "#page-wechat-qrcode" + } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531575816445", + viewBox: "0 0 1171 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "1968", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M331.428571 263.428571q0-23.428571-14.285714-37.714286t-37.714286-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.714286-14t14.285714-37.428571zm424.571429 289.714286q0-16-14.571429-28.571429t-37.428571-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.857143 0 37.428571-12.571429t14.571429-29.142857zm-134.857143-289.714286q0-23.428571-14-37.714286t-37.428571-14.285714q-24.571429 0-43.428571 14.571429t-18.857143 37.428571q0 22.285714 18.857143 36.857143t43.428571 14.571429q23.428571 0 37.428571-14t14-37.428571zm362.857143 289.714286q0-16-14.857143-28.571429t-37.142857-12.571429q-15.428571 0-28.285714 12.857143t-12.857143 28.285714q0 16 12.857143 28.857143t28.285714 12.857143q22.285714 0 37.142857-12.571429t14.857143-29.142857zm-152-226.857143q-17.714286-2.285714-40-2.285714-96.571429 0-177.714286 44t-127.714286 119.142857-46.571429 164.285714q0 44.571429 13.142857 86.857143-20 1.714286-38.857143 1.714286-14.857143 0-28.571429-0.857143t-31.428571-3.714286-25.428571-4-31.142857-6-28.571429-6l-144.571429 72.571429 41.142857-124.571429q-165.714286-116-165.714286-280 0-96.571429 55.714286-177.714286t150.857143-127.714286 207.714286-46.571429q100.571429 0 190 37.714286t149.714286 104.285714 78 148.857143zm338.285714 320.571429q0 66.857143-39.142857 127.714286t-106 110.571429l31.428571 103.428571-113.714286-62.285714q-85.714286 21.142857-124.571429 21.142857-96.571429 0-177.714286-40.285714t-127.714286-109.428571-46.571429-150.857143 46.571429-150.857143 127.714286-109.428571 177.714286-40.285714q92 0 173.142857 40.285714t130 109.714286 48.857143 150.571429z", + "p-id": "1969" + } + }) + ] + ) + ] + ), + _vm._v(" 微信扫码") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { target: "_blank", href: _vm.qzone } + }, + [ + _c( + "span", + { staticClass: "material-design-icon link-variant-icon" }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + t: "1531573585923", + viewBox: "0 0 1024 1024", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "p-id": "18559", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + } + }, + [ + _c("path", { + attrs: { + d: + "M757.116343 440.1536 457.245257 655.263086c0 0 120.347429 17.856 301.853257 15.786057l-8.259657-35.5712 258.618514-224.067657c4.754286-4.1216 6.577371-10.680686 4.629943-16.661943-1.9456-5.981257-7.277714-10.225371-13.540571-10.750171L659.604114 354.724571 526.4 39.506286c-2.437486-5.787429-8.120686-9.557943-14.4-9.557943s-11.960686 3.770514-14.398171 9.557943L364.397714 354.724571 23.451429 383.996343c-6.261029 0.526629-11.593143 4.768914-13.538743 10.750171-1.947429 5.981257-0.122514 12.540343 4.629943 16.661943l258.620343 224.067657L195.642514 968.813714c-1.4208 6.101943 0.9472 12.485486 6.032457 16.2048 5.103543 3.646171 11.8912 3.927771 17.2928 0.700343L512 809.003886l293.0304 176.7168c2.5088 1.545143 5.297371 2.247314 8.085943 2.247314 3.243886 0 6.473143-0.981943 9.206857-2.945829 5.087086-3.719314 7.455086-10.102857 6.034286-16.2048l-61.295543-263.6032c26.289371-13.2224 55.2448-35.602286 55.2448-35.602286s-114.753829 56.053029-526.729143 28.677486l298.574629-216.407771c0 0-11.733943-18.256457-385.914514-31.286857C183.191771 449.713371 513.296457 387.995429 757.116343 440.1536z", + "p-id": "13675" + } + }) + ] + ) + ] + ), + _vm._v(" QQ 空间") + ] + ), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item copy-link", + attrs: { + href: "#", + "data-clipboard-text": _vm.url, + title: "复制链接" + } + }, + [ + _c("link-variant", { attrs: { title: "复制链接" } }), + _vm._v(" 复制链接") + ], + 1 + ) + ] + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=template&id=312446ed&": +/*!********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-list-card.vue?vue&type=template&id=312446ed& ***! + \********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.users.length > 0 + ? _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm.title + ? _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { + staticClass: + "d-flex align-items-center justify-content-between" + }, + [ + _c("div", { staticClass: "text-13" }, [ + _vm._v(_vm._s(_vm.title)) + ]) + ] + ) + ]) + : _vm._e(), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2", class: { "pt-2": !_vm.title } }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&": +/*!***********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4& ***! + \***********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user + ? _c( + "div", + { staticClass: "user-card box box-flush text-center" }, + [ + _c( + "div", + { staticClass: "box-body" }, + [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-80", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "h6", + { staticClass: "mt-1 mb-0 text-22 d-inline-block" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + [ + _c( + "router-link", + { + staticClass: "text-12 text-muted", + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-gray-50" }, [ + _c("div", { staticClass: "py-1" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]), + _vm._v(" "), + _c("user-social-btns", { + staticClass: "flex-wrap justify-content-center", + attrs: { user: _vm.user, size: 12, spacing: 2 } + }) + ], + 1 + ), + _vm._v(" "), + _c("follow-btn", { + staticClass: "pb-2 ml-auto", + attrs: { item: _vm.user } + }) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&": +/*!*******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5& ***! + \*******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + ref: "pageWechatQrcode", + staticClass: "modal fade", + attrs: { + id: "page-wechat-qrcode", + tabindex: "-1", + role: "dialog", + "aria-labelledby": "qrcode-wechat", + "aria-hidden": "true" + } + }, + [_vm._m(0)] + ) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "modal-dialog modal-sm modal-dialog-centered", + staticStyle: { "z-index": "99999" }, + attrs: { role: "document" } + }, + [ + _c("div", { staticClass: "modal-content" }, [ + _c("div", { staticClass: "modal-body text-center" }, [ + _c("canvas", { attrs: { id: "page-wechat-qrcode-canvas" } }), + _vm._v(" "), + _c("p", [_vm._v("使用微信扫一扫识别上方二维码")]) + ]) + ]) + ] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "el-dialog", + { + attrs: { title: "举报文章", visible: _vm.visible, width: "30%" }, + on: { close: _vm.close } + }, + [ + _c("form", [ + _c("div", { staticClass: "form-group" }, [ + _c("textarea", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.remark, + expression: "remark" + } + ], + staticClass: "form-control", + attrs: { rows: "6", placeholder: "请详细描述举报原因" }, + domProps: { value: _vm.remark }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.remark = $event.target.value + } + } + }) + ]) + ]), + _vm._v(" "), + _c( + "div", + { + staticClass: "dialog-footer", + attrs: { slot: "footer" }, + slot: "footer" + }, + [ + _c( + "button", + { + staticClass: "btn btn-sm btn-success", + on: { click: _vm.report } + }, + [_vm._v("提 交")] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=template&id=448fe904&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/threads/show.vue?vue&type=template&id=448fe904& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.thread + ? _c( + "div", + { staticClass: "page-threads-show pb-4" }, + [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c("article", { staticClass: "box box-flush" }, [ + _c( + "header", + { + staticClass: + "thread-header box-body d-flex justify-content-between align-items-center" + }, + [ + _c("user-media", { attrs: { user: _vm.thread.user } }, [ + _c( + "small", + { + staticClass: "text-muted", + attrs: { slot: "description" }, + slot: "description" + }, + [ + _vm._v( + "发布于 " + _vm._s(_vm.thread.created_at_timeago) + ) + ] + ) + ]) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "thread-content box-body text-gray-40 text-16" + }, + [ + _c("header", [ + _c("h2", { staticClass: "mb-3 pb-2 border-bottom" }, [ + _vm._v(_vm._s(_vm.thread.title)) + ]) + ]), + _vm._v(" "), + _c("markdown-body", { + model: { + value: _vm.thread.content.body, + callback: function($$v) { + _vm.$set(_vm.thread.content, "body", $$v) + }, + expression: "thread.content.body" + } + }) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-stats-bar bg-white border-top py-1" }, + [ + _c("div", { staticClass: "container" }, [ + _c("ul", { staticClass: "nav align-items-center" }, [ + _c( + "li", + { staticClass: "nav-item" }, + [ + _c("like-btn", { + attrs: { relation: "thread", item: _vm.thread } + }) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "text-gray-50 btn btn-sm btn-link", + attrs: { href: "#comments" } + }, + [ + _c("comment-icon"), + _vm._v( + "\n " + + _vm._s(_vm.thread.cache.comments_count) + + " 条评论\n " + ) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item" }, + [ + _c("share-dropdown", [ + _c( + "a", + { + staticClass: + "text-gray-50 btn btn-sm btn-link" + }, + [ + _c("share-icon"), + _vm._v("分享\n ") + ], + 1 + ) + ]) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "button", + { + staticClass: "text-gray-50 btn btn-sm btn-link", + attrs: { + type: "button", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [_c("more-icon")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "dropdown-menu" }, + [ + _vm.canEdit + ? [ + _vm.currentUser.is_admin + ? [ + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "excellent_at" + ) + } + } + }, + [ + _c("medal-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.excellent_at + ? "取消精华" + : "精华" + ) + + "\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "pinned_at" + ) + } + } + }, + [ + _c("top-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.pinned_at + ? "取消置顶" + : "置顶" + ) + + "\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus( + "banned_at" + ) + } + } + }, + [ + _c("lock-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s( + _vm.thread.banned_at + ? "取消冻结" + : "冻结" + ) + + "\n " + ) + ], + 1 + ) + ] + : _vm._e(), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.$router.push({ + name: "threads.edit", + params: { id: _vm.thread.id } + }) + } + } + }, + [ + _c("pencil-icon", { + staticClass: "mr-1" + }), + _vm._v("编辑\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: + "dropdown-item text-danger", + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.handleDelete(_vm.thread) + } + } + }, + [ + _c("delete-icon", { + staticClass: "mr-1" + }), + _vm._v("删除\n ") + ], + 1 + ) + ] + : _vm._e(), + _vm._v(" "), + _c( + "button", + { + staticClass: "dropdown-item cursor-pointer", + attrs: { type: "button" }, + on: { + click: function($event) { + _vm.showReportForm = true + } + } + }, + [ + _c("alert-box-icon", { staticClass: "mr-1" }), + _vm._v("举报\n ") + ], + 1 + ) + ], + 2 + ) + ]), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item ml-auto" }, + [ + _c("subscribe-btn", { + attrs: { relation: "thread", item: _vm.thread } + }) + ], + 1 + ) + ]) + ]) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-author-card border-top p-3" }, + [ + _c( + "div", + { + staticClass: + "d-flex align-items-center justify-content-between" + }, + [ + _c( + "div", + { + staticClass: "user-info d-flex align-items-center" + }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.thread.user.username + } + } + } + }, + [ + _c("img", { + staticClass: "avatar-60", + attrs: { + src: _vm.thread.user.avatar, + alt: "User avatar" + } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "p-2" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.thread.user.username + } + } + } + }, + [ + _c( + "h3", + { staticClass: "text-gray-50 text-14" }, + [_vm._v(_vm._s(_vm.thread.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "text-12 text-muted" }, + [_vm._v(_vm._s(_vm.thread.user.bio))] + ) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "right-action" }, + [ + _c("follow-btn", { + attrs: { item: _vm.thread.user } + }) + ], + 1 + ) + ] + ) + ] + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-comments mt-3" }, + [ + _c("comments", { + attrs: { + "object-type": "App\\Thread", + "object-id": _vm.thread.id + }, + on: { created: _vm.loadThread } + }) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "thread-toolbar" }, + [ + _c("animate-action", { attrs: { item: _vm.thread } }), + _vm._v(" "), + _c("share-action", { + staticClass: "mt-3", + attrs: { item: _vm.thread } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-3 position-relative" }, + [ + _c("user-profile-card", { + staticClass: "user-profile-card", + attrs: { user: _vm.thread.user } + }), + _vm._v(" "), + _c("user-list-card", { + staticClass: "mt-2", + attrs: { title: "他们觉得很赞", users: _vm.thread.likers } + }), + _vm._v(" "), + _c("hot-tags", { staticClass: "mt-2" }) + ], + 1 + ) + ]), + _vm._v(" "), + _c("wechat-qrcode"), + _vm._v(" "), + _c("report-form", { + attrs: { visible: _vm.showReportForm }, + on: { + close: function($event) { + _vm.showReportForm = false + } + } + }) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue": +/*!***************************************************!*\ + !*** ./src/components/buttons/animate-action.vue ***! + \***************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animate-action.vue?vue&type=template&id=010b0e00& */ "./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&"); +/* harmony import */ var _animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animate-action.vue?vue&type=script&lang=js& */ "./src/components/buttons/animate-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["render"], + _animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/animate-action.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=script&lang=js&": +/*!****************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=script&lang=js& ***! + \****************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&": +/*!**********************************************************************************!*\ + !*** ./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00& ***! + \**********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./animate-action.vue?vue&type=template&id=010b0e00& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/animate-action.vue?vue&type=template&id=010b0e00&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_animate_action_vue_vue_type_template_id_010b0e00___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue": +/*!*********************************************!*\ + !*** ./src/components/buttons/like-btn.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./like-btn.vue?vue&type=template&id=055d3c04& */ "./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&"); +/* harmony import */ var _like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./like-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/like-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["render"], + _like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/like-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/components/buttons/like-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./like-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&": +/*!****************************************************************************!*\ + !*** ./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./like-btn.vue?vue&type=template&id=055d3c04& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/like-btn.vue?vue&type=template&id=055d3c04&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_like_btn_vue_vue_type_template_id_055d3c04___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/share-action.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./share-action.vue?vue&type=template&id=fde12a7c&scoped=true& */ "./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&"); +/* harmony import */ var _share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./share-action.vue?vue&type=script&lang=js& */ "./src/components/buttons/share-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "fde12a7c", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/share-action.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&": +/*!***********************************************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& ***! + \***********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=style&index=0&id=fde12a7c&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_style_index_0_id_fde12a7c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&": +/*!********************************************************************************************!*\ + !*** ./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./share-action.vue?vue&type=template&id=fde12a7c&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/share-action.vue?vue&type=template&id=fde12a7c&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_action_vue_vue_type_template_id_fde12a7c_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue": +/*!**************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony import */ var _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/subscribe-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!*********************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/comments.vue": +/*!*************************************!*\ + !*** ./src/components/comments.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./comments.vue?vue&type=template&id=4e7c9004& */ "./src/components/comments.vue?vue&type=template&id=4e7c9004&"); +/* harmony import */ var _comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./comments.vue?vue&type=script&lang=js& */ "./src/components/comments.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./comments.vue?vue&type=style&index=0&lang=scss& */ "./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["render"], + _comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/comments.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=style&index=0&lang=scss&": +/*!***********************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=style&index=0&lang=scss& ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/comments.vue?vue&type=template&id=4e7c9004&": +/*!********************************************************************!*\ + !*** ./src/components/comments.vue?vue&type=template&id=4e7c9004& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./comments.vue?vue&type=template&id=4e7c9004& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/comments.vue?vue&type=template&id=4e7c9004&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comments_vue_vue_type_template_id_4e7c9004___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/share-dropdown.vue": +/*!*******************************************!*\ + !*** ./src/components/share-dropdown.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& */ "./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&"); +/* harmony import */ var _share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=script&lang=js& */ "./src/components/share-dropdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "035c7ccf", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/share-dropdown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&": +/*!*****************************************************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& ***! + \*****************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=style&index=0&id=035c7ccf&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_style_index_0_id_035c7ccf_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&": +/*!**************************************************************************************!*\ + !*** ./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& ***! + \**************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/share-dropdown.vue?vue&type=template&id=035c7ccf&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_share_dropdown_vue_vue_type_template_id_035c7ccf_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-list-card.vue": +/*!*******************************************!*\ + !*** ./src/components/user-list-card.vue ***! + \*******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-list-card.vue?vue&type=template&id=312446ed& */ "./src/components/user-list-card.vue?vue&type=template&id=312446ed&"); +/* harmony import */ var _user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-list-card.vue?vue&type=script&lang=js& */ "./src/components/user-list-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-list-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-list-card.vue?vue&type=script&lang=js&": +/*!********************************************************************!*\ + !*** ./src/components/user-list-card.vue?vue&type=script&lang=js& ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-list-card.vue?vue&type=template&id=312446ed&": +/*!**************************************************************************!*\ + !*** ./src/components/user-list-card.vue?vue&type=template&id=312446ed& ***! + \**************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-list-card.vue?vue&type=template&id=312446ed& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-list-card.vue?vue&type=template&id=312446ed&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_list_card_vue_vue_type_template_id_312446ed___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-profile-card.vue": +/*!**********************************************!*\ + !*** ./src/components/user-profile-card.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-profile-card.vue?vue&type=template&id=710c76d4& */ "./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&"); +/* harmony import */ var _user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-profile-card.vue?vue&type=script&lang=js& */ "./src/components/user-profile-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-profile-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-profile-card.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/components/user-profile-card.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-profile-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&": +/*!*****************************************************************************!*\ + !*** ./src/components/user-profile-card.vue?vue&type=template&id=710c76d4& ***! + \*****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-profile-card.vue?vue&type=template&id=710c76d4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-profile-card.vue?vue&type=template&id=710c76d4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_profile_card_vue_vue_type_template_id_710c76d4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue": +/*!******************************************!*\ + !*** ./src/components/wechat-qrcode.vue ***! + \******************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wechat-qrcode.vue?vue&type=template&id=647c9db5& */ "./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&"); +/* harmony import */ var _wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./wechat-qrcode.vue?vue&type=script&lang=js& */ "./src/components/wechat-qrcode.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["render"], + _wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/wechat-qrcode.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue?vue&type=script&lang=js&": +/*!*******************************************************************!*\ + !*** ./src/components/wechat-qrcode.vue?vue&type=script&lang=js& ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./wechat-qrcode.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&": +/*!*************************************************************************!*\ + !*** ./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5& ***! + \*************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./wechat-qrcode.vue?vue&type=template&id=647c9db5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/wechat-qrcode.vue?vue&type=template&id=647c9db5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_wechat_qrcode_vue_vue_type_template_id_647c9db5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue": +/*!*********************************************!*\ + !*** ./src/modules/threads/report-form.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./report-form.vue?vue&type=template&id=bea1adf4& */ "./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&"); +/* harmony import */ var _report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./report-form.vue?vue&type=script&lang=js& */ "./src/modules/threads/report-form.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./report-form.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["render"], + _report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/threads/report-form.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&": +/*!*******************************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss& ***! + \*******************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&": +/*!****************************************************************************!*\ + !*** ./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./report-form.vue?vue&type=template&id=bea1adf4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/report-form.vue?vue&type=template&id=bea1adf4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_report_form_vue_vue_type_template_id_bea1adf4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/threads/show.vue": +/*!**************************************!*\ + !*** ./src/modules/threads/show.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=448fe904& */ "./src/modules/threads/show.vue?vue&type=template&id=448fe904&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/threads/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./show.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/threads/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&": +/*!************************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss& ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/threads/show.vue?vue&type=template&id=448fe904&": +/*!*********************************************************************!*\ + !*** ./src/modules/threads/show.vue?vue&type=template&id=448fe904& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=448fe904& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/threads/show.vue?vue&type=template&id=448fe904&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_448fe904___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/18.f574057c6b5260a9673e.js b/public/18.f574057c6b5260a9673e.js new file mode 100644 index 00000000..71228ce3 --- /dev/null +++ b/public/18.f574057c6b5260a9673e.js @@ -0,0 +1,1654 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[18],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/show.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Bell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Bell */ "./node_modules/vue-material-design-icons/Bell.vue"); +/* harmony import */ var $icons_Inbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Inbox */ "./node_modules/vue-material-design-icons/Inbox.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var _types_new_follower__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types/new-follower */ "./src/modules/notifications/types/new-follower.vue"); +/* harmony import */ var _types_comment_my_thread__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./types/comment-my-thread */ "./src/modules/notifications/types/comment-my-thread.vue"); +/* harmony import */ var _types_liked_my_thread__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./types/liked-my-thread */ "./src/modules/notifications/types/liked-my-thread.vue"); +/* harmony import */ var _types_mentioned_me__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./types/mentioned-me */ "./src/modules/notifications/types/mentioned-me.vue"); +/* harmony import */ var _types_subscribed_my_thread__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./types/subscribed-my-thread */ "./src/modules/notifications/types/subscribed-my-thread.vue"); +/* harmony import */ var _types_welcome__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./types/welcome */ "./src/modules/notifications/types/welcome.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_3__["default"], + MentionedMe: _types_mentioned_me__WEBPACK_IMPORTED_MODULE_7__["default"], + BellIcon: $icons_Bell__WEBPACK_IMPORTED_MODULE_0__["default"], + InboxIcon: $icons_Inbox__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + NewFollower: _types_new_follower__WEBPACK_IMPORTED_MODULE_4__["default"], + CommentMyThread: _types_comment_my_thread__WEBPACK_IMPORTED_MODULE_5__["default"], + LikedMyThread: _types_liked_my_thread__WEBPACK_IMPORTED_MODULE_6__["default"], + SubscribedMyThread: _types_subscribed_my_thread__WEBPACK_IMPORTED_MODULE_8__["default"], + Welcome: _types_welcome__WEBPACK_IMPORTED_MODULE_9__["default"] + }, + data: function data() { + return { + tabs: { + all: '全部 ', + follow: '关注', + comment: '评论', + subscribe: '订阅', + like: '点赞' + }, + currentTab: 'all', + notifications: [] + }; + }, + watch: { + currentTab: function currentTab() { + this.loadNotifications(1); + } + }, + created: function created() { + this.loadNotifications(); + }, + methods: { + loadNotifications: function loadNotifications() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$router.push({ + name: 'notifications.show', + query: { + tab: this.currentTab + } + }); + this.$http.get("user/notifications?tab=".concat(this.currentTab, "&page=").concat(page)).then(function (notifications) { + return _this.notifications = notifications.data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + notification: { + type: Object, + required: true + } + }, + name: 'notification' +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification */ "./src/modules/notifications/types/notification.vue"); +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + Notification: _notification__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + notification: { + type: Object, + default: null + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".notification-body a[data-v-88f5ecae] {\n color: #6c757d !important;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=template&id=9c473836&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/show.vue?vue&type=template&id=9c473836& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-notification-show" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-3" }, [ + _c("div", { staticClass: "box mb-2" }, [ + _c( + "div", + { staticClass: "box-heading" }, + [ + _c("bell-icon", { staticClass: "mr-1 text-16" }), + _vm._v("通知\n ") + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav flex-lg-column nav-pills" }, + _vm._l(_vm.tabs, function(tab, id) { + return _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentTab == id }, + attrs: { href: "javascript:void(0);" }, + on: { + click: function($event) { + _vm.currentTab = id + } + } + }, + [_vm._v(_vm._s(tab))] + ) + }), + 0 + ) + ]) + ]), + _vm._v(" "), + _c("div", { staticClass: "col-md-9" }, [ + _c("div", { staticClass: "box box-flush" }, [ + _vm.notifications.length > 0 + ? _c( + "ul", + { staticClass: "list-group list-group-flush" }, + [ + _c("li", { staticClass: "list-group-item" }, [ + _vm._v( + "\n " + + _vm._s(_vm.tabs[_vm.currentTab]) + + "\n " + ) + ]), + _vm._v(" "), + _vm._l(_vm.notifications, function(notification) { + return _c( + "li", + { + key: notification.id, + staticClass: "list-group-item list-group-item-action", + class: { "bg-gray-98": notification.read_at == null } + }, + [ + _c( + "keep-alive", + [ + _c(notification.type.split("_").join("-"), { + tag: "component", + attrs: { notification: notification } + }) + ], + 1 + ) + ], + 1 + ) + }) + ], + 2 + ) + : _c( + "div", + { staticClass: "text-center text-gray-50" }, + [ + _c( + "empty-state", + { attrs: { message: "没有新的消息哦~" } }, + [_c("template", { slot: "icon" }, [_c("inbox-icon")], 1)], + 2 + ) + ], + 1 + ) + ]) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("\n 评论了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id }, + hash: "#comment-" + _vm.notification.data.comment_id + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2 pl-md-4" }, + [ + _c("router-link", { + staticClass: "text-muted", + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + }, + domProps: { innerHTML: _vm._s(_vm.notification.data.content) } + }) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("赞了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c("template", { slot: "title" }, [ + _c( + "span", + [ + _vm._v("在 "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.commentable_id }, + hash: "#comment-" + _vm.notification.data.comment_id + } + } + }, + [ + _vm._v( + "《" + _vm._s(_vm.notification.data.commentable_title) + "》" + ) + ] + ), + _vm._v(" 的评论了中提到了您") + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2 pl-md-4" }, + [ + _c("router-link", { + staticClass: "text-muted", + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + }, + domProps: { innerHTML: _vm._s(_vm.notification.data.content) } + }) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [_c("template", { slot: "title" }, [_vm._v("关注了你")])], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "notification-item" }, [ + _c( + "div", + { staticClass: "heading d-flex align-items-center flex-wrap" }, + [ + _c( + "router-link", + { + staticClass: "mr-1", + attrs: { + to: { + name: "users.show", + params: { username: _vm.notification.data.username } + } + } + }, + [ + _c("img", { + staticClass: "rounded-circle mr-1", + attrs: { width: "30", src: _vm.notification.data.avatar } + }), + _vm._v("\n " + _vm._s(_vm.notification.data.name) + "\n ") + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "d-inline" }, + [_vm._t("title", [_vm._v("评论了你的文章")])], + 2 + ), + _vm._v(" "), + _c("small", { staticClass: "date text-muted ml-lg-auto text-mini" }, [ + _vm._v(_vm._s(_vm.notification.created_at)) + ]) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "notification-body text-muted" }, + [_vm._t("default")], + 2 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [ + _c( + "template", + { slot: "title" }, + [ + _vm._v("\n 订阅了你的文章\n "), + _c( + "router-link", + { + attrs: { + to: { + name: "threads.show", + params: { id: _vm.notification.data.thread_id } + } + } + }, + [ + _vm._v( + "\n 《" + + _vm._s(_vm.notification.data.thread_title) + + "》\n " + ) + ] + ) + ], + 1 + ) + ], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&": +/*!******************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194& ***! + \******************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "notification", + { attrs: { notification: _vm.notification } }, + [_c("template", { slot: "title" }, [_vm._v("欢迎加入一刻!")])], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/show.vue": +/*!********************************************!*\ + !*** ./src/modules/notifications/show.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=9c473836& */ "./src/modules/notifications/show.vue?vue&type=template&id=9c473836&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/notifications/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/modules/notifications/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/show.vue?vue&type=template&id=9c473836&": +/*!***************************************************************************!*\ + !*** ./src/modules/notifications/show.vue?vue&type=template&id=9c473836& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=9c473836& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/show.vue?vue&type=template&id=9c473836&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_9c473836___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue": +/*!***************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./comment-my-thread.vue?vue&type=template&id=36016f8f& */ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&"); +/* harmony import */ var _comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./comment-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["render"], + _comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/comment-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./comment-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&": +/*!**********************************************************************************************!*\ + !*** ./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./comment-my-thread.vue?vue&type=template&id=36016f8f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/comment-my-thread.vue?vue&type=template&id=36016f8f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_comment_my_thread_vue_vue_type_template_id_36016f8f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue": +/*!*************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./liked-my-thread.vue?vue&type=template&id=a066ba46& */ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&"); +/* harmony import */ var _liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./liked-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["render"], + _liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/liked-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./liked-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&": +/*!********************************************************************************************!*\ + !*** ./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./liked-my-thread.vue?vue&type=template&id=a066ba46& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/liked-my-thread.vue?vue&type=template&id=a066ba46&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_liked_my_thread_vue_vue_type_template_id_a066ba46___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mentioned-me.vue?vue&type=template&id=6eedd3cc& */ "./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&"); +/* harmony import */ var _mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mentioned-me.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["render"], + _mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/mentioned-me.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./mentioned-me.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./mentioned-me.vue?vue&type=template&id=6eedd3cc& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/mentioned-me.vue?vue&type=template&id=6eedd3cc&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_mentioned_me_vue_vue_type_template_id_6eedd3cc___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-follower.vue?vue&type=template&id=3711ee69& */ "./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&"); +/* harmony import */ var _new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-follower.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/new-follower.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./new-follower.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./new-follower.vue?vue&type=template&id=3711ee69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/new-follower.vue?vue&type=template&id=3711ee69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_follower_vue_vue_type_template_id_3711ee69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue": +/*!**********************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./notification.vue?vue&type=template&id=88f5ecae&scoped=true& */ "./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&"); +/* harmony import */ var _notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./notification.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "88f5ecae", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/notification.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&": +/*!********************************************************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& ***! + \********************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=style&index=0&id=88f5ecae&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_style_index_0_id_88f5ecae_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&": +/*!*****************************************************************************************************!*\ + !*** ./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true& ***! + \*****************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./notification.vue?vue&type=template&id=88f5ecae&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/notification.vue?vue&type=template&id=88f5ecae&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_notification_vue_vue_type_template_id_88f5ecae_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue": +/*!******************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& */ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&"); +/* harmony import */ var _subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribed-my-thread.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/subscribed-my-thread.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./subscribed-my-thread.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&": +/*!*************************************************************************************************!*\ + !*** ./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& ***! + \*************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./subscribed-my-thread.vue?vue&type=template&id=0f95d3d6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/subscribed-my-thread.vue?vue&type=template&id=0f95d3d6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribed_my_thread_vue_vue_type_template_id_0f95d3d6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue": +/*!*****************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue ***! + \*****************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./welcome.vue?vue&type=template&id=0ef46194& */ "./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&"); +/* harmony import */ var _welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./welcome.vue?vue&type=script&lang=js& */ "./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["render"], + _welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/notifications/types/welcome.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&": +/*!******************************************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js& ***! + \******************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./welcome.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&": +/*!************************************************************************************!*\ + !*** ./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194& ***! + \************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./welcome.vue?vue&type=template&id=0ef46194& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/notifications/types/welcome.vue?vue&type=template&id=0ef46194&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_welcome_vue_vue_type_template_id_0ef46194___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/19.43fecf1df635cbbb1bfb.js b/public/19.43fecf1df635cbbb1bfb.js new file mode 100644 index 00000000..f3fc2e64 --- /dev/null +++ b/public/19.43fecf1df635cbbb1bfb.js @@ -0,0 +1,1784 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[19],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_ArrowLeft__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/ArrowLeft */ "./node_modules/vue-material-design-icons/ArrowLeft.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'Banner', + components: { + ArrowLeft: $icons_ArrowLeft__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + props: { + name: { + type: String, + required: true + } + }, + computed: { + id: function id() { + return 'banner-' + this.name; + }, + idSelector: function idSelector() { + return '#' + this.id; + } + }, + data: function data() { + return { + banner: null + }; + }, + methods: { + loadBanner: function loadBanner() { + var _this = this; + + this.$http.get('banners/' + this.name).then(function (banner) { + _this.banner = banner; + }).catch(function (err) {}); + } + }, + mounted: function mounted() { + this.loadBanner(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'guest-login-guide', + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['isLogged'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?latest=1&limit=12').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/quick-docs.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_FileDocumentBoxOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/FileDocumentBoxOutline */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'quick-docs', + components: { + DocsIcon: $icons_FileDocumentBoxOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRightIcon: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?limit=10').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/home/home.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_banner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/banner */ "./src/components/banner.vue"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_ranking__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/user-ranking */ "./src/components/user-ranking.vue"); +/* harmony import */ var $components_new_users__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/new-users */ "./src/components/new-users.vue"); +/* harmony import */ var $components_quick_docs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/quick-docs */ "./src/components/quick-docs.vue"); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +/* harmony import */ var $components_guest_login_guide__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $components/guest-login-guide */ "./src/components/guest-login-guide.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + threads: { + default: {}, + featured: {}, + zeroComment: {}, + recent: {} + }, + currentThreadsTab: 'default' + }; + }, + components: { + Banner: $components_banner__WEBPACK_IMPORTED_MODULE_0__["default"], + QuickDocs: $components_quick_docs__WEBPACK_IMPORTED_MODULE_4__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__["default"], + UserRanking: $components_user_ranking__WEBPACK_IMPORTED_MODULE_2__["default"], + NewUsers: $components_new_users__WEBPACK_IMPORTED_MODULE_3__["default"], + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_5__["default"], + GuestLoginGuide: $components_guest_login_guide__WEBPACK_IMPORTED_MODULE_6__["default"] + }, + watch: { + currentThreadsTab: function currentThreadsTab() { + this.loadThreads(1); + } + }, + methods: { + loadThreads: function loadThreads() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$http.get("threads?tab=".concat(this.currentThreadsTab, "&page=").concat(page)).then(function (threads) { + return _this.threads[_this.currentThreadsTab] = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + } + }, + mounted: function mounted() { + this.loadThreads(); + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".carousel-item {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: stretch;\n -ms-flex-pack: stretch;\n justify-content: stretch;\n max-height: 300px;\n border-radius: 2px;\n overflow: hidden;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".guest-login-guide[data-v-02aafdc3] {\n background: url(\"/banners/technology.jpg\");\n background-size: 160%;\n background-position: center;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=template&id=37aed33c&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/banner.vue?vue&type=template&id=37aed33c& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.banner + ? _c( + "div", + { + staticClass: "carousel slide", + attrs: { id: _vm.id, "data-ride": "carousel" } + }, + [ + _vm.banner.banners.length > 1 + ? _c( + "ol", + { staticClass: "carousel-indicators" }, + _vm._l(_vm.banner.banners.length, function(i) { + return _c("li", { + key: i, + staticClass: "active", + attrs: { + "data-target": _vm.idSelector, + "data-slide-to": i - 1 + } + }) + }), + 0 + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "carousel-inner" }, + _vm._l(_vm.banner.banners, function(item) { + return _c( + "div", + { key: item.id, staticClass: "carousel-item active" }, + [ + _c("a", { attrs: { href: item.url || "javascript:;" } }, [ + _c("img", { + staticClass: "d-block w-100", + attrs: { src: item.image_url, alt: "First slide" } + }), + _vm._v(" "), + item.title || item.description + ? _c("div", { staticClass: "carousel-caption" }, [ + item.title + ? _c("h1", [_vm._v(_vm._s(item.title))]) + : _vm._e(), + _vm._v(" "), + item.description + ? _c("p", [_vm._v(_vm._s(item.description))]) + : _vm._e() + ]) + : _vm._e() + ]) + ] + ) + }), + 0 + ), + _vm._v(" "), + _vm.banner.banners.length > 1 + ? _c( + "a", + { + staticClass: "carousel-control-prev", + attrs: { + href: _vm.idSelector, + role: "button", + "data-slide": "prev" + } + }, + [ + _c( + "span", + { + staticClass: "carousel-control-prev-icon", + attrs: { "aria-hidden": "true" } + }, + [_c("arrow-left")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "sr-only" }, [_vm._v("Previous")]) + ] + ) + : _vm._e(), + _vm._v(" "), + _vm.banner.banners.length > 1 + ? _c( + "a", + { + staticClass: "carousel-control-next", + attrs: { + href: _vm.idSelector, + role: "button", + "data-slide": "next" + } + }, + [ + _c( + "span", + { + staticClass: "carousel-control-next-icon", + attrs: { "aria-hidden": "true" } + }, + [_c("arrow-right")], + 1 + ), + _vm._v(" "), + _c("span", { staticClass: "sr-only" }, [_vm._v("Next")]) + ] + ) + : _vm._e() + ] + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return !_vm.isLogged + ? _c( + "div", + { staticClass: "box guest-login-guide text-center" }, + [ + _vm._m(0), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "btn btn-block btn-primary", + attrs: { to: { name: "auth.register" } } + }, + [_vm._v("注册")] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "btn btn-block btn-outline-primary", + attrs: { to: { name: "auth.login" } } + }, + [_vm._v("登录")] + ) + ], + 1 + ) + : _vm._e() +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-18 p-2" }, [ + _vm._v("加入一刻"), + _c("br"), + _vm._v("做专业的微信开发者") + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2" }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { staticClass: "d-flex align-items-center justify-content-between" }, + [_c("div", { staticClass: "text-13" }, [_vm._v("最新用户")])] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c("ul", [ + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/miniprogram/dev/framework/", + target: "_blank" + } + }, + [_vm._v("小程序开发文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview", + target: "_blank" + } + }, + [_vm._v("公众平台官方文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: + "https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Resource_Center_Homepage", + target: "_blank" + } + }, + [_vm._v("微信开放平台文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://work.weixin.qq.com/api/doc", + target: "_blank" + } + }, + [_vm._v("企业微信官方文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://www.easywechat.com/docs", + target: "_blank" + } + }, + [_vm._v("EasyWeChat SDK 4.0 文档")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "py-1" }, + [ + _c("docs-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-gray-50", + attrs: { + href: "https://www.easywechat.com/docs/3.x", + target: "_blank" + } + }, + [_vm._v("EasyWeChat SDK 3.x 文档")] + ) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("快速文档入口")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list" }, + _vm._l(_vm.users, function(item) { + return _c( + "user-media", + { + key: item.id, + staticClass: "mb-2 d-flex align-items-center", + attrs: { user: item } + }, + [ + _c( + "template", + { slot: "appends" }, + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: item, simple: "" } + }) + ], + 1 + ), + _vm._v(" "), + _c("template", { slot: "description" }, [ + _c("div", { staticClass: "text-gray-70 text-12" }, [ + _vm._v(_vm._s(item.created_at_timeago)) + ]) + ]) + ], + 2 + ) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("活跃用户")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=template&id=4256fd7e&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/home/home.vue?vue&type=template&id=4256fd7e& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-home" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c( + "div", + { staticClass: "box box-flush" }, + [ + _c("div", { staticClass: "box-body" }, [ + _c("ul", { staticClass: "nav nav-pills" }, [ + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "default" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "default" + } + } + }, + [_vm._v("活跃")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "featured" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "featured" + } + } + }, + [_vm._v("精选")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "zeroComment" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "zeroComment" + } + } + }, + [_vm._v("零回复")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "recent" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "recent" + } + } + }, + [_vm._v("最新发布")] + ) + ]) + ]) + ]), + _vm._v(" "), + _c("threads-list", { + attrs: { threads: _vm.threads[_vm.currentThreadsTab] }, + on: { "page-changed": _vm.handlePageChanged } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-3" }, + [ + _c("guest-login-guide", { staticClass: "mb-2" }), + _vm._v(" "), + _c("quick-docs", { staticClass: "mb-2" }), + _vm._v(" "), + _c("hot-tags"), + _vm._v(" "), + _c("user-ranking", { staticClass: "mt-2" }), + _vm._v(" "), + _c("new-users", { staticClass: "mt-2" }) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/banner.vue": +/*!***********************************!*\ + !*** ./src/components/banner.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./banner.vue?vue&type=template&id=37aed33c& */ "./src/components/banner.vue?vue&type=template&id=37aed33c&"); +/* harmony import */ var _banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./banner.vue?vue&type=script&lang=js& */ "./src/components/banner.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./banner.vue?vue&type=style&index=0&lang=scss& */ "./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["render"], + _banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/banner.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/banner.vue?vue&type=template&id=37aed33c&": +/*!******************************************************************!*\ + !*** ./src/components/banner.vue?vue&type=template&id=37aed33c& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./banner.vue?vue&type=template&id=37aed33c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/banner.vue?vue&type=template&id=37aed33c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_banner_vue_vue_type_template_id_37aed33c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue": +/*!**********************************************!*\ + !*** ./src/components/guest-login-guide.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& */ "./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&"); +/* harmony import */ var _guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=script&lang=js& */ "./src/components/guest-login-guide.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "02aafdc3", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/guest-login-guide.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&": +/*!********************************************************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=style&index=0&id=02aafdc3&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_style_index_0_id_02aafdc3_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/guest-login-guide.vue?vue&type=template&id=02aafdc3&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_guest_login_guide_vue_vue_type_template_id_02aafdc3_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/new-users.vue": +/*!**************************************!*\ + !*** ./src/components/new-users.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-users.vue?vue&type=template&id=667f163b& */ "./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony import */ var _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-users.vue?vue&type=script&lang=js& */ "./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/new-users.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!*********************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=template&id=667f163b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/quick-docs.vue": +/*!***************************************!*\ + !*** ./src/components/quick-docs.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./quick-docs.vue?vue&type=template&id=802cdaaa& */ "./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&"); +/* harmony import */ var _quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./quick-docs.vue?vue&type=script&lang=js& */ "./src/components/quick-docs.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["render"], + _quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/quick-docs.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/quick-docs.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/quick-docs.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./quick-docs.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&": +/*!**********************************************************************!*\ + !*** ./src/components/quick-docs.vue?vue&type=template&id=802cdaaa& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./quick-docs.vue?vue&type=template&id=802cdaaa& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/quick-docs.vue?vue&type=template&id=802cdaaa&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_quick_docs_vue_vue_type_template_id_802cdaaa___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-ranking.vue": +/*!*****************************************!*\ + !*** ./src/components/user-ranking.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=template&id=1e61b644& */ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony import */ var _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=script&lang=js& */ "./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-ranking.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!************************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=template&id=1e61b644& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/home/home.vue": +/*!***********************************!*\ + !*** ./src/modules/home/home.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./home.vue?vue&type=template&id=4256fd7e& */ "./src/modules/home/home.vue?vue&type=template&id=4256fd7e&"); +/* harmony import */ var _home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./home.vue?vue&type=script&lang=js& */ "./src/modules/home/home.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["render"], + _home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/home/home.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/home/home.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/modules/home/home.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./home.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/home/home.vue?vue&type=template&id=4256fd7e&": +/*!******************************************************************!*\ + !*** ./src/modules/home/home.vue?vue&type=template&id=4256fd7e& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./home.vue?vue&type=template&id=4256fd7e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/home/home.vue?vue&type=template&id=4256fd7e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_home_vue_vue_type_template_id_4256fd7e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/2.2d07d32ec258ea6d7149.js b/public/2.2d07d32ec258ea6d7149.js new file mode 100644 index 00000000..fca569c0 --- /dev/null +++ b/public/2.2d07d32ec258ea6d7149.js @@ -0,0 +1,746 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[2],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CommentIcon", + props: { + title: { + type: String, + default: "Comment icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "EyeIcon", + props: { + title: { + type: String, + default: "Eye icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FormatVerticalAlignTopIcon", + props: { + title: { + type: String, + default: "Format Vertical Align Top icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MedalIcon", + props: { + title: { + type: String, + default: "Medal icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon comment-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M9,22C8.45,22 8,21.55 8,21V18H4C2.9,18 2,17.1 2,16V4C2,2.89 2.9,2 4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&": +/*!*********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635& ***! + \*********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon eye-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,9C10.34,9 9,10.34 9,12C9,13.66 10.34,15 12,15C13.66,15 15,13.66 15,12C15,10.34 13.66,9 12,9M12,17C9.24,17 7,14.76 7,12C7,9.24 9.24,7 12,7C14.76,7 17,9.24 17,12C17,14.76 14.76,17 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& ***! + \****************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon format-vertical-align-top-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M8,11H11V21H13V11H16L12,7L8,11M4,3V5H20V3H4Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon medal-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,2H4V4L9.81,8.36C6.14,9.57 4.14,13.53 5.35,17.2C6.56,20.87 10.5,22.87 14.19,21.66C17.86,20.45 19.86,16.5 18.65,12.82C17.95,10.71 16.3,9.05 14.19,8.36L20,4V2M14.94,19.5L12,17.78L9.06,19.5L9.84,16.17L7.25,13.93L10.66,13.64L12,10.5L13.34,13.64L16.75,13.93L14.16,16.17L14.94,19.5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Comment.vue?vue&type=template&id=700c253a& */ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&"); +/* harmony import */ var _Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Comment.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Comment.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Comment.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Comment.vue?vue&type=template&id=700c253a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Comment.vue?vue&type=template&id=700c253a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_700c253a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue": +/*!********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue ***! + \********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Eye.vue?vue&type=template&id=6cfe2635& */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&"); +/* harmony import */ var _Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Eye.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["render"], + _Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Eye.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&": +/*!*********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js& ***! + \*********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Eye.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635& ***! + \***************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Eye.vue?vue&type=template&id=6cfe2635& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue": +/*!***************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&"); +/* harmony import */ var _FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FormatVerticalAlignTop.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./FormatVerticalAlignTop.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& ***! + \**********************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./FormatVerticalAlignTop.vue?vue&type=template&id=12241e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FormatVerticalAlignTop.vue?vue&type=template&id=12241e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FormatVerticalAlignTop_vue_vue_type_template_id_12241e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Medal.vue?vue&type=template&id=67e5260a& */ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&"); +/* harmony import */ var _Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Medal.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["render"], + _Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Medal.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Medal.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Medal.vue?vue&type=template&id=67e5260a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Medal.vue?vue&type=template&id=67e5260a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Medal_vue_vue_type_template_id_67e5260a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/20.2812c7c913933bde3112.js b/public/20.2812c7c913933bde3112.js new file mode 100644 index 00000000..44246947 --- /dev/null +++ b/public/20.2812c7c913933bde3112.js @@ -0,0 +1,1596 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[20],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AccountIcon", + props: { + title: { + type: String, + default: "Account icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AccountEditIcon", + props: { + title: { + type: String, + default: "Account Edit icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowUpIcon", + props: { + title: { + type: String, + default: "Arrow Up icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "BellIcon", + props: { + title: { + type: String, + default: "Bell icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "LogoutVariantIcon", + props: { + title: { + type: String, + default: "Logout Variant icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js& ***! + \***************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MagnifyIcon", + props: { + title: { + type: String, + default: "Magnify icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MenuIcon", + props: { + title: { + type: String, + default: "Menu icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon account-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,4C14.21,4 16,5.79 16,8C16,10.21 14.21,12 12,12C9.79,12 8,10.21 8,8C8,5.79 9.79,4 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon account-edit-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21.7,13.35L20.7,14.35L18.65,12.3L19.65,11.3C19.86,11.09 20.21,11.09 20.42,11.3L21.7,12.58C21.91,12.79 21.91,13.14 21.7,13.35M12,18.94L18.06,12.88L20.11,14.93L14.06,21H12V18.94M12,14C7.58,14 4,15.79 4,18V20H10V18.11L14,14.11C13.34,14.03 12.67,14 12,14M12,4C9.79,4 8,5.79 8,8C8,10.21 9.79,12 12,12C14.21,12 16,10.21 16,8C16,5.79 14.21,4 12,4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-up-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon bell-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4C10,2.9 10.9,2 12,2C13.1,2 14,2.9 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21C14,22.1 13.1,23 12,23C10.9,23 10,22.1 10,21" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f& ***! + \*******************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon logout-variant-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14.08,15.59L16.67,13H7V11H16.67L14.08,8.41L15.5,7L20.5,12L15.5,17L14.08,15.59M19,3C20.1,3 21,3.9 21,5V9.67L19,7.67V5H5V19H19V16.33L21,14.33V19C21,20.1 20.1,21 19,21H5C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H19Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&": +/*!*************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6& ***! + \*************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon magnify-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M9.5,3C13.09,3 16,5.91 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16C5.91,16 3,13.09 3,9.5C3,5.91 5.91,3 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon menu-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Account.vue?vue&type=template&id=7e38f231& */ "./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&"); +/* harmony import */ var _Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Account.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["render"], + _Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Account.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Account.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Account.vue?vue&type=template&id=7e38f231& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Account.vue?vue&type=template&id=7e38f231&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Account_vue_vue_type_template_id_7e38f231___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccountEdit.vue?vue&type=template&id=fec58a4a& */ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&"); +/* harmony import */ var _AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccountEdit.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["render"], + _AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AccountEdit.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AccountEdit.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AccountEdit.vue?vue&type=template&id=fec58a4a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AccountEdit.vue?vue&type=template&id=fec58a4a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AccountEdit_vue_vue_type_template_id_fec58a4a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowUp.vue?vue&type=template&id=8517f5f0& */ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&"); +/* harmony import */ var _ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowUp.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowUp.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowUp.vue?vue&type=template&id=8517f5f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowUp.vue?vue&type=template&id=8517f5f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowUp_vue_vue_type_template_id_8517f5f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony import */ var _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Bell.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue": +/*!******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LogoutVariant.vue?vue&type=template&id=4ed1839f& */ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&"); +/* harmony import */ var _LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LogoutVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["render"], + _LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/LogoutVariant.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./LogoutVariant.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&": +/*!*************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f& ***! + \*************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./LogoutVariant.vue?vue&type=template&id=4ed1839f& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/LogoutVariant.vue?vue&type=template&id=4ed1839f&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_LogoutVariant_vue_vue_type_template_id_4ed1839f___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue": +/*!************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Magnify.vue?vue&type=template&id=1d382cb6& */ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&"); +/* harmony import */ var _Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Magnify.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Magnify.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&": +/*!*************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js& ***! + \*************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Magnify.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6& ***! + \*******************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Magnify.vue?vue&type=template&id=1d382cb6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Magnify.vue?vue&type=template&id=1d382cb6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Magnify_vue_vue_type_template_id_1d382cb6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Menu.vue?vue&type=template&id=62f6d40b& */ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&"); +/* harmony import */ var _Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Menu.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["render"], + _Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Menu.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Menu.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Menu.vue?vue&type=template&id=62f6d40b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Menu.vue?vue&type=template&id=62f6d40b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Menu_vue_vue_type_template_id_62f6d40b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/21.8531ae436fafa7e82e41.js b/public/21.8531ae436fafa7e82e41.js new file mode 100644 index 00000000..08cfd51a --- /dev/null +++ b/public/21.8531ae436fafa7e82e41.js @@ -0,0 +1,1413 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[21],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowDownIcon", + props: { + title: { + type: String, + default: "Arrow Down icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CloseIcon", + props: { + title: { + type: String, + default: "Close icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MapMarkerIcon", + props: { + title: { + type: String, + default: "Map Marker icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "PlusIcon", + props: { + title: { + type: String, + default: "Plus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "SourceCommitEndIcon", + props: { + title: { + type: String, + default: "Source Commit End icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-down-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon close-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon map-marker-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,11.5C10.62,11.5 9.5,10.38 9.5,9C9.5,7.62 10.62,6.5 12,6.5C13.38,6.5 14.5,7.62 14.5,9C14.5,10.38 13.38,11.5 12,11.5M12,2C8.13,2 5,5.13 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9C19,5.13 15.87,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon plus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&": +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d& ***! + \*********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon source-commit-end-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M17,12C17,14.76 14.76,17 12,17C9.24,17 7,14.76 7,12C7,9.58 8.72,7.56 11,7.1V3H13V7.1C15.28,7.56 17,9.58 17,12M12,9C10.34,9 9,10.34 9,12C9,13.66 10.34,15 12,15C13.66,15 15,13.66 15,12C15,10.34 13.66,9 12,9Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowDown.vue?vue&type=template&id=dca48362& */ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&"); +/* harmony import */ var _ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowDown.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowDown.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowDown.vue?vue&type=template&id=dca48362& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowDown.vue?vue&type=template&id=dca48362&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowDown_vue_vue_type_template_id_dca48362___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony import */ var _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Close.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Close.vue?vue&type=template&id=3cc2737c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Close.vue?vue&type=template&id=3cc2737c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Close_vue_vue_type_template_id_3cc2737c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MapMarker.vue?vue&type=template&id=c80f3d8c& */ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&"); +/* harmony import */ var _MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MapMarker.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["render"], + _MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/MapMarker.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./MapMarker.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./MapMarker.vue?vue&type=template&id=c80f3d8c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/MapMarker.vue?vue&type=template&id=c80f3d8c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_MapMarker_vue_vue_type_template_id_c80f3d8c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony import */ var _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"], + _Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Plus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Plus.vue?vue&type=template&id=18bbb6c6& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Plus.vue?vue&type=template&id=18bbb6c6&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Plus_vue_vue_type_template_id_18bbb6c6___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue": +/*!********************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue ***! + \********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SourceCommitEnd.vue?vue&type=template&id=68a53c4d& */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&"); +/* harmony import */ var _SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SourceCommitEnd.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["render"], + _SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/SourceCommitEnd.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./SourceCommitEnd.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&": +/*!***************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d& ***! + \***************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./SourceCommitEnd.vue?vue&type=template&id=68a53c4d& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/SourceCommitEnd.vue?vue&type=template&id=68a53c4d&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_SourceCommitEnd_vue_vue_type_template_id_68a53c4d___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/22.6ca5b4d120f1520ae9e5.js b/public/22.6ca5b4d120f1520ae9e5.js new file mode 100644 index 00000000..52c204b8 --- /dev/null +++ b/public/22.6ca5b4d120f1520ae9e5.js @@ -0,0 +1,1137 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[22],{ + +/***/ "./node_modules/dayjs/dayjs.min.js": +/*!*****************************************!*\ + !*** ./node_modules/dayjs/dayjs.min.js ***! + \*****************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +!function(t,n){ true?module.exports=n():undefined}(this,function(){"use strict";var t="millisecond",n="second",e="minute",r="hour",i="day",s="week",u="month",o="quarter",a="year",h=/^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,c=function(t,n,e){var r=String(t);return!r||r.length>=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,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||(l=r),r},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})};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) 0) { + this.search(); + } else { + this.threads = []; + } + } + }, + mounted: function mounted() { + var _this = this; + + this.$nextTick(function () { + document.addEventListener('click', _this.onBodyClick); + }); + }, + beforeDestroy: function beforeDestroy() { + document.removeEventListener('click', this.onBodyClick); + }, + methods: { + onBodyClick: function onBodyClick(e) { + var searchForm = document.querySelector('.search-form'); + + if (e.target !== searchForm) { + this.threads = []; + } + }, + highlightContent: function highlightContent(item) { + return (item.highlights['content'] || []).join('...'); + }, + search: function search() { + var _this2 = this; + + this.$http.get("/threads/search?q=" + this.q).then(function (response) { + _this2.threads = response.data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Menu__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Menu */ "./node_modules/vue-material-design-icons/Menu.vue"); +/* harmony import */ var $icons_Bell__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Bell */ "./node_modules/vue-material-design-icons/Bell.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Magnify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Magnify */ "./node_modules/vue-material-design-icons/Magnify.vue"); +/* harmony import */ var $icons_Account__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $icons/Account */ "./node_modules/vue-material-design-icons/Account.vue"); +/* harmony import */ var $icons_AccountEdit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/AccountEdit */ "./node_modules/vue-material-design-icons/AccountEdit.vue"); +/* harmony import */ var $icons_LogoutVariant__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/LogoutVariant */ "./node_modules/vue-material-design-icons/LogoutVariant.vue"); +/* harmony import */ var _nav_search__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./nav-search */ "./src/components/nav-search.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + MenuIcon: $icons_Menu__WEBPACK_IMPORTED_MODULE_0__["default"], + BellIcon: $icons_Bell__WEBPACK_IMPORTED_MODULE_1__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_2__["default"], + AccountIcon: $icons_Account__WEBPACK_IMPORTED_MODULE_4__["default"], + MagnifyIcon: $icons_Magnify__WEBPACK_IMPORTED_MODULE_3__["default"], + AccountEditIcon: $icons_AccountEdit__WEBPACK_IMPORTED_MODULE_5__["default"], + LogoutVariant: $icons_LogoutVariant__WEBPACK_IMPORTED_MODULE_6__["default"], + NavSearch: _nav_search__WEBPACK_IMPORTED_MODULE_7__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_8__["mapGetters"])(['isLogged', 'currentUser'])), + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_8__["mapActions"])(['logout', 'toggle'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sidebar.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return {}; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_navbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/navbar */ "./src/components/navbar.vue"); +/* harmony import */ var $components_sidebar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/sidebar */ "./src/components/sidebar.vue"); +/* harmony import */ var $icons_ArrowUp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/ArrowUp */ "./node_modules/vue-material-design-icons/ArrowUp.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = (_defineProperty({ + name: 'app', + components: { + Navbar: $components_navbar__WEBPACK_IMPORTED_MODULE_1__["default"], + Sidebar: $components_sidebar__WEBPACK_IMPORTED_MODULE_2__["default"], + ArrowUpIcon: $icons_ArrowUp__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['currentUser', 'isToggled']), { + checkParams: function checkParams() { + return this.$route.query['active-success'] == 'yes'; + }, + shouldShowNavbar: function shouldShowNavbar() { + return typeof this.$route.meta['navbar'] === 'undefined' || !!this.$route.meta['navbar']; + }, + withContainer: function withContainer() { + if (typeof this.$route.meta['container'] !== 'undefined') { + return !!this.$route.meta['container']; + } + + return true; + } + }), + mounted: function mounted() { + console.log('app mounted'); + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])(['toggle']), { + sendActiveMail: function sendActiveMail() { + var _this = this; + + this.$http.post('user/send-active-mail').then(function (data) { + _this.$message.success(data.message); + }); + }, + scrollToTop: function scrollToTop() { + window.scroll({ + top: 0, + left: 0, + behavior: 'smooth' + }); + } + }) +}, "mounted", function mounted() { + var _this2 = this; + + setTimeout(function () { + window.addEventListener('scroll', function () { + if (document.body.scrollTop > 400 || document.documentElement.scrollTop > 400) { + _this2.$refs['backToTopLayer'].style.display = 'block'; + } else { + _this2.$refs['backToTopLayer'].style.display = 'none'; + } + }); + }, 1000); +})); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".search-form[data-v-28d942bc] {\n position: relative;\n}\n.search-form .list-group[data-v-28d942bc] {\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 400px;\n max-height: 80vh;\n overflow-y: auto;\n -webkit-box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1);\n z-index: 99;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".navbar-nav .nav-item {\n margin-left: 10px;\n margin-right: 10px;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".back-to-top {\n display: none;\n position: fixed;\n bottom: 30px;\n right: 50px;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src??ref--7-3!../node_modules/sass-loader/lib/loader.js??ref--7-4!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&": +/*!****************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true& ***! + \****************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("form", { staticClass: "search-form form-inline my-2 my-lg-0" }, [ + _c("input", { + directives: [ + { name: "model", rawName: "v-model", value: _vm.q, expression: "q" } + ], + staticClass: "form-control mr-sm-2", + attrs: { + type: "search", + placeholder: "搜索讨论", + "aria-label": "Search" + }, + domProps: { value: _vm.q }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.q = $event.target.value + } + } + }), + _vm._v(" "), + _vm.threads.length > 0 + ? _c( + "div", + { staticClass: "list-group" }, + _vm._l(_vm.threads, function(item) { + return _c( + "div", + { + key: item.id, + staticClass: + "list-group-item list-group-item-action cursor-pointer", + on: { + click: function($event) { + return _vm.$router.push({ + name: "threads.show", + params: { id: item.id } + }) + } + } + }, + [ + _c("div", { staticClass: "d-flex align-items-center" }, [ + _c("a", { staticClass: "mr-2", attrs: { href: "#" } }, [ + _c("img", { + staticClass: "avatar-30", + attrs: { src: item.user.avatar, alt: "" } + }) + ]), + _vm._v(" "), + _c("div", { + staticClass: "highlights text-gray-50 text-truncate", + domProps: { + innerHTML: _vm._s( + item["highlights"] && item["highlights"]["title"] + ? item.highlights.title[0] + : item.title + ) + } + }) + ]), + _vm._v(" "), + item.highlights["content"] + ? _c("p", { + staticClass: "highlights mt-1 text-gray-60", + domProps: { + innerHTML: _vm._s(_vm.highlightContent(item)) + } + }) + : _vm._e() + ] + ) + }), + 0 + ) + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=template&id=688b5e20&": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/navbar.vue?vue&type=template&id=688b5e20& ***! + \************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "bg-white bg-white shadow-6" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "nav", + { + staticClass: "navbar px-0 py-1 text-14 navbar-expand-lg navbar-light" + }, + [ + _c( + "router-link", + { + staticClass: + "navbar-brand text-22 d-flex align-items-center antialiased", + attrs: { to: { name: "home" } } + }, + [ + _c("img", { + staticClass: "mr-2 avatar-40", + attrs: { src: "/yike.svg", alt: "一刻社区" } + }), + _vm._v("一刻"), + _c("span", { staticClass: "text-14 text-muted ml-1" }, [ + _vm._v("| 高品质微信开发者社区") + ]), + _c("sup", { staticClass: "ml-1 text-10 text-danger" }, [ + _vm._v(" Beta") + ]) + ] + ), + _vm._v(" "), + _vm._m(0), + _vm._v(" "), + _c( + "div", + { + staticClass: "collapse navbar-collapse", + attrs: { id: "navbarSupportedContent" } + }, + [ + _c( + "ul", + { + staticClass: + "navbar-nav flex-row align-items-center justify-content-center py-sm-2 py-md-0 mx-auto" + }, + [ + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "home" }, exact: "", tag: "li" } + }, + [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "javascript:void(0);" } + }, + [_vm._v("首页")] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { + to: { name: "nodes.show" }, + exact: "", + tag: "li" + } + }, + [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "javascript:void(0);" } + }, + [_vm._v("节点")] + ) + ] + ), + _vm._v(" "), + _vm._m(1), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [_c("nav-search")], 1) + ], + 1 + ), + _vm._v(" "), + _c( + "ul", + { + staticClass: + "navbar-nav ml-md-auto flex-row d-md-flex align-items-center justify-content-around" + }, + [ + _vm.isLogged + ? [ + _c( + "li", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: + "text-20 btn btn-icon btn-transparent btn-light", + attrs: { + to: { name: "threads.create" }, + exact: "" + } + }, + [_c("plus-icon")], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c( + "li", + { staticClass: "nav-item nav-item-icon" }, + [ + _c( + "router-link", + { + staticClass: + "text-20 btn btn-icon btn-transparent btn-light", + attrs: { to: { name: "notifications.show" } } + }, + [_c("bell-icon")], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c("div", { staticClass: "btn-group" }, [ + _c( + "a", + { + staticClass: "dropdown-toggle cursor-pointer", + attrs: { + href: "#", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [ + _c("img", { + staticClass: "avatar-40 mr-2", + attrs: { src: _vm.currentUser.avatar } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "dropdown-menu dropdown-menu-right" + }, + [ + _c( + "div", + { staticClass: "dropdown-item" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.currentUser.username + } + } + } + }, + [ + _c( + "div", + { + staticClass: "text-16 text-gray-30" + }, + [_vm._v(_vm._s(_vm.currentUser.name))] + ), + _vm._v(" "), + _c("div", [ + _vm._v( + "@" + + _vm._s(_vm.currentUser.username) + ) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "dropdown-divider" }), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "dropdown-item", + attrs: { + to: { + name: "users.show", + params: { + username: _vm.currentUser.username + } + }, + exact: "" + } + }, + [ + _c("account-icon", { staticClass: "mr-1" }), + _vm._v( + "\n 个人中心\n " + ) + ], + 1 + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "dropdown-item", + attrs: { + to: { name: "user.profile" }, + exact: "" + } + }, + [ + _c("account-edit-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n 编辑资料\n " + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "dropdown-divider" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "dropdown-item", + attrs: { href: "javascript:void(0);" }, + on: { click: _vm.logout } + }, + [ + _c("logout-variant", { + staticClass: "mr-1" + }), + _vm._v( + "\n 退出登录\n " + ) + ], + 1 + ) + ], + 1 + ) + ]) + ]) + ] + : [ + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "auth.login" }, tag: "li" } + }, + [ + _c( + "a", + { attrs: { href: "javascript:void(0);" } }, + [_vm._v("登录")] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "nav-item", + attrs: { to: { name: "auth.register" }, tag: "li" } + }, + [ + _c( + "a", + { attrs: { href: "javascript:void(0);" } }, + [_vm._v("注册")] + ) + ] + ) + ] + ], + 2 + ) + ] + ) + ], + 1 + ) + ]) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "button", + { + staticClass: "navbar-toggler", + attrs: { + type: "button", + "data-toggle": "collapse", + "data-target": "#navbarSupportedContent", + "aria-controls": "navbarSupportedContent", + "aria-expanded": "false", + "aria-label": "Toggle navigation" + } + }, + [_c("span", { staticClass: "navbar-toggler-icon" })] + ) + }, + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + attrs: { href: "https://easywechat.com?utm_source=yike.io" } + }, + [_vm._v("SDK")] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=template&id=19f8877c&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/sidebar.vue?vue&type=template&id=19f8877c& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm._m(0) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "border-right position-fixed h-100 bg-white", + attrs: { id: "sidebar-wrapper" } + }, + [ + _c("ul", { staticClass: "px-2" }, [ + _c("li", { staticClass: "text-16 text-gray-40 py-2" }, [ + _vm._v("数据统计") + ]), + _vm._v(" "), + _c("li", [ + _c( + "div", + { staticClass: "text-14 font-weight-bold text-gray-40" }, + [_vm._v("站点统计")] + ), + _vm._v(" "), + _c("ul", { staticClass: "text-12 px-2" }, [ + _c("li", { staticClass: "d-flex justify-content-between py-1" }, [ + _c("span", [_vm._v("总人数")]), + _vm._v(" "), + _c("span", [_vm._v("1000")]) + ]), + _vm._v(" "), + _c("li", { staticClass: "d-flex justify-content-between py-1" }, [ + _c("span", [_vm._v("总帖子数")]), + _vm._v(" "), + _c("span", [_vm._v("1000")]) + ]) + ]) + ]) + ]) + ] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=template&id=32af413b&": +/*!***********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/root.vue?vue&type=template&id=32af413b& ***! + \***********************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: "h-100", + class: { toggled: _vm.isToggled }, + attrs: { id: "wrapper" } + }, + [ + _c( + "div", + { + staticClass: "w-100 position-absolute", + attrs: { id: "page-content-wrapper" } + }, + [ + _vm.shouldShowNavbar ? _c("navbar") : _vm._e(), + _vm._v(" "), + _vm.currentUser && + _vm.currentUser.id && + !_vm.currentUser.has_activated + ? _c( + "div", + { + staticClass: "alert alert-warning text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v( + "\n 您的邮箱尚未验证,将影响你的正常使用。请先验证您的邮箱,如果未收到邮件,请点击\n " + ), + _c( + "a", + { + staticClass: "text-blue", + attrs: { href: "javascript:void(0)" }, + on: { click: _vm.sendActiveMail } + }, + [_vm._v("重新发送")] + ), + _vm._v("!\n ") + ] + ) + : _vm._e(), + _vm._v(" "), + _vm.$route.query["active-success"] && _vm.$route.query.type + ? [ + _vm.$route.query.type == "register" + ? [ + _vm.checkParams + ? _c( + "div", + { + staticClass: + "alert alert-success text-center m-0", + attrs: { role: "alert" } + }, + [_vm._v("您的账号已激活!")] + ) + : _c( + "div", + { + staticClass: "alert alert-danger text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v( + "\n 邮箱验证失败,请\n " + ), + _c( + "a", + { + staticClass: "text-blue", + attrs: { href: "javascript:void(0)" }, + on: { click: _vm.sendActiveMail } + }, + [_vm._v("重新发送验证邮件")] + ), + _vm._v("!\n ") + ] + ) + ] + : _vm._e(), + _vm._v(" "), + _vm.$route.query.type == "email" + ? [ + _vm.checkParams + ? _c( + "div", + { + staticClass: + "alert alert-success text-center m-0", + attrs: { role: "alert" } + }, + [_vm._v("账号已修改邮箱!")] + ) + : _c( + "div", + { + staticClass: "alert alert-danger text-center m-0", + attrs: { role: "alert" } + }, + [ + _vm._v("\n 验证失败!请\n "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { + to: { + name: "user.account", + hash: "#edit-email" + } + } + }, + [_vm._v("重新提交验证新邮箱")] + ), + _vm._v("!\n ") + ], + 1 + ) + ] + : _vm._e() + ] + : _vm._e(), + _vm._v(" "), + _c( + "div", + { + staticClass: "main-content", + class: { "container my-3": _vm.withContainer } + }, + [_c("router-view")], + 1 + ) + ], + 2 + ), + _vm._v(" "), + _vm.isToggled + ? _c("div", { + staticClass: "position-absolute w-100 h-100 bg-white opacity-70", + on: { click: _vm.toggle } + }) + : _vm._e(), + _vm._v(" "), + _c("div", { ref: "backToTopLayer", staticClass: "back-to-top" }, [ + _c( + "a", + { + staticClass: "btn btn-icon btn-secondary text-20", + attrs: { + "data-placement": "top", + "data-toggle": "tooltip", + href: "javascript:", + title: "返回顶部" + }, + on: { click: _vm.scrollToTop } + }, + [_c("arrow-up-icon")], + 1 + ) + ]) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/nav-search.vue": +/*!***************************************!*\ + !*** ./src/components/nav-search.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./nav-search.vue?vue&type=template&id=28d942bc&scoped=true& */ "./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&"); +/* harmony import */ var _nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nav-search.vue?vue&type=script&lang=js& */ "./src/components/nav-search.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "28d942bc", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/nav-search.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&": +/*!*************************************************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& ***! + \*************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=style&index=0&id=28d942bc&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_style_index_0_id_28d942bc_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&": +/*!**********************************************************************************!*\ + !*** ./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true& ***! + \**********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./nav-search.vue?vue&type=template&id=28d942bc&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/nav-search.vue?vue&type=template&id=28d942bc&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_nav_search_vue_vue_type_template_id_28d942bc_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/navbar.vue": +/*!***********************************!*\ + !*** ./src/components/navbar.vue ***! + \***********************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./navbar.vue?vue&type=template&id=688b5e20& */ "./src/components/navbar.vue?vue&type=template&id=688b5e20&"); +/* harmony import */ var _navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./navbar.vue?vue&type=script&lang=js& */ "./src/components/navbar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./navbar.vue?vue&type=style&index=0&lang=scss& */ "./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["render"], + _navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/navbar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=script&lang=js&": +/*!************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=script&lang=js& ***! + \************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=style&index=0&lang=scss&": +/*!*********************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=style&index=0&lang=scss& ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../node_modules/style-loader!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src??ref--7-3!../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/components/navbar.vue?vue&type=template&id=688b5e20&": +/*!******************************************************************!*\ + !*** ./src/components/navbar.vue?vue&type=template&id=688b5e20& ***! + \******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./navbar.vue?vue&type=template&id=688b5e20& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/navbar.vue?vue&type=template&id=688b5e20&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_navbar_vue_vue_type_template_id_688b5e20___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/sidebar.vue": +/*!************************************!*\ + !*** ./src/components/sidebar.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar.vue?vue&type=template&id=19f8877c& */ "./src/components/sidebar.vue?vue&type=template&id=19f8877c&"); +/* harmony import */ var _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebar.vue?vue&type=script&lang=js& */ "./src/components/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["render"], + _sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/sidebar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/sidebar.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/components/sidebar.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/sidebar.vue?vue&type=template&id=19f8877c&": +/*!*******************************************************************!*\ + !*** ./src/components/sidebar.vue?vue&type=template&id=19f8877c& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=template&id=19f8877c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/sidebar.vue?vue&type=template&id=19f8877c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_19f8877c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/root.vue": +/*!**********************!*\ + !*** ./src/root.vue ***! + \**********************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./root.vue?vue&type=template&id=32af413b& */ "./src/root.vue?vue&type=template&id=32af413b&"); +/* harmony import */ var _root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./root.vue?vue&type=script&lang=js& */ "./src/root.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./root.vue?vue&type=style&index=0&lang=scss& */ "./src/root.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["render"], + _root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/root.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/root.vue?vue&type=script&lang=js&": +/*!***********************************************!*\ + !*** ./src/root.vue?vue&type=script&lang=js& ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/babel-loader/lib??ref--4-0!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/root.vue?vue&type=style&index=0&lang=scss&": +/*!********************************************************!*\ + !*** ./src/root.vue?vue&type=style&index=0&lang=scss& ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../node_modules/style-loader!../node_modules/css-loader/dist/cjs.js!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src??ref--7-3!../node_modules/sass-loader/lib/loader.js??ref--7-4!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/root.vue?vue&type=template&id=32af413b&": +/*!*****************************************************!*\ + !*** ./src/root.vue?vue&type=template&id=32af413b& ***! + \*****************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../node_modules/vue-loader/lib??vue-loader-options!./root.vue?vue&type=template&id=32af413b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/root.vue?vue&type=template&id=32af413b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_root_vue_vue_type_template_id_32af413b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/24.59458ba0db37c080c078.js b/public/24.59458ba0db37c080c078.js new file mode 100644 index 00000000..42200271 --- /dev/null +++ b/public/24.59458ba0db37c080c078.js @@ -0,0 +1,1044 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[24],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeHighIcon", + props: { + title: { + type: String, + default: "Volume High icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "VolumeMuteIcon", + props: { + title: { + type: String, + default: "Volume Mute icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-high-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon volume-mute-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M3,9H7L12,4V20L7,15H3V9M16.59,12L14,9.41L15.41,8L18,10.59L20.59,8L22,9.41L19.41,12L22,14.59L20.59,16L18,13.41L15.41,16L14,14.59L16.59,12Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony import */ var _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeHigh.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeHigh.vue?vue&type=template&id=ffdb55f0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeHigh.vue?vue&type=template&id=ffdb55f0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeHigh_vue_vue_type_template_id_ffdb55f0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony import */ var _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"], + _VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/VolumeMute.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js& ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff& ***! + \**********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./VolumeMute.vue?vue&type=template&id=1847b5ff& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/VolumeMute.vue?vue&type=template&id=1847b5ff&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_VolumeMute_vue_vue_type_template_id_1847b5ff___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/25.d87a38ad5bca1c24d4e3.js b/public/25.d87a38ad5bca1c24d4e3.js new file mode 100644 index 00000000..93338487 --- /dev/null +++ b/public/25.d87a38ad5bca1c24d4e3.js @@ -0,0 +1,1251 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[25],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRight: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?latest=1&limit=12').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-locked.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_AccountOff__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/AccountOff */ "./node_modules/vue-material-design-icons/AccountOff.vue"); +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-locked', + components: { + AccountOffIcon: $icons_AccountOff__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowRight */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'NewUsers', + components: { + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_4__["default"], + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowRightIcon: $icons_ArrowRight__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + methods: { + loadUsers: function loadUsers() { + var _this = this; + + this.$http.get('users?limit=10').then(function (users) { + return _this.users = users.data; + }); + } + }, + mounted: function mounted() { + this.loadUsers(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dayjs */ "./node_modules/dayjs/dayjs.min.js"); +/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_user_ranking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/user-ranking */ "./src/components/user-ranking.vue"); +/* harmony import */ var $components_new_users__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $components/new-users */ "./src/components/new-users.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_MapMarker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/MapMarker */ "./node_modules/vue-material-design-icons/MapMarker.vue"); +/* harmony import */ var $icons_Domain__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! $icons/Domain */ "./node_modules/vue-material-design-icons/Domain.vue"); +/* harmony import */ var $icons_Link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! $icons/Link */ "./node_modules/vue-material-design-icons/Link.vue"); +/* harmony import */ var $icons_AccountOff__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! $icons/AccountOff */ "./node_modules/vue-material-design-icons/AccountOff.vue"); +/* harmony import */ var $icons_CalendarCheck__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! $icons/CalendarCheck */ "./node_modules/vue-material-design-icons/CalendarCheck.vue"); +/* harmony import */ var $icons_AccountTie__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! $icons/AccountTie */ "./node_modules/vue-material-design-icons/AccountTie.vue"); +/* harmony import */ var $components_user_social_btns__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! $components/user-social-btns */ "./src/components/user-social-btns.vue"); +/* harmony import */ var $components_user_locked__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! $components/user-locked */ "./src/components/user-locked.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'show', + components: { + UserLocked: $components_user_locked__WEBPACK_IMPORTED_MODULE_14__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_6__["default"], + DomainIcon: $icons_Domain__WEBPACK_IMPORTED_MODULE_8__["default"], + CalendarCheckIcon: $icons_CalendarCheck__WEBPACK_IMPORTED_MODULE_11__["default"], + LinkIcon: $icons_Link__WEBPACK_IMPORTED_MODULE_9__["default"], + AdminIcon: $icons_AccountTie__WEBPACK_IMPORTED_MODULE_12__["default"], + AccountOffIcon: $icons_AccountOff__WEBPACK_IMPORTED_MODULE_10__["default"], + MapMarkerIcon: $icons_MapMarker__WEBPACK_IMPORTED_MODULE_7__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_3__["default"], + UserRanking: $components_user_ranking__WEBPACK_IMPORTED_MODULE_4__["default"], + NewUsers: $components_new_users__WEBPACK_IMPORTED_MODULE_5__["default"], + UserSocialBtns: $components_user_social_btns__WEBPACK_IMPORTED_MODULE_13__["default"] + }, + data: function data() { + return { + user: {}, + navFixed: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_2__["mapGetters"])(['currentUser'])), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.username !== from.params.username) { + this.getUser(to.params.username); + } + + next(); + }, + created: function created() { + this.getUser(this.$route.params.username); + this.$nextTick(this.registerEventListener); + }, + methods: { + getUser: function () { + var _getUser = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee(username) { + var _this = this; + + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + username = username || this.$route.params.username; + _context.next = 3; + return this.$http.get("users/".concat(username)).catch(function () { + _this.$router.replace({ + name: 'pages.not-found' + }); + }); + + case 3: + this.user = _context.sent; + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function getUser(_x) { + return _getUser.apply(this, arguments); + } + + return getUser; + }(), + toggleStatus: function toggleStatus(timestamp) { + var _this2 = this; + + this.user[timestamp] = this.user[timestamp] ? null : dayjs__WEBPACK_IMPORTED_MODULE_1___default()().format('YYYY-MM-DD HH:mm:ss'); + this.$http.patch("users/".concat(this.user.username), this.user).then(function () { + _this2.$message.success('搞定!'); + + _this2.getUser(); + }); + }, + registerEventListener: function registerEventListener() { + var _this3 = this; + + var vm = this; + window.addEventListener('scroll', function () { + if (vm.$route.name.substr(0, 5) === 'users') { + var top = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + _this3.navFixed = top >= document.querySelector('.user-show-navbar').offsetTop; + } + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".page-user-show .bg-image[data-v-192747c5] {\n overflow: hidden;\n}\n.page-user-show .bg-image img[data-v-192747c5] {\n width: 100%;\n height: auto;\n}\n.page-user-show .page-header[data-v-192747c5] {\n min-height: 40vh;\n overflow-y: visible;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n}\n.page-user-show .user-show-navbar[data-v-192747c5] {\n position: -webkit-sticky;\n position: sticky;\n top: -1px;\n z-index: 999;\n}\n.page-user-show .user-show-navbar .nav[data-v-192747c5] {\n position: relative;\n background: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.page-user-show .avatar[data-v-192747c5] {\n border: 2px solid #fff;\n}\n.page-user-show .user-profile[data-v-192747c5] {\n z-index: 2;\n text-shadow: 1px 1px 10px #3d465e;\n}\n@media (max-width: 768px) {\n.page-user-show .user-profile[data-v-192747c5] {\n text-align: center;\n}\n.page-user-show .user-social-btns[data-v-192747c5] {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list px-2 pb-2" }, + _vm._l(_vm.users, function(item) { + return _c("user-media", { + key: item.id, + attrs: { type: "vertical w25", user: item } + }) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-body" }, [ + _c( + "div", + { staticClass: "d-flex align-items-center justify-content-between" }, + [_c("div", { staticClass: "text-13" }, [_vm._v("最新用户")])] + ) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=template&id=88e03128&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-locked.vue?vue&type=template&id=88e03128& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-center text-danger" }, [ + _c("h1", [_c("account-off-icon")], 1), + _vm._v(" 该账户已被冻结\n") + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list" }, + _vm._l(_vm.users, function(item) { + return _c( + "user-media", + { + key: item.id, + staticClass: "mb-2 d-flex align-items-center", + attrs: { user: item } + }, + [ + _c( + "template", + { slot: "appends" }, + [ + _c("follow-btn", { + staticClass: "ml-auto", + attrs: { item: item, simple: "" } + }) + ], + 1 + ), + _vm._v(" "), + _c("template", { slot: "description" }, [ + _c("div", { staticClass: "text-gray-70 text-12" }, [ + _vm._v(_vm._s(item.created_at_timeago)) + ]) + ]) + ], + 2 + ) + }), + 1 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "box-heading d-flex align-items-center justify-content-between" + }, + [_c("div", { staticClass: "text-13" }, [_vm._v("活跃用户")])] + ) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&": +/*!*************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true& ***! + \*************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user.id + ? _c("div", { staticClass: "page-user-show" }, [ + _c( + "header", + { + staticClass: "page-header d-flex align-items-end bg-grey-blue py-2", + staticStyle: { "background-image": "url(/banners/shanghai.jpg)" } + }, + [ + _c( + "div", + { + staticClass: + "user-profile container position-relative w-100 text-white p-2 d-md-flex flex-row align-items-center" + }, + [ + _c("img", { + staticClass: "avatar avatar-120", + attrs: { src: _vm.user.avatar, alt: "User avatar" } + }), + _vm._v(" "), + _c("div", { staticClass: "ml-md-3" }, [ + _c("h1", { staticClass: "mt-2 mb-0" }, [ + _vm._v( + "\n " + _vm._s(_vm.user.name) + "\n " + ), + _c( + "a", + { + staticClass: + "ml-md-1 d-block d-md-inline text-gray-90 text-16" + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ]), + _vm._v(" "), + !_vm.user.banned_at + ? _c("div", { staticClass: "my-1" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + : _vm._e(), + _vm._v(" "), + !_vm.user.banned_at + ? _c( + "div", + { + staticClass: + "extends text-white d-none d-md-block d-lg-flex" + }, + [ + _vm.user.extends.location + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("map-marker-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n " + + _vm._s(_vm.user.extends.location) + + "\n " + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.company + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("domain-icon", { staticClass: "mr-1" }), + _vm._v( + "\n " + + _vm._s(_vm.user.extends.company) + + "\n " + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _vm.user.extends.home_url + ? _c( + "div", + { staticClass: "mr-1" }, + [ + _c("link-icon", { staticClass: "mr-1" }), + _vm._v(" "), + _c( + "a", + { + staticClass: "text-white", + attrs: { href: _vm.user.extends.home_url } + }, + [_vm._v(_vm._s(_vm.user.extends.home_url))] + ) + ], + 1 + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "mr-1" }, + [ + _c("calendar-check-icon", { + staticClass: "mr-1" + }), + _vm._v( + "\n 加入于 " + + _vm._s(_vm.user.created_at_timeago) + + "\n " + ) + ], + 1 + ) + ] + ) + : _vm._e(), + _vm._v(" "), + _c( + "div", + { staticClass: "pt-2" }, + [ + _c("user-social-btns", { + attrs: { user: _vm.user, spacing: 2 } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _vm.currentUser && + _vm.currentUser.id != _vm.user.id && + !_vm.user.banned_at + ? [ + _c("follow-btn", { + staticClass: "d-inline-block ml-md-auto", + attrs: { item: _vm.user } + }) + ] + : _vm._e() + ], + 2 + ) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "user-show-navbar bg-white" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "div", + { + staticClass: + "nav nav-tab-line text-center shadow-6 align-items-stretch" + }, + [ + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.show" }, exact: "" } + }, + [_vm._v("最新动态")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.threads" }, exact: "" } + }, + [ + _vm._v("\n 讨论\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.threads_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.following" }, exact: "" } + }, + [ + _vm._v("\n 关注\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.followings_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav-item" }, + [ + _c( + "router-link", + { + staticClass: "nav-link", + attrs: { to: { name: "users.followers" }, exact: "" } + }, + [ + _vm._v("\n 粉丝\n "), + _c("span", { staticClass: "text-gray-70 pl-1" }, [ + _vm._v(_vm._s(_vm.user.cache.followers_count)) + ]) + ] + ) + ], + 1 + ), + _vm._v(" "), + _vm.currentUser.is_admin + ? _c("div", { staticClass: "nav-item ml-auto" }, [ + _c("div", { staticClass: "btn-group" }, [ + _c( + "button", + { + staticClass: + "btn btn-link nav-link dropdown-toggle", + attrs: { + type: "button", + "data-toggle": "dropdown", + "aria-haspopup": "true", + "aria-expanded": "false" + } + }, + [_c("admin-icon"), _vm._v("管理\n ")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "dropdown-menu dropdown-menu-right" }, + [ + _c( + "button", + { + staticClass: "dropdown-item", + class: { "text-danger": !_vm.user.banned_at }, + attrs: { type: "button" }, + on: { + click: function($event) { + return _vm.toggleStatus("banned_at") + } + } + }, + [ + _c("account-off-icon", { staticClass: "mr-1" }), + _vm._v( + "\n " + + _vm._s( + _vm.user.banned_at ? "取消冻结" : "冻结" + ) + + "\n " + ) + ], + 1 + ) + ] + ) + ]) + ]) + : _vm._e() + ] + ) + ]) + ]), + _vm._v(" "), + !_vm.user.banned_at + ? _c("div", { staticClass: "container pt-4" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-lg-9" }, [_c("router-view")], 1), + _vm._v(" "), + _c( + "div", + { staticClass: "col-lg-3" }, + [ + _c("hot-tags"), + _vm._v(" "), + _c("new-users", { staticClass: "mt-2" }), + _vm._v(" "), + _c("user-ranking", { staticClass: "mt-2" }) + ], + 1 + ) + ]) + ]) + : _c("div", { staticClass: "container mt-4" }, [_c("user-locked")], 1) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/new-users.vue": +/*!**************************************!*\ + !*** ./src/components/new-users.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./new-users.vue?vue&type=template&id=667f163b& */ "./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony import */ var _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./new-users.vue?vue&type=script&lang=js& */ "./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"], + _new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/new-users.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/new-users.vue?vue&type=template&id=667f163b&": +/*!*********************************************************************!*\ + !*** ./src/components/new-users.vue?vue&type=template&id=667f163b& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./new-users.vue?vue&type=template&id=667f163b& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/new-users.vue?vue&type=template&id=667f163b&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_new_users_vue_vue_type_template_id_667f163b___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-locked.vue": +/*!****************************************!*\ + !*** ./src/components/user-locked.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-locked.vue?vue&type=template&id=88e03128& */ "./src/components/user-locked.vue?vue&type=template&id=88e03128&"); +/* harmony import */ var _user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-locked.vue?vue&type=script&lang=js& */ "./src/components/user-locked.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-locked.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-locked.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/user-locked.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-locked.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-locked.vue?vue&type=template&id=88e03128&": +/*!***********************************************************************!*\ + !*** ./src/components/user-locked.vue?vue&type=template&id=88e03128& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-locked.vue?vue&type=template&id=88e03128& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-locked.vue?vue&type=template&id=88e03128&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_locked_vue_vue_type_template_id_88e03128___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-ranking.vue": +/*!*****************************************!*\ + !*** ./src/components/user-ranking.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=template&id=1e61b644& */ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony import */ var _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-ranking.vue?vue&type=script&lang=js& */ "./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-ranking.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-ranking.vue?vue&type=template&id=1e61b644&": +/*!************************************************************************!*\ + !*** ./src/components/user-ranking.vue?vue&type=template&id=1e61b644& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-ranking.vue?vue&type=template&id=1e61b644& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-ranking.vue?vue&type=template&id=1e61b644&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_ranking_vue_vue_type_template_id_1e61b644___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/show.vue": +/*!************************************!*\ + !*** ./src/modules/users/show.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=192747c5&scoped=true& */ "./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/users/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "192747c5", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&": +/*!**********************************************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& ***! + \**********************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=style&index=0&id=192747c5&scoped=true&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_style_index_0_id_192747c5_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&": +/*!*******************************************************************************!*\ + !*** ./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true& ***! + \*******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=192747c5&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/show.vue?vue&type=template&id=192747c5&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_192747c5_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/26.b8030d901505289d5697.js b/public/26.b8030d901505289d5697.js new file mode 100644 index 00000000..ba82e558 --- /dev/null +++ b/public/26.b8030d901505289d5697.js @@ -0,0 +1,858 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[26],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "ArrowLeftIcon", + props: { + title: { + type: String, + default: "Arrow Left icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "FileDocumentBoxOutlineIcon", + props: { + title: { + type: String, + default: "File Document Box Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198& ***! + \***************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon arrow-left-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& ***! + \****************************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon file-document-box-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M5,3C3.89,3 3,3.89 3,5V19C3,20.11 3.89,21 5,21H19C20.11,21 21,20.11 21,19V5C21,3.89 20.11,3 19,3H5M5,5H19V19H5V5M7,7V9H17V7H7M7,11V13H17V11H7M7,15V17H14V15H7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ArrowLeft.vue?vue&type=template&id=b9ea0198& */ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&"); +/* harmony import */ var _ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ArrowLeft.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["render"], + _ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ArrowLeft.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js& ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198& ***! + \*********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./ArrowLeft.vue?vue&type=template&id=b9ea0198& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=b9ea0198&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_ArrowLeft_vue_vue_type_template_id_b9ea0198___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue": +/*!***************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&"); +/* harmony import */ var _FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FileDocumentBoxOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./FileDocumentBoxOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& ***! + \**********************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/FileDocumentBoxOutline.vue?vue&type=template&id=6a70bc3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_FileDocumentBoxOutline_vue_vue_type_template_id_6a70bc3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/27.01037232ebbfbdd37446.js b/public/27.01037232ebbfbdd37446.js new file mode 100644 index 00000000..726f8f1b --- /dev/null +++ b/public/27.01037232ebbfbdd37446.js @@ -0,0 +1,857 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[27],{ + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "BellIcon", + props: { + title: { + type: String, + default: "Bell icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "CheckIcon", + props: { + title: { + type: String, + default: "Check icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "InboxIcon", + props: { + title: { + type: String, + default: "Inbox icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!**********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \**********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon bell-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4C10,2.9 10.9,2 12,2C13.1,2 14,2.9 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21C14,22.1 13.1,23 12,23C10.9,23 10,22.1 10,21" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon check-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon inbox-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M19,15H15C15,16.66 13.66,18 12,18C10.34,18 9,16.66 9,15H5V5H19M19,3H5C3.89,3 3,3.9 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.9 20.1,3 19,3Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony import */ var _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"], + _Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Bell.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js& ***! + \**********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2& ***! + \****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Bell.vue?vue&type=template&id=2f3d3ca2& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Bell.vue?vue&type=template&id=2f3d3ca2&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Bell_vue_vue_type_template_id_2f3d3ca2___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony import */ var _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"], + _Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Check.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Check.vue?vue&type=template&id=7146728c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Check.vue?vue&type=template&id=7146728c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Check_vue_vue_type_template_id_7146728c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Inbox.vue?vue&type=template&id=5eb27dec& */ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&"); +/* harmony import */ var _Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Inbox.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["render"], + _Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Inbox.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Inbox.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Inbox.vue?vue&type=template&id=5eb27dec& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Inbox.vue?vue&type=template&id=5eb27dec&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Inbox_vue_vue_type_template_id_5eb27dec___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/28.e38d3c3987dee7e489b5.js b/public/28.e38d3c3987dee7e489b5.js new file mode 100644 index 00000000..8873ce73 --- /dev/null +++ b/public/28.e38d3c3987dee7e489b5.js @@ -0,0 +1,886 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[28],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/VolumeMute */ "./node_modules/vue-material-design-icons/VolumeMute.vue"); +/* harmony import */ var $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/VolumeHigh */ "./node_modules/vue-material-design-icons/VolumeHigh.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'subscribe-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + VolumeMute: $icons_VolumeMute__WEBPACK_IMPORTED_MODULE_1__["default"], + VolumeHigh: $icons_VolumeHigh__WEBPACK_IMPORTED_MODULE_2__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + relation: { + type: String, + required: true + }, + item: { + type: Object, + required: true + } + }, + data: function data() { + return { + hovering: false + }; + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'HotTags', + data: function data() { + return { + nodes: [] + }; + }, + methods: { + loadNodes: function loadNodes() { + var _this = this; + + this.$http.get('nodes?hot=5&per_page=5').then(function (nodes) { + return _this.nodes = nodes.data; + }); + } + }, + created: function created() { + this.loadNodes(); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/show.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/hot-tags */ "./src/components/hot-tags.vue"); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +/* harmony import */ var $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/buttons/subscribe-btn */ "./src/components/buttons/subscribe-btn.vue"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + SubscribeBtn: $components_buttons_subscribe_btn__WEBPACK_IMPORTED_MODULE_3__["default"], + HotTags: $components_hot_tags__WEBPACK_IMPORTED_MODULE_1__["default"], + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + data: function data() { + return { + node: {}, + threads: { + default: {}, + featured: {}, + zeroComment: {}, + recent: {} + }, + currentThreadsTab: 'default' + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapGetters"])(['currentUser'])), + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.id != from.params.id) { + this.getNode(to.params.id); + this.loadThreads(to.params.id); + } + + next(); + }, + created: function created() { + this.getNode(this.$route.params.id); + this.loadThreads(this.$route.params.id); + }, + watch: { + currentThreadsTab: function currentThreadsTab() { + this.loadThreads(this.$route.params.id, 1); + } + }, + methods: { + loadThreads: function loadThreads(id) { + var _this = this; + + var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + this.$http.get("nodes/".concat(id, "/threads?all=yes&page=").concat(page)).then(function (threads) { + return _this.threads[_this.currentThreadsTab] = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + }, + getNode: function getNode(id) { + var _this2 = this; + + this.$http.get("nodes/".concat(id)).then(function (data) { + _this2.node = data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!***************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \***************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "relation-btn", + { attrs: { relation: _vm.relation, action: "subscribe", item: _vm.item } }, + [ + _c( + "button", + { + staticClass: "btn btn-sm text-gray-50", + attrs: { slot: "on" }, + slot: "on" + }, + [ + _c("volume-high"), + _c("span", { staticClass: "pl-1" }, [_vm._v("订阅")]) + ], + 1 + ), + _vm._v(" "), + _c( + "button", + { + staticClass: "btn btn-sm", + class: { "btn-primary": !_vm.hovering, "btn-danger": _vm.hovering }, + attrs: { slot: "off" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + }, + slot: "off" + }, + [ + _vm.hovering ? _c("volume-mute") : _c("check-icon"), + _vm._v(" "), + _c("span", { staticClass: "pl-1" }, [ + _vm._v(_vm._s(_vm.hovering ? "取消订阅" : "已订阅")) + ]) + ], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!**************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \**************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box text-gray-50" }, [ + _vm._m(0), + _vm._v(" "), + _c( + "ul", + { staticClass: "plan-list text-13" }, + [ + _vm._l(_vm.nodes, function(node) { + return [ + _c( + "router-link", + { + key: node.id, + staticClass: "py-1 cursor-pointer", + attrs: { + tag: "li", + to: { name: "nodes.node", params: { id: node.id } } + } + }, + [ + _vm._v("\n #" + _vm._s(node.title) + " "), + _c("span", { staticClass: "float-right" }, [ + _vm._v(_vm._s(node.cache ? node.cache.threads_count : 0)) + ]) + ] + ) + ] + }) + ], + 2 + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box-heading" }, [ + _c("div", { staticClass: "text-13" }, [_vm._v("热门话题")]) + ]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-node-show" }, [ + _c("header", { staticClass: "page-header bg-grey-blue py-3 text-white" }, [ + _c("div", { staticClass: "container" }, [ + _c("div", { staticClass: "row align-items-center" }, [ + _c("div", { staticClass: "col-md-6" }, [ + _c("h1", [_vm._v(_vm._s(_vm.node.title))]), + _vm._v(" "), + _c("p", [_vm._v(_vm._s(_vm.node.description))]) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "col-md-6 d-flex justify-content-end" }, + [ + _c("subscribe-btn", { + attrs: { relation: "node", item: _vm.node } + }) + ], + 1 + ) + ]) + ]) + ]), + _vm._v(" "), + _c("div", { staticClass: "container" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c("div", { staticClass: "col-md-9" }, [ + _c( + "div", + { staticClass: "box box-flush" }, + [ + _c("div", { staticClass: "box-body" }, [ + _c("ul", { staticClass: "nav nav-pills" }, [ + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "default" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "default" + } + } + }, + [_vm._v("活跃")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "featured" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "featured" + } + } + }, + [_vm._v("精选")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { + active: _vm.currentThreadsTab == "zeroComment" + }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "zeroComment" + } + } + }, + [_vm._v("零回复")] + ) + ]), + _vm._v(" "), + _c("li", { staticClass: "nav-item" }, [ + _c( + "a", + { + staticClass: "nav-link", + class: { active: _vm.currentThreadsTab == "recent" }, + attrs: { href: "javascript:;" }, + on: { + click: function($event) { + _vm.currentThreadsTab = "recent" + } + } + }, + [_vm._v("最新发布")] + ) + ]) + ]) + ]), + _vm._v(" "), + _c("threads-list", { + attrs: { threads: _vm.threads[_vm.currentThreadsTab] }, + on: { "page-changed": _vm.handlePageChanged } + }) + ], + 1 + ) + ]), + _vm._v(" "), + _c("div", { staticClass: "col-md-3" }, [_c("hot-tags")], 1) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue": +/*!**************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony import */ var _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscribe-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"], + _subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/subscribe-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&": +/*!***************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js& ***! + \***************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&": +/*!*********************************************************************************!*\ + !*** ./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a& ***! + \*********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./subscribe-btn.vue?vue&type=template&id=e241702a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/subscribe-btn.vue?vue&type=template&id=e241702a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_subscribe_btn_vue_vue_type_template_id_e241702a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/hot-tags.vue": +/*!*************************************!*\ + !*** ./src/components/hot-tags.vue ***! + \*************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=template&id=622cc129& */ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony import */ var _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hot-tags.vue?vue&type=script&lang=js& */ "./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"], + _hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/hot-tags.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=script&lang=js&": +/*!**************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=script&lang=js& ***! + \**************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/hot-tags.vue?vue&type=template&id=622cc129&": +/*!********************************************************************!*\ + !*** ./src/components/hot-tags.vue?vue&type=template&id=622cc129& ***! + \********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./hot-tags.vue?vue&type=template&id=622cc129& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/hot-tags.vue?vue&type=template&id=622cc129&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_hot_tags_vue_vue_type_template_id_622cc129___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/nodes/show.vue": +/*!************************************!*\ + !*** ./src/modules/nodes/show.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./show.vue?vue&type=template&id=ca881d88& */ "./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&"); +/* harmony import */ var _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./show.vue?vue&type=script&lang=js& */ "./src/modules/nodes/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["render"], + _show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/nodes/show.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/nodes/show.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/nodes/show.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&": +/*!*******************************************************************!*\ + !*** ./src/modules/nodes/show.vue?vue&type=template&id=ca881d88& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./show.vue?vue&type=template&id=ca881d88& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/show.vue?vue&type=template&id=ca881d88&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_show_vue_vue_type_template_id_ca881d88___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/29.b6d8eb97f89feb4e8b29.js b/public/29.b6d8eb97f89feb4e8b29.js new file mode 100644 index 00000000..1e81e363 --- /dev/null +++ b/public/29.b6d8eb97f89feb4e8b29.js @@ -0,0 +1,668 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[29],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $modules_users_profile_sidebar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $modules/users/profile/sidebar */ "./src/modules/users/profile/sidebar.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'show', + components: { + Sidebar: $modules_users_profile_sidebar__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])(['setUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_Settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/Settings */ "./node_modules/vue-material-design-icons/Settings.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + components: { + SettingIcon: $icons_Settings__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".page-user-show {\n min-height: 100vh;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&": +/*!****************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js& ***! + \****************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "SettingsIcon", + props: { + title: { + type: String, + default: "Settings icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&": +/*!**************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf& ***! + \**************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon settings-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,15.5C10.07,15.5 8.5,13.93 8.5,12C8.5,10.07 10.07,8.5 12,8.5C13.93,8.5 15.5,10.07 15.5,12C15.5,13.93 13.93,15.5 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=template&id=275bc111&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile.vue?vue&type=template&id=275bc111& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-user-show" }, [ + _c("div", { staticClass: "row" }, [ + _c("div", { staticClass: "col-md-3" }, [_c("sidebar")], 1), + _vm._v(" "), + _c("div", { staticClass: "col-md-9" }, [_c("router-view")], 1) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box" }, [ + _c( + "div", + { staticClass: "box-heading" }, + [_c("setting-icon", { staticClass: "mr-1 text-16" }), _vm._v("设置\n ")], + 1 + ), + _vm._v(" "), + _c( + "div", + { staticClass: "nav flex-column nav-pills" }, + [ + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.profile" } } }, + [_vm._v("基本资料")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.avatar" } } }, + [_vm._v("修改头像")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.account" } } }, + [_vm._v("账号设置")] + ), + _vm._v(" "), + _c( + "router-link", + { staticClass: "nav-link", attrs: { to: { name: "user.extends" } } }, + [_vm._v("拓展资料")] + ) + ], + 1 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue": +/*!*************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Settings.vue?vue&type=template&id=2a518ecf& */ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&"); +/* harmony import */ var _Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Settings.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["render"], + _Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Settings.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js& ***! + \**************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf& ***! + \********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Settings.vue?vue&type=template&id=2a518ecf& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Settings.vue?vue&type=template&id=2a518ecf&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Settings_vue_vue_type_template_id_2a518ecf___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/profile.vue": +/*!***************************************!*\ + !*** ./src/modules/users/profile.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./profile.vue?vue&type=template&id=275bc111& */ "./src/modules/users/profile.vue?vue&type=template&id=275bc111&"); +/* harmony import */ var _profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./profile.vue?vue&type=script&lang=js& */ "./src/modules/users/profile.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./profile.vue?vue&type=style&index=0&lang=scss& */ "./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["render"], + _profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/profile.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&": +/*!*************************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss& ***! + \*************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../node_modules/style-loader!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src??ref--7-3!../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=style&index=0&lang=scss& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=style&index=0&lang=scss&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/profile.vue?vue&type=template&id=275bc111&": +/*!**********************************************************************!*\ + !*** ./src/modules/users/profile.vue?vue&type=template&id=275bc111& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./profile.vue?vue&type=template&id=275bc111& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile.vue?vue&type=template&id=275bc111&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_profile_vue_vue_type_template_id_275bc111___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue": +/*!***********************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sidebar.vue?vue&type=template&id=35c091de& */ "./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&"); +/* harmony import */ var _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sidebar.vue?vue&type=script&lang=js& */ "./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["render"], + _sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/profile/sidebar.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&": +/*!******************************************************************************!*\ + !*** ./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./sidebar.vue?vue&type=template&id=35c091de& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/profile/sidebar.vue?vue&type=template&id=35c091de&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_sidebar_vue_vue_type_template_id_35c091de___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/3.8278b66d6119ccf10c85.js b/public/3.8278b66d6119ccf10c85.js new file mode 100644 index 00000000..44ea677a --- /dev/null +++ b/public/3.8278b66d6119ccf10c85.js @@ -0,0 +1,692 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[3],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn */ "./src/components/buttons/relation-btn.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Check__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Check */ "./node_modules/vue-material-design-icons/Check.vue"); +/* harmony import */ var $icons_Close__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Close */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'follow-btn', + components: { + RelationBtn: _relation_btn__WEBPACK_IMPORTED_MODULE_0__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_1__["default"], + CheckIcon: $icons_Check__WEBPACK_IMPORTED_MODULE_2__["default"], + CloseIcon: $icons_Close__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + item: { + type: Object, + required: true + }, + simple: { + type: Boolean, + default: false + } + }, + data: function data() { + return { + hovering: false + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_4__["mapGetters"])(['currentUser'])) +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + props: { + relation: { + type: String, + required: true + }, + action: { + type: String, + required: true + }, + item: { + type: Object, + required: true, + default: function _default() { + return {}; + } + } + }, + data: function data() { + return { + types: { + thread: 'App\\Thread', + user: "App\\User", + node: 'App\\Node' + }, + actions: { + like: 'has_liked', + follow: 'has_followed', + subscribe: 'has_subscribed' + } + }; + }, + methods: { + toggle: function toggle() { + var _this = this; + + // let action = !this.item[this.actions[this.action]] ? this.action : `${this.action}` + this.$http.post("relations/".concat(this.action), { + followable_type: this.types[this.relation], + followable_id: this.item.id + }).then(function () { + _this.item[_this.actions[_this.action]] = !_this.item[_this.actions[_this.action]]; + + _this.$emit('after-toggle', _this.item[_this.actions[_this.action]]); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=script&lang=js&": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-media.vue?vue&type=script&lang=js& ***! + \************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'UserMedia', + props: { + type: { + type: String, + default: 'default' + }, + user: { + type: Object + }, + nameClasses: { + type: String, + default: 'text-black-50 text-14' + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.currentUser.id && _vm.item.id != _vm.currentUser.id + ? _c( + "relation-btn", + { attrs: { relation: "user", action: "follow", item: _vm.item } }, + [ + _c("template", { slot: "on" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-rounded btn-ghost btn-icon ml-auto", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn btn-rounded btn-outline-teal-blue mx-1", + attrs: { title: "关注 TA" } + }, + [_c("plus-icon"), _vm._v("关注 TA\n ")], + 1 + ) + ]), + _vm._v(" "), + _c("template", { slot: "off" }, [ + _vm.simple + ? _c( + "button", + { + staticClass: "btn btn-icon ml-auto", + class: { + "btn-ghost": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [!_vm.hovering ? _c("check-icon") : _c("close-icon")], + 1 + ) + : _c( + "button", + { + staticClass: "btn mx-1", + class: { + "btn-teal-blue": !_vm.hovering, + "btn-danger": _vm.hovering + }, + attrs: { title: "取消关注 TA" }, + on: { + mouseenter: function($event) { + _vm.hovering = true + }, + mouseleave: function($event) { + _vm.hovering = false + } + } + }, + [ + !_vm.hovering ? _c("check-icon") : _c("close-icon"), + _vm._v( + "\n " + + _vm._s(_vm.hovering ? "取消关注" : "正在关注") + + "\n " + ) + ], + 1 + ) + ]) + ], + 2 + ) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!**************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \**************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { on: { click: _vm.toggle } }, + [!_vm.item[_vm.actions[_vm.action]] ? [_vm._t("on")] : [_vm._t("off")]], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=template&id=1788f872&": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-media.vue?vue&type=template&id=1788f872& ***! + \****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.type == "default" + ? _c( + "div", + { staticClass: "user-media d-flex" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "ml-2" }, + [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _vm._t("name", [ + _c( + "h6", + { + staticClass: "mb-0 text-16 d-inline-block", + class: _vm.nameClasses + }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ]), + _vm._v(" "), + _vm._t("name-appends") + ], + 2 + ) + ], + 1 + ), + _vm._v(" "), + _vm._t("description", [ + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _vm._v(_vm._s(_vm.user.bio)) + ]) + ]) + ], + 2 + ), + _vm._v(" "), + _vm._t("appends", null, { data: _vm.user }) + ], + 2 + ) + : _c( + "div", + { staticClass: "user-media text-center d-inline-block p-1" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.username } + }), + _vm._v(" "), + _vm._t("default") + ], + 2 + ) + ], + 1 + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue": +/*!***********************************************!*\ + !*** ./src/components/buttons/follow-btn.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony import */ var _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./follow-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"], + _follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/follow-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&": +/*!******************************************************************************!*\ + !*** ./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./follow-btn.vue?vue&type=template&id=4bfe56c4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/follow-btn.vue?vue&type=template&id=4bfe56c4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_follow_btn_vue_vue_type_template_id_4bfe56c4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue": +/*!*************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=template&id=4a803e69& */ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony import */ var _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./relation-btn.vue?vue&type=script&lang=js& */ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"], + _relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/buttons/relation-btn.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&": +/*!**************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=script&lang=js& ***! + \**************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&": +/*!********************************************************************************!*\ + !*** ./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69& ***! + \********************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./relation-btn.vue?vue&type=template&id=4a803e69& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/buttons/relation-btn.vue?vue&type=template&id=4a803e69&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_relation_btn_vue_vue_type_template_id_4a803e69___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-media.vue": +/*!***************************************!*\ + !*** ./src/components/user-media.vue ***! + \***************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-media.vue?vue&type=template&id=1788f872& */ "./src/components/user-media.vue?vue&type=template&id=1788f872&"); +/* harmony import */ var _user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-media.vue?vue&type=script&lang=js& */ "./src/components/user-media.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-media.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-media.vue?vue&type=script&lang=js&": +/*!****************************************************************!*\ + !*** ./src/components/user-media.vue?vue&type=script&lang=js& ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-media.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-media.vue?vue&type=template&id=1788f872&": +/*!**********************************************************************!*\ + !*** ./src/components/user-media.vue?vue&type=template&id=1788f872& ***! + \**********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-media.vue?vue&type=template&id=1788f872& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-media.vue?vue&type=template&id=1788f872&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_media_vue_vue_type_template_id_1788f872___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/30.5d6fd97603c0f7b9f9cd.js b/public/30.5d6fd97603c0f7b9f9cd.js new file mode 100644 index 00000000..f07b1180 --- /dev/null +++ b/public/30.5d6fd97603c0f7b9f9cd.js @@ -0,0 +1,625 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[30],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_threads_list__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/threads-list */ "./src/components/threads-list.vue"); +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-threads', + components: { + ThreadsList: $components_threads_list__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + data: function data() { + return { + threads: {} + }; + }, + methods: { + loadThreads: function loadThreads() { + var _this = this; + + var page = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; + this.$http.get("threads?user_id=".concat(this.$parent.user.id, "&page=").concat(page)).then(function (threads) { + _this.threads = threads; + }); + }, + handlePageChanged: function handlePageChanged(page) { + this.loadThreads(page); + } + }, + mounted: function mounted() { + this.loadThreads(); + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "HeartIcon", + props: { + title: { + type: String, + default: "Heart icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \**********************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "TooltipOutlineIcon", + props: { + title: { + type: String, + default: "Tooltip Outline icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon heart-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M12,21.35L10.55,20.03C5.4,15.36 2,12.27 2,8.5C2,5.41 4.42,3 7.5,3C9.24,3 10.91,3.81 12,5.08C13.09,3.81 14.76,3 16.5,3C19.58,3 22,5.41 22,8.5C22,12.27 18.6,15.36 13.45,20.03L12,21.35Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \********************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon tooltip-outline-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M4,2H20C21.1,2 22,2.9 22,4V16C22,17.1 21.1,18 20,18H16L12,22L8,18H4C2.9,18 2,17.1 2,16V4C2,2.9 2.9,2 4,2M4,4V16H8.83L12,19.17L15.17,16H20V4H4Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("threads-list", { + attrs: { threads: _vm.threads }, + on: { "page-changed": _vm.handlePageChanged } + }) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony import */ var _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"], + _Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Heart.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Heart.vue?vue&type=template&id=6577aeca& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Heart.vue?vue&type=template&id=6577aeca&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Heart_vue_vue_type_template_id_6577aeca___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue ***! + \*******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony import */ var _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"], + _TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TooltipOutline.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js& ***! + \********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&": +/*!**************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a& ***! + \**************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./TooltipOutline.vue?vue&type=template&id=fff4072a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/TooltipOutline.vue?vue&type=template&id=fff4072a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_TooltipOutline_vue_vue_type_template_id_fff4072a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue": +/*!********************************************!*\ + !*** ./src/modules/users/tabs/threads.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./threads.vue?vue&type=template&id=05a67d60& */ "./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&"); +/* harmony import */ var _threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./threads.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["render"], + _threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/threads.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/modules/users/tabs/threads.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./threads.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&": +/*!***************************************************************************!*\ + !*** ./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./threads.vue?vue&type=template&id=05a67d60& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/threads.vue?vue&type=template&id=05a67d60&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_threads_vue_vue_type_template_id_05a67d60___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/31.8b52d6035df314a177ad.js b/public/31.8b52d6035df314a177ad.js new file mode 100644 index 00000000..33ef361c --- /dev/null +++ b/public/31.8b52d6035df314a177ad.js @@ -0,0 +1,917 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[31],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/TooltipOutline */ "./node_modules/vue-material-design-icons/TooltipOutline.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'empty-state', + components: { + EmptyIcon: $icons_TooltipOutline__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: null + }, + message: { + type: String, + default: '空空如也~~~' + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=script&lang=js&": +/*!***********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-card.vue?vue&type=script&lang=js& ***! + \***********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_media__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-media */ "./src/components/user-media.vue"); +/* harmony import */ var $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $components/buttons/follow-btn */ "./src/components/buttons/follow-btn.vue"); +/* harmony import */ var $icons_MapMarker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/MapMarker */ "./node_modules/vue-material-design-icons/MapMarker.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'UserCard', + props: { + user: { + type: Object, + required: true + } + }, + components: { + UserMedia: $components_user_media__WEBPACK_IMPORTED_MODULE_0__["default"], + FollowBtn: $components_buttons_follow_btn__WEBPACK_IMPORTED_MODULE_1__["default"], + MapMarkerIcon: $icons_MapMarker__WEBPACK_IMPORTED_MODULE_2__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_3__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&": +/*!********************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js& ***! + \********************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $components_user_card__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $components/user-card */ "./src/components/user-card.vue"); +/* harmony import */ var $icons_ArrowDown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/ArrowDown */ "./node_modules/vue-material-design-icons/ArrowDown.vue"); +/* harmony import */ var $icons_SourceCommitEnd__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/SourceCommitEnd */ "./node_modules/vue-material-design-icons/SourceCommitEnd.vue"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-activities', + data: function data() { + return { + activities: { + data: [], + meta: { + current_page: 0, + last_page: 0 + } + } + }; + }, + components: { + UserCard: $components_user_card__WEBPACK_IMPORTED_MODULE_0__["default"], + ArrowDownIcon: $icons_ArrowDown__WEBPACK_IMPORTED_MODULE_1__["default"], + SourceCommitEnd: $icons_SourceCommitEnd__WEBPACK_IMPORTED_MODULE_2__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + beforeRouteUpdate: function beforeRouteUpdate(to, from, next) { + if (to.params.username != from.params.username) { + this.activities = { + data: [], + meta: { + current_page: 0, + last_page: 0 + } + }; + this.loadActivities(to.params.username); + } + + next(); + }, + methods: { + subjectLink: function subjectLink(activity) { + switch (activity.subject_type) { + case 'App\\Thread': + if (activity.log_name == 'commented.thread') { + return { + name: 'threads.show', + params: { + id: activity.subject.id + }, + hash: '#comment-' + activity.properties.comment_id || false + }; + } + + return { + name: 'threads.show', + params: { + id: activity.subject.id + } + }; + + case 'App\\Comment': + return { + name: 'threads.show', + params: { + id: activity.subject.id + } + }; + + case "App\\User": + return { + name: 'users.show', + params: { + id: activity.subject.username + } + }; + } + + return {}; + }, + loadActivities: function loadActivities(username) { + var _this = this; + + var page = this.activities.meta.current_page + 1; + this.$http.get("user/".concat(username, "/activities?per_page=10&page=").concat(page)).then(function (activities) { + _this.activities.data = _this.activities.data.concat(activities.data); + _this.activities.meta = activities.meta; + }); + } + }, + mounted: function mounted() { + this.loadActivities(this.$parent.user.username); + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!*****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \*****************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-50" }, [ + _c("div", { staticClass: "container" }, [ + _c( + "h1", + { staticClass: "display-4" }, + [_vm._t("icon", [_c("empty-icon")])], + 2 + ), + _vm._v(" "), + _c("h2", [_vm._t("title", [_vm._v(_vm._s(_vm.title))])], 2), + _vm._v(" "), + _c( + "p", + { staticClass: "lead" }, + [_vm._t("message", [_vm._v(_vm._s(_vm.message))])], + 2 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=template&id=9c78321c&": +/*!***************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/user-card.vue?vue&type=template&id=9c78321c& ***! + \***************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _vm.user + ? _c("div", { staticClass: "user-card box" }, [ + _c( + "div", + { staticClass: "d-flex flex-md-row flex-column" }, + [ + _c( + "div", + { staticClass: "d-flex align-items-center" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { src: _vm.user.avatar, alt: _vm.user.name } + }) + ] + ), + _vm._v(" "), + _c( + "div", + { staticClass: "ml-2" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { username: _vm.user.username } + } + } + }, + [ + _c( + "h6", + { staticClass: "mb-0 text-16 d-inline-block" }, + [_vm._v(_vm._s(_vm.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "router-link", + { + staticClass: "text-12 ml-1 text-muted", + attrs: { + to: { + name: "users.show", + params: { id: _vm.user.username } + } + } + }, + [_vm._v("@" + _vm._s(_vm.user.username))] + ) + ], + 1 + ) + ], + 1 + ), + _vm._v(" "), + _c("follow-btn", { + staticClass: "ml-md-auto mt-1 mtsm-0", + attrs: { item: _vm.user } + }) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-gray-70" }, [ + _c("div", { staticClass: "py-2" }, [_vm._v(_vm._s(_vm.user.bio))]), + _vm._v(" "), + _c("div", [_c("map-marker-icon"), _vm._v("Beijing, China\n ")], 1) + ]) + ]) + : _vm._e() +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&": +/*!************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4& ***! + \************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "user-activities" }, [ + _vm.activities.data.length <= 0 + ? _c("div", [_c("empty-state")], 1) + : _c( + "ul", + { staticClass: "timeline pb-2" }, + [ + _vm._l(_vm.activities.data, function(activity) { + return activity.subject + ? _c("li", { key: activity.id, staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c( + "div", + { staticClass: "d-flex" }, + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.$parent.user.username + } + } + } + }, + [ + _c("img", { + staticClass: "avatar-40", + attrs: { + src: _vm.$parent.user.avatar, + alt: _vm.$parent.user.name + } + }) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "ml-2" }, [ + _c( + "div", + [ + _c( + "router-link", + { + attrs: { + to: { + name: "users.show", + params: { + username: _vm.$parent.user.username + } + } + } + }, + [ + _c( + "h6", + { + staticClass: + "mb-0 text-16 d-inline-block" + }, + [_vm._v(_vm._s(_vm.$parent.user.name))] + ) + ] + ), + _vm._v(" "), + _c( + "span", + { staticClass: "text-gray-60 ml-1" }, + [ + activity.log_name == "commented.thread" + ? [ + _vm._v("\n 评论了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "published.thread" + ? [ + _vm._v("\n 发布了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "like.thread" + ? [ + _vm._v("\n 赞了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + "《" + + _vm._s( + activity.subject.title + ) + + "》" + ) + ] + ) + ] + : activity.log_name == "follow.user" + ? [ + _vm._v("\n 关注了 "), + _c( + "router-link", + { + attrs: { + to: _vm.subjectLink(activity) + } + }, + [ + _vm._v( + _vm._s( + activity.subject.username + ) + ) + ] + ) + ] + : _vm._e() + ], + 2 + ) + ], + 1 + ), + _vm._v(" "), + _c("div", { staticClass: "text-12 text-gray-70" }, [ + _c("small", { staticClass: "text-muted" }, [ + _vm._v(_vm._s(activity.created_at_timeago)) + ]) + ]) + ]) + ], + 1 + ) + ]), + _vm._v(" "), + _c( + "div", + { staticClass: "timeline-body" }, + [ + activity.log_name == "follow.user" + ? _c("user-card", { + attrs: { user: activity.subject } + }) + : _c( + "div", + { staticClass: "box cursor-pointer" }, + [ + _c( + "router-link", + { + staticClass: "text-muted", + attrs: { to: _vm.subjectLink(activity) } + }, + [ + _vm._v( + _vm._s( + activity.properties["content"] || "无" + ) + ) + ] + ) + ], + 1 + ) + ], + 1 + ) + ]) + : _vm._e() + }), + _vm._v(" "), + _vm.activities.meta.current_page < _vm.activities.meta.last_page + ? _c("li", { staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c("div", { staticClass: "d-flex" }, [ + _c( + "button", + { + staticClass: "btn btn-secondary btn-icon text-20", + on: { + click: function($event) { + return _vm.loadActivities( + _vm.$parent.user.username + ) + } + } + }, + [_c("arrow-down-icon")], + 1 + ) + ]) + ]) + ]) + : _vm._e(), + _vm._v(" "), + _vm.activities.meta.current_page == _vm.activities.meta.last_page + ? _c("li", { staticClass: "timeline-item" }, [ + _c("div", { staticClass: "timeline-heading" }, [ + _c("div", { staticClass: "d-flex" }, [ + _c( + "button", + { + staticClass: "btn btn-secondary btn-icon text-20", + attrs: { disabled: "" } + }, + [_c("source-commit-end")], + 1 + ) + ]) + ]) + ]) + : _vm._e() + ], + 2 + ) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/empty-state.vue": +/*!****************************************!*\ + !*** ./src/components/empty-state.vue ***! + \****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./empty-state.vue?vue&type=template&id=772b85b1& */ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony import */ var _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./empty-state.vue?vue&type=script&lang=js& */ "./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"], + _empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/empty-state.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=script&lang=js&": +/*!*****************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=script&lang=js& ***! + \*****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/empty-state.vue?vue&type=template&id=772b85b1&": +/*!***********************************************************************!*\ + !*** ./src/components/empty-state.vue?vue&type=template&id=772b85b1& ***! + \***********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./empty-state.vue?vue&type=template&id=772b85b1& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/empty-state.vue?vue&type=template&id=772b85b1&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_empty_state_vue_vue_type_template_id_772b85b1___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/components/user-card.vue": +/*!**************************************!*\ + !*** ./src/components/user-card.vue ***! + \**************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./user-card.vue?vue&type=template&id=9c78321c& */ "./src/components/user-card.vue?vue&type=template&id=9c78321c&"); +/* harmony import */ var _user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./user-card.vue?vue&type=script&lang=js& */ "./src/components/user-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["render"], + _user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/user-card.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/user-card.vue?vue&type=script&lang=js&": +/*!***************************************************************!*\ + !*** ./src/components/user-card.vue?vue&type=script&lang=js& ***! + \***************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./user-card.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/user-card.vue?vue&type=template&id=9c78321c&": +/*!*********************************************************************!*\ + !*** ./src/components/user-card.vue?vue&type=template&id=9c78321c& ***! + \*********************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./user-card.vue?vue&type=template&id=9c78321c& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/user-card.vue?vue&type=template&id=9c78321c&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_user_card_vue_vue_type_template_id_9c78321c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue": +/*!***********************************************!*\ + !*** ./src/modules/users/tabs/activities.vue ***! + \***********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./activities.vue?vue&type=template&id=28bef7f4& */ "./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&"); +/* harmony import */ var _activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./activities.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["render"], + _activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/activities.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&": +/*!************************************************************************!*\ + !*** ./src/modules/users/tabs/activities.vue?vue&type=script&lang=js& ***! + \************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./activities.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&": +/*!******************************************************************************!*\ + !*** ./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4& ***! + \******************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./activities.vue?vue&type=template&id=28bef7f4& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/activities.vue?vue&type=template&id=28bef7f4&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_activities_vue_vue_type_template_id_28bef7f4___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/32.bbf23d1419157ca40683.js b/public/32.bbf23d1419157ca40683.js new file mode 100644 index 00000000..2ad228b2 --- /dev/null +++ b/public/32.bbf23d1419157ca40683.js @@ -0,0 +1,471 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[32],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-list-item */ "./src/components/user-list-item.vue"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $icons_Email__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Email */ "./node_modules/vue-material-design-icons/Email.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var $icons_Minus__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! $icons/Minus */ "./node_modules/vue-material-design-icons/Minus.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-followings', + components: { + UserListItem: $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_4__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_6__["default"], + EmailIcon: $icons_Email__WEBPACK_IMPORTED_MODULE_5__["default"], + MinusIcon: $icons_Minus__WEBPACK_IMPORTED_MODULE_7__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + created: function created() { + this.followings(); + }, + methods: { + followings: function () { + var _followings = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.$http.get("user/".concat(this.$parent.user.username, "/followings")); + + case 2: + this.users = _context.sent; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function followings() { + return _followings.apply(this, arguments); + } + + return followings; + }() + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".form-control[data-v-83e6c6f0]:focus {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js& ***! + \*************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "MinusIcon", + props: { + title: { + type: String, + default: "Minus icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon minus-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c("path", { attrs: { d: "M19,13H5V11H19V13Z" } }, [ + _c("title", [_vm._v(_vm._s(_vm.title))]) + ]) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush" }, [ + _c( + "div", + { staticClass: "list-group list-group-flush" }, + [ + _vm._l(_vm.users.data, function(user) { + return _c("user-list-item", { + key: user.id, + staticClass: "list-group-item", + attrs: { user: user } + }) + }), + _vm._v(" "), + _vm.users.data && _vm.users.data.length == 0 + ? _c("empty-state") + : _vm._e(), + _vm._v(" "), + _c("paginator", { attrs: { meta: _vm.users.meta } }) + ], + 2 + ), + _vm._v(" "), + false + ? undefined + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue ***! + \**********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Minus.vue?vue&type=template&id=c1d7fc18& */ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&"); +/* harmony import */ var _Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Minus.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["render"], + _Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Minus.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js& ***! + \***********************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./Minus.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./Minus.vue?vue&type=template&id=c1d7fc18& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/Minus.vue?vue&type=template&id=c1d7fc18&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_Minus_vue_vue_type_template_id_c1d7fc18___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue": +/*!**********************************************!*\ + !*** ./src/modules/users/tabs/following.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./following.vue?vue&type=template&id=83e6c6f0&scoped=true& */ "./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&"); +/* harmony import */ var _following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./following.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/following.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "83e6c6f0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/following.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&": +/*!********************************************************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=style&index=0&id=83e6c6f0&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_style_index_0_id_83e6c6f0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./following.vue?vue&type=template&id=83e6c6f0&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/following.vue?vue&type=template&id=83e6c6f0&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_following_vue_vue_type_template_id_83e6c6f0_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/33.9520bc675d0bb780c44c.js b/public/33.9520bc675d0bb780c44c.js new file mode 100644 index 00000000..93180863 --- /dev/null +++ b/public/33.9520bc675d0bb780c44c.js @@ -0,0 +1,426 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[33],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=script&lang=js&": +/*!**************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/pages/not-found.vue?vue&type=script&lang=js& ***! + \**************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_AlertCircle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/AlertCircle */ "./node_modules/vue-material-design-icons/AlertCircle.vue"); +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'not-found', + components: { + AlertCircleIcon: $icons_AlertCircle__WEBPACK_IMPORTED_MODULE_0__["default"] + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: "AlertCircleIcon", + props: { + title: { + type: String, + default: "Alert Circle icon" + }, + decorative: { + type: Boolean, + default: false + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&": +/*!*****************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0& ***! + \*****************************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "span", + { + staticClass: "material-design-icon alert-circle-icon", + attrs: { + "aria-hidden": _vm.decorative, + "aria-label": _vm.title, + role: "img" + }, + on: { + click: function($event) { + return _vm.$emit("click", $event) + } + } + }, + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24" + } + }, + [ + _c( + "path", + { + attrs: { + d: + "M13,13H11V7H13M13,17H11V15H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z" + } + }, + [_c("title", [_vm._v(_vm._s(_vm.title))])] + ) + ] + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&": +/*!******************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8& ***! + \******************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "text-center p-5 text-gray-40" }, [ + _c("div", { staticClass: "display-1" }, [_c("alert-circle-icon")], 1), + _vm._v(" "), + _c("div", { staticClass: "display-2" }, [_vm._v("404")]), + _vm._v(" "), + _c("div", { staticClass: "display-4" }, [_vm._v("页面未找到~")]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue ***! + \****************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AlertCircle.vue?vue&type=template&id=7b52a7d0& */ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&"); +/* harmony import */ var _AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AlertCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["render"], + _AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AlertCircle.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib??vue-loader-options!./AlertCircle.vue?vue&type=script&lang=js& */ "./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&": +/*!***********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0& ***! + \***********************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib??vue-loader-options!./AlertCircle.vue?vue&type=template&id=7b52a7d0& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _vue_loader_lib_loaders_templateLoader_js_vue_loader_options_vue_loader_lib_index_js_vue_loader_options_AlertCircle_vue_vue_type_template_id_7b52a7d0___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue": +/*!*****************************************!*\ + !*** ./src/modules/pages/not-found.vue ***! + \*****************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./not-found.vue?vue&type=template&id=49cb9ea8& */ "./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&"); +/* harmony import */ var _not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./not-found.vue?vue&type=script&lang=js& */ "./src/modules/pages/not-found.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["render"], + _not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/pages/not-found.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue?vue&type=script&lang=js&": +/*!******************************************************************!*\ + !*** ./src/modules/pages/not-found.vue?vue&type=script&lang=js& ***! + \******************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./not-found.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&": +/*!************************************************************************!*\ + !*** ./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8& ***! + \************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./not-found.vue?vue&type=template&id=49cb9ea8& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/pages/not-found.vue?vue&type=template&id=49cb9ea8&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_not_found_vue_vue_type_template_id_49cb9ea8___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/34.c36a6175297d0182cf45.js b/public/34.c36a6175297d0182cf45.js new file mode 100644 index 00000000..28808754 --- /dev/null +++ b/public/34.c36a6175297d0182cf45.js @@ -0,0 +1,572 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[34],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=script&lang=js&": +/*!*****************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/socialite-login.vue?vue&type=script&lang=js& ***! + \*****************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var $icons_GooglePlus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! $icons/GooglePlus */ "./node_modules/vue-material-design-icons/GooglePlus.vue"); +/* harmony import */ var $icons_Facebook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! $icons/Facebook */ "./node_modules/vue-material-design-icons/Facebook.vue"); +/* harmony import */ var $icons_Qqchat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $icons/Qqchat */ "./node_modules/vue-material-design-icons/Qqchat.vue"); +/* harmony import */ var $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $icons/GithubCircle */ "./node_modules/vue-material-design-icons/GithubCircle.vue"); +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'oauth-btn', + components: { + GooglePlus: $icons_GooglePlus__WEBPACK_IMPORTED_MODULE_0__["default"], + FacebookIcon: $icons_Facebook__WEBPACK_IMPORTED_MODULE_1__["default"], + QqIcon: $icons_Qqchat__WEBPACK_IMPORTED_MODULE_2__["default"], + GithubIcon: $icons_GithubCircle__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + methods: { + oauth: function oauth(platform) { + var iOSChrome = /Mobile/.test(navigator.userAgent) && /CriOS/.test(navigator.userAgent); + var url = '/auth/oauth-redirect/' + platform; + + if (iOSChrome) { + window.location.href = url; + } else { + var windowObjectReference = null; + + if (windowObjectReference == null || windowObjectReference.closed) { + var heights = { + github: 680, + google: 540, + facebook: 700 + }; + windowObjectReference = this.popupCenter(url, '_blank', 500, heights[platform]); + } else { + windowObjectReference.focus(); + } + } + }, + popupCenter: function popupCenter(url, title, w, h) { + // Fixes dual-screen position Most browsers Firefox + var dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX; + var dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY; + var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width; + var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height; + var left = width / 2 - w / 2 + dualScreenLeft; + var top = height / 2 - h / 2 + dualScreenTop; + var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); // Puts focus on the newWindow + + if (window.focus) { + newWindow.focus(); + } + + return newWindow; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/login.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_socialite_login__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/socialite-login */ "./src/components/socialite-login.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + username: '', + password: '' + }; + }, + components: { + SocialiteBtns: $components_socialite_login__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapActions"])(['attemptLogin']), { + submit: function () { + var _submit = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + var username, password; + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + username = this.username, password = this.password; + _context.prev = 1; + _context.next = 4; + return this.attemptLogin({ + username: username, + password: password + }); + + case 4: + this.$message.success('欢迎回来~'); + this.$router.push({ + name: 'home' + }); + _context.next = 11; + break; + + case 8: + _context.prev = 8; + _context.t0 = _context["catch"](1); + + if (_context.t0.status !== 422) { + this.$message.error('账号密码错误!'); + } + + case 11: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[1, 8]]); + })); + + function submit() { + return _submit.apply(this, arguments); + } + + return submit; + }() + }) +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&": +/*!*********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e& ***! + \*********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "div", + { + staticClass: + "oauth-btns d-flex align-items-center justify-content-between" + }, + [ + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-dark", + on: { + click: function($event) { + return _vm.oauth("github") + } + } + }, + [_c("github-icon")], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-pink", + on: { + click: function($event) { + return _vm.oauth("google") + } + } + }, + [_c("google-plus")], + 1 + ), + _vm._v(" "), + _c( + "div", + { + staticClass: "text-20 btn mx-1 btn-icon btn-facebook", + on: { + click: function($event) { + return _vm.oauth("facebook") + } + } + }, + [_c("facebook-icon")], + 1 + ) + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2" }, [ + _vm._v("用户登录") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group" }, [ + _vm._m(0), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.username, + expression: "username" + } + ], + staticClass: "form-control", + attrs: { type: "text", required: "" }, + domProps: { value: _vm.username }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.username = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group" }, [ + _c("label", [_vm._v("密码")]), + _vm._v(" "), + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password, + expression: "password" + } + ], + staticClass: "form-control", + attrs: { type: "password", required: "" }, + domProps: { value: _vm.password }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100", + attrs: { type: "submit" } + }, + [_vm._v("登录")] + ) + ] + ), + _vm._v(" "), + _c("div", { staticClass: "mb-2 d-flex justify-content-around" }) + ]) + ]), + _vm._v(" "), + _c( + "div", + { + staticClass: + "offset-sm-4 col-sm-4 text-center mt-2 d-flex justify-content-between" + }, + [ + _c( + "p", + [ + _vm._v("没有账号? "), + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.register" } } + }, + [_vm._v("快速注册")] + ) + ], + 1 + ), + _vm._v(" "), + _c( + "p", + [ + _c( + "router-link", + { + staticClass: "text-blue", + attrs: { to: { name: "auth.forget-password" } } + }, + [_vm._v("忘记密码?")] + ) + ], + 1 + ) + ] + ) + ]) +} +var staticRenderFns = [ + function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("label", [_vm._v("用户名"), _c("small", [_vm._v("(或邮箱)")])]) + } +] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/components/socialite-login.vue": +/*!********************************************!*\ + !*** ./src/components/socialite-login.vue ***! + \********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./socialite-login.vue?vue&type=template&id=201c8d6e& */ "./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&"); +/* harmony import */ var _socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./socialite-login.vue?vue&type=script&lang=js& */ "./src/components/socialite-login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["render"], + _socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/components/socialite-login.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/components/socialite-login.vue?vue&type=script&lang=js&": +/*!*********************************************************************!*\ + !*** ./src/components/socialite-login.vue?vue&type=script&lang=js& ***! + \*********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/babel-loader/lib??ref--4-0!../../node_modules/vue-loader/lib??vue-loader-options!./socialite-login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&": +/*!***************************************************************************!*\ + !*** ./src/components/socialite-login.vue?vue&type=template&id=201c8d6e& ***! + \***************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib??vue-loader-options!./socialite-login.vue?vue&type=template&id=201c8d6e& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/components/socialite-login.vue?vue&type=template&id=201c8d6e&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_socialite_login_vue_vue_type_template_id_201c8d6e___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }), + +/***/ "./src/modules/auth/login.vue": +/*!************************************!*\ + !*** ./src/modules/auth/login.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./login.vue?vue&type=template&id=f60e4b3a& */ "./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&"); +/* harmony import */ var _login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./login.vue?vue&type=script&lang=js& */ "./src/modules/auth/login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["render"], + _login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/login.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/login.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/auth/login.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./login.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&": +/*!*******************************************************************!*\ + !*** ./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./login.vue?vue&type=template&id=f60e4b3a& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/login.vue?vue&type=template&id=f60e4b3a&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_login_vue_vue_type_template_id_f60e4b3a___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/35.483e497d4563c1a5d184.js b/public/35.483e497d4563c1a5d184.js new file mode 100644 index 00000000..9259bb54 --- /dev/null +++ b/public/35.483e497d4563c1a5d184.js @@ -0,0 +1,145 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[35],{ + +/***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/typeface-ubuntu-mono/index.css": +/*!*************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??ref--6-2!./node_modules/postcss-loader/src??ref--6-3!./node_modules/typeface-ubuntu-mono/index.css ***! + \*************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Imports +var getUrl = __webpack_require__(/*! ../css-loader/dist/runtime/getUrl.js */ "./node_modules/css-loader/dist/runtime/getUrl.js"); +var ___CSS_LOADER_URL___0___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2")); +var ___CSS_LOADER_URL___1___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff")); +var ___CSS_LOADER_URL___2___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400italic.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2")); +var ___CSS_LOADER_URL___3___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-400italic.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff")); +var ___CSS_LOADER_URL___4___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2")); +var ___CSS_LOADER_URL___5___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff")); +var ___CSS_LOADER_URL___6___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700italic.woff2 */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2")); +var ___CSS_LOADER_URL___7___ = getUrl(__webpack_require__(/*! ./files/ubuntu-mono-latin-700italic.woff */ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff")); +// Module +exports.push([module.i, "/* ubuntu-mono-400normal - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 400;\n src:\n local('Ubuntu Mono Regular '),\n local('Ubuntu Mono-Regular'),\n url(" + ___CSS_LOADER_URL___0___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___1___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-400italic - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: italic;\n font-display: swap;\n font-weight: 400;\n src:\n local('Ubuntu Mono Regular italic'),\n local('Ubuntu Mono-Regularitalic'),\n url(" + ___CSS_LOADER_URL___2___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___3___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-700normal - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: normal;\n font-display: swap;\n font-weight: 700;\n src:\n local('Ubuntu Mono Bold '),\n local('Ubuntu Mono-Bold'),\n url(" + ___CSS_LOADER_URL___4___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___5___ + ") format('woff'); /* Modern Browsers */\n}\n\n/* ubuntu-mono-700italic - latin */\n@font-face {\n font-family: 'Ubuntu Mono';\n font-style: italic;\n font-display: swap;\n font-weight: 700;\n src:\n local('Ubuntu Mono Bold italic'),\n local('Ubuntu Mono-Bolditalic'),\n url(" + ___CSS_LOADER_URL___6___ + ") format('woff2'), \n url(" + ___CSS_LOADER_URL___7___ + ") format('woff'); /* Modern Browsers */\n}\n\n", ""]); + + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff": +/*!****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff?84924f07cdf2bc11727cbdb92bdecb60"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2": +/*!*****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2 ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400.woff2?469ee47867fa81c9eb1677cb6df36493"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff": +/*!**********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff?cb47101ae05a75cababcf320c3f18521"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2": +/*!***********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2 ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-400italic.woff2?b058de1ff02721b7c227749a6842c386"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff": +/*!****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff ***! + \****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff?ad755437adc718d060c2ebe9e76b47f6"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2": +/*!*****************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2 ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700.woff2?5fb8b6fc36c4131b485e76b5834c02f7"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff": +/*!**********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff ***! + \**********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff?449ed936ed1e019ed9115637e3d8549c"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2": +/*!***********************************************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2 ***! + \***********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "/fonts/vendor/typeface-ubuntu-mono/files/ubuntu-mono-latin-700italic.woff2?5c6270425bb30b6ba25abbb42c628221"; + +/***/ }), + +/***/ "./node_modules/typeface-ubuntu-mono/index.css": +/*!*****************************************************!*\ + !*** ./node_modules/typeface-ubuntu-mono/index.css ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../css-loader/dist/cjs.js??ref--6-2!../postcss-loader/src??ref--6-3!./index.css */ "./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/typeface-ubuntu-mono/index.css"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/36.a16ce06c2846dd84f6b3.js b/public/36.a16ce06c2846dd84f6b3.js new file mode 100644 index 00000000..f0782e0b --- /dev/null +++ b/public/36.a16ce06c2846dd84f6b3.js @@ -0,0 +1,288 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[36],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); +/* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +/* harmony import */ var $components_empty_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! $components/empty-state */ "./src/components/empty-state.vue"); +/* harmony import */ var $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! $components/user-list-item */ "./src/components/user-list-item.vue"); +/* harmony import */ var $components_paginator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! $components/paginator */ "./src/components/paginator.vue"); +/* harmony import */ var $icons_Email__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! $icons/Email */ "./node_modules/vue-material-design-icons/Email.vue"); +/* harmony import */ var $icons_Plus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! $icons/Plus */ "./node_modules/vue-material-design-icons/Plus.vue"); + + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + + + + + + +/* harmony default export */ __webpack_exports__["default"] = ({ + name: 'user-followers', + components: { + UserListItem: $components_user_list_item__WEBPACK_IMPORTED_MODULE_3__["default"], + EmptyState: $components_empty_state__WEBPACK_IMPORTED_MODULE_2__["default"], + Paginator: $components_paginator__WEBPACK_IMPORTED_MODULE_4__["default"], + PlusIcon: $icons_Plus__WEBPACK_IMPORTED_MODULE_6__["default"], + EmailIcon: $icons_Email__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + data: function data() { + return { + users: [] + }; + }, + created: function created() { + this.followers(); + }, + computed: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_1__["mapGetters"])(['currentUser'])), + methods: { + followers: function () { + var _followers = _asyncToGenerator( + /*#__PURE__*/ + _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee() { + return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.$http.get("user/".concat(this.$parent.user.username, "/followers")); + + case 2: + this.users = _context.sent; + + case 3: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function followers() { + return _followers.apply(this, arguments); + } + + return followers; + }() + } +}); + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js")(false); +// Module +exports.push([module.i, ".form-control[data-v-1c1fa7e8]:focus {\n border: none;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n", ""]); + + +/***/ }), + +/***/ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--7-3!./node_modules/sass-loader/lib/loader.js??ref--7-4!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + + +var content = __webpack_require__(/*! !../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); + +if(typeof content === 'string') content = [[module.i, content, '']]; + +var transform; +var insertInto; + + + +var options = {"hmr":true} + +options.transform = transform +options.insertInto = undefined; + +var update = __webpack_require__(/*! ../../../../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options); + +if(content.locals) module.exports = content.locals; + +if(false) {} + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&": +/*!***********************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& ***! + \***********************************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "box box-flush" }, [ + _c( + "div", + { staticClass: "list-group list-group-flush" }, + [ + _vm._l(_vm.users.data, function(user) { + return _c("user-list-item", { + key: user.id, + staticClass: "list-group-item", + attrs: { user: user } + }) + }), + _vm._v(" "), + _vm.users.data && _vm.users.data.length == 0 + ? _c("empty-state") + : _vm._e(), + _vm._v(" "), + _c("paginator", { attrs: { meta: _vm.users.meta } }) + ], + 2 + ), + _vm._v(" "), + false + ? undefined + : _vm._e() + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue": +/*!**********************************************!*\ + !*** ./src/modules/users/tabs/followers.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& */ "./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&"); +/* harmony import */ var _followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./followers.vue?vue&type=script&lang=js& */ "./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"], + _followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + "1c1fa7e8", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/users/tabs/followers.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&": +/*!********************************************************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& ***! + \********************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js??ref--7-0!../../../../node_modules/style-loader!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src??ref--7-3!../../../../node_modules/sass-loader/lib/loader.js??ref--7-4!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true& */ "./node_modules/laravel-mix/node_modules/extract-text-webpack-plugin/dist/loader.js?!./node_modules/style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/lib/loader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=style&index=0&id=1c1fa7e8&lang=scss&scoped=true&"); +/* harmony import */ var _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__); +/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__)); + /* harmony default export */ __webpack_exports__["default"] = (_node_modules_laravel_mix_node_modules_extract_text_webpack_plugin_dist_loader_js_ref_7_0_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_3_node_modules_sass_loader_lib_loader_js_ref_7_4_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_style_index_0_id_1c1fa7e8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); + +/***/ }), + +/***/ "./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&": +/*!*****************************************************************************************!*\ + !*** ./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& ***! + \*****************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../node_modules/vue-loader/lib??vue-loader-options!./followers.vue?vue&type=template&id=1c1fa7e8&scoped=true& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/users/tabs/followers.vue?vue&type=template&id=1c1fa7e8&scoped=true&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_followers_vue_vue_type_template_id_1c1fa7e8_scoped_true___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/37.71b575d6ef77dea8533c.js b/public/37.71b575d6ef77dea8533c.js new file mode 100644 index 00000000..ff0520b0 --- /dev/null +++ b/public/37.71b575d6ef77dea8533c.js @@ -0,0 +1,303 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[37],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=script&lang=js&": +/*!*******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/forget-password.vue?vue&type=script&lang=js& ***! + \*******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + email: '' + }; + }, + methods: { + submit: function submit() { + var _this = this; + + this.$http.post('user/forget-password', { + email: this.email + }).then(function () { + _this.$message.success('邮件发送成功,请及时查看您的邮箱!'); + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&": +/*!***********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5& ***! + \***********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2 pb-2" }, [ + _vm._v("忘记密码") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.email, + expression: "email" + } + ], + staticClass: "form-control", + attrs: { type: "text", placeholder: "请输入邮箱地址" }, + domProps: { value: _vm.email }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.email = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100 btn-sm", + attrs: { type: "submit" } + }, + [_vm._v("发送邮件")] + ) + ] + ) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue": +/*!**********************************************!*\ + !*** ./src/modules/auth/forget-password.vue ***! + \**********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./forget-password.vue?vue&type=template&id=5bae15f5& */ "./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&"); +/* harmony import */ var _forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./forget-password.vue?vue&type=script&lang=js& */ "./src/modules/auth/forget-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["render"], + _forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/forget-password.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue?vue&type=script&lang=js&": +/*!***********************************************************************!*\ + !*** ./src/modules/auth/forget-password.vue?vue&type=script&lang=js& ***! + \***********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./forget-password.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&": +/*!*****************************************************************************!*\ + !*** ./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5& ***! + \*****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./forget-password.vue?vue&type=template&id=5bae15f5& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/forget-password.vue?vue&type=template&id=5bae15f5&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_forget_password_vue_vue_type_template_id_5bae15f5___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/38.860cbe75296d6bf490b9.js b/public/38.860cbe75296d6bf490b9.js new file mode 100644 index 00000000..7368d00d --- /dev/null +++ b/public/38.860cbe75296d6bf490b9.js @@ -0,0 +1,343 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[38],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=script&lang=js&": +/*!******************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/reset-password.vue?vue&type=script&lang=js& ***! + \******************************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vuex */ "./node_modules/vuex/dist/vuex.esm.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + password: '', + password_confirmation: '' + }; + }, + methods: _objectSpread({}, Object(vuex__WEBPACK_IMPORTED_MODULE_0__["mapActions"])(['logout']), { + submit: function submit() { + this.$http.post('user/reset-password', { + token: this.$route.query.token, + email: this.$route.query.email, + password: this.password, + password_confirmation: this.password_confirmation + }); + this.logout(); + this.$router.push({ + name: 'auth.login' + }); + this.$message.success('成功修改密码,请重新登录!'); + } + }) +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&": +/*!**********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62& ***! + \**********************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "row pt-3" }, [ + _c("div", { staticClass: "offset-sm-4 col-sm-4" }, [ + _c("div", { staticClass: "box" }, [ + _c("h4", { staticClass: "text-center font-weight-normal mt-2 pb-2" }, [ + _vm._v("重置密码") + ]), + _vm._v(" "), + _c( + "form", + { + on: { + submit: function($event) { + $event.preventDefault() + return _vm.submit($event) + } + } + }, + [ + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password, + expression: "password" + } + ], + staticClass: "form-control", + attrs: { type: "password", placeholder: "请输入密码" }, + domProps: { value: _vm.password }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c("div", { staticClass: "form-group input-group" }, [ + _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.password_confirmation, + expression: "password_confirmation" + } + ], + staticClass: "form-control", + attrs: { type: "password", placeholder: "请输入确认密码" }, + domProps: { value: _vm.password_confirmation }, + on: { + input: function($event) { + if ($event.target.composing) { + return + } + _vm.password_confirmation = $event.target.value + } + } + }) + ]), + _vm._v(" "), + _c( + "button", + { + staticClass: "my-2 btn btn-primary w-100 btn-sm", + attrs: { type: "submit" } + }, + [_vm._v("修改密码")] + ) + ] + ) + ]) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue": +/*!*********************************************!*\ + !*** ./src/modules/auth/reset-password.vue ***! + \*********************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./reset-password.vue?vue&type=template&id=8c035e62& */ "./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&"); +/* harmony import */ var _reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./reset-password.vue?vue&type=script&lang=js& */ "./src/modules/auth/reset-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["render"], + _reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/auth/reset-password.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue?vue&type=script&lang=js&": +/*!**********************************************************************!*\ + !*** ./src/modules/auth/reset-password.vue?vue&type=script&lang=js& ***! + \**********************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./reset-password.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&": +/*!****************************************************************************!*\ + !*** ./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62& ***! + \****************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./reset-password.vue?vue&type=template&id=8c035e62& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/auth/reset-password.vue?vue&type=template&id=8c035e62&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_reset_password_vue_vue_type_template_id_8c035e62___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/39.09e96dce1f3b81bcb26a.js b/public/39.09e96dce1f3b81bcb26a.js new file mode 100644 index 00000000..3ad01bd9 --- /dev/null +++ b/public/39.09e96dce1f3b81bcb26a.js @@ -0,0 +1,306 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[39],{ + +/***/ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=script&lang=js&": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/list.vue?vue&type=script&lang=js& ***! + \*********************************************************************************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +/* harmony default export */ __webpack_exports__["default"] = ({ + data: function data() { + return { + nodes: [] + }; + }, + created: function created() { + this.getNodes(); + }, + methods: { + getNodes: function getNodes() { + var _this = this; + + this.$http.get('nodes?all=yes').then(function (_ref) { + var data = _ref.data; + _this.nodes = data; + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346& ***! + \*************************************************************************************************************************************************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; }); +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("div", { staticClass: "page-node-show" }, [ + _c("div", { staticClass: "row mt-3" }, [ + _c( + "div", + { staticClass: "col-md-12" }, + _vm._l(_vm.nodes, function(node) { + return _c("div", { key: node.id, staticClass: "box mb-3" }, [ + _c("div", { staticClass: "box-heading" }, [ + _vm._v("\n " + _vm._s(node.title) + "\n ") + ]), + _vm._v(" "), + _c("div", { staticClass: "box-body" }, [ + _c( + "ul", + { staticClass: "nav nav-pills" }, + _vm._l(node.children, function(child) { + return _c( + "li", + { key: child.id, staticClass: "nav-item mr-2 mb-1" }, + [ + _c( + "router-link", + { + staticClass: "btn text-gray-40 btn-outline-light", + attrs: { + to: { name: "nodes.node", params: { id: child.id } } + } + }, + [ + _vm._v( + "\n " + + _vm._s(child.title) + + "\n " + ) + ] + ) + ], + 1 + ) + }), + 0 + ) + ]) + ]) + }), + 0 + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js": +/*!********************************************************************!*\ + !*** ./node_modules/vue-loader/lib/runtime/componentNormalizer.js ***! + \********************************************************************/ +/*! 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 normalizeComponent; }); +/* globals __VUE_SSR_CONTEXT__ */ + +// IMPORTANT: Do NOT use ES2015 features in this file (except for modules). +// This module is a runtime utility for cleaner component module output and will +// be included in the final webpack user bundle. + +function normalizeComponent ( + scriptExports, + render, + staticRenderFns, + functionalTemplate, + injectStyles, + scopeId, + moduleIdentifier, /* server only */ + shadowMode /* vue-cli only */ +) { + // Vue.extend constructor export interop + var options = typeof scriptExports === 'function' + ? scriptExports.options + : scriptExports + + // render functions + if (render) { + options.render = render + options.staticRenderFns = staticRenderFns + options._compiled = true + } + + // functional template + if (functionalTemplate) { + options.functional = true + } + + // scopedId + if (scopeId) { + options._scopeId = 'data-v-' + scopeId + } + + var hook + if (moduleIdentifier) { // server build + hook = function (context) { + // 2.3 injection + context = + context || // cached call + (this.$vnode && this.$vnode.ssrContext) || // stateful + (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional + // 2.2 with runInNewContext: true + if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { + context = __VUE_SSR_CONTEXT__ + } + // inject component styles + if (injectStyles) { + injectStyles.call(this, context) + } + // register component module identifier for async chunk inferrence + if (context && context._registeredComponents) { + context._registeredComponents.add(moduleIdentifier) + } + } + // used by ssr in case component is cached and beforeCreate + // never gets called + options._ssrRegister = hook + } else if (injectStyles) { + hook = shadowMode + ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } + : injectStyles + } + + if (hook) { + if (options.functional) { + // for template-only hot-reload because in that case the render fn doesn't + // go through the normalizer + options._injectStyles = hook + // register for functioal component in vue file + var originalRender = options.render + options.render = function renderWithStyleInjection (h, context) { + hook.call(context) + return originalRender(h, context) + } + } else { + // inject component registration as beforeCreate hook + var existing = options.beforeCreate + options.beforeCreate = existing + ? [].concat(existing, hook) + : [hook] + } + } + + return { + exports: scriptExports, + options: options + } +} + + +/***/ }), + +/***/ "./src/modules/nodes/list.vue": +/*!************************************!*\ + !*** ./src/modules/nodes/list.vue ***! + \************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./list.vue?vue&type=template&id=01b9e346& */ "./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&"); +/* harmony import */ var _list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./list.vue?vue&type=script&lang=js& */ "./src/modules/nodes/list.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ + +var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"], + _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["render"], + _list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"], + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/modules/nodes/list.vue" +/* harmony default export */ __webpack_exports__["default"] = (component.exports); + +/***/ }), + +/***/ "./src/modules/nodes/list.vue?vue&type=script&lang=js&": +/*!*************************************************************!*\ + !*** ./src/modules/nodes/list.vue?vue&type=script&lang=js& ***! + \*************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib??ref--4-0!../../../node_modules/vue-loader/lib??vue-loader-options!./list.vue?vue&type=script&lang=js& */ "./node_modules/babel-loader/lib/index.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=script&lang=js&"); +/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&": +/*!*******************************************************************!*\ + !*** ./src/modules/nodes/list.vue?vue&type=template&id=01b9e346& ***! + \*******************************************************************/ +/*! exports provided: render, staticRenderFns */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../node_modules/vue-loader/lib??vue-loader-options!./list.vue?vue&type=template&id=01b9e346& */ "./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/vue-loader/lib/index.js?!./src/modules/nodes/list.vue?vue&type=template&id=01b9e346&"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["render"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_node_modules_vue_loader_lib_index_js_vue_loader_options_list_vue_vue_type_template_id_01b9e346___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; }); + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/public/4.e3c896f652480a50d859.js b/public/4.e3c896f652480a50d859.js new file mode 100644 index 00000000..e2ff5fdc --- /dev/null +++ b/public/4.e3c896f652480a50d859.js @@ -0,0 +1,17901 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[4],{ + +/***/ "./node_modules/codemirror/addon/display/placeholder.js": +/*!**************************************************************!*\ + !*** ./node_modules/codemirror/addon/display/placeholder.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + CodeMirror.defineOption("placeholder", "", function(cm, val, old) { + var prev = old && old != CodeMirror.Init; + if (val && !prev) { + cm.on("blur", onBlur); + cm.on("change", onChange); + cm.on("swapDoc", onChange); + onChange(cm); + } else if (!val && prev) { + cm.off("blur", onBlur); + cm.off("change", onChange); + cm.off("swapDoc", onChange); + clearPlaceholder(cm); + var wrapper = cm.getWrapperElement(); + wrapper.className = wrapper.className.replace(" CodeMirror-empty", ""); + } + + if (val && !cm.hasFocus()) onBlur(cm); + }); + + function clearPlaceholder(cm) { + if (cm.state.placeholder) { + cm.state.placeholder.parentNode.removeChild(cm.state.placeholder); + cm.state.placeholder = null; + } + } + function setPlaceholder(cm) { + clearPlaceholder(cm); + var elt = cm.state.placeholder = document.createElement("pre"); + elt.style.cssText = "height: 0; overflow: visible"; + elt.style.direction = cm.getOption("direction"); + elt.className = "CodeMirror-placeholder"; + var placeHolder = cm.getOption("placeholder") + if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder) + elt.appendChild(placeHolder) + cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild); + } + + function onBlur(cm) { + if (isEmpty(cm)) setPlaceholder(cm); + } + function onChange(cm) { + var wrapper = cm.getWrapperElement(), empty = isEmpty(cm); + wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : ""); + + if (empty) setPlaceholder(cm); + else clearPlaceholder(cm); + } + + function isEmpty(cm) { + return (cm.lineCount() === 1) && (cm.getLine(0) === ""); + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/closebrackets.js": +/*!*************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/closebrackets.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + var defaults = { + pairs: "()[]{}''\"\"", + closeBefore: ")]}'\":;>", + triples: "", + explode: "[]{}" + }; + + var Pos = CodeMirror.Pos; + + CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.removeKeyMap(keyMap); + cm.state.closeBrackets = null; + } + if (val) { + ensureBound(getOption(val, "pairs")) + cm.state.closeBrackets = val; + cm.addKeyMap(keyMap); + } + }); + + function getOption(conf, name) { + if (name == "pairs" && typeof conf == "string") return conf; + if (typeof conf == "object" && conf[name] != null) return conf[name]; + return defaults[name]; + } + + var keyMap = {Backspace: handleBackspace, Enter: handleEnter}; + function ensureBound(chars) { + for (var i = 0; i < chars.length; i++) { + var ch = chars.charAt(i), key = "'" + ch + "'" + if (!keyMap[key]) keyMap[key] = handler(ch) + } + } + ensureBound(defaults.pairs + "`") + + function handler(ch) { + return function(cm) { return handleChar(cm, ch); }; + } + + function getConfig(cm) { + var deflt = cm.state.closeBrackets; + if (!deflt || deflt.override) return deflt; + var mode = cm.getModeAt(cm.getCursor()); + return mode.closeBrackets || deflt; + } + + function handleBackspace(cm) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + for (var i = ranges.length - 1; i >= 0; i--) { + var cur = ranges[i].head; + cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); + } + } + + function handleEnter(cm) { + var conf = getConfig(cm); + var explode = conf && getOption(conf, "explode"); + if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; + + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + cm.operation(function() { + var linesep = cm.lineSeparator() || "\n"; + cm.replaceSelection(linesep + linesep, null); + cm.execCommand("goCharLeft"); + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var line = ranges[i].head.line; + cm.indentLine(line, null, true); + cm.indentLine(line + 1, null, true); + } + }); + } + + function contractSelection(sel) { + var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; + return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), + head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))}; + } + + function handleChar(cm, ch) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var pos = pairs.indexOf(ch); + if (pos == -1) return CodeMirror.Pass; + + var closeBefore = getOption(conf,"closeBefore"); + + var triples = getOption(conf, "triples"); + + var identical = pairs.charAt(pos + 1) == ch; + var ranges = cm.listSelections(); + var opening = pos % 2 == 0; + + var type; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], cur = range.head, curType; + var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); + if (opening && !range.empty()) { + curType = "surround"; + } else if ((identical || !opening) && next == ch) { + if (identical && stringStartsAfter(cm, cur)) + curType = "both"; + else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) + curType = "skipThree"; + else + curType = "skip"; + } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && + cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) { + if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass; + curType = "addFour"; + } else if (identical) { + var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur) + if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both"; + else return CodeMirror.Pass; + } else if (opening && (next.length === 0 || /\s/.test(next) || closeBefore.indexOf(next) > -1)) { + curType = "both"; + } else { + return CodeMirror.Pass; + } + if (!type) type = curType; + else if (type != curType) return CodeMirror.Pass; + } + + var left = pos % 2 ? pairs.charAt(pos - 1) : ch; + var right = pos % 2 ? ch : pairs.charAt(pos + 1); + cm.operation(function() { + if (type == "skip") { + cm.execCommand("goCharRight"); + } else if (type == "skipThree") { + for (var i = 0; i < 3; i++) + cm.execCommand("goCharRight"); + } else if (type == "surround") { + var sels = cm.getSelections(); + for (var i = 0; i < sels.length; i++) + sels[i] = left + sels[i] + right; + cm.replaceSelections(sels, "around"); + sels = cm.listSelections().slice(); + for (var i = 0; i < sels.length; i++) + sels[i] = contractSelection(sels[i]); + cm.setSelections(sels); + } else if (type == "both") { + cm.replaceSelection(left + right, null); + cm.triggerElectric(left + right); + cm.execCommand("goCharLeft"); + } else if (type == "addFour") { + cm.replaceSelection(left + left + left + left, "before"); + cm.execCommand("goCharRight"); + } + }); + } + + function charsAround(cm, pos) { + var str = cm.getRange(Pos(pos.line, pos.ch - 1), + Pos(pos.line, pos.ch + 1)); + return str.length == 2 ? str : null; + } + + function stringStartsAfter(cm, pos) { + var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1)) + return /\bstring/.test(token.type) && token.start == pos.ch && + (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos))) + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/continuelist.js": +/*!************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/continuelist.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var listRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]\s|[*+-]\s|(\d+)([.)]))(\s*)/, + emptyListRE = /^(\s*)(>[> ]*|[*+-] \[[x ]\]|[*+-]|(\d+)[.)])(\s*)$/, + unorderedListRE = /[*+-]\s/; + + CodeMirror.commands.newlineAndIndentContinueMarkdownList = function(cm) { + if (cm.getOption("disableInput")) return CodeMirror.Pass; + var ranges = cm.listSelections(), replacements = []; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].head; + + // If we're not in Markdown mode, fall back to normal newlineAndIndent + var eolState = cm.getStateAfter(pos.line); + var inner = CodeMirror.innerMode(cm.getMode(), eolState); + if (inner.mode.name !== "markdown") { + cm.execCommand("newlineAndIndent"); + return; + } else { + eolState = inner.state; + } + + var inList = eolState.list !== false; + var inQuote = eolState.quote !== 0; + + var line = cm.getLine(pos.line), match = listRE.exec(line); + var cursorBeforeBullet = /^\s*$/.test(line.slice(0, pos.ch)); + if (!ranges[i].empty() || (!inList && !inQuote) || !match || cursorBeforeBullet) { + cm.execCommand("newlineAndIndent"); + return; + } + if (emptyListRE.test(line)) { + if (!/>\s*$/.test(line)) cm.replaceRange("", { + line: pos.line, ch: 0 + }, { + line: pos.line, ch: pos.ch + 1 + }); + replacements[i] = "\n"; + } else { + var indent = match[1], after = match[5]; + var numbered = !(unorderedListRE.test(match[2]) || match[2].indexOf(">") >= 0); + var bullet = numbered ? (parseInt(match[3], 10) + 1) + match[4] : match[2].replace("x", " "); + replacements[i] = "\n" + indent + bullet + after; + + if (numbered) incrementRemainingMarkdownListNumbers(cm, pos); + } + } + + cm.replaceSelections(replacements); + }; + + // Auto-updating Markdown list numbers when a new item is added to the + // middle of a list + function incrementRemainingMarkdownListNumbers(cm, pos) { + var startLine = pos.line, lookAhead = 0, skipCount = 0; + var startItem = listRE.exec(cm.getLine(startLine)), startIndent = startItem[1]; + + do { + lookAhead += 1; + var nextLineNumber = startLine + lookAhead; + var nextLine = cm.getLine(nextLineNumber), nextItem = listRE.exec(nextLine); + + if (nextItem) { + var nextIndent = nextItem[1]; + var newNumber = (parseInt(startItem[3], 10) + lookAhead - skipCount); + var nextNumber = (parseInt(nextItem[3], 10)), itemNumber = nextNumber; + + if (startIndent === nextIndent && !isNaN(nextNumber)) { + if (newNumber === nextNumber) itemNumber = nextNumber + 1; + if (newNumber > nextNumber) itemNumber = newNumber + 1; + cm.replaceRange( + nextLine.replace(listRE, nextIndent + itemNumber + nextItem[4] + nextItem[5]), + { + line: nextLineNumber, ch: 0 + }, { + line: nextLineNumber, ch: nextLine.length + }); + } else { + if (startIndent.length > nextIndent.length) return; + // This doesn't run if the next line immediatley indents, as it is + // not clear of the users intention (new indented item or same level) + if ((startIndent.length < nextIndent.length) && (lookAhead === 1)) return; + skipCount += 1; + } + } + } while (nextItem); + } +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/matchbrackets.js": +/*!*************************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/matchbrackets.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + var ie_lt8 = /MSIE \d/.test(navigator.userAgent) && + (document.documentMode == null || document.documentMode < 8); + + var Pos = CodeMirror.Pos; + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<", "<": ">>", ">": "<<"}; + + function bracketRegex(config) { + return config && config.bracketRegex || /[(){}[\]]/ + } + + function findMatchingBracket(cm, where, config) { + var line = cm.getLineHandle(where.line), pos = where.ch - 1; + var afterCursor = config && config.afterCursor + if (afterCursor == null) + afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className) + var re = bracketRegex(config) + + // A cursor is defined as between two characters, but in in vim command mode + // (i.e. not insert mode), the cursor is visually represented as a + // highlighted box on top of the 2nd character. Otherwise, we allow matches + // from before or after the cursor. + var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) || + re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)]; + if (!match) return null; + var dir = match.charAt(1) == ">" ? 1 : -1; + if (config && config.strict && (dir > 0) != (pos == where.ch)) return null; + var style = cm.getTokenTypeAt(Pos(where.line, pos + 1)); + + var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style || null, config); + if (found == null) return null; + return {from: Pos(where.line, pos), to: found && found.pos, + match: found && found.ch == match.charAt(0), forward: dir > 0}; + } + + // bracketRegex is used to specify which type of bracket to scan + // should be a regexp, e.g. /[[\]]/ + // + // Note: If "where" is on an open bracket, then this bracket is ignored. + // + // Returns false when no bracket was found, null when it reached + // maxScanLines and gave up + function scanForBracket(cm, where, dir, style, config) { + var maxScanLen = (config && config.maxScanLineLength) || 10000; + var maxScanLines = (config && config.maxScanLines) || 1000; + + var stack = []; + var re = bracketRegex(config) + var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1) + : Math.max(cm.firstLine() - 1, where.line - maxScanLines); + for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) { + var line = cm.getLine(lineNo); + if (!line) continue; + var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1; + if (line.length > maxScanLen) continue; + if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0); + for (; pos != end; pos += dir) { + var ch = line.charAt(pos); + if (re.test(ch) && (style === undefined || cm.getTokenTypeAt(Pos(lineNo, pos + 1)) == style)) { + var match = matching[ch]; + if (match && (match.charAt(1) == ">") == (dir > 0)) stack.push(ch); + else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch}; + else stack.pop(); + } + } + } + return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null; + } + + function matchBrackets(cm, autoclear, config) { + // Disable brace matching in long lines, since it'll cause hugely slow updates + var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000; + var marks = [], ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config); + if (match && cm.getLine(match.from.line).length <= maxHighlightLen) { + var style = match.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style})); + if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen) + marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style})); + } + } + + if (marks.length) { + // Kludge to work around the IE bug from issue #1193, where text + // input stops going to the textare whever this fires. + if (ie_lt8 && cm.state.focused) cm.focus(); + + var clear = function() { + cm.operation(function() { + for (var i = 0; i < marks.length; i++) marks[i].clear(); + }); + }; + if (autoclear) setTimeout(clear, 800); + else return clear; + } + } + + function doMatchBrackets(cm) { + cm.operation(function() { + if (cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets); + }); + } + + CodeMirror.defineOption("matchBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchBrackets); + if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) { + cm.state.matchBrackets.currentlyHighlighted(); + cm.state.matchBrackets.currentlyHighlighted = null; + } + } + if (val) { + cm.state.matchBrackets = typeof val == "object" ? val : {}; + cm.on("cursorActivity", doMatchBrackets); + } + }); + + CodeMirror.defineExtension("matchBrackets", function() {matchBrackets(this, true);}); + CodeMirror.defineExtension("findMatchingBracket", function(pos, config, oldConfig){ + // Backwards-compatibility kludge + if (oldConfig || typeof config == "boolean") { + if (!oldConfig) { + config = config ? {strict: true} : null + } else { + oldConfig.strict = config + config = oldConfig + } + } + return findMatchingBracket(this, pos, config) + }); + CodeMirror.defineExtension("scanForBracket", function(pos, dir, style, config){ + return scanForBracket(this, pos, dir, style, config); + }); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/edit/matchtags.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/edit/matchtags.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../fold/xml-fold */ "./node_modules/codemirror/addon/fold/xml-fold.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + CodeMirror.defineOption("matchTags", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.off("cursorActivity", doMatchTags); + cm.off("viewportChange", maybeUpdateMatch); + clear(cm); + } + if (val) { + cm.state.matchBothTags = typeof val == "object" && val.bothTags; + cm.on("cursorActivity", doMatchTags); + cm.on("viewportChange", maybeUpdateMatch); + doMatchTags(cm); + } + }); + + function clear(cm) { + if (cm.state.tagHit) cm.state.tagHit.clear(); + if (cm.state.tagOther) cm.state.tagOther.clear(); + cm.state.tagHit = cm.state.tagOther = null; + } + + function doMatchTags(cm) { + cm.state.failedTagMatch = false; + cm.operation(function() { + clear(cm); + if (cm.somethingSelected()) return; + var cur = cm.getCursor(), range = cm.getViewport(); + range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to); + var match = CodeMirror.findMatchingTag(cm, cur, range); + if (!match) return; + if (cm.state.matchBothTags) { + var hit = match.at == "open" ? match.open : match.close; + if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"}); + } + var other = match.at == "close" ? match.open : match.close; + if (other) + cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"}); + else + cm.state.failedTagMatch = true; + }); + } + + function maybeUpdateMatch(cm) { + if (cm.state.failedTagMatch) doMatchTags(cm); + } + + CodeMirror.commands.toMatchingTag = function(cm) { + var found = CodeMirror.findMatchingTag(cm, cm.getCursor()); + if (found) { + var other = found.at == "close" ? found.open : found.close; + if (other) cm.extendSelection(other.to, other.from); + } + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/fold/xml-fold.js": +/*!********************************************************!*\ + !*** ./node_modules/codemirror/addon/fold/xml-fold.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var Pos = CodeMirror.Pos; + function cmp(a, b) { return a.line - b.line || a.ch - b.ch; } + + var nameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var nameChar = nameStartChar + "\-\:\.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var xmlTagStart = new RegExp("<(/?)([" + nameStartChar + "][" + nameChar + "]*)", "g"); + + function Iter(cm, line, ch, range) { + this.line = line; this.ch = ch; + this.cm = cm; this.text = cm.getLine(line); + this.min = range ? Math.max(range.from, cm.firstLine()) : cm.firstLine(); + this.max = range ? Math.min(range.to - 1, cm.lastLine()) : cm.lastLine(); + } + + function tagAt(iter, ch) { + var type = iter.cm.getTokenTypeAt(Pos(iter.line, ch)); + return type && /\btag\b/.test(type); + } + + function nextLine(iter) { + if (iter.line >= iter.max) return; + iter.ch = 0; + iter.text = iter.cm.getLine(++iter.line); + return true; + } + function prevLine(iter) { + if (iter.line <= iter.min) return; + iter.text = iter.cm.getLine(--iter.line); + iter.ch = iter.text.length; + return true; + } + + function toTagEnd(iter) { + for (;;) { + var gt = iter.text.indexOf(">", iter.ch); + if (gt == -1) { if (nextLine(iter)) continue; else return; } + if (!tagAt(iter, gt + 1)) { iter.ch = gt + 1; continue; } + var lastSlash = iter.text.lastIndexOf("/", gt); + var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt)); + iter.ch = gt + 1; + return selfClose ? "selfClose" : "regular"; + } + } + function toTagStart(iter) { + for (;;) { + var lt = iter.ch ? iter.text.lastIndexOf("<", iter.ch - 1) : -1; + if (lt == -1) { if (prevLine(iter)) continue; else return; } + if (!tagAt(iter, lt + 1)) { iter.ch = lt; continue; } + xmlTagStart.lastIndex = lt; + iter.ch = lt; + var match = xmlTagStart.exec(iter.text); + if (match && match.index == lt) return match; + } + } + + function toNextTag(iter) { + for (;;) { + xmlTagStart.lastIndex = iter.ch; + var found = xmlTagStart.exec(iter.text); + if (!found) { if (nextLine(iter)) continue; else return; } + if (!tagAt(iter, found.index + 1)) { iter.ch = found.index + 1; continue; } + iter.ch = found.index + found[0].length; + return found; + } + } + function toPrevTag(iter) { + for (;;) { + var gt = iter.ch ? iter.text.lastIndexOf(">", iter.ch - 1) : -1; + if (gt == -1) { if (prevLine(iter)) continue; else return; } + if (!tagAt(iter, gt + 1)) { iter.ch = gt; continue; } + var lastSlash = iter.text.lastIndexOf("/", gt); + var selfClose = lastSlash > -1 && !/\S/.test(iter.text.slice(lastSlash + 1, gt)); + iter.ch = gt + 1; + return selfClose ? "selfClose" : "regular"; + } + } + + function findMatchingClose(iter, tag) { + var stack = []; + for (;;) { + var next = toNextTag(iter), end, startLine = iter.line, startCh = iter.ch - (next ? next[0].length : 0); + if (!next || !(end = toTagEnd(iter))) return; + if (end == "selfClose") continue; + if (next[1]) { // closing tag + for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == next[2]) { + stack.length = i; + break; + } + if (i < 0 && (!tag || tag == next[2])) return { + tag: next[2], + from: Pos(startLine, startCh), + to: Pos(iter.line, iter.ch) + }; + } else { // opening tag + stack.push(next[2]); + } + } + } + function findMatchingOpen(iter, tag) { + var stack = []; + for (;;) { + var prev = toPrevTag(iter); + if (!prev) return; + if (prev == "selfClose") { toTagStart(iter); continue; } + var endLine = iter.line, endCh = iter.ch; + var start = toTagStart(iter); + if (!start) return; + if (start[1]) { // closing tag + stack.push(start[2]); + } else { // opening tag + for (var i = stack.length - 1; i >= 0; --i) if (stack[i] == start[2]) { + stack.length = i; + break; + } + if (i < 0 && (!tag || tag == start[2])) return { + tag: start[2], + from: Pos(iter.line, iter.ch), + to: Pos(endLine, endCh) + }; + } + } + } + + CodeMirror.registerHelper("fold", "xml", function(cm, start) { + var iter = new Iter(cm, start.line, 0); + for (;;) { + var openTag = toNextTag(iter) + if (!openTag || iter.line != start.line) return + var end = toTagEnd(iter) + if (!end) return + if (!openTag[1] && end != "selfClose") { + var startPos = Pos(iter.line, iter.ch); + var endPos = findMatchingClose(iter, openTag[2]); + return endPos && cmp(endPos.from, startPos) > 0 ? {from: startPos, to: endPos.from} : null + } + } + }); + CodeMirror.findMatchingTag = function(cm, pos, range) { + var iter = new Iter(cm, pos.line, pos.ch, range); + if (iter.text.indexOf(">") == -1 && iter.text.indexOf("<") == -1) return; + var end = toTagEnd(iter), to = end && Pos(iter.line, iter.ch); + var start = end && toTagStart(iter); + if (!end || !start || cmp(iter, pos) > 0) return; + var here = {from: Pos(iter.line, iter.ch), to: to, tag: start[2]}; + if (end == "selfClose") return {open: here, close: null, at: "open"}; + + if (start[1]) { // closing tag + return {open: findMatchingOpen(iter, start[2]), close: here, at: "close"}; + } else { // opening tag + iter = new Iter(cm, to.line, to.ch, range); + return {open: here, close: findMatchingClose(iter, start[2]), at: "open"}; + } + }; + + CodeMirror.findEnclosingTag = function(cm, pos, range, tag) { + var iter = new Iter(cm, pos.line, pos.ch, range); + for (;;) { + var open = findMatchingOpen(iter, tag); + if (!open) break; + var forward = new Iter(cm, pos.line, pos.ch, range); + var close = findMatchingClose(forward, open.tag); + if (close) return {open: open, close: close}; + } + }; + + // Used by addon/edit/closetag.js + CodeMirror.scanForClosingTag = function(cm, pos, name, end) { + var iter = new Iter(cm, pos.line, pos.ch, end ? {from: 0, to: end} : null); + return findMatchingClose(iter, name); + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/html-hint.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/html-hint.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ./xml-hint */ "./node_modules/codemirror/addon/hint/xml-hint.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var langs = "ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" "); + var targets = ["_blank", "_self", "_top", "_parent"]; + var charsets = ["ascii", "utf-8", "utf-16", "latin1", "latin1"]; + var methods = ["get", "post", "put", "delete"]; + var encs = ["application/x-www-form-urlencoded", "multipart/form-data", "text/plain"]; + var media = ["all", "screen", "print", "embossed", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "speech", + "3d-glasses", "resolution [>][<][=] [X]", "device-aspect-ratio: X/Y", "orientation:portrait", + "orientation:landscape", "device-height: [X]", "device-width: [X]"]; + var s = { attrs: {} }; // Simple tag, reused for a whole lot of tags + + var data = { + a: { + attrs: { + href: null, ping: null, type: null, + media: media, + target: targets, + hreflang: langs + } + }, + abbr: s, + acronym: s, + address: s, + applet: s, + area: { + attrs: { + alt: null, coords: null, href: null, target: null, ping: null, + media: media, hreflang: langs, type: null, + shape: ["default", "rect", "circle", "poly"] + } + }, + article: s, + aside: s, + audio: { + attrs: { + src: null, mediagroup: null, + crossorigin: ["anonymous", "use-credentials"], + preload: ["none", "metadata", "auto"], + autoplay: ["", "autoplay"], + loop: ["", "loop"], + controls: ["", "controls"] + } + }, + b: s, + base: { attrs: { href: null, target: targets } }, + basefont: s, + bdi: s, + bdo: s, + big: s, + blockquote: { attrs: { cite: null } }, + body: s, + br: s, + button: { + attrs: { + form: null, formaction: null, name: null, value: null, + autofocus: ["", "autofocus"], + disabled: ["", "autofocus"], + formenctype: encs, + formmethod: methods, + formnovalidate: ["", "novalidate"], + formtarget: targets, + type: ["submit", "reset", "button"] + } + }, + canvas: { attrs: { width: null, height: null } }, + caption: s, + center: s, + cite: s, + code: s, + col: { attrs: { span: null } }, + colgroup: { attrs: { span: null } }, + command: { + attrs: { + type: ["command", "checkbox", "radio"], + label: null, icon: null, radiogroup: null, command: null, title: null, + disabled: ["", "disabled"], + checked: ["", "checked"] + } + }, + data: { attrs: { value: null } }, + datagrid: { attrs: { disabled: ["", "disabled"], multiple: ["", "multiple"] } }, + datalist: { attrs: { data: null } }, + dd: s, + del: { attrs: { cite: null, datetime: null } }, + details: { attrs: { open: ["", "open"] } }, + dfn: s, + dir: s, + div: s, + dl: s, + dt: s, + em: s, + embed: { attrs: { src: null, type: null, width: null, height: null } }, + eventsource: { attrs: { src: null } }, + fieldset: { attrs: { disabled: ["", "disabled"], form: null, name: null } }, + figcaption: s, + figure: s, + font: s, + footer: s, + form: { + attrs: { + action: null, name: null, + "accept-charset": charsets, + autocomplete: ["on", "off"], + enctype: encs, + method: methods, + novalidate: ["", "novalidate"], + target: targets + } + }, + frame: s, + frameset: s, + h1: s, h2: s, h3: s, h4: s, h5: s, h6: s, + head: { + attrs: {}, + children: ["title", "base", "link", "style", "meta", "script", "noscript", "command"] + }, + header: s, + hgroup: s, + hr: s, + html: { + attrs: { manifest: null }, + children: ["head", "body"] + }, + i: s, + iframe: { + attrs: { + src: null, srcdoc: null, name: null, width: null, height: null, + sandbox: ["allow-top-navigation", "allow-same-origin", "allow-forms", "allow-scripts"], + seamless: ["", "seamless"] + } + }, + img: { + attrs: { + alt: null, src: null, ismap: null, usemap: null, width: null, height: null, + crossorigin: ["anonymous", "use-credentials"] + } + }, + input: { + attrs: { + alt: null, dirname: null, form: null, formaction: null, + height: null, list: null, max: null, maxlength: null, min: null, + name: null, pattern: null, placeholder: null, size: null, src: null, + step: null, value: null, width: null, + accept: ["audio/*", "video/*", "image/*"], + autocomplete: ["on", "off"], + autofocus: ["", "autofocus"], + checked: ["", "checked"], + disabled: ["", "disabled"], + formenctype: encs, + formmethod: methods, + formnovalidate: ["", "novalidate"], + formtarget: targets, + multiple: ["", "multiple"], + readonly: ["", "readonly"], + required: ["", "required"], + type: ["hidden", "text", "search", "tel", "url", "email", "password", "datetime", "date", "month", + "week", "time", "datetime-local", "number", "range", "color", "checkbox", "radio", + "file", "submit", "image", "reset", "button"] + } + }, + ins: { attrs: { cite: null, datetime: null } }, + kbd: s, + keygen: { + attrs: { + challenge: null, form: null, name: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + keytype: ["RSA"] + } + }, + label: { attrs: { "for": null, form: null } }, + legend: s, + li: { attrs: { value: null } }, + link: { + attrs: { + href: null, type: null, + hreflang: langs, + media: media, + sizes: ["all", "16x16", "16x16 32x32", "16x16 32x32 64x64"] + } + }, + map: { attrs: { name: null } }, + mark: s, + menu: { attrs: { label: null, type: ["list", "context", "toolbar"] } }, + meta: { + attrs: { + content: null, + charset: charsets, + name: ["viewport", "application-name", "author", "description", "generator", "keywords"], + "http-equiv": ["content-language", "content-type", "default-style", "refresh"] + } + }, + meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } }, + nav: s, + noframes: s, + noscript: s, + object: { + attrs: { + data: null, type: null, name: null, usemap: null, form: null, width: null, height: null, + typemustmatch: ["", "typemustmatch"] + } + }, + ol: { attrs: { reversed: ["", "reversed"], start: null, type: ["1", "a", "A", "i", "I"] } }, + optgroup: { attrs: { disabled: ["", "disabled"], label: null } }, + option: { attrs: { disabled: ["", "disabled"], label: null, selected: ["", "selected"], value: null } }, + output: { attrs: { "for": null, form: null, name: null } }, + p: s, + param: { attrs: { name: null, value: null } }, + pre: s, + progress: { attrs: { value: null, max: null } }, + q: { attrs: { cite: null } }, + rp: s, + rt: s, + ruby: s, + s: s, + samp: s, + script: { + attrs: { + type: ["text/javascript"], + src: null, + async: ["", "async"], + defer: ["", "defer"], + charset: charsets + } + }, + section: s, + select: { + attrs: { + form: null, name: null, size: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + multiple: ["", "multiple"] + } + }, + small: s, + source: { attrs: { src: null, type: null, media: null } }, + span: s, + strike: s, + strong: s, + style: { + attrs: { + type: ["text/css"], + media: media, + scoped: null + } + }, + sub: s, + summary: s, + sup: s, + table: s, + tbody: s, + td: { attrs: { colspan: null, rowspan: null, headers: null } }, + textarea: { + attrs: { + dirname: null, form: null, maxlength: null, name: null, placeholder: null, + rows: null, cols: null, + autofocus: ["", "autofocus"], + disabled: ["", "disabled"], + readonly: ["", "readonly"], + required: ["", "required"], + wrap: ["soft", "hard"] + } + }, + tfoot: s, + th: { attrs: { colspan: null, rowspan: null, headers: null, scope: ["row", "col", "rowgroup", "colgroup"] } }, + thead: s, + time: { attrs: { datetime: null } }, + title: s, + tr: s, + track: { + attrs: { + src: null, label: null, "default": null, + kind: ["subtitles", "captions", "descriptions", "chapters", "metadata"], + srclang: langs + } + }, + tt: s, + u: s, + ul: s, + "var": s, + video: { + attrs: { + src: null, poster: null, width: null, height: null, + crossorigin: ["anonymous", "use-credentials"], + preload: ["auto", "metadata", "none"], + autoplay: ["", "autoplay"], + mediagroup: ["movie"], + muted: ["", "muted"], + controls: ["", "controls"] + } + }, + wbr: s + }; + + var globalAttrs = { + accesskey: ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + "class": null, + contenteditable: ["true", "false"], + contextmenu: null, + dir: ["ltr", "rtl", "auto"], + draggable: ["true", "false", "auto"], + dropzone: ["copy", "move", "link", "string:", "file:"], + hidden: ["hidden"], + id: null, + inert: ["inert"], + itemid: null, + itemprop: null, + itemref: null, + itemscope: ["itemscope"], + itemtype: null, + lang: ["en", "es"], + spellcheck: ["true", "false"], + autocorrect: ["true", "false"], + autocapitalize: ["true", "false"], + style: null, + tabindex: ["1", "2", "3", "4", "5", "6", "7", "8", "9"], + title: null, + translate: ["yes", "no"], + onclick: null, + rel: ["stylesheet", "alternate", "author", "bookmark", "help", "license", "next", "nofollow", "noreferrer", "prefetch", "prev", "search", "tag"] + }; + function populate(obj) { + for (var attr in globalAttrs) if (globalAttrs.hasOwnProperty(attr)) + obj.attrs[attr] = globalAttrs[attr]; + } + + populate(s); + for (var tag in data) if (data.hasOwnProperty(tag) && data[tag] != s) + populate(data[tag]); + + CodeMirror.htmlSchema = data; + function htmlHint(cm, options) { + var local = {schemaInfo: data}; + if (options) for (var opt in options) local[opt] = options[opt]; + return CodeMirror.hint.xml(cm, local); + } + CodeMirror.registerHelper("hint", "html", htmlHint); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/show-hint.js": +/*!*********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/show-hint.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var HINT_ELEMENT_CLASS = "CodeMirror-hint"; + var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active"; + + // This is the old interface, kept around for now to stay + // backwards-compatible. + CodeMirror.showHint = function(cm, getHints, options) { + if (!getHints) return cm.showHint(options); + if (options && options.async) getHints.async = true; + var newOpts = {hint: getHints}; + if (options) for (var prop in options) newOpts[prop] = options[prop]; + return cm.showHint(newOpts); + }; + + CodeMirror.defineExtension("showHint", function(options) { + options = parseOptions(this, this.getCursor("start"), options); + var selections = this.listSelections() + if (selections.length > 1) return; + // By default, don't allow completion when something is selected. + // A hint function can have a `supportsSelection` property to + // indicate that it can handle selections. + if (this.somethingSelected()) { + if (!options.hint.supportsSelection) return; + // Don't try with cross-line selections + for (var i = 0; i < selections.length; i++) + if (selections[i].head.line != selections[i].anchor.line) return; + } + + if (this.state.completionActive) this.state.completionActive.close(); + var completion = this.state.completionActive = new Completion(this, options); + if (!completion.options.hint) return; + + CodeMirror.signal(this, "startCompletion", this); + completion.update(true); + }); + + CodeMirror.defineExtension("closeHint", function() { + if (this.state.completionActive) this.state.completionActive.close() + }) + + function Completion(cm, options) { + this.cm = cm; + this.options = options; + this.widget = null; + this.debounce = 0; + this.tick = 0; + this.startPos = this.cm.getCursor("start"); + this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length; + + var self = this; + cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); }); + } + + var requestAnimationFrame = window.requestAnimationFrame || function(fn) { + return setTimeout(fn, 1000/60); + }; + var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout; + + Completion.prototype = { + close: function() { + if (!this.active()) return; + this.cm.state.completionActive = null; + this.tick = null; + this.cm.off("cursorActivity", this.activityFunc); + + if (this.widget && this.data) CodeMirror.signal(this.data, "close"); + if (this.widget) this.widget.close(); + CodeMirror.signal(this.cm, "endCompletion", this.cm); + }, + + active: function() { + return this.cm.state.completionActive == this; + }, + + pick: function(data, i) { + var completion = data.list[i]; + if (completion.hint) completion.hint(this.cm, data, completion); + else this.cm.replaceRange(getText(completion), completion.from || data.from, + completion.to || data.to, "complete"); + CodeMirror.signal(data, "pick", completion); + this.close(); + }, + + cursorActivity: function() { + if (this.debounce) { + cancelAnimationFrame(this.debounce); + this.debounce = 0; + } + + var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line); + if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch || + pos.ch < this.startPos.ch || this.cm.somethingSelected() || + (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) { + this.close(); + } else { + var self = this; + this.debounce = requestAnimationFrame(function() {self.update();}); + if (this.widget) this.widget.disable(); + } + }, + + update: function(first) { + if (this.tick == null) return + var self = this, myTick = ++this.tick + fetchHints(this.options.hint, this.cm, this.options, function(data) { + if (self.tick == myTick) self.finishUpdate(data, first) + }) + }, + + finishUpdate: function(data, first) { + if (this.data) CodeMirror.signal(this.data, "update"); + + var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle); + if (this.widget) this.widget.close(); + + this.data = data; + + if (data && data.list.length) { + if (picked && data.list.length == 1) { + this.pick(data, 0); + } else { + this.widget = new Widget(this, data); + CodeMirror.signal(data, "shown"); + } + } + } + }; + + function parseOptions(cm, pos, options) { + var editor = cm.options.hintOptions; + var out = {}; + for (var prop in defaultOptions) out[prop] = defaultOptions[prop]; + if (editor) for (var prop in editor) + if (editor[prop] !== undefined) out[prop] = editor[prop]; + if (options) for (var prop in options) + if (options[prop] !== undefined) out[prop] = options[prop]; + if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos) + return out; + } + + function getText(completion) { + if (typeof completion == "string") return completion; + else return completion.text; + } + + function buildKeyMap(completion, handle) { + var baseMap = { + Up: function() {handle.moveFocus(-1);}, + Down: function() {handle.moveFocus(1);}, + PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);}, + PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);}, + Home: function() {handle.setFocus(0);}, + End: function() {handle.setFocus(handle.length - 1);}, + Enter: handle.pick, + Tab: handle.pick, + Esc: handle.close + }; + + var mac = /Mac/.test(navigator.platform); + + if (mac) { + baseMap["Ctrl-P"] = function() {handle.moveFocus(-1);}; + baseMap["Ctrl-N"] = function() {handle.moveFocus(1);}; + } + + var custom = completion.options.customKeys; + var ourMap = custom ? {} : baseMap; + function addBinding(key, val) { + var bound; + if (typeof val != "string") + bound = function(cm) { return val(cm, handle); }; + // This mechanism is deprecated + else if (baseMap.hasOwnProperty(val)) + bound = baseMap[val]; + else + bound = val; + ourMap[key] = bound; + } + if (custom) + for (var key in custom) if (custom.hasOwnProperty(key)) + addBinding(key, custom[key]); + var extra = completion.options.extraKeys; + if (extra) + for (var key in extra) if (extra.hasOwnProperty(key)) + addBinding(key, extra[key]); + return ourMap; + } + + function getHintElement(hintsElement, el) { + while (el && el != hintsElement) { + if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el; + el = el.parentNode; + } + } + + function Widget(completion, data) { + this.completion = completion; + this.data = data; + this.picked = false; + var widget = this, cm = completion.cm; + var ownerDocument = cm.getInputField().ownerDocument; + var parentWindow = ownerDocument.defaultView || ownerDocument.parentWindow; + + var hints = this.hints = ownerDocument.createElement("ul"); + var theme = completion.cm.options.theme; + hints.className = "CodeMirror-hints " + theme; + this.selectedHint = data.selectedHint || 0; + + var completions = data.list; + for (var i = 0; i < completions.length; ++i) { + var elt = hints.appendChild(ownerDocument.createElement("li")), cur = completions[i]; + var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS); + if (cur.className != null) className = cur.className + " " + className; + elt.className = className; + if (cur.render) cur.render(elt, data, cur); + else elt.appendChild(ownerDocument.createTextNode(cur.displayText || getText(cur))); + elt.hintId = i; + } + + var container = completion.options.container || ownerDocument.body; + var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null); + var left = pos.left, top = pos.bottom, below = true; + var offsetLeft = 0, offsetTop = 0; + if (container !== ownerDocument.body) { + // We offset the cursor position because left and top are relative to the offsetParent's top left corner. + var isContainerPositioned = ['absolute', 'relative', 'fixed'].indexOf(parentWindow.getComputedStyle(container).position) !== -1; + var offsetParent = isContainerPositioned ? container : container.offsetParent; + var offsetParentPosition = offsetParent.getBoundingClientRect(); + var bodyPosition = ownerDocument.body.getBoundingClientRect(); + offsetLeft = (offsetParentPosition.left - bodyPosition.left - offsetParent.scrollLeft); + offsetTop = (offsetParentPosition.top - bodyPosition.top - offsetParent.scrollTop); + } + hints.style.left = (left - offsetLeft) + "px"; + hints.style.top = (top - offsetTop) + "px"; + + // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor. + var winW = parentWindow.innerWidth || Math.max(ownerDocument.body.offsetWidth, ownerDocument.documentElement.offsetWidth); + var winH = parentWindow.innerHeight || Math.max(ownerDocument.body.offsetHeight, ownerDocument.documentElement.offsetHeight); + container.appendChild(hints); + var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH; + var scrolls = hints.scrollHeight > hints.clientHeight + 1 + var startScroll = cm.getScrollInfo(); + + if (overlapY > 0) { + var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top); + if (curTop - height > 0) { // Fits above cursor + hints.style.top = (top = pos.top - height - offsetTop) + "px"; + below = false; + } else if (height > winH) { + hints.style.height = (winH - 5) + "px"; + hints.style.top = (top = pos.bottom - box.top - offsetTop) + "px"; + var cursor = cm.getCursor(); + if (data.from.ch != cursor.ch) { + pos = cm.cursorCoords(cursor); + hints.style.left = (left = pos.left - offsetLeft) + "px"; + box = hints.getBoundingClientRect(); + } + } + } + var overlapX = box.right - winW; + if (overlapX > 0) { + if (box.right - box.left > winW) { + hints.style.width = (winW - 5) + "px"; + overlapX -= (box.right - box.left) - winW; + } + hints.style.left = (left = pos.left - overlapX - offsetLeft) + "px"; + } + if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling) + node.style.paddingRight = cm.display.nativeBarWidth + "px" + + cm.addKeyMap(this.keyMap = buildKeyMap(completion, { + moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); }, + setFocus: function(n) { widget.changeActive(n); }, + menuSize: function() { return widget.screenAmount(); }, + length: completions.length, + close: function() { completion.close(); }, + pick: function() { widget.pick(); }, + data: data + })); + + if (completion.options.closeOnUnfocus) { + var closingOnBlur; + cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); }); + cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); }); + } + + cm.on("scroll", this.onScroll = function() { + var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect(); + var newTop = top + startScroll.top - curScroll.top; + var point = newTop - (parentWindow.pageYOffset || (ownerDocument.documentElement || ownerDocument.body).scrollTop); + if (!below) point += hints.offsetHeight; + if (point <= editor.top || point >= editor.bottom) return completion.close(); + hints.style.top = newTop + "px"; + hints.style.left = (left + startScroll.left - curScroll.left) + "px"; + }); + + CodeMirror.on(hints, "dblclick", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();} + }); + + CodeMirror.on(hints, "click", function(e) { + var t = getHintElement(hints, e.target || e.srcElement); + if (t && t.hintId != null) { + widget.changeActive(t.hintId); + if (completion.options.completeOnSingleClick) widget.pick(); + } + }); + + CodeMirror.on(hints, "mousedown", function() { + setTimeout(function(){cm.focus();}, 20); + }); + + CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]); + return true; + } + + Widget.prototype = { + close: function() { + if (this.completion.widget != this) return; + this.completion.widget = null; + this.hints.parentNode.removeChild(this.hints); + this.completion.cm.removeKeyMap(this.keyMap); + + var cm = this.completion.cm; + if (this.completion.options.closeOnUnfocus) { + cm.off("blur", this.onBlur); + cm.off("focus", this.onFocus); + } + cm.off("scroll", this.onScroll); + }, + + disable: function() { + this.completion.cm.removeKeyMap(this.keyMap); + var widget = this; + this.keyMap = {Enter: function() { widget.picked = true; }}; + this.completion.cm.addKeyMap(this.keyMap); + }, + + pick: function() { + this.completion.pick(this.data, this.selectedHint); + }, + + changeActive: function(i, avoidWrap) { + if (i >= this.data.list.length) + i = avoidWrap ? this.data.list.length - 1 : 0; + else if (i < 0) + i = avoidWrap ? 0 : this.data.list.length - 1; + if (this.selectedHint == i) return; + var node = this.hints.childNodes[this.selectedHint]; + if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, ""); + node = this.hints.childNodes[this.selectedHint = i]; + node.className += " " + ACTIVE_HINT_ELEMENT_CLASS; + if (node.offsetTop < this.hints.scrollTop) + this.hints.scrollTop = node.offsetTop - 3; + else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight) + this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3; + CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node); + }, + + screenAmount: function() { + return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1; + } + }; + + function applicableHelpers(cm, helpers) { + if (!cm.somethingSelected()) return helpers + var result = [] + for (var i = 0; i < helpers.length; i++) + if (helpers[i].supportsSelection) result.push(helpers[i]) + return result + } + + function fetchHints(hint, cm, options, callback) { + if (hint.async) { + hint(cm, callback, options) + } else { + var result = hint(cm, options) + if (result && result.then) result.then(callback) + else callback(result) + } + } + + function resolveAutoHints(cm, pos) { + var helpers = cm.getHelpers(pos, "hint"), words + if (helpers.length) { + var resolved = function(cm, callback, options) { + var app = applicableHelpers(cm, helpers); + function run(i) { + if (i == app.length) return callback(null) + fetchHints(app[i], cm, options, function(result) { + if (result && result.list.length > 0) callback(result) + else run(i + 1) + }) + } + run(0) + } + resolved.async = true + resolved.supportsSelection = true + return resolved + } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) { + return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) } + } else if (CodeMirror.hint.anyword) { + return function(cm, options) { return CodeMirror.hint.anyword(cm, options) } + } else { + return function() {} + } + } + + CodeMirror.registerHelper("hint", "auto", { + resolve: resolveAutoHints + }); + + CodeMirror.registerHelper("hint", "fromList", function(cm, options) { + var cur = cm.getCursor(), token = cm.getTokenAt(cur) + var term, from = CodeMirror.Pos(cur.line, token.start), to = cur + if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) { + term = token.string.substr(0, cur.ch - token.start) + } else { + term = "" + from = cur + } + var found = []; + for (var i = 0; i < options.words.length; i++) { + var word = options.words[i]; + if (word.slice(0, term.length) == term) + found.push(word); + } + + if (found.length) return {list: found, from: from, to: to}; + }); + + CodeMirror.commands.autocomplete = CodeMirror.showHint; + + var defaultOptions = { + hint: CodeMirror.hint.auto, + completeSingle: true, + alignWithWord: true, + closeCharacters: /[\s()\[\]{};:>,]/, + closeOnUnfocus: true, + completeOnSingleClick: true, + container: null, + customKeys: null, + extraKeys: null + }; + + CodeMirror.defineOption("hintOptions", null); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/hint/xml-hint.js": +/*!********************************************************!*\ + !*** ./node_modules/codemirror/addon/hint/xml-hint.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var Pos = CodeMirror.Pos; + + function matches(hint, typed, matchInMiddle) { + if (matchInMiddle) return hint.indexOf(typed) >= 0; + else return hint.lastIndexOf(typed, 0) == 0; + } + + function getHints(cm, options) { + var tags = options && options.schemaInfo; + var quote = (options && options.quoteChar) || '"'; + var matchInMiddle = options && options.matchInMiddle; + if (!tags) return; + var cur = cm.getCursor(), token = cm.getTokenAt(cur); + if (token.end > cur.ch) { + token.end = cur.ch; + token.string = token.string.slice(0, cur.ch - token.start); + } + var inner = CodeMirror.innerMode(cm.getMode(), token.state); + if (inner.mode.name != "xml") return; + var result = [], replaceToken = false, prefix; + var tag = /\btag\b/.test(token.type) && !/>$/.test(token.string); + var tagName = tag && /^\w/.test(token.string), tagStart; + + if (tagName) { + var before = cm.getLine(cur.line).slice(Math.max(0, token.start - 2), token.start); + var tagType = /<\/$/.test(before) ? "close" : /<$/.test(before) ? "open" : null; + if (tagType) tagStart = token.start - (tagType == "close" ? 2 : 1); + } else if (tag && token.string == "<") { + tagType = "open"; + } else if (tag && token.string == ""); + } else { + // Attribute completion + var curTag = tags[inner.state.tagName], attrs = curTag && curTag.attrs; + var globalAttrs = tags["!attrs"]; + if (!attrs && !globalAttrs) return; + if (!attrs) { + attrs = globalAttrs; + } else if (globalAttrs) { // Combine tag-local and global attributes + var set = {}; + for (var nm in globalAttrs) if (globalAttrs.hasOwnProperty(nm)) set[nm] = globalAttrs[nm]; + for (var nm in attrs) if (attrs.hasOwnProperty(nm)) set[nm] = attrs[nm]; + attrs = set; + } + if (token.type == "string" || token.string == "=") { // A value + var before = cm.getRange(Pos(cur.line, Math.max(0, cur.ch - 60)), + Pos(cur.line, token.type == "string" ? token.start : token.end)); + var atName = before.match(/([^\s\u00a0=<>\"\']+)=$/), atValues; + if (!atName || !attrs.hasOwnProperty(atName[1]) || !(atValues = attrs[atName[1]])) return; + if (typeof atValues == 'function') atValues = atValues.call(this, cm); // Functions can be used to supply values for autocomplete widget + if (token.type == "string") { + prefix = token.string; + var n = 0; + if (/['"]/.test(token.string.charAt(0))) { + quote = token.string.charAt(0); + prefix = token.string.slice(1); + n++; + } + var len = token.string.length; + if (/['"]/.test(token.string.charAt(len - 1))) { + quote = token.string.charAt(len - 1); + prefix = token.string.substr(n, len - 2); + } + if (n) { // an opening quote + var line = cm.getLine(cur.line); + if (line.length > token.end && line.charAt(token.end) == quote) token.end++; // include a closing quote + } + replaceToken = true; + } + for (var i = 0; i < atValues.length; ++i) if (!prefix || matches(atValues[i], prefix, matchInMiddle)) + result.push(quote + atValues[i] + quote); + } else { // An attribute name + if (token.type == "attribute") { + prefix = token.string; + replaceToken = true; + } + for (var attr in attrs) if (attrs.hasOwnProperty(attr) && (!prefix || matches(attr, prefix, matchInMiddle))) + result.push(attr); + } + } + return { + list: result, + from: replaceToken ? Pos(cur.line, tagStart == null ? token.start : tagStart) : cur, + to: replaceToken ? Pos(cur.line, token.end) : cur + }; + } + + CodeMirror.registerHelper("hint", "xml", getHints); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/mode/overlay.js": +/*!*******************************************************!*\ + !*** ./node_modules/codemirror/addon/mode/overlay.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// Utility function that allows modes to be combined. The mode given +// as the base argument takes care of most of the normal mode +// functionality, but a second (typically simple) mode is used, which +// can override the style of text. Both modes get to parse all of the +// text, but when both assign a non-null style to a piece of code, the +// overlay wins, unless the combine argument was true and not overridden, +// or state.overlay.combineTokens was true, in which case the styles are +// combined. + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +CodeMirror.overlayMode = function(base, overlay, combine) { + return { + startState: function() { + return { + base: CodeMirror.startState(base), + overlay: CodeMirror.startState(overlay), + basePos: 0, baseCur: null, + overlayPos: 0, overlayCur: null, + streamSeen: null + }; + }, + copyState: function(state) { + return { + base: CodeMirror.copyState(base, state.base), + overlay: CodeMirror.copyState(overlay, state.overlay), + basePos: state.basePos, baseCur: null, + overlayPos: state.overlayPos, overlayCur: null + }; + }, + + token: function(stream, state) { + if (stream != state.streamSeen || + Math.min(state.basePos, state.overlayPos) < stream.start) { + state.streamSeen = stream; + state.basePos = state.overlayPos = stream.start; + } + + if (stream.start == state.basePos) { + state.baseCur = base.token(stream, state.base); + state.basePos = stream.pos; + } + if (stream.start == state.overlayPos) { + stream.pos = stream.start; + state.overlayCur = overlay.token(stream, state.overlay); + state.overlayPos = stream.pos; + } + stream.pos = Math.min(state.basePos, state.overlayPos); + + // state.overlay.combineTokens always takes precedence over combine, + // unless set to null + if (state.overlayCur == null) return state.baseCur; + else if (state.baseCur != null && + state.overlay.combineTokens || + combine && state.overlay.combineTokens == null) + return state.baseCur + " " + state.overlayCur; + else return state.overlayCur; + }, + + indent: base.indent && function(state, textAfter, line) { + return base.indent(state.base, textAfter, line); + }, + electricChars: base.electricChars, + + innerMode: function(state) { return {state: state.base, mode: base}; }, + + blankLine: function(state) { + var baseToken, overlayToken; + if (base.blankLine) baseToken = base.blankLine(state.base); + if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay); + + return overlayToken == null ? + baseToken : + (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken); + } + }; +}; + +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/addon/search/searchcursor.js": +/*!**************************************************************!*\ + !*** ./node_modules/codemirror/addon/search/searchcursor.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")) + else {} +})(function(CodeMirror) { + "use strict" + var Pos = CodeMirror.Pos + + function regexpFlags(regexp) { + var flags = regexp.flags + return flags != null ? flags : (regexp.ignoreCase ? "i" : "") + + (regexp.global ? "g" : "") + + (regexp.multiline ? "m" : "") + } + + function ensureFlags(regexp, flags) { + var current = regexpFlags(regexp), target = current + for (var i = 0; i < flags.length; i++) if (target.indexOf(flags.charAt(i)) == -1) + target += flags.charAt(i) + return current == target ? regexp : new RegExp(regexp.source, target) + } + + function maybeMultiline(regexp) { + return /\\s|\\n|\n|\\W|\\D|\[\^/.test(regexp.source) + } + + function searchRegexpForward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g") + for (var line = start.line, ch = start.ch, last = doc.lastLine(); line <= last; line++, ch = 0) { + regexp.lastIndex = ch + var string = doc.getLine(line), match = regexp.exec(string) + if (match) + return {from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match} + } + } + + function searchRegexpForwardMultiline(doc, regexp, start) { + if (!maybeMultiline(regexp)) return searchRegexpForward(doc, regexp, start) + + regexp = ensureFlags(regexp, "gm") + var string, chunk = 1 + for (var line = start.line, last = doc.lastLine(); line <= last;) { + // This grows the search buffer in exponentially-sized chunks + // between matches, so that nearby matches are fast and don't + // require concatenating the whole document (in case we're + // searching for something that has tons of matches), but at the + // same time, the amount of retries is limited. + for (var i = 0; i < chunk; i++) { + if (line > last) break + var curLine = doc.getLine(line++) + string = string == null ? curLine : string + "\n" + curLine + } + chunk = chunk * 2 + regexp.lastIndex = start.ch + var match = regexp.exec(string) + if (match) { + var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n") + var startLine = start.line + before.length - 1, startCh = before[before.length - 1].length + return {from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, + inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match} + } + } + } + + function lastMatchIn(string, regexp) { + var cutOff = 0, match + for (;;) { + regexp.lastIndex = cutOff + var newMatch = regexp.exec(string) + if (!newMatch) return match + match = newMatch + cutOff = match.index + (match[0].length || 1) + if (cutOff == string.length) return match + } + } + + function searchRegexpBackward(doc, regexp, start) { + regexp = ensureFlags(regexp, "g") + for (var line = start.line, ch = start.ch, first = doc.firstLine(); line >= first; line--, ch = -1) { + var string = doc.getLine(line) + if (ch > -1) string = string.slice(0, ch) + var match = lastMatchIn(string, regexp) + if (match) + return {from: Pos(line, match.index), + to: Pos(line, match.index + match[0].length), + match: match} + } + } + + function searchRegexpBackwardMultiline(doc, regexp, start) { + regexp = ensureFlags(regexp, "gm") + var string, chunk = 1 + for (var line = start.line, first = doc.firstLine(); line >= first;) { + for (var i = 0; i < chunk; i++) { + var curLine = doc.getLine(line--) + string = string == null ? curLine.slice(0, start.ch) : curLine + "\n" + string + } + chunk *= 2 + + var match = lastMatchIn(string, regexp) + if (match) { + var before = string.slice(0, match.index).split("\n"), inside = match[0].split("\n") + var startLine = line + before.length, startCh = before[before.length - 1].length + return {from: Pos(startLine, startCh), + to: Pos(startLine + inside.length - 1, + inside.length == 1 ? startCh + inside[0].length : inside[inside.length - 1].length), + match: match} + } + } + } + + var doFold, noFold + if (String.prototype.normalize) { + doFold = function(str) { return str.normalize("NFD").toLowerCase() } + noFold = function(str) { return str.normalize("NFD") } + } else { + doFold = function(str) { return str.toLowerCase() } + noFold = function(str) { return str } + } + + // Maps a position in a case-folded line back to a position in the original line + // (compensating for codepoints increasing in number during folding) + function adjustPos(orig, folded, pos, foldFunc) { + if (orig.length == folded.length) return pos + for (var min = 0, max = pos + Math.max(0, orig.length - folded.length);;) { + if (min == max) return min + var mid = (min + max) >> 1 + var len = foldFunc(orig.slice(0, mid)).length + if (len == pos) return mid + else if (len > pos) max = mid + else min = mid + 1 + } + } + + function searchStringForward(doc, query, start, caseFold) { + // Empty string would match anything and never progress, so we + // define it to match nothing instead. + if (!query.length) return null + var fold = caseFold ? doFold : noFold + var lines = fold(query).split(/\r|\n\r?/) + + search: for (var line = start.line, ch = start.ch, last = doc.lastLine() + 1 - lines.length; line <= last; line++, ch = 0) { + var orig = doc.getLine(line).slice(ch), string = fold(orig) + if (lines.length == 1) { + var found = string.indexOf(lines[0]) + if (found == -1) continue search + var start = adjustPos(orig, string, found, fold) + ch + return {from: Pos(line, adjustPos(orig, string, found, fold) + ch), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold) + ch)} + } else { + var cutFrom = string.length - lines[0].length + if (string.slice(cutFrom) != lines[0]) continue search + for (var i = 1; i < lines.length - 1; i++) + if (fold(doc.getLine(line + i)) != lines[i]) continue search + var end = doc.getLine(line + lines.length - 1), endString = fold(end), lastLine = lines[lines.length - 1] + if (endString.slice(0, lastLine.length) != lastLine) continue search + return {from: Pos(line, adjustPos(orig, string, cutFrom, fold) + ch), + to: Pos(line + lines.length - 1, adjustPos(end, endString, lastLine.length, fold))} + } + } + } + + function searchStringBackward(doc, query, start, caseFold) { + if (!query.length) return null + var fold = caseFold ? doFold : noFold + var lines = fold(query).split(/\r|\n\r?/) + + search: for (var line = start.line, ch = start.ch, first = doc.firstLine() - 1 + lines.length; line >= first; line--, ch = -1) { + var orig = doc.getLine(line) + if (ch > -1) orig = orig.slice(0, ch) + var string = fold(orig) + if (lines.length == 1) { + var found = string.lastIndexOf(lines[0]) + if (found == -1) continue search + return {from: Pos(line, adjustPos(orig, string, found, fold)), + to: Pos(line, adjustPos(orig, string, found + lines[0].length, fold))} + } else { + var lastLine = lines[lines.length - 1] + if (string.slice(0, lastLine.length) != lastLine) continue search + for (var i = 1, start = line - lines.length + 1; i < lines.length - 1; i++) + if (fold(doc.getLine(start + i)) != lines[i]) continue search + var top = doc.getLine(line + 1 - lines.length), topString = fold(top) + if (topString.slice(topString.length - lines[0].length) != lines[0]) continue search + return {from: Pos(line + 1 - lines.length, adjustPos(top, topString, top.length - lines[0].length, fold)), + to: Pos(line, adjustPos(orig, string, lastLine.length, fold))} + } + } + } + + function SearchCursor(doc, query, pos, options) { + this.atOccurrence = false + this.doc = doc + pos = pos ? doc.clipPos(pos) : Pos(0, 0) + this.pos = {from: pos, to: pos} + + var caseFold + if (typeof options == "object") { + caseFold = options.caseFold + } else { // Backwards compat for when caseFold was the 4th argument + caseFold = options + options = null + } + + if (typeof query == "string") { + if (caseFold == null) caseFold = false + this.matches = function(reverse, pos) { + return (reverse ? searchStringBackward : searchStringForward)(doc, query, pos, caseFold) + } + } else { + query = ensureFlags(query, "gm") + if (!options || options.multiline !== false) + this.matches = function(reverse, pos) { + return (reverse ? searchRegexpBackwardMultiline : searchRegexpForwardMultiline)(doc, query, pos) + } + else + this.matches = function(reverse, pos) { + return (reverse ? searchRegexpBackward : searchRegexpForward)(doc, query, pos) + } + } + } + + SearchCursor.prototype = { + findNext: function() {return this.find(false)}, + findPrevious: function() {return this.find(true)}, + + find: function(reverse) { + var result = this.matches(reverse, this.doc.clipPos(reverse ? this.pos.from : this.pos.to)) + + // Implements weird auto-growing behavior on null-matches for + // backwards-compatiblity with the vim code (unfortunately) + while (result && CodeMirror.cmpPos(result.from, result.to) == 0) { + if (reverse) { + if (result.from.ch) result.from = Pos(result.from.line, result.from.ch - 1) + else if (result.from.line == this.doc.firstLine()) result = null + else result = this.matches(reverse, this.doc.clipPos(Pos(result.from.line - 1))) + } else { + if (result.to.ch < this.doc.getLine(result.to.line).length) result.to = Pos(result.to.line, result.to.ch + 1) + else if (result.to.line == this.doc.lastLine()) result = null + else result = this.matches(reverse, Pos(result.to.line + 1, 0)) + } + } + + if (result) { + this.pos = result + this.atOccurrence = true + return this.pos.match || true + } else { + var end = Pos(reverse ? this.doc.firstLine() : this.doc.lastLine() + 1, 0) + this.pos = {from: end, to: end} + return this.atOccurrence = false + } + }, + + from: function() {if (this.atOccurrence) return this.pos.from}, + to: function() {if (this.atOccurrence) return this.pos.to}, + + replace: function(newText, origin) { + if (!this.atOccurrence) return + var lines = CodeMirror.splitLines(newText) + this.doc.replaceRange(lines, this.pos.from, this.pos.to, origin) + this.pos.to = Pos(this.pos.from.line + lines.length - 1, + lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)) + } + } + + CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { + return new SearchCursor(this.doc, query, pos, caseFold) + }) + CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) { + return new SearchCursor(this, query, pos, caseFold) + }) + + CodeMirror.defineExtension("selectMatches", function(query, caseFold) { + var ranges = [] + var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold) + while (cur.findNext()) { + if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break + ranges.push({anchor: cur.from(), head: cur.to()}) + } + if (ranges.length) + this.setSelections(ranges, 0) + }) +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/keymap/sublime.js": +/*!***************************************************!*\ + !*** ./node_modules/codemirror/keymap/sublime.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// A rough approximation of Sublime Text's keybindings +// Depends on addon/search/searchcursor.js and optionally addon/dialog/dialogs.js + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../addon/search/searchcursor */ "./node_modules/codemirror/addon/search/searchcursor.js"), __webpack_require__(/*! ../addon/edit/matchbrackets */ "./node_modules/codemirror/addon/edit/matchbrackets.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + var cmds = CodeMirror.commands; + var Pos = CodeMirror.Pos; + + // This is not exactly Sublime's algorithm. I couldn't make heads or tails of that. + function findPosSubword(doc, start, dir) { + if (dir < 0 && start.ch == 0) return doc.clipPos(Pos(start.line - 1)); + var line = doc.getLine(start.line); + if (dir > 0 && start.ch >= line.length) return doc.clipPos(Pos(start.line + 1, 0)); + var state = "start", type; + for (var pos = start.ch, e = dir < 0 ? 0 : line.length, i = 0; pos != e; pos += dir, i++) { + var next = line.charAt(dir < 0 ? pos - 1 : pos); + var cat = next != "_" && CodeMirror.isWordChar(next) ? "w" : "o"; + if (cat == "w" && next.toUpperCase() == next) cat = "W"; + if (state == "start") { + if (cat != "o") { state = "in"; type = cat; } + } else if (state == "in") { + if (type != cat) { + if (type == "w" && cat == "W" && dir < 0) pos--; + if (type == "W" && cat == "w" && dir > 0) { type = "w"; continue; } + break; + } + } + } + return Pos(start.line, pos); + } + + function moveSubword(cm, dir) { + cm.extendSelectionsBy(function(range) { + if (cm.display.shift || cm.doc.extend || range.empty()) + return findPosSubword(cm.doc, range.head, dir); + else + return dir < 0 ? range.from() : range.to(); + }); + } + + cmds.goSubwordLeft = function(cm) { moveSubword(cm, -1); }; + cmds.goSubwordRight = function(cm) { moveSubword(cm, 1); }; + + cmds.scrollLineUp = function(cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleBottomLine = cm.lineAtHeight(info.top + info.clientHeight, "local"); + if (cm.getCursor().line >= visibleBottomLine) + cm.execCommand("goLineUp"); + } + cm.scrollTo(null, info.top - cm.defaultTextHeight()); + }; + cmds.scrollLineDown = function(cm) { + var info = cm.getScrollInfo(); + if (!cm.somethingSelected()) { + var visibleTopLine = cm.lineAtHeight(info.top, "local")+1; + if (cm.getCursor().line <= visibleTopLine) + cm.execCommand("goLineDown"); + } + cm.scrollTo(null, info.top + cm.defaultTextHeight()); + }; + + cmds.splitSelectionByLine = function(cm) { + var ranges = cm.listSelections(), lineRanges = []; + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), to = ranges[i].to(); + for (var line = from.line; line <= to.line; ++line) + if (!(to.line > from.line && line == to.line && to.ch == 0)) + lineRanges.push({anchor: line == from.line ? from : Pos(line, 0), + head: line == to.line ? to : Pos(line)}); + } + cm.setSelections(lineRanges, 0); + }; + + cmds.singleSelectionTop = function(cm) { + var range = cm.listSelections()[0]; + cm.setSelection(range.anchor, range.head, {scroll: false}); + }; + + cmds.selectLine = function(cm) { + var ranges = cm.listSelections(), extended = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + extended.push({anchor: Pos(range.from().line, 0), + head: Pos(range.to().line + 1, 0)}); + } + cm.setSelections(extended); + }; + + function insertLine(cm, above) { + if (cm.isReadOnly()) return CodeMirror.Pass + cm.operation(function() { + var len = cm.listSelections().length, newSelection = [], last = -1; + for (var i = 0; i < len; i++) { + var head = cm.listSelections()[i].head; + if (head.line <= last) continue; + var at = Pos(head.line + (above ? 0 : 1), 0); + cm.replaceRange("\n", at, null, "+insertLine"); + cm.indentLine(at.line, null, true); + newSelection.push({head: at, anchor: at}); + last = head.line + 1; + } + cm.setSelections(newSelection); + }); + cm.execCommand("indentAuto"); + } + + cmds.insertLineAfter = function(cm) { return insertLine(cm, false); }; + + cmds.insertLineBefore = function(cm) { return insertLine(cm, true); }; + + function wordAt(cm, pos) { + var start = pos.ch, end = start, line = cm.getLine(pos.line); + while (start && CodeMirror.isWordChar(line.charAt(start - 1))) --start; + while (end < line.length && CodeMirror.isWordChar(line.charAt(end))) ++end; + return {from: Pos(pos.line, start), to: Pos(pos.line, end), word: line.slice(start, end)}; + } + + cmds.selectNextOccurrence = function(cm) { + var from = cm.getCursor("from"), to = cm.getCursor("to"); + var fullWord = cm.state.sublimeFindFullWord == cm.doc.sel; + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + cm.setSelection(word.from, word.to); + fullWord = true; + } else { + var text = cm.getRange(from, to); + var query = fullWord ? new RegExp("\\b" + text + "\\b") : text; + var cur = cm.getSearchCursor(query, to); + var found = cur.findNext(); + if (!found) { + cur = cm.getSearchCursor(query, Pos(cm.firstLine(), 0)); + found = cur.findNext(); + } + if (!found || isSelectedRange(cm.listSelections(), cur.from(), cur.to())) + return CodeMirror.Pass + cm.addSelection(cur.from(), cur.to()); + } + if (fullWord) + cm.state.sublimeFindFullWord = cm.doc.sel; + }; + + function addCursorToSelection(cm, dir) { + var ranges = cm.listSelections(), newRanges = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + var newAnchor = cm.findPosV( + range.anchor, dir, "line", range.anchor.goalColumn); + var newHead = cm.findPosV( + range.head, dir, "line", range.head.goalColumn); + newAnchor.goalColumn = range.anchor.goalColumn != null ? + range.anchor.goalColumn : cm.cursorCoords(range.anchor, "div").left; + newHead.goalColumn = range.head.goalColumn != null ? + range.head.goalColumn : cm.cursorCoords(range.head, "div").left; + var newRange = {anchor: newAnchor, head: newHead}; + newRanges.push(range); + newRanges.push(newRange); + } + cm.setSelections(newRanges); + } + cmds.addCursorToPrevLine = function(cm) { addCursorToSelection(cm, -1); }; + cmds.addCursorToNextLine = function(cm) { addCursorToSelection(cm, 1); }; + + function isSelectedRange(ranges, from, to) { + for (var i = 0; i < ranges.length; i++) + if (ranges[i].from() == from && ranges[i].to() == to) return true + return false + } + + var mirror = "(){}[]"; + function selectBetweenBrackets(cm) { + var ranges = cm.listSelections(), newRanges = [] + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], pos = range.head, opening = cm.scanForBracket(pos, -1); + if (!opening) return false; + for (;;) { + var closing = cm.scanForBracket(pos, 1); + if (!closing) return false; + if (closing.ch == mirror.charAt(mirror.indexOf(opening.ch) + 1)) { + var startPos = Pos(opening.pos.line, opening.pos.ch + 1); + if (CodeMirror.cmpPos(startPos, range.from()) == 0 && + CodeMirror.cmpPos(closing.pos, range.to()) == 0) { + opening = cm.scanForBracket(opening.pos, -1); + if (!opening) return false; + } else { + newRanges.push({anchor: startPos, head: closing.pos}); + break; + } + } + pos = Pos(closing.pos.line, closing.pos.ch + 1); + } + } + cm.setSelections(newRanges); + return true; + } + + cmds.selectScope = function(cm) { + selectBetweenBrackets(cm) || cm.execCommand("selectAll"); + }; + cmds.selectBetweenBrackets = function(cm) { + if (!selectBetweenBrackets(cm)) return CodeMirror.Pass; + }; + + cmds.goToBracket = function(cm) { + cm.extendSelectionsBy(function(range) { + var next = cm.scanForBracket(range.head, 1); + if (next && CodeMirror.cmpPos(next.pos, range.head) != 0) return next.pos; + var prev = cm.scanForBracket(range.head, -1); + return prev && Pos(prev.pos.line, prev.pos.ch + 1) || range.head; + }); + }; + + cmds.swapLineUp = function(cm) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), linesToMove = [], at = cm.firstLine() - 1, newSels = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], from = range.from().line - 1, to = range.to().line; + newSels.push({anchor: Pos(range.anchor.line - 1, range.anchor.ch), + head: Pos(range.head.line - 1, range.head.ch)}); + if (range.to().ch == 0 && !range.empty()) --to; + if (from > at) linesToMove.push(from, to); + else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function() { + for (var i = 0; i < linesToMove.length; i += 2) { + var from = linesToMove[i], to = linesToMove[i + 1]; + var line = cm.getLine(from); + cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + if (to > cm.lastLine()) + cm.replaceRange("\n" + line, Pos(cm.lastLine()), null, "+swapLine"); + else + cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.setSelections(newSels); + cm.scrollIntoView(); + }); + }; + + cmds.swapLineDown = function(cm) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), linesToMove = [], at = cm.lastLine() + 1; + for (var i = ranges.length - 1; i >= 0; i--) { + var range = ranges[i], from = range.to().line + 1, to = range.from().line; + if (range.to().ch == 0 && !range.empty()) from--; + if (from < at) linesToMove.push(from, to); + else if (linesToMove.length) linesToMove[linesToMove.length - 1] = to; + at = to; + } + cm.operation(function() { + for (var i = linesToMove.length - 2; i >= 0; i -= 2) { + var from = linesToMove[i], to = linesToMove[i + 1]; + var line = cm.getLine(from); + if (from == cm.lastLine()) + cm.replaceRange("", Pos(from - 1), Pos(from), "+swapLine"); + else + cm.replaceRange("", Pos(from, 0), Pos(from + 1, 0), "+swapLine"); + cm.replaceRange(line + "\n", Pos(to, 0), null, "+swapLine"); + } + cm.scrollIntoView(); + }); + }; + + cmds.toggleCommentIndented = function(cm) { + cm.toggleComment({ indent: true }); + } + + cmds.joinLines = function(cm) { + var ranges = cm.listSelections(), joined = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], from = range.from(); + var start = from.line, end = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == end) + end = ranges[++i].to().line; + joined.push({start: start, end: end, anchor: !range.empty() && from}); + } + cm.operation(function() { + var offset = 0, ranges = []; + for (var i = 0; i < joined.length; i++) { + var obj = joined[i]; + var anchor = obj.anchor && Pos(obj.anchor.line - offset, obj.anchor.ch), head; + for (var line = obj.start; line <= obj.end; line++) { + var actual = line - offset; + if (line == obj.end) head = Pos(actual, cm.getLine(actual).length + 1); + if (actual < cm.lastLine()) { + cm.replaceRange(" ", Pos(actual), Pos(actual + 1, /^\s*/.exec(cm.getLine(actual + 1))[0].length)); + ++offset; + } + } + ranges.push({anchor: anchor || head, head: head}); + } + cm.setSelections(ranges, 0); + }); + }; + + cmds.duplicateLine = function(cm) { + cm.operation(function() { + var rangeCount = cm.listSelections().length; + for (var i = 0; i < rangeCount; i++) { + var range = cm.listSelections()[i]; + if (range.empty()) + cm.replaceRange(cm.getLine(range.head.line) + "\n", Pos(range.head.line, 0)); + else + cm.replaceRange(cm.getRange(range.from(), range.to()), range.from()); + } + cm.scrollIntoView(); + }); + }; + + + function sortLines(cm, caseSensitive) { + if (cm.isReadOnly()) return CodeMirror.Pass + var ranges = cm.listSelections(), toSort = [], selected; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) continue; + var from = range.from().line, to = range.to().line; + while (i < ranges.length - 1 && ranges[i + 1].from().line == to) + to = ranges[++i].to().line; + if (!ranges[i].to().ch) to--; + toSort.push(from, to); + } + if (toSort.length) selected = true; + else toSort.push(cm.firstLine(), cm.lastLine()); + + cm.operation(function() { + var ranges = []; + for (var i = 0; i < toSort.length; i += 2) { + var from = toSort[i], to = toSort[i + 1]; + var start = Pos(from, 0), end = Pos(to); + var lines = cm.getRange(start, end, false); + if (caseSensitive) + lines.sort(); + else + lines.sort(function(a, b) { + var au = a.toUpperCase(), bu = b.toUpperCase(); + if (au != bu) { a = au; b = bu; } + return a < b ? -1 : a == b ? 0 : 1; + }); + cm.replaceRange(lines, start, end); + if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)}); + } + if (selected) cm.setSelections(ranges, 0); + }); + } + + cmds.sortLines = function(cm) { sortLines(cm, true); }; + cmds.sortLinesInsensitive = function(cm) { sortLines(cm, false); }; + + cmds.nextBookmark = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + var current = marks.shift(); + var found = current.find(); + if (found) { + marks.push(current); + return cm.setSelection(found.from, found.to); + } + } + }; + + cmds.prevBookmark = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) while (marks.length) { + marks.unshift(marks.pop()); + var found = marks[marks.length - 1].find(); + if (!found) + marks.pop(); + else + return cm.setSelection(found.from, found.to); + } + }; + + cmds.toggleBookmark = function(cm) { + var ranges = cm.listSelections(); + var marks = cm.state.sublimeBookmarks || (cm.state.sublimeBookmarks = []); + for (var i = 0; i < ranges.length; i++) { + var from = ranges[i].from(), to = ranges[i].to(); + var found = ranges[i].empty() ? cm.findMarksAt(from) : cm.findMarks(from, to); + for (var j = 0; j < found.length; j++) { + if (found[j].sublimeBookmark) { + found[j].clear(); + for (var k = 0; k < marks.length; k++) + if (marks[k] == found[j]) + marks.splice(k--, 1); + break; + } + } + if (j == found.length) + marks.push(cm.markText(from, to, {sublimeBookmark: true, clearWhenEmpty: false})); + } + }; + + cmds.clearBookmarks = function(cm) { + var marks = cm.state.sublimeBookmarks; + if (marks) for (var i = 0; i < marks.length; i++) marks[i].clear(); + marks.length = 0; + }; + + cmds.selectBookmarks = function(cm) { + var marks = cm.state.sublimeBookmarks, ranges = []; + if (marks) for (var i = 0; i < marks.length; i++) { + var found = marks[i].find(); + if (!found) + marks.splice(i--, 0); + else + ranges.push({anchor: found.from, head: found.to}); + } + if (ranges.length) + cm.setSelections(ranges, 0); + }; + + function modifyWordOrSelection(cm, mod) { + cm.operation(function() { + var ranges = cm.listSelections(), indices = [], replacements = []; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (range.empty()) { indices.push(i); replacements.push(""); } + else replacements.push(mod(cm.getRange(range.from(), range.to()))); + } + cm.replaceSelections(replacements, "around", "case"); + for (var i = indices.length - 1, at; i >= 0; i--) { + var range = ranges[indices[i]]; + if (at && CodeMirror.cmpPos(range.head, at) > 0) continue; + var word = wordAt(cm, range.head); + at = word.from; + cm.replaceRange(mod(word.word), word.from, word.to); + } + }); + } + + cmds.smartBackspace = function(cm) { + if (cm.somethingSelected()) return CodeMirror.Pass; + + cm.operation(function() { + var cursors = cm.listSelections(); + var indentUnit = cm.getOption("indentUnit"); + + for (var i = cursors.length - 1; i >= 0; i--) { + var cursor = cursors[i].head; + var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor); + var column = CodeMirror.countColumn(toStartOfLine, null, cm.getOption("tabSize")); + + // Delete by one character by default + var deletePos = cm.findPosH(cursor, -1, "char", false); + + if (toStartOfLine && !/\S/.test(toStartOfLine) && column % indentUnit == 0) { + var prevIndent = new Pos(cursor.line, + CodeMirror.findColumn(toStartOfLine, column - indentUnit, indentUnit)); + + // Smart delete only if we found a valid prevIndent location + if (prevIndent.ch != cursor.ch) deletePos = prevIndent; + } + + cm.replaceRange("", deletePos, cursor, "+delete"); + } + }); + }; + + cmds.delLineRight = function(cm) { + cm.operation(function() { + var ranges = cm.listSelections(); + for (var i = ranges.length - 1; i >= 0; i--) + cm.replaceRange("", ranges[i].anchor, Pos(ranges[i].to().line), "+delete"); + cm.scrollIntoView(); + }); + }; + + cmds.upcaseAtCursor = function(cm) { + modifyWordOrSelection(cm, function(str) { return str.toUpperCase(); }); + }; + cmds.downcaseAtCursor = function(cm) { + modifyWordOrSelection(cm, function(str) { return str.toLowerCase(); }); + }; + + cmds.setSublimeMark = function(cm) { + if (cm.state.sublimeMark) cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + }; + cmds.selectToSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) cm.setSelection(cm.getCursor(), found); + }; + cmds.deleteToSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + var from = cm.getCursor(), to = found; + if (CodeMirror.cmpPos(from, to) > 0) { var tmp = to; to = from; from = tmp; } + cm.state.sublimeKilled = cm.getRange(from, to); + cm.replaceRange("", from, to); + } + }; + cmds.swapWithSublimeMark = function(cm) { + var found = cm.state.sublimeMark && cm.state.sublimeMark.find(); + if (found) { + cm.state.sublimeMark.clear(); + cm.state.sublimeMark = cm.setBookmark(cm.getCursor()); + cm.setCursor(found); + } + }; + cmds.sublimeYank = function(cm) { + if (cm.state.sublimeKilled != null) + cm.replaceSelection(cm.state.sublimeKilled, null, "paste"); + }; + + cmds.showInCenter = function(cm) { + var pos = cm.cursorCoords(null, "local"); + cm.scrollTo(null, (pos.top + pos.bottom) / 2 - cm.getScrollInfo().clientHeight / 2); + }; + + function getTarget(cm) { + var from = cm.getCursor("from"), to = cm.getCursor("to"); + if (CodeMirror.cmpPos(from, to) == 0) { + var word = wordAt(cm, from); + if (!word.word) return; + from = word.from; + to = word.to; + } + return {from: from, to: to, query: cm.getRange(from, to), word: word}; + } + + function findAndGoTo(cm, forward) { + var target = getTarget(cm); + if (!target) return; + var query = target.query; + var cur = cm.getSearchCursor(query, forward ? target.to : target.from); + + if (forward ? cur.findNext() : cur.findPrevious()) { + cm.setSelection(cur.from(), cur.to()); + } else { + cur = cm.getSearchCursor(query, forward ? Pos(cm.firstLine(), 0) + : cm.clipPos(Pos(cm.lastLine()))); + if (forward ? cur.findNext() : cur.findPrevious()) + cm.setSelection(cur.from(), cur.to()); + else if (target.word) + cm.setSelection(target.from, target.to); + } + }; + cmds.findUnder = function(cm) { findAndGoTo(cm, true); }; + cmds.findUnderPrevious = function(cm) { findAndGoTo(cm,false); }; + cmds.findAllUnder = function(cm) { + var target = getTarget(cm); + if (!target) return; + var cur = cm.getSearchCursor(target.query); + var matches = []; + var primaryIndex = -1; + while (cur.findNext()) { + matches.push({anchor: cur.from(), head: cur.to()}); + if (cur.from().line <= target.from.line && cur.from().ch <= target.from.ch) + primaryIndex++; + } + cm.setSelections(matches, primaryIndex); + }; + + + var keyMap = CodeMirror.keyMap; + keyMap.macSublime = { + "Cmd-Left": "goLineStartSmart", + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-Left": "goSubwordLeft", + "Ctrl-Right": "goSubwordRight", + "Ctrl-Alt-Up": "scrollLineUp", + "Ctrl-Alt-Down": "scrollLineDown", + "Cmd-L": "selectLine", + "Shift-Cmd-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Cmd-Enter": "insertLineAfter", + "Shift-Cmd-Enter": "insertLineBefore", + "Cmd-D": "selectNextOccurrence", + "Shift-Cmd-Space": "selectScope", + "Shift-Cmd-M": "selectBetweenBrackets", + "Cmd-M": "goToBracket", + "Cmd-Ctrl-Up": "swapLineUp", + "Cmd-Ctrl-Down": "swapLineDown", + "Cmd-/": "toggleCommentIndented", + "Cmd-J": "joinLines", + "Shift-Cmd-D": "duplicateLine", + "F5": "sortLines", + "Cmd-F5": "sortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Cmd-F2": "toggleBookmark", + "Shift-Cmd-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Cmd-K Cmd-K": "delLineRight", + "Cmd-K Cmd-U": "upcaseAtCursor", + "Cmd-K Cmd-L": "downcaseAtCursor", + "Cmd-K Cmd-Space": "setSublimeMark", + "Cmd-K Cmd-A": "selectToSublimeMark", + "Cmd-K Cmd-W": "deleteToSublimeMark", + "Cmd-K Cmd-X": "swapWithSublimeMark", + "Cmd-K Cmd-Y": "sublimeYank", + "Cmd-K Cmd-C": "showInCenter", + "Cmd-K Cmd-G": "clearBookmarks", + "Cmd-K Cmd-Backspace": "delLineLeft", + "Cmd-K Cmd-0": "unfoldAll", + "Cmd-K Cmd-J": "unfoldAll", + "Ctrl-Shift-Up": "addCursorToPrevLine", + "Ctrl-Shift-Down": "addCursorToNextLine", + "Cmd-F3": "findUnder", + "Shift-Cmd-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Cmd-[": "fold", + "Shift-Cmd-]": "unfold", + "Cmd-I": "findIncremental", + "Shift-Cmd-I": "findIncrementalReverse", + "Cmd-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "macDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.macSublime); + + keyMap.pcSublime = { + "Shift-Tab": "indentLess", + "Shift-Ctrl-K": "deleteLine", + "Alt-Q": "wrapLines", + "Ctrl-T": "transposeChars", + "Alt-Left": "goSubwordLeft", + "Alt-Right": "goSubwordRight", + "Ctrl-Up": "scrollLineUp", + "Ctrl-Down": "scrollLineDown", + "Ctrl-L": "selectLine", + "Shift-Ctrl-L": "splitSelectionByLine", + "Esc": "singleSelectionTop", + "Ctrl-Enter": "insertLineAfter", + "Shift-Ctrl-Enter": "insertLineBefore", + "Ctrl-D": "selectNextOccurrence", + "Shift-Ctrl-Space": "selectScope", + "Shift-Ctrl-M": "selectBetweenBrackets", + "Ctrl-M": "goToBracket", + "Shift-Ctrl-Up": "swapLineUp", + "Shift-Ctrl-Down": "swapLineDown", + "Ctrl-/": "toggleCommentIndented", + "Ctrl-J": "joinLines", + "Shift-Ctrl-D": "duplicateLine", + "F9": "sortLines", + "Ctrl-F9": "sortLinesInsensitive", + "F2": "nextBookmark", + "Shift-F2": "prevBookmark", + "Ctrl-F2": "toggleBookmark", + "Shift-Ctrl-F2": "clearBookmarks", + "Alt-F2": "selectBookmarks", + "Backspace": "smartBackspace", + "Ctrl-K Ctrl-K": "delLineRight", + "Ctrl-K Ctrl-U": "upcaseAtCursor", + "Ctrl-K Ctrl-L": "downcaseAtCursor", + "Ctrl-K Ctrl-Space": "setSublimeMark", + "Ctrl-K Ctrl-A": "selectToSublimeMark", + "Ctrl-K Ctrl-W": "deleteToSublimeMark", + "Ctrl-K Ctrl-X": "swapWithSublimeMark", + "Ctrl-K Ctrl-Y": "sublimeYank", + "Ctrl-K Ctrl-C": "showInCenter", + "Ctrl-K Ctrl-G": "clearBookmarks", + "Ctrl-K Ctrl-Backspace": "delLineLeft", + "Ctrl-K Ctrl-0": "unfoldAll", + "Ctrl-K Ctrl-J": "unfoldAll", + "Ctrl-Alt-Up": "addCursorToPrevLine", + "Ctrl-Alt-Down": "addCursorToNextLine", + "Ctrl-F3": "findUnder", + "Shift-Ctrl-F3": "findUnderPrevious", + "Alt-F3": "findAllUnder", + "Shift-Ctrl-[": "fold", + "Shift-Ctrl-]": "unfold", + "Ctrl-I": "findIncremental", + "Shift-Ctrl-I": "findIncrementalReverse", + "Ctrl-H": "replace", + "F3": "findNext", + "Shift-F3": "findPrev", + "fallthrough": "pcDefault" + }; + CodeMirror.normalizeKeyMap(keyMap.pcSublime); + + var mac = keyMap.default == keyMap.macDefault; + keyMap.sublime = mac ? keyMap.macSublime : keyMap.pcSublime; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/lib/codemirror.js": +/*!***************************************************!*\ + !*** ./node_modules/codemirror/lib/codemirror.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + true ? module.exports = factory() : + undefined; +}(this, (function () { 'use strict'; + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + + var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { presto_version = Number(presto_version[1]); } + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") } + + var rmClass = function(node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + { e.removeChild(e.firstChild); } + return e + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e) + } + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { e.className = className; } + if (style) { e.style.cssText = style; } + if (typeof content == "string") { e.appendChild(document.createTextNode(content)); } + else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } } + return e + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e + } + + var range; + if (document.createRange) { range = function(node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r + }; } + else { range = function(node, start, end) { + var r = document.body.createTextRange(); + try { r.moveToElementText(node.parentNode); } + catch(e) { return r } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r + }; } + + function contains(parent, child) { + if (child.nodeType == 3) // Android browser always returns false when child is a textnode + { child = child.parentNode; } + if (parent.contains) + { return parent.contains(child) } + do { + if (child.nodeType == 11) { child = child.host; } + if (child == parent) { return true } + } while (child = child.parentNode) + } + + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch(e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) + { activeElement = activeElement.shadowRoot.activeElement; } + return activeElement + } + + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } } + return b + } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; } + else if (ie) // Suppress mysterious IE10 errors + { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args)} + } + + function copyObj(obj, target, overwrite) { + if (!target) { target = {}; } + for (var prop in obj) + { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + { target[prop] = obj[prop]; } } + return target + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { end = string.length; } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + { return n + (end - i) } + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + } + + var Delayed = function() {this.id = null;}; + Delayed.prototype.set = function (ms, f) { + clearTimeout(this.id); + this.id = setTimeout(f, ms); + }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + { if (array[i] == elt) { return i } } + return -1 + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 30; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = {toString: function(){return "CodeMirror.Pass"}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { nextTab = string.length; } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + { return pos + Math.min(skipped, goal - col) } + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) { return pos } + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + { spaceStrs.push(lst(spaceStrs) + " "); } + return spaceStrs[n] + } + + function lst(arr) { return arr[arr.length-1] } + + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); } + return out + } + + function insertSorted(array, value, score) { + var pos = 0, priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { pos++; } + array.splice(pos, 0, value); + } + + function nothing() {} + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { copyObj(props, inst); } + return inst + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)) + } + function isWordChar(ch, helper) { + if (!helper) { return isWordCharBasic(ch) } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true } + return helper.test(ch) + } + + function isEmpty(obj) { + for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } } + return true + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; } + return pos + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { return from } + var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { return pred(mid) ? from : to } + if (pred(mid)) { to = mid; } + else { from = mid + dir; } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { return f(from, to, "ltr", 0) } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { f(from, to, "ltr"); } + } + + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { return i } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { found = i; } + else { bidiOther = i; } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { found = i; } + else { bidiOther = i; } + } + } + return found != null ? found : bidiOther + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { return lowTypes.charAt(code) } + else if (0x590 <= code && code <= 0x5f4) { return "R" } + else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) } + else if (0x6ee <= code && code <= 0x8ac) { return "r" } + else if (0x2000 <= code && code <= 0x200b) { return "w" } + else if (code == 0x200c) { return "b" } + else { return "L" } + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false } + var len = str.length, types = []; + for (var i = 0; i < len; ++i) + { types.push(charType(str.charCodeAt(i))); } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { types[i$1] = prev; } + else { prev = type; } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { types[i$2] = "n"; } + else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; } + else if (type$2 == "," && prev$1 == types[i$3+1] && + (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { types[i$4] = "N"; } + else if (type$3 == "%") { + var end = (void 0); + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i$4; j < end; ++j) { types[j] = replace; } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; } + else if (isStrong.test(type$4)) { cur$1 = type$4; } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = (void 0); + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6-1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? (before ? "L" : "R") : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, at = order.length; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + pos = j$2; + } else { ++j$2; } + } + if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + + return direction == "rtl" ? order.reverse() : order + } + })(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { order = line.order = bidiOrdering(line.text, direction); } + return order + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + + var on = function(emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers || (emitter._handlers = {}); + map$$1[type] = (map$$1[type] || noHandlers).concat(f); + } + }; + + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) + { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); } + } + } + } + + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { return } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") + { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { return } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1) + { set.push(arr[i]); } } + } + + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0 + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { e.stopPropagation(); } + else { e.cancelBubble = true; } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + + function e_target(e) {return e.target || e.srcElement} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { b = 1; } + else if (e.button & 2) { b = 3; } + else if (e.button & 4) { b = 2; } + } + if (mac && e.ctrlKey && b == 1) { b = 3; } + return b + } + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { return false } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div + }(); + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); } + } + var node = zwspSupported ? elt("span", "\u200b") : + elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { return badBidiRects } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780) + return badBidiRects = (r1.right - r0.right < 3) + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { nl = string.length; } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result + } : function (string) { return string.split(/\r\n?|\n/); }; + + var hasSelection = window.getSelection ? function (te) { + try { return te.selectionStart != te.selectionEnd } + catch(e) { return false } + } : function (te) { + var range$$1; + try {range$$1 = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range$$1 || range$$1.parentElement() != te) { return false } + return range$$1.compareEndPoints("StartToEnd", range$$1) != 0 + }; + + var hasCopyEvent = (function () { + var e = elt("div"); + if ("oncopy" in e) { return true } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function" + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { return badZoomedRects } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1 + } + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) + { mode.dependencies = Array.prototype.slice.call(arguments, 2); } + modes[name] = mode; + } + + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { found = {name: found}; } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml") + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json") + } + if (typeof spec == "string") { return {name: spec} } + else { return spec || {name: "null"} } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { return getMode(options, "text/plain") } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { continue } + if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { modeObj.helperType = spec.helperType; } + if (spec.modeProps) { for (var prop$1 in spec.modeProps) + { modeObj[prop$1] = spec.modeProps[prop$1]; } } + + return modeObj + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + } + + function copyState(mode, state) { + if (state === true) { return state } + if (mode.copyState) { return mode.copyState(state) } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { val = val.concat([]); } + nstate[n] = val; + } + return nstate + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { break } + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state} + } + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function(string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + + StringStream.prototype.eol = function () {return this.pos >= this.string.length}; + StringStream.prototype.sol = function () {return this.pos == this.lineStart}; + StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined}; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) + { return this.string.charAt(this.pos++) } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { ok = ch == match; } + else { ok = ch && (match.test ? match.test(ch) : match(ch)); } + if (ok) {++this.pos; return ch} + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start + }; + StringStream.prototype.eatSpace = function () { + var this$1 = this; + + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; } + return this.pos > start + }; + StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;}; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true} + }; + StringStream.prototype.backUp = function (n) {this.pos -= n;}; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { this.pos += pattern.length; } + return true + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { return null } + if (match && consume !== false) { this.pos += match[0].length; } + return match + } + }; + StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)}; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { return inner() } + finally { this.lineStart -= n; } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n) + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos) + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break } + n -= sz; + } + } + return chunk.lines[n] + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { text = text.slice(0, end.ch); } + if (n == start.line) { text = text.slice(start.ch); } + out.push(text); + ++n; + }); + return out + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value + return out + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { return null } + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { break } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], ch = child.height; + if (h < ch) { chunk = child; continue outer } + h -= ch; + n += child.chunkSize(); + } + return n + } while (!chunk.lines) + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) { break } + h -= lh; + } + return n + i + } + + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size} + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)) + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if ( sticky === void 0 ) sticky = null; + + if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { return a.line - b.line || a.ch - b.ch } + + function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 } + + function copyPos(x) {return Pos(x.line, x.ch)} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))} + function clipPos(doc, pos) { + if (pos.line < doc.first) { return Pos(doc.first, 0) } + var last = doc.first + doc.size - 1; + if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) } + return clipToLen(pos, getLine(doc, pos.line).text.length) + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { return Pos(pos.line, linelen) } + else if (ch < 0) { return Pos(pos.line, 0) } + else { return pos } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); } + return out + } + + var SavedContext = function(state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + + var Context = function(doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; } + return line + }; + + Context.prototype.baseToken = function (n) { + var this$1 = this; + + if (!this.baseTokens) { return null } + while (this.baseTokens[this.baseTokenPos] <= n) + { this$1.baseTokenPos += 2; } + var type = this.baseTokens[this.baseTokenPos + 1]; + return {type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n} + }; + + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { this.maxLookAhead--; } + }; + + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) + { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) } + else + { return new Context(doc, copyState(doc.mode, saved), line) } + }; + + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state + }; + + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); }, + lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function ( o ) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], i = 1, at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + { st.splice(i, 1, end, st[i+1], i_end); } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { return } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + + for (var o = 0; o < cm.state.overlays.length; ++o) loop( o ); + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null} + } + + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { context.state = resetState; } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { line.styleClasses = result.classes; } + else if (line.styleClasses) { line.styleClasses = null; } + if (updateFrontier === cm.doc.highlightFrontier) + { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } + } + return line.styles + } + + function getContextBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) { return new Context(doc, true, n) } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { doc.modeFrontier = context.line; } + return context + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { callBlankLine(mode, context.state); } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + + function callBlankLine(mode, state) { + if (mode.blankLine) { return mode.blankLine(state) } + if (!mode.innerMode) { return } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) } + } + + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { inner[0] = innerMode(mode, state).mode; } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { return style } + } + throw new Error("Mode " + mode.name + " failed to advance stream.") + } + + var Token = function(stream, type, state) { + this.start = stream.start; this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, mode = doc.mode, style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), tokens; + if (asArray) { tokens = []; } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); } + } + return asArray ? tokens : new Token(stream, style, context.state) + } + + function extractLineClasses(type, output) { + if (type) { for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { break } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + { output[prop] = lineClass[2]; } + else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop])) + { output[prop] += " " + lineClass[2]; } + } } + return type + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; } + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { processLine(cm, text, context, stream.pos); } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { style = "m-" + (style ? mName + " " + style : mName); } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { return doc.first } + var line = getLine(doc, search - 1), after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) + { return search } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline + } + + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { return } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { return span } + } } + } + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) + { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } + return r + } + // Add a span to a line. + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } } + return nw + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } } + return nw + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { return null } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { return null } + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { span.to = startCh; } + else if (sameLine) { span.to = found.to == null ? null : found.to + offset; } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { span$1.to += offset; } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } else { + span$1.from += offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { first = clearEmptySpans(first); } + if (last && last != first) { last = clearEmptySpans(last); } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + { for (var i$2 = 0; i$2 < first.length; ++i$2) + { if (first[i$2].to == null) + { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } } + for (var i$3 = 0; i$3 < gap; ++i$3) + { newMarkers.push(gapMarkers); } + newMarkers.push(last); + } + return newMarkers + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + { spans.splice(i--, 1); } + } + if (!spans.length) { return null } + return spans + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + { (markers || (markers = [])).push(mark); } + } } + }); + if (!markers) { return null } + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue } + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + { newParts.push({from: p.from, to: m.from}); } + if (dto > 0 || !mk.inclusiveRight && !dto) + { newParts.push({from: m.to, to: p.to}); } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.detachLine(line); } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.attachLine(line); } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { return lenDiff } + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { return -fromCmp } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { return toCmp } + return b.id - a.id + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + { found = sp.marker; } + } } + return found + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) } + + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; } + } } + return found + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) { + var line = getLine(doc, lineNo$$1); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { continue } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || + fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) + { return true } + } } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + { line = merged.find(-1, true).line; } + return line + } + + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return line + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line + ;(lines || (lines = [])).push(line); + } + return lines + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) { return lineN } + return lineNo(vis) + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { return lineN } + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) { return lineN } + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return lineNo(line) + 1 + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { continue } + if (sp.from == null) { return true } + if (sp.marker.widgetNode) { continue } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + { return true } + } } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)) + } + if (span.marker.inclusiveRight && span.to == line.text.length) + { return true } + for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) { return true } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { break } + else { h += line.height; } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { break } + else { h += cur.height; } + } + } + return h + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { return 0 } + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + + Line.prototype.lineNo = function () { return lineNo(this) }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + if (line.order != null) { line.order = null; } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { return null } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")) + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content, + col: 0, pos: 0, cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping")}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0); + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) + { builder.addToken = buildTokenBadBidi(builder.addToken, order); } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); } + if (line.styleClasses.textClass) + { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map) + ;(lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) + { builder.content.className = "cm-tab-wrap-hack"; } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); } + + return builder + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { return } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { mustWrap = true; } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); } + else { content.appendChild(txt); } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { break } + pos += skipped + 1; + var txt$1 = (void 0); + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); } + else { content.appendChild(txt$1); } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css) { + var fullStyle = style || ""; + if (startStyle) { fullStyle += startStyle; } + if (endStyle) { fullStyle += endStyle; } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") + { token.setAttribute(attr, attributes[attr]); } } + } + return builder.content.appendChild(token) + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { return text } + var spaceBefore = trailingBefore, result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) + { ch = "\u00a0"; } + result += ch; + spaceBefore = ch == " "; + } + return result + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = (void 0); + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { break } + } + if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + } + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) + { widget = builder.content.appendChild(document.createElement("span")); } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1+=2) + { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); } + return + } + + var len = allText.length, pos = 0, i = 1, text = "", style, css; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; nextChange = Infinity; + var foundBookmarks = [], endStyles = (void 0); + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { spanStyle += " " + m.className; } + if (m.css) { css = (css ? css + ";" : "") + m.css; } + if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; } + if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { (attributes || (attributes = {})).title = m.title; } + if (m.attributes) { + for (var attr in m.attributes) + { (attributes || (attributes = {}))[attr] = m.attributes[attr]; } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + { collapsed = sp; } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) + { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } } + + if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) + { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { return } + if (collapsed.to == pos) { collapsed = false; } + } + } + if (pos >= len) { break } + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array + } + + var operationGroup = null; + + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + { callbacks[i].call(null); } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + { while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } } + } + } while (i < callbacks.length) + } + + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { return } + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + endCb(group); + } + } + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { return } + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function ( i ) { + list.push(function () { return arr[i].apply(null, args); }); + }; + + for (var i = 0; i < arr.length; ++i) + loop( i ); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { delayed[i](); } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { updateLineText(cm, lineView); } + else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); } + else if (type == "class") { updateLineClasses(cm, lineView); } + else if (type == "widget") { updateLineWidgets(cm, lineView, dims); } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; } + } + return lineView.node + } + + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { cls += " CodeMirror-linebackground"; } + if (lineView.background) { + if (cls) { lineView.background.className = cls; } + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built + } + return buildLineContent(cm, lineView) + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { lineView.node = built.pre; } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) + { ensureLineWrapped(lineView).className = lineView.line.wrapClass; } + else if (lineView.node != lineView.text) + { lineView.node.className = ""; } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, + ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) + { gutterWrap.className += " " + lineView.line.gutterClass; } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + { lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); } + if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id]; + if (found) + { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); } + } } + } + } + + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { lineView.alignable = null; } + for (var node = lineView.node.firstChild, next = (void 0); node; node = next) { + next = node.nextSibling; + if (node.className == "CodeMirror-linewidget") + { lineView.node.removeChild(node); } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { lineView.bgClass = built.bgClass; } + if (built.textClass) { lineView.textClass = built.textClass; } + + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } } + } + + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { return } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget"); + if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) + { wrap.insertBefore(node, lineView.gutter || lineView.text); } + else + { wrap.appendChild(node); } + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; } + } + } + + function widgetHeight(widget) { + if (widget.height != null) { return widget.height } + var cm = widget.doc.cm; + if (!cm) { return 0 } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; } + if (widget.noHScroll) + { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || + (n.parentNode == display.sizer && n != display.mover)) + { return true } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight} + function paddingH(display) { + if (display.cachedPaddingH) { return display.cachedPaddingH } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; } + return data + } + + function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + { heights.push((cur.bottom + next.top) / 2 - rect.top); } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + { return {map: lineView.measure.map, cache: lineView.measure.cache} } + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias) + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + { return cm.display.view[findViewIndex(cm, lineN)] } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + { return ext } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) + { view = updateExternalMeasurement(cm, line); } + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + } + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { ch = -1; } + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + { prepared.rect = prepared.view.text.getBoundingClientRect(); } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { prepared.cache[key] = found; } + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom} + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function nodeAndOffsetInLineMap(map$$1, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map$$1.length; i += 3) { + mStart = map$$1[i]; + mEnd = map$$1[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { collapse = "right"; } + } + if (start != null) { + node = map$$1[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + { collapse = bias; } + if (bias == "left" && start == 0) + { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) { + node = map$$1[(i -= 3) + 2]; + collapse = "left"; + } } + if (bias == "right" && start == mEnd - mStart) + { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) { + node = map$$1[(i += 3) + 2]; + collapse = "right"; + } } + break + } + } + return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd} + } + + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { break } + } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { break } + } } + return rect + } + + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, start = place.start, end = place.end, collapse = place.collapse; + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) + { rect = node.parentNode.getBoundingClientRect(); } + else + { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); } + if (rect.left || rect.right || start == 0) { break } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); } + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) { collapse = bias = "right"; } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + { rect = rects[bias == "right" ? rects.length - 1 : 0]; } + else + { rect = node.getBoundingClientRect(); } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; } + else + { rect = nullRect; } + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) + { if (mid < heights[i]) { break } } + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) { result.bogus = true; } + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + { return rect } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY} + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { lineView.measure.caches[i] = {}; } } + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + { clearLineMeasurementCacheFor(cm.display.view[i]); } + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; } + cm.display.lineNumChars = null; + } + + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft + } + function pageScrollY() { + if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } + return window.pageYOffset || (document.documentElement || document.body).scrollTop + } + + function widgetTopHeight(lineObj) { + var height = 0; + if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) + { height += widgetHeight(lineObj.widgets[i]); } } } + return height + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; rect.bottom += height; + } + if (context == "line") { return rect } + if (!context) { context = "local"; } + var yOff = heightAtLine(lineObj); + if (context == "local") { yOff += paddingTop(cm.display); } + else { yOff -= cm.display.viewOffset; } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { return coords } + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top} + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { lineObj = getLine(cm.doc, pos.line); } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context) + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { m.left = m.right; } else { m.right = m.left; } + return intoCoordSystem(cm, lineObj, m, context) + } + var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") } + + function getBidi(ch, partPos, invert) { + var part = order[partPos], right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert) + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { val.other = getBidi(ch, other, sticky != "before"); } + return val + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height} + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { pos.outside = true; } + return pos + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) } + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) } + if (x < 0) { x = 0; } + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0)); + if (!collapsed) { return found } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { return rangeEnd } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0); + end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end); + return {begin: begin, end: end} + } + + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop) + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x + } + + function coordsCharInner(cm, lineObj, lineNo$$1, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight$$1 = widgetTopHeight(lineObj); + var begin = 0, end = lineObj.text.length, ltr = true; + + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart) + (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight$$1; box.bottom += widgetHeight$$1; + if (!boxIsAfter(box, x, y, false)) { return false } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true + }, begin, end); + + var baseX, sticky, outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { ch++; } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : + (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ? + "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top || y >= coords.bottom; + } + + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX) + } + + function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"), + "line", lineObj, preparedMeasure), x, y, true) + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"), + "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) + { part = order[index - 1]; } + } + return part + } + + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; } + var part = null, closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { continue } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { part = order[order.length - 1]; } + // Clip the part to the wrapped line. + if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; } + if (part.to > end) { part = {from: part.from, to: end, level: part.level}; } + return part + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { return display.cachedTextHeight } + if (measureText == null) { + measureText = elt("pre"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { display.cachedTextHeight = height; } + removeChildren(display.measure); + return height || 1 + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { return display.cachedCharWidth } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor]); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) { display.cachedCharWidth = width; } + return width || 10 + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth} + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { return 0 } + + var widgetsHeight = 0; + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; } + } } + + if (wrapping) + { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th } + else + { return widgetsHeight + th } + } + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null } + + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e) { return null } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { return null } + n -= cm.display.viewFrom; + if (n < 0) { return null } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { return i } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { from = cm.doc.first; } + if (to == null) { to = cm.doc.first + cm.doc.size; } + if (!lendiff) { lendiff = 0; } + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + { display.updateLineNumbers = from; } + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + { resetView(cm); } + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + { ext.lineN += lendiff; } + else if (from < ext.lineN + ext.size) + { display.externalMeasured = null; } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + { display.externalMeasured = null; } + + if (line < display.viewFrom || line >= display.viewTo) { return } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { return } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { arr.push(type); } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + { return {index: index, lineN: newN} } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) + { n += view[i].size; } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { return null } + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { return null } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN} + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); } + else if (display.viewFrom < from) + { display.view = display.view.slice(findViewIndex(cm, from)); } + display.viewFrom = from; + if (display.viewTo < to) + { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); } + else if (display.viewTo > to) + { display.view = display.view.slice(0, findViewIndex(cm, to)); } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; } + } + return dirty + } + + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + + function prepareSelection(cm, primary) { + if ( primary === void 0 ) primary = true; + + var doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { continue } + var range$$1 = doc.sel.ranges[i]; + if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue } + var collapsed = range$$1.empty(); + if (collapsed || cm.options.showCursorWhenSelecting) + { drawSelectionCursor(cm, range$$1.head, curFragment); } + if (!collapsed) + { drawSelectionRange(cm, range$$1, selFragment); } + } + return result + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + function cmpCoords(a, b) { return a.top - b.top || a.left - b.left } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range$$1, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + + function add(left, top, width, bottom) { + if (top < 0) { top = 0; } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px"))); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias) + } + + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = (dir == "ltr") == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop] + } + + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + + var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen; + var first = i == 0, last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + + if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; } + if (cmpCoords(toPos, start) < 0) { start = toPos; } + if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; } + if (cmpCoords(toPos, end) < 0) { end = toPos; } + }); + return {start: start, end: end} + } + + var sFrom = range$$1.from(), sTo = range$$1.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + { add(leftSide, leftEnd.bottom, null, rightStart.top); } + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { return } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; }, + cm.options.cursorBlinkRate); } + else if (cm.options.cursorBlinkRate < 0) + { display.cursorDiv.style.visibility = "hidden"; } + } + + function ensureFocus(cm) { + if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); } + } + + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + onBlur(cm); + } }, 100); + } + + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; } + + if (cm.options.readOnly == "nocursor") { return } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { return } + + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], wrapping = cm.options.lineWrapping; + var height = (void 0), width = 0; + if (cur.hidden) { continue } + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) + { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) + { updateWidgetHeight(cur.rest[j]); } } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], parent = w.node.parentNode; + if (parent) { w.height = parent.offsetHeight; } + } } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return {from: from, to: Math.max(to, from + 1)} + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } + + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (rect.top + box.top < 0) { doScroll = true; } + else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;")); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { margin = 0; } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = {left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin}; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; } + } + if (!changed) { break } + } + return rect + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); } + if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (rect.top < 0) { rect.top = 0; } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), result = {}; + if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { result.scrollTop = newTop; } + } + + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; + var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0); + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { rect.right = rect.left + screenw; } + if (rect.left < 10) + { result.scrollLeft = 0; } + else if (rect.left < screenleft) + { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); } + else if (rect.right > screenw + screenleft - 3) + { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; } + return result + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { return } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin}; + } + + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { resolveScrollToPos(cm); } + if (x != null) { cm.curOp.scrollLeft = x; } + if (y != null) { cm.curOp.scrollTop = y; } + } + + function scrollToRange(cm, range$$1) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range$$1; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range$$1 = cm.curOp.scrollToPos; + if (range$$1) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to); + scrollToCoordsRange(cm, from, to, range$$1.margin); + } + } + + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { return } + if (!gecko) { updateDisplaySimple(cm, {top: val}); } + setScrollTop(cm, val, true); + if (gecko) { updateDisplaySimple(cm); } + startWorker(cm, 100); + } + + function setScrollTop(cm, val, forceScroll) { + val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val); + if (cm.display.scroller.scrollTop == val && !forceScroll) { return } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + } + } + + var NativeScrollbars = function(place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); place(horiz); + + on(vert, "scroll", function () { + if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); } + }); + + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; } + }; + + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = + Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = + Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { this.zeroWidthHack(); } + this.checkedZeroWidth = true; + } + + return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0} + }; + + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; } + if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); } + }; + + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; } + if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); } + }; + + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed; + this.disableVert = new Delayed; + }; + + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) + : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt$$1 != bar) { bar.style.pointerEvents = "none"; } + else { delay.set(1000, maybeDisable); } + } + delay.set(1000, maybeDisable); + }; + + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + + var NullScrollbars = function () {}; + + NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + + function updateScrollbars(cm, measure) { + if (!measure) { measure = measureForScrollbars(cm); } + var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) + { updateHeightsInViewport(cm); } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { d.scrollbarFiller.style.display = ""; } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { d.gutterFiller.style.display = ""; } + } + + var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; + + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) + { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { setScrollLeft(cm, pos); } + else { updateScrollTop(cm, pos); } + }, cm); + if (cm.display.scrollbars.addClass) + { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: 0, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + focus: false, + id: ++nextOpId // Unique ID + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) + { group.ops[i].cm.curOp = null; } + endOperations(group); + }); } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + { endOperation_R1(ops[i]); } + for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe) + { endOperation_W1(ops[i$1]); } + for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM + { endOperation_R2(ops[i$2]); } + for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe) + { endOperation_W2(ops[i$3]); } + for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM + { endOperation_finish(ops[i$4]); } + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { findMaxLine(cm); } + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) { updateHeightsInViewport(cm); } + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = + Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + + if (op.updatedDisplay || op.selectionChanged) + { op.preparedSelection = display.input.prepareSelection(); } + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); } + cm.display.maxLineChanged = false; + } + + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) + { cm.display.input.showSelection(op.preparedSelection, takeFocus); } + if (op.updatedDisplay || op.startHeight != cm.doc.height) + { updateScrollbars(cm, op.barMeasure); } + if (op.updatedDisplay) + { setDocumentHeight(cm, op.barMeasure); } + + if (op.selectionChanged) { restartBlink(cm); } + + if (cm.state.focused && op.updateInput) + { cm.display.input.reset(op.typing); } + if (takeFocus) { ensureFocus(op.cm); } + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + { display.wheelStartX = display.wheelStartY = null; } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); } + + if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) { for (var i = 0; i < hidden.length; ++i) + { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } } + if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1) + { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } } + + if (display.wrapper.offsetHeight) + { doc.scrollTop = cm.display.scroller.scrollTop; } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + { signal(cm, "changes", cm, op.changeObjs); } + if (op.update) + { op.update.finish(); } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { return f() } + startOperation(cm); + try { return f() } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) { return f.apply(cm, arguments) } + startOperation(cm); + try { return f.apply(cm, arguments) } + finally { endOperation(cm); } + } + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) { return f.apply(this, arguments) } + startOperation(this); + try { return f.apply(this, arguments) } + finally { endOperation(this); } + } + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) { return f.apply(this, arguments) } + startOperation(cm); + try { return f.apply(this, arguments) } + finally { endOperation(cm); } + } + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) + { cm.state.highlight.set(time, bind(highlightWorker, cm)); } + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { return } + var end = +new Date + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { context.state = resetState; } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) { line.styleClasses = newCls; } + else if (oldCls) { line.styleClasses = null; } + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; } + if (ischange) { changedLines.push(context.line); } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) + { processLine(cm, line.text, context); } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) + { regLineChange(cm, changedLines[i], "text"); } + }); } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) + { this.events.push(arguments); } + }; + DisplayUpdate.prototype.finish = function () { + var this$1 = this; + + for (var i = 0; i < this.events.length; i++) + { signal.apply(null, this$1.events[i]); } + }; + + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + + function selectionSnapshot(cm) { + if (cm.hasFocus()) { return null } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { return null } + var result = {activeElt: active}; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result + } + + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } + snapshot.activeElt.focus(); + if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), range$$1 = document.createRange(); + range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range$$1.collapse(false); + sel.removeAllRanges(); + sel.addRange(range$$1); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + + if (update.editorIsHidden) { + resetView(cm); + return false + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + display.renderedView == display.view && countDirtyView(cm) == 0) + { return false } + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); } + if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + { return false } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { display.lineDiv.style.display = "none"; } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { display.lineDiv.style.display = ""; } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true + } + + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + { break } + } + if (!updateDisplayIfNeeded(cm, update)) { break } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; + } + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + { node.style.display = "none"; } + else + { node.parentNode.removeChild(node); } + return next + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) { cur = rm(cur); } + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { cur = rm(cur); } + } + + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) { if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) + { view[i].gutter.style.left = left; } + if (view[i].gutterBackground) + { view[i].gutterBackground.style.left = left; } + } + var align = view[i].alignable; + if (align) { for (var j = 0; j < align.length; j++) + { align[j].style.left = left; } } + } } + if (cm.options.fixedGutter) + { display.gutters.style.left = (comp + gutterW) + "px"; } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { return false } + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true + } + return false + } + + function getGutters(gutters, lineNumbers) { + var result = [], sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], style = null; + if (typeof name != "string") { style = name.style; name = name.className; } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { continue } + else { sawLineNumbers = true; } + } + result.push({className: name, style: style}); + } + if (lineNumbers && !sawLineNumbers) { result.push({className: "CodeMirror-linenumbers", style: null}); } + return result + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { gElt.style.cssText = style; } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; } + + if (place) { + if (place.appendChild) { place.appendChild(d.wrapper); } + else { place(d.wrapper); } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + + d.activeTouch = null; + + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { wheelPixelsPerUnit = -.53; } + else if (gecko) { wheelPixelsPerUnit = 15; } + else if (chrome) { wheelPixelsPerUnit = -.7; } + else if (safari) { wheelPixelsPerUnit = -1/3; } + + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; } + else if (dy == null) { dy = e.wheelDelta; } + return {x: dx, y: dy} + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta + } + + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { return } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { + if (dy && canScrollY) + { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || (dy && canScrollY)) + { e_preventDefault(e); } + display.wheelStartX = null; // Abort measurement, if in progress + return + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) { top = Math.max(0, top + pixels - 50); } + else { bot = Math.min(cm.doc.height, bot + pixels + 50); } + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { return } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) { return } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + + Selection.prototype.primary = function () { return this.ranges[this.primIndex] }; + + Selection.prototype.equals = function (other) { + var this$1 = this; + + if (other == this) { return true } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false } + for (var i = 0; i < this.ranges.length; i++) { + var here = this$1.ranges[i], there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false } + } + return true + }; + + Selection.prototype.deepCopy = function () { + var this$1 = this; + + var out = []; + for (var i = 0; i < this.ranges.length; i++) + { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); } + return new Selection(out, this.primIndex) + }; + + Selection.prototype.somethingSelected = function () { + var this$1 = this; + + for (var i = 0; i < this.ranges.length; i++) + { if (!this$1.ranges[i].empty()) { return true } } + return false + }; + + Selection.prototype.contains = function (pos, end) { + var this$1 = this; + + if (!end) { end = pos; } + for (var i = 0; i < this.ranges.length; i++) { + var range = this$1.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + { return i } + } + return -1 + }; + + var Range = function(anchor, head) { + this.anchor = anchor; this.head = head; + }; + + Range.prototype.from = function () { return minPos(this.anchor, this.head) }; + Range.prototype.to = function () { return maxPos(this.anchor, this.head) }; + Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { --primIndex; } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex) + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0) + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { return change.to } + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)) + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { return pos } + if (cmp(pos, change.to) <= 0) { return changeEnd(change) } + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; } + return Pos(line, ch) + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex) + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + { return Pos(nw.line, pos.ch - old.ch + nw.ch) } + else + { return Pos(nw.line + (pos.line - old.line), pos.ch) } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex) + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { regChange(cm); } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore) + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight$$1) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight$$1); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) + { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); } + return result + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { doc.remove(from.line, nlines); } + if (added.length) { doc.insert(from.line, added); } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); } + doc.insert(from.line + 1, added$2); + } + + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { continue } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { continue } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { throw new Error("This document is already in use.") } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + if (!cm.options.lineWrapping) { findMaxLine(cm); } + cm.options.mode = doc.modeOption; + regChange(cm); + } + + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + + function History(startGen) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = startGen || 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true); + return histChange + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { array.pop(); } + else { break } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done) + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done) + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done) + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + var last; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + { pushSelectionToHistory(doc.sel, hist.done); } + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { hist.done.shift(); } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) { signal(doc, "historyAdded"); } + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500) + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + { hist.done[hist.done.length - 1] = sel; } + else + { pushSelectionToHistory(sel, hist.done); } + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + { clearSelectionEvents(hist.undone); } + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + { dest.push(sel); } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) + { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { return null } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } } + else if (out) { out.push(spans[i]); } + } + return !out ? spans : out.length ? out : null + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { return null } + var nw = []; + for (var i = 0; i < change.text.length; ++i) + { nw.push(removeClearedSpans(found[i])); } + return nw + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { return stretched } + if (!stretched) { return old } + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + { if (oldCur[k].marker == span.marker) { continue spans } } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m = (void 0); + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } } } + } + } + return copy + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head) + } else { + return new Range(other || head, head) + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) + { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + var this$1 = this; + + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); } + if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) } + else { return sel } + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + { sel = filterSelectionChange(doc, sel, options); } + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm) + { ensureCursorVisible(doc.cm); } + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { return } + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { out = sel.ranges.slice(0, i); } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel + } + + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight; + + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && + (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { break } + else {--i; continue} + } + } + if (!m.atomic) { continue } + + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), diff = (void 0); + if (dir < 0 ? preventCursorRight : preventCursorLeft) + { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) + { return skipAtomicInner(doc, near, pos, dir, mayClear) } + } + + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) + { far = movePos(doc, far, dir, far.line == pos.line ? line : null); } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null + } + } } + return pos + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || + skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0) + } + return found + } + + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) } + else { return null } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) } + else { return null } + } else { + return new Pos(pos.line, pos.ch + dir) + } + } + + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { return obj.canceled = true; } + }; + if (update) { obj.update = function (from, to, text, origin) { + if (from) { obj.from = clipPos(doc, from); } + if (to) { obj.to = clipPos(doc, to); } + if (text) { obj.text = text; } + if (origin !== undefined) { obj.origin = origin; } + }; } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); } + + if (obj.canceled) { + if (doc.cm) { doc.cm.curOp.updateInput = 2; } + return null + } + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin} + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) } + if (doc.cm.state.suppressEdits) { return } + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { return } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); } + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { return } + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + { break } + } + if (i == source.length) { return } + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return + } + selAfter = event; + } else if (suppress) { + source.push(event); + return + } else { break } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + var loop = function ( i ) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {} + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop( i$1 ); + + if ( returned ) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { return } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range( + Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch) + ); }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + { regLineChange(doc.cm, l, "gutter"); } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) } + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return + } + if (change.from.line > doc.lastLine()) { return } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) { selAfter = computeSelAfterChange(doc, change); } + if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); } + else { updateDoc(doc, change, spans); } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + { signalCursorActivity(cm); } + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; } + } + + retreatFrontier(doc, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) + { regChange(cm); } + else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + { regLineChange(cm, from.line, "text"); } + else + { regChange(cm, from.line, to.line + 1, lendiff); } + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { signalLater(cm, "change", cm, obj); } + if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); } + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + var assign; + + if (!to) { to = from; } + if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); } + if (typeof code == "string") { code = doc.splitLines(code); } + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); } + else { no = lineNo(handle); } + if (no == null) { return null } + if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); } + return line + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + var this$1 = this; + + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this$1; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length }, + + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + var this$1 = this; + + for (var i = at, e = at + n; i < e; ++i) { + var line = this$1.lines[i]; + this$1.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + var this$1 = this; + + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; } + }, + + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + var this$1 = this; + + for (var e = at + n; at < e; ++at) + { if (op(this$1.lines[at])) { return true } } + } + }; + + function BranchChunk(children) { + var this$1 = this; + + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this$1; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size }, + + removeInner: function(at, n) { + var this$1 = this; + + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this$1.height -= oldHeight - child.height; + if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) { break } + at = 0; + } else { at -= sz; } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + + collapse: function(lines) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); } + }, + + insertInner: function(at, lines, height) { + var this$1 = this; + + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this$1.children.splice(++i, 0, leaf); + leaf.parent = this$1; + } + child.lines = child.lines.slice(0, remaining); + this$1.maybeSpill(); + } + break + } + at -= sz; + } + }, + + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) { return } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10) + me.parent.maybeSpill(); + }, + + iterN: function(at, n, op) { + var this$1 = this; + + for (var i = 0; i < this.children.length; ++i) { + var child = this$1.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { return true } + if ((n -= used) == 0) { break } + at = 0; + } else { at -= sz; } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function(doc, node, options) { + var this$1 = this; + + if (options) { for (var opt in options) { if (options.hasOwnProperty(opt)) + { this$1[opt] = options[opt]; } } } + this.doc = doc; + this.node = node; + }; + + LineWidget.prototype.clear = function () { + var this$1 = this; + + var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) { return } + for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } } + if (!ws.length) { line.widgets = null; } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + + LineWidget.prototype.changed = function () { + var this$1 = this; + + var oldH = this.height, cm = this.doc.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { return } + if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + { addToScrollTop(cm, diff); } + } + + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { cm.display.alignWidgets = true; } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { widgets.push(widget); } + else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { addToScrollTop(cm, widget.height); } + cm.curOp.forceUpdate = true; + } + return true + }); + if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); } + return widget + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + var TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) { startOperation(cm); } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { signalLater(this, "clear", found.from, found.to); } + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), "text"); } + else if (cm) { + if (span.to != null) { max = lineNo(line); } + if (span.from != null) { min = lineNo(line); } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm) + { updateLineHeight(line, textHeight(cm.display)); } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } } + + if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { reCheckSelection(cm.doc); } + } + if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); } + if (withOp) { endOperation(cm); } + if (this.parent) { this.parent.clear(); } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + var this$1 = this; + + if (side == null && this.type == "bookmark") { side = 1; } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this$1.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this$1); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { return from } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { return to } + } + } + return from && {from: from, to: to} + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1 = this; + + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) { return } + runInOp(cm, function () { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + { updateLineHeight(line, line.height + dHeight); } + } + signalLater(cm, "markerChanged", cm, this$1); + }); + }; + + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } + } + this.lines.push(line); + }; + + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp + ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { return markTextShared(doc, from, to, options, type) } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) } + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) { copyObj(options, marker, false); } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + { return marker } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); } + if (options.insertLeft) { marker.widgetNode.insertLeft = true; } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + { throw new Error("Inserting collapsed marker partially overlapping an existing one") } + seeCollapsedSpans(); + } + + if (marker.addToHistory) + { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); } + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + { updateMaxLine = true; } + if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null)); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); } + }); } + + if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); } + + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) + { doc.clearHistory(); } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { cm.curOp.updateMaxLine = true; } + if (marker.collapsed) + { regChange(cm, from.line, to.line + 1); } + else if (marker.className || marker.startStyle || marker.endStyle || marker.css || + marker.attributes || marker.title) + { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } } + if (marker.atomic) { reCheckSelection(cm.doc); } + signalLater(cm, "markerAdded", cm, marker); + } + return marker + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function(markers, primary) { + var this$1 = this; + + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + { markers[i].parent = this$1; } + }; + + SharedTextMarker.prototype.clear = function () { + var this$1 = this; + + if (this.explicitlyCleared) { return } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + { this$1.markers[i].clear(); } + signalLater(this, "clear"); + }; + + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj) + }; + eventMixin(SharedTextMarker); + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { options.widgetNode = widget.cloneNode(true); } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + { if (doc.linked[i].isParent) { return } } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary) + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; }) + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + var loop = function ( i ) { + var marker = markers[i], linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { return linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + + for (var i = 0; i < markers.length; i++) loop( i ); + } + + var nextDocId = 0; + var Doc = function(text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) } + if (firstLine == null) { firstLine = 0; } + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = (direction == "rtl") ? "rtl" : "ltr"; + this.extend = false; + + if (typeof text == "string") { text = this.splitLines(text); } + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) { this.iterN(from - this.first, to - from, op); } + else { this.iterN(this.first, this.first + this.size, from); } + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { height += lines[i].height; } + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), origin: "setValue", full: true}, true); + if (this.cm) { scrollToCoords(this.cm, 0, 0); } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text}, + + getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }}, + getLineNumber: function(line) {return lineNo(line)}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") { line = getLine(this, line); } + return visualLine(line) + }, + + lineCount: function() {return this.size}, + firstLine: function() {return this.first}, + lastLine: function() {return this.first + this.size - 1}, + + clipPos: function(pos) {return clipPos(this, pos)}, + + getCursor: function(start) { + var range$$1 = this.sel.primary(), pos; + if (start == null || start == "head") { pos = range$$1.head; } + else if (start == "anchor") { pos = range$$1.anchor; } + else if (start == "end" || start == "to" || start === false) { pos = range$$1.to(); } + else { pos = range$$1.from(); } + return pos + }, + listSelections: function() { return this.sel.ranges }, + somethingSelected: function() {return this.sel.somethingSelected()}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + var this$1 = this; + + if (!ranges.length) { return } + var out = []; + for (var i = 0; i < ranges.length; i++) + { out[i] = new Range(clipPos(this$1, ranges[i].anchor), + clipPos(this$1, ranges[i].head)); } + if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var this$1 = this; + + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { return lines } + else { return lines.join(lineSep || this.lineSeparator()) } + }, + getSelections: function(lineSep) { + var this$1 = this; + + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this$1, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); } + parts[i] = sel; + } + return parts + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + { dup[i] = code; } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var this$1 = this; + + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range$$1 = sel.ranges[i]; + changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) + { makeChange(this$1, changes[i$1]); } + if (newSel) { setSelectionReplaceHistory(this, newSel); } + else if (this.cm) { ensureCursorVisible(this.cm); } + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } } + return {undo: done, redo: undone} + }, + clearHistory: function() {this.history = new History(this.history.maxGeneration);}, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; } + return this.history.generation + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration) + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)} + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history.maxGeneration); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + setGutterMarker: docMethodOp(function(line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { line.gutterMarkers = null; } + return true + }) + }), + + clearGutter: docMethodOp(function(gutterID) { + var this$1 = this; + + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; } + return true + }); + } + }); + }), + + lineInfo: function(line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { return null } + n = line; + line = getLine(this, line); + if (!line) { return null } + } else { + n = lineNo(line); + if (n == null) { return null } + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets} + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { line[prop] = cls; } + else if (classTest(cls).test(line[prop])) { return false } + else { line[prop] += " " + cls; } + return true + }) + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { return false } + else if (cls == null) { line[prop] = null; } + else { + var found = cur.match(classTest(cls)); + if (!found) { return false } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true + }) + }), + + addLineWidget: docMethodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options) + }), + removeLineWidget: function(widget) { widget.clear(); }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range") + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark") + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + { markers.push(span.marker.parent || span.marker); } + } } + return markers + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo$$1 = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to || + span.from == null && lineNo$$1 != from.line || + span.from != null && lineNo$$1 == to.line && span.from >= to.ch) && + (!filter || filter(span.marker))) + { found.push(span.marker.parent || span.marker); } + } } + ++lineNo$$1; + }); + return found + }, + getAllMarks: function() { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) + { if (sps[i].from != null) { markers.push(sps[i].marker); } } } + }); + return markers + }, + + posFromIndex: function(off) { + var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { ch = off; return true } + off -= sz; + ++lineNo$$1; + }); + return clipPos(this, Pos(lineNo$$1, ch)) + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { return 0 } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), + this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc + }, + + linkedDoc: function(options) { + if (!options) { options = {}; } + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) { from = options.from; } + if (options.to != null && options.to < to) { to = options.to; } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { copy.history = this.history + ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy + }, + unlinkDoc: function(other) { + var this$1 = this; + + if (other instanceof CodeMirror) { other = other.doc; } + if (this.linked) { for (var i = 0; i < this.linked.length; ++i) { + var link = this$1.linked[i]; + if (link.doc != other) { continue } + this$1.linked.splice(i, 1); + other.unlinkDoc(this$1); + detachSharedMarkers(findSharedMarkers(this$1)); + break + } } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode}, + getEditor: function() {return this.cm}, + + splitLines: function(str) { + if (this.lineSep) { return str.split(this.lineSep) } + return splitLinesAuto(str) + }, + lineSeparator: function() { return this.lineSep || "\n" }, + + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { dir = "ltr"; } + if (dir == this.direction) { return } + this.direction = dir; + this.iter(function (line) { return line.order = null; }); + if (this.cm) { directionChanged(this.cm); } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + { return } + e_preventDefault(e); + if (ie) { lastDrop = +new Date; } + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { return } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var loadFile = function (file, i) { + if (cm.options.allowDropFileTypes && + indexOf(cm.options.allowDropFileTypes, file.type) == -1) + { return } + + var reader = new FileReader; + reader.onload = operation(cm, function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { content = ""; } + text[i] = content; + if (++read == n) { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, + text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())), + origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change))); + } + }); + reader.readAsText(file); + }; + for (var i = 0; i < n; ++i) { loadFile(files[i], i); } + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { return cm.display.input.focus(); }, 20); + return + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) + { selected = cm.listSelections(); } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1) + { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } + catch(e){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return } + + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { img.parentNode.removeChild(img); } + } + } + + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { return } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { return } + var byClass = document.getElementsByClassName("CodeMirror"), editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { editors.push(cm); } + } + if (editors.length) { editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { f(editors[i]); } + }); } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { return } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { return forEachCodeMirror(onBlur); }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + + var keyNames = { + 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", + 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 145: "ScrollLock", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; } + + var keyMap = {}; + + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + "fallthrough": "basic" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars", + "Ctrl-O": "openLine" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + "fallthrough": ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; } + else if (/^a(lt)?$/i.test(mod)) { alt = true; } + else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; } + else if (/^s(hift)?$/i.test(mod)) { shift = true; } + else { throw new Error("Unrecognized modifier name: " + mod) } + } + if (alt) { name = "Alt-" + name; } + if (ctrl) { name = "Ctrl-" + name; } + if (cmd) { name = "Cmd-" + name; } + if (shift) { name = "Shift-" + name; } + return name + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue } + if (value == "...") { delete keymap[keyname]; continue } + + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = (void 0), name = (void 0); + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { copy[name] = val; } + else if (prev != val) { throw new Error("Inconsistent bindings for " + name) } + } + delete keymap[keyname]; + } } + for (var prop in copy) { keymap[prop] = copy[prop]; } + return keymap + } + + function lookupKey(key, map$$1, handle, context) { + map$$1 = getKeyMap(map$$1); + var found = map$$1.call ? map$$1.call(key, context) : map$$1[key]; + if (found === false) { return "nothing" } + if (found === "...") { return "multi" } + if (found != null && handle(found)) { return "handled" } + + if (map$$1.fallthrough) { + if (Object.prototype.toString.call(map$$1.fallthrough) != "[object Array]") + { return lookupKey(key, map$$1.fallthrough, handle, context) } + for (var i = 0; i < map$$1.fallthrough.length; i++) { + var result = lookupKey(key, map$$1.fallthrough[i], handle, context); + if (result) { return result } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod" + } + + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { name = "Alt-" + name; } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; } + if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; } + return name + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { return false } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { return false } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { name = event.code; } + return addModifierNames(name, event, noShift) + } + + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) + { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); } + ensureCursorVisible(cm); + }); + } + + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target + } + + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before") + } + + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = (dir < 0) == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); } + } else { ch = dir < 0 ? part.to : part.from; } + return new Pos(lineNo, ch, sticky) + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after") + } + + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { return moveLogically(line, start, dir) } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir) + } + + var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch) + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = (part.level == 1) == (dir < 0); + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky) + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder + ? new Pos(start.line, mv(ch, 1), "before") + : new Pos(start.line, ch, "after"); }; + + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = (dir > 0) == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { return res } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { return res } + } + + // Case 4: Nowhere to move + return null + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); }, + killLine: function (cm) { return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + { return {from: range.head, to: Pos(range.head.line + 1, 0)} } + else + { return {from: range.head, to: Pos(range.head.line, len)} } + } else { + return {from: range.from(), to: range.to()} + } + }); }, + deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }); }); }, + delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), to: range.from() + }); }); }, + delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()} + }); }, + delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos } + }); }, + undo: function (cm) { return cm.undo(); }, + redo: function (cm) { return cm.redo(); }, + undoSelection: function (cm) { return cm.undoSelection(); }, + redoSelection: function (cm) { return cm.redoSelection(); }, + goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); }, + goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); }, + goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1} + ); }, + goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); }, + {origin: "+move", bias: 1} + ); }, + goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1} + ); }, + goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div") + }, sel_move); }, + goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div") + }, sel_move); }, + goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) } + return pos + }, sel_move); }, + goLineUp: function (cm) { return cm.moveV(-1, "line"); }, + goLineDown: function (cm) { return cm.moveV(1, "line"); }, + goPageUp: function (cm) { return cm.moveV(-1, "page"); }, + goPageDown: function (cm) { return cm.moveV(1, "page"); }, + goCharLeft: function (cm) { return cm.moveH(-1, "char"); }, + goCharRight: function (cm) { return cm.moveH(1, "char"); }, + goColumnLeft: function (cm) { return cm.moveH(-1, "column"); }, + goColumnRight: function (cm) { return cm.moveH(1, "column"); }, + goWordLeft: function (cm) { return cm.moveH(-1, "word"); }, + goGroupRight: function (cm) { return cm.moveH(1, "group"); }, + goGroupLeft: function (cm) { return cm.moveH(-1, "group"); }, + goWordRight: function (cm) { return cm.moveH(1, "word"); }, + delCharBefore: function (cm) { return cm.deleteH(-1, "char"); }, + delCharAfter: function (cm) { return cm.deleteH(1, "char"); }, + delWordBefore: function (cm) { return cm.deleteH(-1, "word"); }, + delWordAfter: function (cm) { return cm.deleteH(1, "word"); }, + delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); }, + delGroupAfter: function (cm) { return cm.deleteH(1, "group"); }, + indentAuto: function (cm) { return cm.indentSelection("smart"); }, + indentMore: function (cm) { return cm.indentSelection("add"); }, + indentLess: function (cm) { return cm.indentSelection("subtract"); }, + insertTab: function (cm) { return cm.replaceSelection("\t"); }, + insertSoftTab: function (cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { cm.indentSelection("add"); } + else { cm.execCommand("insertTab"); } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { return runInOp(cm, function () { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { continue } + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); }, + newlineAndIndent: function (cm) { return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) + { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) + { cm.indentLine(sels[i$1].from().line, null, true); } + ensureCursorVisible(cm); + }); }, + openLine: function (cm) { return cm.replaceSelection("\n", "start"); }, + toggleOverwrite: function (cm) { return cm.toggleOverwrite(); } + }; + + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, visual, lineN, 1) + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, line, lineN, -1) + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(0, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) + } + return start + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { return false } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + if (dropShift) { cm.display.shift = false; } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done + } + + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { return result } + } + return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) + || lookupKey(name, cm.options.keyMap, handle, cm) + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed; + + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { return "handled" } + if (/\'$/.test(name)) + { cm.state.keySeq = null; } + else + { stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true } + } + return dispatchKeyInner(cm, name, e, handle) + } + + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + + if (result == "multi") + { cm.state.keySeq = name; } + if (result == "handled") + { signalLater(cm, "keyHandled", cm, name, e); } + + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + + return !!result + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { return false } + + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); }) + || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + { return doHandleBinding(cm, b) } + }) + } else { + return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); }) + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); }) + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { return } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + { cm.replaceSelection("", null, "cut"); } + } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + { showCrossHair(cm); } + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) { this.doc.sel.shift = false; } + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} + if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { return } + if (handleCharBinding(cm, e, ch)) { return } + cm.display.input.onKeyPress(e); + } + + var DOUBLECLICK_DELAY = 400; + + var PastClick = function(time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && + cmp(pos, this.pos) == 0 && button == this.button + }; + + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple" + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double" + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single" + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return } + display.input.ensurePolled(); + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { return display.scroller.draggable = true; }, 100); + } + return + } + if (clickInGutter(cm, e)) { return } + var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) + { cm.state.selectingText(e); } + + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return } + + if (button == 1) { + if (pos) { leftButtonDown(cm, pos, repeat, e); } + else if (e_target(e) == display.scroller) { e_preventDefault(e); } + } else if (button == 2) { + if (pos) { extendSelection(cm.doc, pos); } + setTimeout(function () { return display.input.focus(); }, 20); + } else if (button == 3) { + if (captureRightClick) { cm.display.input.onContextMenu(e); } + else { delayBlurEvent(cm); } + } + } + + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { name = "Double" + name; } + else if (repeat == "triple") { name = "Triple" + name; } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { bound = commands[bound]; } + if (!bound) { return false } + var done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done + }) + } + + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; } + if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; } + if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); } + return value + } + + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { setTimeout(bind(ensureFocus, cm), 0); } + else { cm.curOp.focus = activeElt(); } + + var behavior = configureMouse(cm, repeat, event); + + var sel = cm.doc.sel, contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && + repeat == "single" && (contained = sel.contains(pos)) > -1 && + (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && + (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) + { leftButtonStartDrag(cm, event, pos, behavior); } + else + { leftButtonSelect(cm, event, pos, behavior); } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { display.scroller.draggable = false; } + cm.state.draggingText = false; + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) + { extendSelection(cm.doc, pos, null, null, behavior.extend); } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if (webkit || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); } + else + { display.input.focus(); } + } + }); + var mouseMove = function(e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { return moved = true; }; + // Let the drag handler handle this. + if (webkit) { display.scroller.draggable = true; } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + // IE's approach to draggable + if (display.scroller.dragDrop) { display.scroller.dragDrop(); } + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + + delayBlurEvent(cm); + setTimeout(function () { return display.input.focus(); }, 20); + } + + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { return new Range(pos, pos) } + if (unit == "word") { return cm.findWordAt(pos) } + if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) } + var result = unit(cm, pos); + return new Range(result.from, result.to) + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + var display = cm.display, doc = cm.doc; + e_preventDefault(event); + + var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + { ourRange = ranges[ourIndex]; } + else + { ourRange = new Range(start, start); } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { ourRange = new Range(start, start); } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range$$1 = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) + { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); } + else + { ourRange = range$$1; } + } + + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), + {scroll: false, origin: "*mouse"}); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { return } + lastPos = pos; + + if (behavior.unit == "rectangle") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } + else if (text.length > leftPos) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } + } + if (!ranges.length) { ranges.push(new Range(start, start)); } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range$$1 = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, head; + if (cmp(range$$1.anchor, anchor) > 0) { + head = range$$1.head; + anchor = minPos(oldRange.from(), range$$1.anchor); + } else { + head = range$$1.anchor; + anchor = maxPos(oldRange.to(), range$$1.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { return } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { setTimeout(operation(cm, function () { + if (counter != curCount) { return } + display.scroller.scrollTop += outside; + extend(e); + }), 50); } + } + } + + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { done(e); } + else { extend(e); } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range$$1) { + var anchor = range$$1.anchor; + var head = range$$1.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 } + var order = getOrder(anchorLine); + if (!order) { return range$$1 } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 } + var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { return range$$1 } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) + { leftSide = dir < 0; } + else + { leftSide = dir > 0; } + } + + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head) + } + + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { mX = e.clientX; mY = e.clientY; } + catch(e) { return false } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false } + if (prevent) { e_preventDefault(e); } + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) } + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e) + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true) + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return } + if (signalDOMEvent(cm, e, "contextmenu")) { return } + if (!captureRightClick) { cm.display.input.onContextMenu(e); } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { return false } + return gutterEvent(cm, e, "gutterContextMenu", false) + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + var Init = {toString: function(){return "CodeMirror.Init"}}; + + var defaults = {}; + var optionHandlers = {}; + + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { optionHandlers[name] = + notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; } + } + + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { return cm.setValue(val); }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { return } + var newBreaks = [], lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { break } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) + { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { cm.refresh(); } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME + }, true); + option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true); + option("autocorrect", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true); + option("autocapitalize", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { prev.detach(cm, next); } + if (next.attach) { next.attach(cm, prev || null); } + }); + option("extraKeys", null); + option("configureMouse", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { return integer; }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { cm.display.input.resetPosition(); } + }); + + option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true); + option("phrases", null); + } + + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { return updateScrollbars(cm); }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1 = this; + + if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) } + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + + var doc = options.value; + if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); } + else if (options.mode) { doc.modeOption = options.mode; } + this.doc = doc; + + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) + { this.display.wrapper.className += " CodeMirror-wrap"; } + initScrollbars(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), // stores highlight worker timeout + keySeq: null, // Unfinished key sequence + specialChars: null + }; + + if (options.autofocus && !mobile) { display.input.focus(); } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); } + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || this.hasFocus()) + { setTimeout(bind(onFocus, this), 20); } + else + { onBlur(this); } + + for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt)) + { optionHandlers[opt](this$1, options[opt], Init); } } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { options.finishInit(this); } + for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && + getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") + { display.lineDiv.style.textRendering = "auto"; } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + { on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { return } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); } + else + { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, prevTouch = {end: 0}; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date; + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { return false } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1 + } + function farAway(touch, other) { + if (other.left == null) { return true } + var dx = other.left - touch.left, dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20 + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date; + d.activeTouch = {start: now, moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null}; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { d.activeTouch.moved = true; } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && + !touch.moved && new Date - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), range; + if (!touch.prev || farAway(touch, touch.prev)) // Single tap + { range = new Range(pos, pos); } + else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap + { range = cm.findWordAt(pos); } + else // Triple tap + { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); }); + on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + d.dragFunctions = { + enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }}, + over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, + start: function (e) { return onDragStart(cm, e); }, + drop: operation(cm, onDrop), + leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} + }; + + var inp = d.input.getField(); + on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { return onFocus(cm, e); }); + on(inp, "blur", function (e) { return onBlur(cm, e); }); + } + + var initHooks = []; + CodeMirror.defineInitHook = function (f) { return initHooks.push(f); }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) { how = "add"; } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { how = "prev"; } + else { state = getContextBefore(cm, n).state; } + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { line.stateAfter = null; } + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { return } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); } + else { indentation = 0; } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} } + if (pos < indentation) { indentString += spaceStr(indentation - pos); } + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { sel = doc.sel; } + + var recent = +new Date - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) + { multiPaste.push(doc.splitLines(lastCopied.text[i])); } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { return [l]; }); + } + } + + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range$$1 = sel.ranges[i$1]; + var from = range$$1.from(), to = range$$1.to(); + if (range$$1.empty()) { + if (deleted && deleted > 0) // Handle deletion + { from = Pos(from.line, from.ch - deleted); } + else if (cm.state.overwrite && !paste) // Handle overwrite + { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); } + else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted) + { from = to = Pos(from.line, 0); } + } + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input")}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) + { triggerElectric(cm, inserted); } + + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) + { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } + return true + } + } + + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { return } + var sel = cm.doc.sel; + + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range$$1 = sel.ranges[i]; + if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue } + var mode = cm.getModeAt(range$$1.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range$$1.head.line, "smart"); + break + } } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch))) + { indented = indentLine(cm, range$$1.head.line, "smart"); } + } + if (indented) { signalLater(cm, "electricInput", cm, range$$1.head.line); } + } + } + + function copyableRanges(cm) { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return {text: text, ranges: ranges} + } + + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { te.style.width = "1000px"; } + else { te.setAttribute("wrap", "off"); } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { te.style.border = "1px solid black"; } + disableBrowserMagic(te); + return div + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + var helpers = CodeMirror.helpers = {}; + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); this.display.input.focus();}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") { return } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + { operation(this, optionHandlers[option])(this, value, old); } + signal(this, "optionChange", this, option); + }, + + getOption: function(option) {return this.options[option]}, + getDoc: function() {return this.doc}, + + addKeyMap: function(map$$1, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map$$1)); + }, + removeKeyMap: function(map$$1) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + { if (maps[i] == map$$1 || maps[i].name == map$$1) { + maps.splice(i, 1); + return true + } } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { throw new Error("Overlays may not be stateful.") } + insertSorted(this.state.overlays, + {mode: mode, modeSpec: spec, opaque: options && options.opaque, + priority: (options && options.priority) || 0}, + function (overlay) { return overlay.priority; }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var this$1 = this; + + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this$1.state.modeGen++; + regChange(this$1); + return + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; } + else { dir = dir ? "add" : "subtract"; } + } + if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); } + }), + indentSelection: methodOp(function(how) { + var this$1 = this; + + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range$$1 = ranges[i]; + if (!range$$1.empty()) { + var from = range$$1.from(), to = range$$1.to(); + var start = Math.max(end, from.line); + end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + { indentLine(this$1, j, how); } + var newRanges = this$1.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); } + } else if (range$$1.head.line > end) { + indentLine(this$1, range$$1.head.line, how, true); + end = range$$1.head.line; + if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); } + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + return takeToken(this, pos, precise) + }, + + getLineTokens: function(line, precise) { + return takeToken(this, Pos(line), precise, true) + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) { type = styles[2]; } + else { for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; } + else if (styles[mid * 2 + 1] < ch) { before = mid + 1; } + else { type = styles[mid * 2 + 2]; break } + } } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1) + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { return mode } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0] + }, + + getHelpers: function(pos, type) { + var this$1 = this; + + var found = []; + if (!helpers.hasOwnProperty(type)) { return found } + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { found.push(help[mode[type]]); } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { found.push(val); } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1) + { found.push(cur.val); } + } + return found + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getContextBefore(this, line + 1, precise).state + }, + + cursorCoords: function(start, mode) { + var pos, range$$1 = this.doc.sel.primary(); + if (start == null) { pos = range$$1.head; } + else if (typeof start == "object") { pos = clipPos(this.doc, start); } + else { pos = start ? range$$1.from() : range$$1.to(); } + return cursorCoords(this, pos, mode || "page") + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page") + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top) + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset) + }, + heightAtLine: function(line, mode, includeWidgets) { + var end = false, lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { line = this.doc.first; } + else if (line > last) { line = last; end = true; } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top + + (end ? this.doc.height - heightAtLine(lineObj) : 0) + }, + + defaultTextHeight: function() { return textHeight(this.display) }, + defaultCharWidth: function() { return charWidth(this.display) }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + { top = pos.top - node.offsetHeight; } + else if (pos.bottom + node.offsetHeight <= vspace) + { top = pos.bottom; } + if (left + node.offsetWidth > hspace) + { left = hspace - node.offsetWidth; } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { left = 0; } + else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; } + node.style.left = left + "px"; + } + if (scroll) + { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); } + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + { return commands[cmd].call(null, this) } + }, + + triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), + + findPosH: function(from, amount, unit, visually) { + var this$1 = this; + + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this$1.doc, cur, dir, unit, visually); + if (cur.hitSide) { break } + } + return cur + }, + + moveH: methodOp(function(dir, unit) { + var this$1 = this; + + this.extendSelectionsBy(function (range$$1) { + if (this$1.display.shift || this$1.doc.extend || range$$1.empty()) + { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) } + else + { return dir < 0 ? range$$1.from() : range$$1.to() } + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + { doc.replaceSelection("", null, "+delete"); } + else + { deleteNearSelection(this, function (range$$1) { + var other = findPosH(doc, range$$1.head, dir, unit, false); + return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other} + }); } + }), + + findPosV: function(from, amount, unit, goalColumn) { + var this$1 = this; + + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this$1, cur, "div"); + if (x == null) { x = coords.left; } + else { coords.left = x; } + cur = findPosV(this$1, coords, dir, unit); + if (cur.hitSide) { break } + } + return cur + }, + + moveV: methodOp(function(dir, unit) { + var this$1 = this; + + var doc = this.doc, goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range$$1) { + if (collapse) + { return dir < 0 ? range$$1.from() : range$$1.to() } + var headPos = cursorCoords(this$1, range$$1.head, "div"); + if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; } + goals.push(headPos.left); + var pos = findPosV(this$1, headPos, dir, unit); + if (unit == "page" && range$$1 == doc.sel.primary()) + { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); } + return pos + }, sel_move); + if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++) + { doc.sel.ranges[i].goalColumn = goals[i]; } } + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function (ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); } + : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); }; + while (start > 0 && check(line.charAt(start - 1))) { --start; } + while (end < line.length && check(line.charAt(end))) { ++end; } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)) + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) { return } + if (this.state.overwrite = !this.state.overwrite) + { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + else + { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return this.display.input.getField() == activeElt() }, + isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, + + scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), + getScrollInfo: function() { + var scroller = this.display.scroller; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), clientWidth: displayWidth(this)} + }, + + scrollIntoView: methodOp(function(range$$1, margin) { + if (range$$1 == null) { + range$$1 = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) { margin = this.options.cursorScrollMargin; } + } else if (typeof range$$1 == "number") { + range$$1 = {from: Pos(range$$1, 0), to: null}; + } else if (range$$1.from == null) { + range$$1 = {from: range$$1, to: null}; + } + if (!range$$1.to) { range$$1.to = range$$1.from; } + range$$1.margin = margin || 0; + + if (range$$1.from.line != null) { + scrollToRange(this, range$$1); + } else { + scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin); + } + }), + + setSize: methodOp(function(width, height) { + var this$1 = this; + + var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; }; + if (width != null) { this.display.wrapper.style.width = interpret(width); } + if (height != null) { this.display.wrapper.style.height = interpret(height); } + if (this.options.lineWrapping) { clearLineMeasurementCache(this); } + var lineNo$$1 = this.display.viewFrom; + this.doc.iter(lineNo$$1, this.display.viewTo, function (line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) + { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, "widget"); break } } } + ++lineNo$$1; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + + operation: function(f){return runInOp(this, f)}, + startOperation: function(){return startOperation(this)}, + endOperation: function(){return endOperation(this)}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5) + { estimateLineHeights(this); } + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { this.state.selectingText(); } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old + }), + + phrase: function(phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText + }, + + getInputField: function(){return this.display.input.getField()}, + getWrapperElement: function(){return this.display.wrapper}, + getScrollerElement: function(){return this.display.scroller}, + getGutterElement: function(){return this.display.gutters} + }; + eventMixin(CodeMirror); + + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "char", "column" (like char, but doesn't + // cross line boundaries), "word" (across next word), or "group" (to + // the start of next group of word or non-word-non-whitespace + // chars). The visually param controls whether, in right-to-left + // text, direction 1 means to move towards the next index in the + // string, or towards the character to the right of the current + // position. The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + function findNextLine() { + var l = pos.line + dir; + if (l < doc.first || l >= doc.first + doc.size) { return false } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l) + } + function moveOnce(boundToLine) { + var next; + if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) + { pos = endOfLine(visually, doc.cm, lineObj, pos.line, dir); } + else + { return false } + } else { + pos = next; + } + return true + } + + if (unit == "char") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { break } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) { type = "s"; } + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";} + break + } + + if (type) { sawType = type; } + if (dir > 0 && !moveOnce(!first)) { break } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { result.hitSide = true; } + return result + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { break } + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break } + y += dir * 5; + } + return target + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function(cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + + ContentEditableInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = input.cm; + var div = input.div = display.lineDiv; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + + on(div, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); } + }); + + on(div, "compositionstart", function (e) { + this$1.composing = {data: e.data, done: false}; + }); + on(div, "compositionupdate", function (e) { + if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; } + }); + on(div, "compositionend", function (e) { + if (this$1.composing) { + if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); } + this$1.composing.done = true; + } + }); + + on(div, "touchstart", function () { return input.forceCompositionEnd(); }); + + on(div, "input", function () { + if (!this$1.composing) { this$1.readFromDOMSoon(); } + }); + + function onCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = document.activeElement; + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { input.showPrimarySelection(); } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = this.cm.state.focused; + return result + }; + + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { return } + if (info.focus || takeFocus) { this.showPrimarySelection(); } + this.showMultipleSelections(info); + }; + + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection() + }; + + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary(); + var from = prim.from(), to = prim.to(); + + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return + } + + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && + cmp(minPos(curAnchor, curFocus), from) == 0 && + cmp(maxPos(curAnchor, curFocus), to) == 0) + { return } + + var view = cm.display.view; + var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) || + {node: view[0].measure.map[2], offset: 0}; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]}; + } + + if (!start || !end) { + sel.removeAllRanges(); + return + } + + var old = sel.rangeCount && sel.getRangeAt(0), rng; + try { rng = range(start.node, start.offset, end.offset, end.node); } + catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { sel.addRange(old); } + else if (gecko) { this.startGracePeriod(); } + } + this.rememberSelection(); + }; + + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1 = this; + + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1.gracePeriod = false; + if (this$1.selectionChanged()) + { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); } + }, 20); + }; + + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; + }; + + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { return false } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node) + }; + + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor()) + { this.showSelection(this.prepareSelection(), true); } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { this.div.blur(); }; + ContentEditableInput.prototype.getField = function () { return this.div }; + + ContentEditableInput.prototype.supportsTouch = function () { return true }; + + ContentEditableInput.prototype.receivedFocus = function () { + var input = this; + if (this.selectionInEditor()) + { this.pollSelection(); } + else + { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } + + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || + sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset + }; + + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return } + var sel = this.getSelection(), cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs}); + this.blur(); + this.focus(); + return + } + if (this.composing) { return } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; } + }); } + }; + + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + + var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); + var from = sel.from(), to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) + { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) + { to = Pos(to.line + 1, 0); } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false } + + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + + if (!fromNode) { return false } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } + else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } + else { break } + } + + var cutFront = 0, cutEnd = 0; + var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) + { ++cutFront; } + var newBot = lst(newText), oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), + oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) + { ++cutEnd; } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true + } + }; + + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { return } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1 = this; + + if (this.readDOMTimeout != null) { return } + this.readDOMTimeout = setTimeout(function () { + this$1.readDOMTimeout = null; + if (this$1.composing) { + if (this$1.composing.done) { this$1.composing = null; } + else { return } + } + this$1.updateFromDOM(); + }, 80); + }; + + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1 = this; + + if (this.cm.isReadOnly() || !this.pollContent()) + { runInOp(this.cm, function () { return regChange(this$1.cm); }); } + }; + + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { return } + e.preventDefault(); + if (!this.cm.isReadOnly()) + { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); } + }; + + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + + ContentEditableInput.prototype.needsContentAttribute = true; + + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { return null } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + + var order = getOrder(line, cm.doc.direction), side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result + } + + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) + { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } } + return false + } + + function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos } + + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false; + function recognizeMarker(id) { return function (marker) { return marker.id == id; } } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { text += lineSep; } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return + } + var markerID = node.getAttribute("cm-marker"), range$$1; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range$$1 = found[0].find(0))) + { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); } + return + } + if (node.getAttribute("contenteditable") == "false") { return } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return } + + if (isBlock) { close(); } + for (var i = 0; i < node.childNodes.length; i++) + { walk(node.childNodes[i]); } + + if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; } + if (isBlock) { closing = true; } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { break } + from = from.nextSibling; + extraLinebreak = false; + } + return text + } + + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) } + node = null; offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { return null } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) + { return locateNodeInLineView(lineView, node, offset) } + } + } + + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, bad = false; + if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad) + } + } + + var textNode = node.nodeType == 3 ? node : null, topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { offset = textNode.nodeValue.length; } + } + while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; } + var measure = lineView.measure, maps = measure.maps; + + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map$$1 = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map$$1.length; j += 3) { + var curNode = map$$1[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map$$1[j] + offset; + if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; } + return Pos(line, ch) + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { return badPos(found, bad) } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) + { return badPos(Pos(found.line, found.ch - dist), bad) } + else + { dist += after.textContent.length; } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) + { return badPos(Pos(found.line, found.ch + dist$1), bad) } + else + { dist$1 += before.textContent.length; } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function(cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + + TextareaInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = this.cm; + this.createField(display); + var te = this.textarea; + + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { te.style.width = "0px"; } + + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; } + input.poll(); + }); + + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + + cm.state.pasteIncoming = +new Date; + input.fastPoll(); + }); + + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { cm.state.cutIncoming = +new Date; } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date; + input.focus(); + return + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { e_preventDefault(e); } + }); + + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { input.composing.range.clear(); } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, display = cm.display, doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result + }; + + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { return } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { selectInput(this.textarea); } + if (ie && ie_version >= 9) { this.hasSelection = content; } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { this.hasSelection = null; } + } + }; + + TextareaInput.prototype.getField = function () { return this.textarea }; + + TextareaInput.prototype.supportsTouch = function () { return false }; + + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { this.textarea.focus(); } + catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + + TextareaInput.prototype.blur = function () { this.textarea.blur(); }; + + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + + TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1 = this; + + if (this.pollingFast) { return } + this.polling.set(this.cm.options.pollInterval, function () { + this$1.poll(); + if (this$1.cm.state.focused) { this$1.slowPoll(); } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) {missed = true; input.polling.set(60, p);} + else {input.pollingFast = false; input.slowPoll();} + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1 = this; + + var cm = this.cm, input = this.textarea, prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || + (hasSelection(input) && !prevInput && !this.composing) || + cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) + { return false } + + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { return false } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false + } + + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { prevInput = "\u200b"; } + if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") } + } + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; } + + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, + null, this$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; } + else { this$1.prevInput = text; } + + if (this$1.composing) { + this$1.composing.range.clear(); + this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"), + {className: "CodeMirror-composing"}); + } + }); + return true + }; + + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { this.pollingFast = false; } + }; + + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { this.hasSelection = null; } + this.fastPoll(); + }; + + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, cm = input.cm, display = cm.display, te = input.textarea; + if (input.contextMenuPending) { input.contextMenuPending(); } + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) { return } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); } + + var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { window.scrollTo(null, oldScrollY); } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { return } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); } + var i = 0, poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && + te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) { prepareSelectAllHack(); } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { this.reset(); } + this.textarea.disabled = val == "nocursor"; + }; + + TextareaInput.prototype.setUneditable = function () {}; + + TextareaInput.prototype.needsContentAttribute = false; + + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) + { options.tabindex = textarea.tabIndex; } + if (!options.placeholder && textarea.placeholder) + { options.placeholder = textarea.placeholder; } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { return textarea; }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (typeof textarea.form.submit == "function") + { textarea.form.submit = realSubmit; } + } + }; + }; + + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); }, + options); + return cm + } + + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + { CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments)} + })(Doc.prototype[prop]); } } + + eventMixin(Doc); + CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name/*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; } + defineMode.apply(this, arguments); + }; + + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + + CodeMirror.fromTextArea = fromTextArea; + + addLegacyProps(CodeMirror); + + CodeMirror.version = "5.48.2"; + + return CodeMirror; + +}))); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/gfm/gfm.js": +/*!*************************************************!*\ + !*** ./node_modules/codemirror/mode/gfm/gfm.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../markdown/markdown */ "./node_modules/codemirror/mode/markdown/markdown.js"), __webpack_require__(/*! ../../addon/mode/overlay */ "./node_modules/codemirror/addon/mode/overlay.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +var urlRE = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i + +CodeMirror.defineMode("gfm", function(config, modeConfig) { + var codeDepth = 0; + function blankLine(state) { + state.code = false; + return null; + } + var gfmOverlay = { + startState: function() { + return { + code: false, + codeBlock: false, + ateSpace: false + }; + }, + copyState: function(s) { + return { + code: s.code, + codeBlock: s.codeBlock, + ateSpace: s.ateSpace + }; + }, + token: function(stream, state) { + state.combineTokens = null; + + // Hack to prevent formatting override inside code blocks (block and inline) + if (state.codeBlock) { + if (stream.match(/^```+/)) { + state.codeBlock = false; + return null; + } + stream.skipToEnd(); + return null; + } + if (stream.sol()) { + state.code = false; + } + if (stream.sol() && stream.match(/^```+/)) { + stream.skipToEnd(); + state.codeBlock = true; + return null; + } + // If this block is changed, it may need to be updated in Markdown mode + if (stream.peek() === '`') { + stream.next(); + var before = stream.pos; + stream.eatWhile('`'); + var difference = 1 + stream.pos - before; + if (!state.code) { + codeDepth = difference; + state.code = true; + } else { + if (difference === codeDepth) { // Must be exact + state.code = false; + } + } + return null; + } else if (state.code) { + stream.next(); + return null; + } + // Check if space. If so, links can be formatted later on + if (stream.eatSpace()) { + state.ateSpace = true; + return null; + } + if (stream.sol() || state.ateSpace) { + state.ateSpace = false; + if (modeConfig.gitHubSpice !== false) { + if(stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?=.{0,6}\d)(?:[a-f0-9]{7,40}\b)/)) { + // User/Project@SHA + // User@SHA + // SHA + state.combineTokens = true; + return "link"; + } else if (stream.match(/^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/)) { + // User/Project#Num + // User#Num + // #Num + state.combineTokens = true; + return "link"; + } + } + } + if (stream.match(urlRE) && + stream.string.slice(stream.start - 2, stream.start) != "](" && + (stream.start == 0 || /\W/.test(stream.string.charAt(stream.start - 1)))) { + // URLs + // Taken from http://daringfireball.net/2010/07/improved_regex_for_matching_urls + // And then (issue #1160) simplified to make it not crash the Chrome Regexp engine + // And then limited url schemes to the CommonMark list, so foo:bar isn't matched as a URL + state.combineTokens = true; + return "link"; + } + stream.next(); + return null; + }, + blankLine: blankLine + }; + + var markdownConfig = { + taskLists: true, + strikethrough: true, + emoji: true + }; + for (var attr in modeConfig) { + markdownConfig[attr] = modeConfig[attr]; + } + markdownConfig.name = "markdown"; + return CodeMirror.overlayMode(CodeMirror.getMode(config, markdownConfig), gfmOverlay); + +}, "markdown"); + + CodeMirror.defineMIME("text/x-gfm", "gfm"); +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/markdown/markdown.js": +/*!***********************************************************!*\ + !*** ./node_modules/codemirror/mode/markdown/markdown.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js"), __webpack_require__(/*! ../xml/xml */ "./node_modules/codemirror/mode/xml/xml.js"), __webpack_require__(/*! ../meta */ "./node_modules/codemirror/mode/meta.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) { + + var htmlMode = CodeMirror.getMode(cmCfg, "text/html"); + var htmlModeMissing = htmlMode.name == "null" + + function getMode(name) { + if (CodeMirror.findModeByName) { + var found = CodeMirror.findModeByName(name); + if (found) name = found.mime || found.mimes[0]; + } + var mode = CodeMirror.getMode(cmCfg, name); + return mode.name == "null" ? null : mode; + } + + // Should characters that affect highlighting be highlighted separate? + // Does not include characters that will be output (such as `1.` and `-` for lists) + if (modeCfg.highlightFormatting === undefined) + modeCfg.highlightFormatting = false; + + // Maximum number of nested blockquotes. Set to 0 for infinite nesting. + // Excess `>` will emit `error` token. + if (modeCfg.maxBlockquoteDepth === undefined) + modeCfg.maxBlockquoteDepth = 0; + + // Turn on task lists? ("- [ ] " and "- [x] ") + if (modeCfg.taskLists === undefined) modeCfg.taskLists = false; + + // Turn on strikethrough syntax + if (modeCfg.strikethrough === undefined) + modeCfg.strikethrough = false; + + if (modeCfg.emoji === undefined) + modeCfg.emoji = false; + + if (modeCfg.fencedCodeBlockHighlighting === undefined) + modeCfg.fencedCodeBlockHighlighting = true; + + if (modeCfg.xml === undefined) + modeCfg.xml = true; + + // Allow token types to be overridden by user-provided token types. + if (modeCfg.tokenTypeOverrides === undefined) + modeCfg.tokenTypeOverrides = {}; + + var tokenTypes = { + header: "header", + code: "comment", + quote: "quote", + list1: "variable-2", + list2: "variable-3", + list3: "keyword", + hr: "hr", + image: "image", + imageAltText: "image-alt-text", + imageMarker: "image-marker", + formatting: "formatting", + linkInline: "link", + linkEmail: "link", + linkText: "link", + linkHref: "string", + em: "em", + strong: "strong", + strikethrough: "strikethrough", + emoji: "builtin" + }; + + for (var tokenType in tokenTypes) { + if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) { + tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType]; + } + } + + var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/ + , listRE = /^(?:[*\-+]|^[0-9]+([.)]))\s+/ + , taskListRE = /^\[(x| )\](?=\s)/i // Must follow listRE + , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/ + , setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/ + , textRE = /^[^#!\[\]*_\\<>` "'(~:]+/ + , fencedCodeRE = /^(~~~+|```+)[ \t]*([\w+#-]*)[^\n`]*$/ + , linkDefRE = /^\s*\[[^\]]+?\]:.*$/ // naive link-definition + , punctuation = /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/ + , expandedTab = " " // CommonMark specifies tab as 4 spaces + + function switchInline(stream, state, f) { + state.f = state.inline = f; + return f(stream, state); + } + + function switchBlock(stream, state, f) { + state.f = state.block = f; + return f(stream, state); + } + + function lineIsEmpty(line) { + return !line || !/\S/.test(line.string) + } + + // Blocks + + function blankLine(state) { + // Reset linkTitle state + state.linkTitle = false; + state.linkHref = false; + state.linkText = false; + // Reset EM state + state.em = false; + // Reset STRONG state + state.strong = false; + // Reset strikethrough state + state.strikethrough = false; + // Reset state.quote + state.quote = 0; + // Reset state.indentedCode + state.indentedCode = false; + if (state.f == htmlBlock) { + var exit = htmlModeMissing + if (!exit) { + var inner = CodeMirror.innerMode(htmlMode, state.htmlState) + exit = inner.mode.name == "xml" && inner.state.tagStart === null && + (!inner.state.context && inner.state.tokenize.isInText) + } + if (exit) { + state.f = inlineNormal; + state.block = blockNormal; + state.htmlState = null; + } + } + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + // Mark this line as blank + state.prevLine = state.thisLine + state.thisLine = {stream: null} + return null; + } + + function blockNormal(stream, state) { + var firstTokenOnLine = stream.column() === state.indentation; + var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream); + var prevLineIsIndentedCode = state.indentedCode; + var prevLineIsHr = state.prevLine.hr; + var prevLineIsList = state.list !== false; + var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3; + + state.indentedCode = false; + + var lineIndentation = state.indentation; + // compute once per line (on first token) + if (state.indentationDiff === null) { + state.indentationDiff = state.indentation; + if (prevLineIsList) { + // Reset inline styles which shouldn't propagate aross list items + state.em = false; + state.strong = false; + state.code = false; + state.strikethrough = false; + + state.list = null; + // While this list item's marker's indentation is less than the deepest + // list item's content's indentation,pop the deepest list item + // indentation off the stack, and update block indentation state + while (lineIndentation < state.listStack[state.listStack.length - 1]) { + state.listStack.pop(); + if (state.listStack.length) { + state.indentation = state.listStack[state.listStack.length - 1]; + // less than the first list's indent -> the line is no longer a list + } else { + state.list = false; + } + } + if (state.list !== false) { + state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1] + } + } + } + + // not comprehensive (currently only for setext detection purposes) + var allowsInlineContinuation = ( + !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header && + (!prevLineIsList || !prevLineIsIndentedCode) && + !state.prevLine.fencedCodeEnd + ); + + var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) && + state.indentation <= maxNonCodeIndentation && stream.match(hrRE); + + var match = null; + if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd || + state.prevLine.header || prevLineLineIsEmpty)) { + stream.skipToEnd(); + state.indentedCode = true; + return tokenTypes.code; + } else if (stream.eatSpace()) { + return null; + } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) { + state.quote = 0; + state.header = match[1].length; + state.thisLine.header = true; + if (modeCfg.highlightFormatting) state.formatting = "header"; + state.f = state.inline; + return getType(state); + } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) { + state.quote = firstTokenOnLine ? 1 : state.quote + 1; + if (modeCfg.highlightFormatting) state.formatting = "quote"; + stream.eatSpace(); + return getType(state); + } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) { + var listType = match[1] ? "ol" : "ul"; + + state.indentation = lineIndentation + stream.current().length; + state.list = true; + state.quote = 0; + + // Add this list item's content's indentation to the stack + state.listStack.push(state.indentation); + + if (modeCfg.taskLists && stream.match(taskListRE, false)) { + state.taskList = true; + } + state.f = state.inline; + if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType]; + return getType(state); + } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) { + state.quote = 0; + state.fencedEndRE = new RegExp(match[1] + "+ *$"); + // try switching mode + state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2]); + if (state.localMode) state.localState = CodeMirror.startState(state.localMode); + state.f = state.block = local; + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + state.code = -1 + return getType(state); + // SETEXT has lowest block-scope precedence after HR, so check it after + // the others (code, blockquote, list...) + } else if ( + // if setext set, indicates line after ---/=== + state.setext || ( + // line before ---/=== + (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false && + !state.code && !isHr && !linkDefRE.test(stream.string) && + (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE)) + ) + ) { + if ( !state.setext ) { + state.header = match[0].charAt(0) == '=' ? 1 : 2; + state.setext = state.header; + } else { + state.header = state.setext; + // has no effect on type so we can reset it now + state.setext = 0; + stream.skipToEnd(); + if (modeCfg.highlightFormatting) state.formatting = "header"; + } + state.thisLine.header = true; + state.f = state.inline; + return getType(state); + } else if (isHr) { + stream.skipToEnd(); + state.hr = true; + state.thisLine.hr = true; + return tokenTypes.hr; + } else if (stream.peek() === '[') { + return switchInline(stream, state, footnoteLink); + } + + return switchInline(stream, state, state.inline); + } + + function htmlBlock(stream, state) { + var style = htmlMode.token(stream, state.htmlState); + if (!htmlModeMissing) { + var inner = CodeMirror.innerMode(htmlMode, state.htmlState) + if ((inner.mode.name == "xml" && inner.state.tagStart === null && + (!inner.state.context && inner.state.tokenize.isInText)) || + (state.md_inside && stream.current().indexOf(">") > -1)) { + state.f = inlineNormal; + state.block = blockNormal; + state.htmlState = null; + } + } + return style; + } + + function local(stream, state) { + var currListInd = state.listStack[state.listStack.length - 1] || 0; + var hasExitedList = state.indentation < currListInd; + var maxFencedEndInd = currListInd + 3; + if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) { + if (modeCfg.highlightFormatting) state.formatting = "code-block"; + var returnType; + if (!hasExitedList) returnType = getType(state) + state.localMode = state.localState = null; + state.block = blockNormal; + state.f = inlineNormal; + state.fencedEndRE = null; + state.code = 0 + state.thisLine.fencedCodeEnd = true; + if (hasExitedList) return switchBlock(stream, state, state.block); + return returnType; + } else if (state.localMode) { + return state.localMode.token(stream, state.localState); + } else { + stream.skipToEnd(); + return tokenTypes.code; + } + } + + // Inline + function getType(state) { + var styles = []; + + if (state.formatting) { + styles.push(tokenTypes.formatting); + + if (typeof state.formatting === "string") state.formatting = [state.formatting]; + + for (var i = 0; i < state.formatting.length; i++) { + styles.push(tokenTypes.formatting + "-" + state.formatting[i]); + + if (state.formatting[i] === "header") { + styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header); + } + + // Add `formatting-quote` and `formatting-quote-#` for blockquotes + // Add `error` instead if the maximum blockquote nesting depth is passed + if (state.formatting[i] === "quote") { + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote); + } else { + styles.push("error"); + } + } + } + } + + if (state.taskOpen) { + styles.push("meta"); + return styles.length ? styles.join(' ') : null; + } + if (state.taskClosed) { + styles.push("property"); + return styles.length ? styles.join(' ') : null; + } + + if (state.linkHref) { + styles.push(tokenTypes.linkHref, "url"); + } else { // Only apply inline styles to non-url text + if (state.strong) { styles.push(tokenTypes.strong); } + if (state.em) { styles.push(tokenTypes.em); } + if (state.strikethrough) { styles.push(tokenTypes.strikethrough); } + if (state.emoji) { styles.push(tokenTypes.emoji); } + if (state.linkText) { styles.push(tokenTypes.linkText); } + if (state.code) { styles.push(tokenTypes.code); } + if (state.image) { styles.push(tokenTypes.image); } + if (state.imageAltText) { styles.push(tokenTypes.imageAltText, "link"); } + if (state.imageMarker) { styles.push(tokenTypes.imageMarker); } + } + + if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); } + + if (state.quote) { + styles.push(tokenTypes.quote); + + // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth + if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) { + styles.push(tokenTypes.quote + "-" + state.quote); + } else { + styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth); + } + } + + if (state.list !== false) { + var listMod = (state.listStack.length - 1) % 3; + if (!listMod) { + styles.push(tokenTypes.list1); + } else if (listMod === 1) { + styles.push(tokenTypes.list2); + } else { + styles.push(tokenTypes.list3); + } + } + + if (state.trailingSpaceNewLine) { + styles.push("trailing-space-new-line"); + } else if (state.trailingSpace) { + styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b")); + } + + return styles.length ? styles.join(' ') : null; + } + + function handleText(stream, state) { + if (stream.match(textRE, true)) { + return getType(state); + } + return undefined; + } + + function inlineNormal(stream, state) { + var style = state.text(stream, state); + if (typeof style !== 'undefined') + return style; + + if (state.list) { // List marker (*, +, -, 1., etc) + state.list = null; + return getType(state); + } + + if (state.taskList) { + var taskOpen = stream.match(taskListRE, true)[1] === " "; + if (taskOpen) state.taskOpen = true; + else state.taskClosed = true; + if (modeCfg.highlightFormatting) state.formatting = "task"; + state.taskList = false; + return getType(state); + } + + state.taskOpen = false; + state.taskClosed = false; + + if (state.header && stream.match(/^#+$/, true)) { + if (modeCfg.highlightFormatting) state.formatting = "header"; + return getType(state); + } + + var ch = stream.next(); + + // Matches link titles present on next line + if (state.linkTitle) { + state.linkTitle = false; + var matchCh = ch; + if (ch === '(') { + matchCh = ')'; + } + matchCh = (matchCh+'').replace(/([.?*+^\[\]\\(){}|-])/g, "\\$1"); + var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh; + if (stream.match(new RegExp(regex), true)) { + return tokenTypes.linkHref; + } + } + + // If this block is changed, it may need to be updated in GFM mode + if (ch === '`') { + var previousFormatting = state.formatting; + if (modeCfg.highlightFormatting) state.formatting = "code"; + stream.eatWhile('`'); + var count = stream.current().length + if (state.code == 0 && (!state.quote || count == 1)) { + state.code = count + return getType(state) + } else if (count == state.code) { // Must be exact + var t = getType(state) + state.code = 0 + return t + } else { + state.formatting = previousFormatting + return getType(state) + } + } else if (state.code) { + return getType(state); + } + + if (ch === '\\') { + stream.next(); + if (modeCfg.highlightFormatting) { + var type = getType(state); + var formattingEscape = tokenTypes.formatting + "-escape"; + return type ? type + " " + formattingEscape : formattingEscape; + } + } + + if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) { + state.imageMarker = true; + state.image = true; + if (modeCfg.highlightFormatting) state.formatting = "image"; + return getType(state); + } + + if (ch === '[' && state.imageMarker && stream.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/, false)) { + state.imageMarker = false; + state.imageAltText = true + if (modeCfg.highlightFormatting) state.formatting = "image"; + return getType(state); + } + + if (ch === ']' && state.imageAltText) { + if (modeCfg.highlightFormatting) state.formatting = "image"; + var type = getType(state); + state.imageAltText = false; + state.image = false; + state.inline = state.f = linkHref; + return type; + } + + if (ch === '[' && !state.image) { + if (state.linkText && stream.match(/^.*?\]/)) return getType(state) + state.linkText = true; + if (modeCfg.highlightFormatting) state.formatting = "link"; + return getType(state); + } + + if (ch === ']' && state.linkText) { + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + state.linkText = false; + state.inline = state.f = stream.match(/\(.*?\)| ?\[.*?\]/, false) ? linkHref : inlineNormal + return type; + } + + if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkInline; + } + + if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) { + state.f = state.inline = linkInline; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkEmail; + } + + if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i, false)) { + var end = stream.string.indexOf(">", stream.pos); + if (end != -1) { + var atts = stream.string.substring(stream.start, end); + if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true; + } + stream.backUp(1); + state.htmlState = CodeMirror.startState(htmlMode); + return switchBlock(stream, state, htmlBlock); + } + + if (modeCfg.xml && ch === '<' && stream.match(/^\/\w*?>/)) { + state.md_inside = false; + return "tag"; + } else if (ch === "*" || ch === "_") { + var len = 1, before = stream.pos == 1 ? " " : stream.string.charAt(stream.pos - 2) + while (len < 3 && stream.eat(ch)) len++ + var after = stream.peek() || " " + // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis + var leftFlanking = !/\s/.test(after) && (!punctuation.test(after) || /\s/.test(before) || punctuation.test(before)) + var rightFlanking = !/\s/.test(before) && (!punctuation.test(before) || /\s/.test(after) || punctuation.test(after)) + var setEm = null, setStrong = null + if (len % 2) { // Em + if (!state.em && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before))) + setEm = true + else if (state.em == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after))) + setEm = false + } + if (len > 1) { // Strong + if (!state.strong && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before))) + setStrong = true + else if (state.strong == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after))) + setStrong = false + } + if (setStrong != null || setEm != null) { + if (modeCfg.highlightFormatting) state.formatting = setEm == null ? "strong" : setStrong == null ? "em" : "strong em" + if (setEm === true) state.em = ch + if (setStrong === true) state.strong = ch + var t = getType(state) + if (setEm === false) state.em = false + if (setStrong === false) state.strong = false + return t + } + } else if (ch === ' ') { + if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(1); + } + } + } + + if (modeCfg.strikethrough) { + if (ch === '~' && stream.eatWhile(ch)) { + if (state.strikethrough) {// Remove strikethrough + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + var t = getType(state); + state.strikethrough = false; + return t; + } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough + state.strikethrough = true; + if (modeCfg.highlightFormatting) state.formatting = "strikethrough"; + return getType(state); + } + } else if (ch === ' ') { + if (stream.match(/^~~/, true)) { // Probably surrounded by space + if (stream.peek() === ' ') { // Surrounded by spaces, ignore + return getType(state); + } else { // Not surrounded by spaces, back up pointer + stream.backUp(2); + } + } + } + } + + if (modeCfg.emoji && ch === ":" && stream.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)) { + state.emoji = true; + if (modeCfg.highlightFormatting) state.formatting = "emoji"; + var retType = getType(state); + state.emoji = false; + return retType; + } + + if (ch === ' ') { + if (stream.match(/^ +$/, false)) { + state.trailingSpace++; + } else if (state.trailingSpace) { + state.trailingSpaceNewLine = true; + } + } + + return getType(state); + } + + function linkInline(stream, state) { + var ch = stream.next(); + + if (ch === ">") { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var type = getType(state); + if (type){ + type += " "; + } else { + type = ""; + } + return type + tokenTypes.linkInline; + } + + stream.match(/^[^>]+/, true); + + return tokenTypes.linkInline; + } + + function linkHref(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + var ch = stream.next(); + if (ch === '(' || ch === '[') { + state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]"); + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + state.linkHref = true; + return getType(state); + } + return 'error'; + } + + var linkRE = { + ")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/, + "]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/ + } + + function getLinkHrefInside(endChar) { + return function(stream, state) { + var ch = stream.next(); + + if (ch === endChar) { + state.f = state.inline = inlineNormal; + if (modeCfg.highlightFormatting) state.formatting = "link-string"; + var returnState = getType(state); + state.linkHref = false; + return returnState; + } + + stream.match(linkRE[endChar]) + state.linkHref = true; + return getType(state); + }; + } + + function footnoteLink(stream, state) { + if (stream.match(/^([^\]\\]|\\.)*\]:/, false)) { + state.f = footnoteLinkInside; + stream.next(); // Consume [ + if (modeCfg.highlightFormatting) state.formatting = "link"; + state.linkText = true; + return getType(state); + } + return switchInline(stream, state, inlineNormal); + } + + function footnoteLinkInside(stream, state) { + if (stream.match(/^\]:/, true)) { + state.f = state.inline = footnoteUrl; + if (modeCfg.highlightFormatting) state.formatting = "link"; + var returnType = getType(state); + state.linkText = false; + return returnType; + } + + stream.match(/^([^\]\\]|\\.)+/, true); + + return tokenTypes.linkText; + } + + function footnoteUrl(stream, state) { + // Check if space, and return NULL if so (to avoid marking the space) + if(stream.eatSpace()){ + return null; + } + // Match URL + stream.match(/^[^\s]+/, true); + // Check for link title + if (stream.peek() === undefined) { // End of line, set flag to check next line + state.linkTitle = true; + } else { // More content on line, check if link title + stream.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/, true); + } + state.f = state.inline = inlineNormal; + return tokenTypes.linkHref + " url"; + } + + var mode = { + startState: function() { + return { + f: blockNormal, + + prevLine: {stream: null}, + thisLine: {stream: null}, + + block: blockNormal, + htmlState: null, + indentation: 0, + + inline: inlineNormal, + text: handleText, + + formatting: false, + linkText: false, + linkHref: false, + linkTitle: false, + code: 0, + em: false, + strong: false, + header: 0, + setext: 0, + hr: false, + taskList: false, + list: false, + listStack: [], + quote: 0, + trailingSpace: 0, + trailingSpaceNewLine: false, + strikethrough: false, + emoji: false, + fencedEndRE: null + }; + }, + + copyState: function(s) { + return { + f: s.f, + + prevLine: s.prevLine, + thisLine: s.thisLine, + + block: s.block, + htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState), + indentation: s.indentation, + + localMode: s.localMode, + localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null, + + inline: s.inline, + text: s.text, + formatting: false, + linkText: s.linkText, + linkTitle: s.linkTitle, + linkHref: s.linkHref, + code: s.code, + em: s.em, + strong: s.strong, + strikethrough: s.strikethrough, + emoji: s.emoji, + header: s.header, + setext: s.setext, + hr: s.hr, + taskList: s.taskList, + list: s.list, + listStack: s.listStack.slice(0), + quote: s.quote, + indentedCode: s.indentedCode, + trailingSpace: s.trailingSpace, + trailingSpaceNewLine: s.trailingSpaceNewLine, + md_inside: s.md_inside, + fencedEndRE: s.fencedEndRE + }; + }, + + token: function(stream, state) { + + // Reset state.formatting + state.formatting = false; + + if (stream != state.thisLine.stream) { + state.header = 0; + state.hr = false; + + if (stream.match(/^\s*$/, true)) { + blankLine(state); + return null; + } + + state.prevLine = state.thisLine + state.thisLine = {stream: stream} + + // Reset state.taskList + state.taskList = false; + + // Reset state.trailingSpace + state.trailingSpace = 0; + state.trailingSpaceNewLine = false; + + if (!state.localState) { + state.f = state.block; + if (state.f != htmlBlock) { + var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, expandedTab).length; + state.indentation = indentation; + state.indentationDiff = null; + if (indentation > 0) return null; + } + } + } + return state.f(stream, state); + }, + + innerMode: function(state) { + if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode}; + if (state.localState) return {state: state.localState, mode: state.localMode}; + return {state: state, mode: mode}; + }, + + indent: function(state, textAfter, line) { + if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line) + if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line) + return CodeMirror.Pass + }, + + blankLine: blankLine, + + getType: getType, + + blockCommentStart: "", + closeBrackets: "()[]{}''\"\"``", + fold: "markdown" + }; + return mode; +}, "xml"); + +CodeMirror.defineMIME("text/markdown", "markdown"); + +CodeMirror.defineMIME("text/x-markdown", "markdown"); + +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/meta.js": +/*!**********************************************!*\ + !*** ./node_modules/codemirror/mode/meta.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { + "use strict"; + + CodeMirror.modeInfo = [ + {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]}, + {name: "PGP", mimes: ["application/pgp", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature"], mode: "asciiarmor", ext: ["asc", "pgp", "sig"]}, + {name: "ASN.1", mime: "text/x-ttcn-asn", mode: "asn.1", ext: ["asn", "asn1"]}, + {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i}, + {name: "Brainfuck", mime: "text/x-brainfuck", mode: "brainfuck", ext: ["b", "bf"]}, + {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h", "ino"]}, + {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, + {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, + {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp", "cs"]}, + {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj", "cljc", "cljx"]}, + {name: "ClojureScript", mime: "text/x-clojurescript", mode: "clojure", ext: ["cljs"]}, + {name: "Closure Stylesheets (GSS)", mime: "text/x-gss", mode: "css", ext: ["gss"]}, + {name: "CMake", mime: "text/x-cmake", mode: "cmake", ext: ["cmake", "cmake.in"], file: /^CMakeLists.txt$/}, + {name: "CoffeeScript", mimes: ["application/vnd.coffeescript", "text/coffeescript", "text/x-coffeescript"], mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]}, + {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]}, + {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]}, + {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]}, + {name: "Crystal", mime: "text/x-crystal", mode: "crystal", ext: ["cr"]}, + {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]}, + {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]}, + {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]}, + {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]}, + {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]}, + {name: "Django", mime: "text/x-django", mode: "django"}, + {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/}, + {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]}, + {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]}, + {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"}, + {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]}, + {name: "edn", mime: "application/edn", mode: "clojure", ext: ["edn"]}, + {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, + {name: "Elm", mime: "text/x-elm", mode: "elm", ext: ["elm"]}, + {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, + {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, + {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, + {name: "Esper", mime: "text/x-esper", mode: "sql"}, + {name: "Factor", mime: "text/x-factor", mode: "factor", ext: ["factor"]}, + {name: "FCL", mime: "text/x-fcl", mode: "fcl"}, + {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]}, + {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90", "f95"]}, + {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]}, + {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]}, + {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]}, + {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i}, + {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]}, + {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy", "gradle"], file: /^Jenkinsfile$/}, + {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]}, + {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]}, + {name: "Haskell (Literate)", mime: "text/x-literate-haskell", mode: "haskell-literate", ext: ["lhs"]}, + {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]}, + {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]}, + {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]}, + {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm", "handlebars", "hbs"], alias: ["xhtml"]}, + {name: "HTTP", mime: "message/http", mode: "http"}, + {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]}, + {name: "Pug", mime: "text/x-pug", mode: "pug", ext: ["jade", "pug"], alias: ["jade"]}, + {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, + {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, + {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], + mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, + {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, + {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, + {name: "JSX", mime: "text/jsx", mode: "jsx", ext: ["jsx"]}, + {name: "Jinja2", mime: "text/jinja2", mode: "jinja2", ext: ["j2", "jinja", "jinja2"]}, + {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, + {name: "Kotlin", mime: "text/x-kotlin", mode: "clike", ext: ["kt"]}, + {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, + {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, + {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]}, + {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]}, + {name: "mIRC", mime: "text/mirc", mode: "mirc"}, + {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"}, + {name: "Mathematica", mime: "text/x-mathematica", mode: "mathematica", ext: ["m", "nb"]}, + {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]}, + {name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]}, + {name: "MS SQL", mime: "text/x-mssql", mode: "sql"}, + {name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]}, + {name: "MySQL", mime: "text/x-mysql", mode: "sql"}, + {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i}, + {name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]}, + {name: "NTriples", mimes: ["application/n-triples", "application/n-quads", "text/n-triples"], + mode: "ntriples", ext: ["nt", "nq"]}, + {name: "Objective-C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"], alias: ["objective-c", "objc"]}, + {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]}, + {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]}, + {name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]}, + {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]}, + {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]}, + {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]}, + {name: "PHP", mimes: ["text/x-php", "application/x-httpd-php", "application/x-httpd-php-open"], mode: "php", ext: ["php", "php3", "php4", "php5", "php7", "phtml"]}, + {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]}, + {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]}, + {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]}, + {name: "PostgreSQL", mime: "text/x-pgsql", mode: "sql"}, + {name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]}, + {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]}, + {name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]}, + {name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/}, + {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]}, + {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]}, + {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r", "R"], alias: ["rscript"]}, + {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]}, + {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"}, + {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]}, + {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]}, + {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]}, + {name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]}, + {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]}, + {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]}, + {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]}, + {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]}, + {name: "Shell", mimes: ["text/x-sh", "application/x-sh"], mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"], file: /^PKGBUILD$/}, + {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]}, + {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]}, + {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]}, + {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]}, + {name: "Solr", mime: "text/x-solr", mode: "solr"}, + {name: "SML", mime: "text/x-sml", mode: "mllike", ext: ["sml", "sig", "fun", "smackspec"]}, + {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]}, + {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]}, + {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]}, + {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]}, + {name: "SQLite", mime: "text/x-sqlite", mode: "sql"}, + {name: "Squirrel", mime: "text/x-squirrel", mode: "clike", ext: ["nut"]}, + {name: "Stylus", mime: "text/x-styl", mode: "stylus", ext: ["styl"]}, + {name: "Swift", mime: "text/x-swift", mode: "swift", ext: ["swift"]}, + {name: "sTeX", mime: "text/x-stex", mode: "stex"}, + {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx", "tex"], alias: ["tex"]}, + {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v", "sv", "svh"]}, + {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]}, + {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]}, + {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"}, + {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"}, + {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]}, + {name: "Tornado", mime: "text/x-tornado", mode: "tornado"}, + {name: "troff", mime: "text/troff", mode: "troff", ext: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]}, + {name: "TTCN", mime: "text/x-ttcn", mode: "ttcn", ext: ["ttcn", "ttcn3", "ttcnpp"]}, + {name: "TTCN_CFG", mime: "text/x-ttcn-cfg", mode: "ttcn-cfg", ext: ["cfg"]}, + {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]}, + {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]}, + {name: "TypeScript-JSX", mime: "text/typescript-jsx", mode: "jsx", ext: ["tsx"], alias: ["tsx"]}, + {name: "Twig", mime: "text/x-twig", mode: "twig"}, + {name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]}, + {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]}, + {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]}, + {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]}, + {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]}, + {name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]}, + {name: "Vue.js Component", mimes: ["script/x-vue", "text/x-vue"], mode: "vue", ext: ["vue"]}, + {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd", "svg"], alias: ["rss", "wsdl", "xsd"]}, + {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]}, + {name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]}, + {name: "YAML", mimes: ["text/x-yaml", "text/yaml"], mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]}, + {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]}, + {name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]}, + {name: "xu", mime: "text/x-xu", mode: "mscgen", ext: ["xu"]}, + {name: "msgenny", mime: "text/x-msgenny", mode: "mscgen", ext: ["msgenny"]} + ]; + // Ensure all modes have a mime property for backwards compatibility + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mimes) info.mime = info.mimes[0]; + } + + CodeMirror.findModeByMIME = function(mime) { + mime = mime.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.mime == mime) return info; + if (info.mimes) for (var j = 0; j < info.mimes.length; j++) + if (info.mimes[j] == mime) return info; + } + if (/\+xml$/.test(mime)) return CodeMirror.findModeByMIME("application/xml") + if (/\+json$/.test(mime)) return CodeMirror.findModeByMIME("application/json") + }; + + CodeMirror.findModeByExtension = function(ext) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.ext) for (var j = 0; j < info.ext.length; j++) + if (info.ext[j] == ext) return info; + } + }; + + CodeMirror.findModeByFileName = function(filename) { + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.file && info.file.test(filename)) return info; + } + var dot = filename.lastIndexOf("."); + var ext = dot > -1 && filename.substring(dot + 1, filename.length); + if (ext) return CodeMirror.findModeByExtension(ext); + }; + + CodeMirror.findModeByName = function(name) { + name = name.toLowerCase(); + for (var i = 0; i < CodeMirror.modeInfo.length; i++) { + var info = CodeMirror.modeInfo[i]; + if (info.name.toLowerCase() == name) return info; + if (info.alias) for (var j = 0; j < info.alias.length; j++) + if (info.alias[j].toLowerCase() == name) return info; + } + }; +}); + + +/***/ }), + +/***/ "./node_modules/codemirror/mode/xml/xml.js": +/*!*************************************************!*\ + !*** ./node_modules/codemirror/mode/xml/xml.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (true) // CommonJS + mod(__webpack_require__(/*! ../../lib/codemirror */ "./node_modules/codemirror/lib/codemirror.js")); + else {} +})(function(CodeMirror) { +"use strict"; + +var htmlConfig = { + autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, + 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, + 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, + 'track': true, 'wbr': true, 'menuitem': true}, + implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, + 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, + 'th': true, 'tr': true}, + contextGrabbers: { + 'dd': {'dd': true, 'dt': true}, + 'dt': {'dd': true, 'dt': true}, + 'li': {'li': true}, + 'option': {'option': true, 'optgroup': true}, + 'optgroup': {'optgroup': true}, + 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, + 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, + 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, + 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, + 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, + 'rp': {'rp': true, 'rt': true}, + 'rt': {'rp': true, 'rt': true}, + 'tbody': {'tbody': true, 'tfoot': true}, + 'td': {'td': true, 'th': true}, + 'tfoot': {'tbody': true}, + 'th': {'td': true, 'th': true}, + 'thead': {'tbody': true, 'tfoot': true}, + 'tr': {'tr': true} + }, + doNotIndent: {"pre": true}, + allowUnquoted: true, + allowMissing: true, + caseFold: true +} + +var xmlConfig = { + autoSelfClosers: {}, + implicitlyClosed: {}, + contextGrabbers: {}, + doNotIndent: {}, + allowUnquoted: false, + allowMissing: false, + allowMissingTagName: false, + caseFold: false +} + +CodeMirror.defineMode("xml", function(editorConf, config_) { + var indentUnit = editorConf.indentUnit + var config = {} + var defaults = config_.htmlMode ? htmlConfig : xmlConfig + for (var prop in defaults) config[prop] = defaults[prop] + for (var prop in config_) config[prop] = config_[prop] + + // Return variables for tokenizers + var type, setStyle; + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var ch = stream.next(); + if (ch == "<") { + if (stream.eat("!")) { + if (stream.eat("[")) { + if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); + else return null; + } else if (stream.match("--")) { + return chain(inBlock("comment", "-->")); + } else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } else { + return null; + } + } else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } else { + type = stream.eat("/") ? "closeTag" : "openTag"; + state.tokenize = inTag; + return "tag bracket"; + } + } else if (ch == "&") { + var ok; + if (stream.eat("#")) { + if (stream.eat("x")) { + ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); + } else { + ok = stream.eatWhile(/[\d]/) && stream.eat(";"); + } + } else { + ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); + } + return ok ? "atom" : "error"; + } else { + stream.eatWhile(/[^&<]/); + return null; + } + } + inText.isInText = true; + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag bracket"; + } else if (ch == "=") { + type = "equals"; + return null; + } else if (ch == "<") { + state.tokenize = inText; + state.state = baseState; + state.tagName = state.tagStart = null; + var next = state.tokenize(stream, state); + return next ? next + " tag error" : "tag error"; + } else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + state.stringStartCol = stream.column(); + return state.tokenize(stream, state); + } else { + stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); + return "word"; + } + } + + function inAttribute(quote) { + var closure = function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + closure.isInAttribute = true; + return closure; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + } + } + + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + function Context(state, tagName, startOfLine) { + this.prev = state.context; + this.tagName = tagName; + this.indent = state.indented; + this.startOfLine = startOfLine; + if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) + this.noIndent = true; + } + function popContext(state) { + if (state.context) state.context = state.context.prev; + } + function maybePopContext(state, nextTagName) { + var parentTagName; + while (true) { + if (!state.context) { + return; + } + parentTagName = state.context.tagName; + if (!config.contextGrabbers.hasOwnProperty(parentTagName) || + !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { + return; + } + popContext(state); + } + } + + function baseState(type, stream, state) { + if (type == "openTag") { + state.tagStart = stream.column(); + return tagNameState; + } else if (type == "closeTag") { + return closeTagNameState; + } else { + return baseState; + } + } + function tagNameState(type, stream, state) { + if (type == "word") { + state.tagName = stream.current(); + setStyle = "tag"; + return attrState; + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return attrState(type, stream, state); + } else { + setStyle = "error"; + return tagNameState; + } + } + function closeTagNameState(type, stream, state) { + if (type == "word") { + var tagName = stream.current(); + if (state.context && state.context.tagName != tagName && + config.implicitlyClosed.hasOwnProperty(state.context.tagName)) + popContext(state); + if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) { + setStyle = "tag"; + return closeState; + } else { + setStyle = "tag error"; + return closeStateErr; + } + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return closeState(type, stream, state); + } else { + setStyle = "error"; + return closeStateErr; + } + } + + function closeState(type, _stream, state) { + if (type != "endTag") { + setStyle = "error"; + return closeState; + } + popContext(state); + return baseState; + } + function closeStateErr(type, stream, state) { + setStyle = "error"; + return closeState(type, stream, state); + } + + function attrState(type, _stream, state) { + if (type == "word") { + setStyle = "attribute"; + return attrEqState; + } else if (type == "endTag" || type == "selfcloseTag") { + var tagName = state.tagName, tagStart = state.tagStart; + state.tagName = state.tagStart = null; + if (type == "selfcloseTag" || + config.autoSelfClosers.hasOwnProperty(tagName)) { + maybePopContext(state, tagName); + } else { + maybePopContext(state, tagName); + state.context = new Context(state, tagName, tagStart == state.indented); + } + return baseState; + } + setStyle = "error"; + return attrState; + } + function attrEqState(type, stream, state) { + if (type == "equals") return attrValueState; + if (!config.allowMissing) setStyle = "error"; + return attrState(type, stream, state); + } + function attrValueState(type, stream, state) { + if (type == "string") return attrContinuedState; + if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;} + setStyle = "error"; + return attrState(type, stream, state); + } + function attrContinuedState(type, stream, state) { + if (type == "string") return attrContinuedState; + return attrState(type, stream, state); + } + + return { + startState: function(baseIndent) { + var state = {tokenize: inText, + state: baseState, + indented: baseIndent || 0, + tagName: null, tagStart: null, + context: null} + if (baseIndent != null) state.baseIndent = baseIndent + return state + }, + + token: function(stream, state) { + if (!state.tagName && stream.sol()) + state.indented = stream.indentation(); + + if (stream.eatSpace()) return null; + type = null; + var style = state.tokenize(stream, state); + if ((style || type) && style != "comment") { + setStyle = null; + state.state = state.state(type || style, stream, state); + if (setStyle) + style = setStyle == "error" ? style + " error" : setStyle; + } + return style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + // Indent multi-line strings (e.g. css). + if (state.tokenize.isInAttribute) { + if (state.tagStart == state.indented) + return state.stringStartCol + 1; + else + return state.indented + indentUnit; + } + if (context && context.noIndent) return CodeMirror.Pass; + if (state.tokenize != inTag && state.tokenize != inText) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + // Indent the starts of attribute names. + if (state.tagName) { + if (config.multilineTagIndentPastTag !== false) + return state.tagStart + state.tagName.length + 2; + else + return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1); + } + if (config.alignCDATA && /$/, + blockCommentStart: "", + + configuration: config.htmlMode ? "html" : "xml", + helperType: config.htmlMode ? "html" : "xml", + + skipAttribute: function(state) { + if (state.state == attrValueState) + state.state = attrState + } + }; +}); + +CodeMirror.defineMIME("text/xml", "xml"); +CodeMirror.defineMIME("application/xml", "xml"); +if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) + CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); + +}); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-css.js": +/*!******************************************************!*\ + !*** ./node_modules/prismjs/components/prism-css.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +(function (Prism) { + + var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/; + + Prism.languages.css = { + 'comment': /\/\*[\s\S]*?\*\//, + 'atrule': { + pattern: /@[\w-]+[\s\S]*?(?:;|(?=\s*\{))/, + inside: { + 'rule': /@[\w-]+/ + // See rest below + } + }, + 'url': { + pattern: RegExp('url\\((?:' + string.source + '|[^\n\r()]*)\\)', 'i'), + inside: { + 'function': /^url/i, + 'punctuation': /^\(|\)$/ + } + }, + 'selector': RegExp('[^{}\\s](?:[^{};"\']|' + string.source + ')*?(?=\\s*\\{)'), + 'string': { + pattern: string, + greedy: true + }, + 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + 'important': /!important\b/i, + 'function': /[-a-z0-9]+(?=\()/i, + 'punctuation': /[(){};:,]/ + }; + + Prism.languages.css['atrule'].inside.rest = Prism.languages.css; + + var markup = Prism.languages.markup; + if (markup) { + markup.tag.addInlined('style', 'css'); + + Prism.languages.insertBefore('inside', 'attr-value', { + 'style-attr': { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, + inside: { + 'attr-name': { + pattern: /^\s*style/i, + inside: markup.tag.inside + }, + 'punctuation': /^\s*=\s*['"]|['"]\s*$/, + 'attr-value': { + pattern: /.+/i, + inside: Prism.languages.css + } + }, + alias: 'language-css' + } + }, markup.tag); + } + +}(Prism)); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-javascript.js": +/*!*************************************************************!*\ + !*** ./node_modules/prismjs/components/prism-javascript.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.javascript = Prism.languages.extend('clike', { + 'class-name': [ + Prism.languages.clike['class-name'], + { + pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/, + lookbehind: true + } + ], + 'keyword': [ + { + pattern: /((?:^|})\s*)(?:catch|finally)\b/, + lookbehind: true + }, + { + pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/, + lookbehind: true + }, + ], + 'number': /\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/, + // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) + 'function': /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/, + 'operator': /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ +}); + +Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/; + +Prism.languages.insertBefore('javascript', 'keyword', { + 'regex': { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=\s*($|[\r\n,.;})\]]))/, + lookbehind: true, + greedy: true + }, + // This must be declared before keyword because we use "function" inside the look-forward + 'function-variable': { + pattern: /#?[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/, + alias: 'function' + }, + 'parameter': [ + { + pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i, + inside: Prism.languages.javascript + }, + { + pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/, + lookbehind: true, + inside: Prism.languages.javascript + }, + { + pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/, + lookbehind: true, + inside: Prism.languages.javascript + } + ], + 'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/ +}); + +Prism.languages.insertBefore('javascript', 'string', { + 'template-string': { + pattern: /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/, + greedy: true, + inside: { + 'template-punctuation': { + pattern: /^`|`$/, + alias: 'string' + }, + 'interpolation': { + pattern: /((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/, + lookbehind: true, + inside: { + 'interpolation-punctuation': { + pattern: /^\${|}$/, + alias: 'punctuation' + }, + rest: Prism.languages.javascript + } + }, + 'string': /[\s\S]+/ + } + } +}); + +if (Prism.languages.markup) { + Prism.languages.markup.tag.addInlined('script', 'javascript'); +} + +Prism.languages.js = Prism.languages.javascript; + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-json.js": +/*!*******************************************************!*\ + !*** ./node_modules/prismjs/components/prism-json.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.json = { + 'property': { + pattern: /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/, + greedy: true + }, + 'string': { + pattern: /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/, + greedy: true + }, + 'comment': /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/, + 'number': /-?\d+\.?\d*(e[+-]?\d+)?/i, + 'punctuation': /[{}[\],]/, + 'operator': /:/, + 'boolean': /\b(?:true|false)\b/, + 'null': { + pattern: /\bnull\b/, + alias: 'keyword' + } +}; + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-markup-templating.js": +/*!********************************************************************!*\ + !*** ./node_modules/prismjs/components/prism-markup-templating.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +(function (Prism) { + + /** + * Returns the placeholder for the given language id and index. + * + * @param {string} language + * @param {string|number} index + * @returns {string} + */ + function getPlaceholder(language, index) { + return '___' + language.toUpperCase() + index + '___'; + } + + Object.defineProperties(Prism.languages['markup-templating'] = {}, { + buildPlaceholders: { + /** + * Tokenize all inline templating expressions matching `placeholderPattern`. + * + * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns + * `true` will be replaced. + * + * @param {object} env The environment of the `before-tokenize` hook. + * @param {string} language The language id. + * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders. + * @param {(match: string) => boolean} [replaceFilter] + */ + value: function (env, language, placeholderPattern, replaceFilter) { + if (env.language !== language) { + return; + } + + var tokenStack = env.tokenStack = []; + + env.code = env.code.replace(placeholderPattern, function (match) { + if (typeof replaceFilter === 'function' && !replaceFilter(match)) { + return match; + } + var i = tokenStack.length; + var placeholder; + + // Check for existing strings + while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1) + ++i; + + // Create a sparse array + tokenStack[i] = match; + + return placeholder; + }); + + // Switch the grammar to markup + env.grammar = Prism.languages.markup; + } + }, + tokenizePlaceholders: { + /** + * Replace placeholders with proper tokens after tokenizing. + * + * @param {object} env The environment of the `after-tokenize` hook. + * @param {string} language The language id. + */ + value: function (env, language) { + if (env.language !== language || !env.tokenStack) { + return; + } + + // Switch the grammar back + env.grammar = Prism.languages[language]; + + var j = 0; + var keys = Object.keys(env.tokenStack); + + function walkTokens(tokens) { + for (var i = 0; i < tokens.length; i++) { + // all placeholders are replaced already + if (j >= keys.length) { + break; + } + + var token = tokens[i]; + if (typeof token === 'string' || (token.content && typeof token.content === 'string')) { + var k = keys[j]; + var t = env.tokenStack[k]; + var s = typeof token === 'string' ? token : token.content; + var placeholder = getPlaceholder(language, k); + + var index = s.indexOf(placeholder); + if (index > -1) { + ++j; + + var before = s.substring(0, index); + var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t); + var after = s.substring(index + placeholder.length); + + var replacement = []; + if (before) { + replacement.push.apply(replacement, walkTokens([before])); + } + replacement.push(middle); + if (after) { + replacement.push.apply(replacement, walkTokens([after])); + } + + if (typeof token === 'string') { + tokens.splice.apply(tokens, [i, 1].concat(replacement)); + } else { + token.content = replacement; + } + } + } else if (token.content /* && typeof token.content !== 'string' */) { + walkTokens(token.content); + } + } + + return tokens; + } + + walkTokens(env.tokens); + } + } + }); + +}(Prism)); + + +/***/ }), + +/***/ "./node_modules/prismjs/components/prism-markup.js": +/*!*********************************************************!*\ + !*** ./node_modules/prismjs/components/prism-markup.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': //i, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /^(\s*)["']|["']$/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i +}; + +Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = + Prism.languages.markup['entity']; + +// Plugin to make entity title show the real entity, idea by Roman Komarov +Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } +}); + +Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { + /** + * Adds an inlined language to markup. + * + * An example of an inlined language is CSS with `