diff --git a/bookmark_front/public/static/js/localforage.main.js b/bookmark_front/public/static/js/localforage.main.js
deleted file mode 100644
index 974c30a..0000000
--- a/bookmark_front/public/static/js/localforage.main.js
+++ /dev/null
@@ -1,1932 +0,0 @@
-/*!
- localForage -- Offline Storage, Improved
- Version 1.7.3
- https://localforage.github.io/localForage
- (c) 2013-2017 Mozilla, Apache License 2.0
-*/
-!(function(a) {
- if ("object" == typeof exports && "undefined" != typeof module) module.exports = a();
- else if ("function" == typeof define && define.amd) define([], a);
- else {
- var b;
- (b =
- "undefined" != typeof window
- ? window
- : "undefined" != typeof global
- ? global
- : "undefined" != typeof self
- ? self
- : this),
- (b.localforage = a());
- }
-})(function() {
- return (function a(b, c, d) {
- function e(g, h) {
- if (!c[g]) {
- if (!b[g]) {
- var i = "function" == typeof require && require;
- if (!h && i) return i(g, !0);
- if (f) return f(g, !0);
- var j = new Error("Cannot find module '" + g + "'");
- throw ((j.code = "MODULE_NOT_FOUND"), j);
- }
- var k = (c[g] = { exports: {} });
- b[g][0].call(
- k.exports,
- function(a) {
- var c = b[g][1][a];
- return e(c || a);
- },
- k,
- k.exports,
- a,
- b,
- c,
- d
- );
- }
- return c[g].exports;
- }
- for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]);
- return e;
- })(
- {
- 1: [
- function(a, b, c) {
- (function(a) {
- "use strict";
- function c() {
- k = !0;
- for (var a, b, c = l.length; c; ) {
- for (b = l, l = [], a = -1; ++a < c; ) b[a]();
- c = l.length;
- }
- k = !1;
- }
- function d(a) {
- 1 !== l.push(a) || k || e();
- }
- var e,
- f = a.MutationObserver || a.WebKitMutationObserver;
- if (f) {
- var g = 0,
- h = new f(c),
- i = a.document.createTextNode("");
- h.observe(i, { characterData: !0 }),
- (e = function() {
- i.data = g = ++g % 2;
- });
- } else if (a.setImmediate || void 0 === a.MessageChannel)
- e =
- "document" in a && "onreadystatechange" in a.document.createElement("script")
- ? function() {
- var b = a.document.createElement("script");
- (b.onreadystatechange = function() {
- c(), (b.onreadystatechange = null), b.parentNode.removeChild(b), (b = null);
- }),
- a.document.documentElement.appendChild(b);
- }
- : function() {
- setTimeout(c, 0);
- };
- else {
- var j = new a.MessageChannel();
- (j.port1.onmessage = c),
- (e = function() {
- j.port2.postMessage(0);
- });
- }
- var k,
- l = [];
- b.exports = d;
- }.call(
- this,
- "undefined" != typeof global
- ? global
- : "undefined" != typeof self
- ? self
- : "undefined" != typeof window
- ? window
- : {}
- ));
- },
- {}
- ],
- 2: [
- function(a, b, c) {
- "use strict";
- function d() {}
- function e(a) {
- if ("function" != typeof a) throw new TypeError("resolver must be a function");
- (this.state = s), (this.queue = []), (this.outcome = void 0), a !== d && i(this, a);
- }
- function f(a, b, c) {
- (this.promise = a),
- "function" == typeof b &&
- ((this.onFulfilled = b), (this.callFulfilled = this.otherCallFulfilled)),
- "function" == typeof c &&
- ((this.onRejected = c), (this.callRejected = this.otherCallRejected));
- }
- function g(a, b, c) {
- o(function() {
- var d;
- try {
- d = b(c);
- } catch (b) {
- return p.reject(a, b);
- }
- d === a
- ? p.reject(a, new TypeError("Cannot resolve promise with itself"))
- : p.resolve(a, d);
- });
- }
- function h(a) {
- var b = a && a.then;
- if (a && ("object" == typeof a || "function" == typeof a) && "function" == typeof b)
- return function() {
- b.apply(a, arguments);
- };
- }
- function i(a, b) {
- function c(b) {
- f || ((f = !0), p.reject(a, b));
- }
- function d(b) {
- f || ((f = !0), p.resolve(a, b));
- }
- function e() {
- b(d, c);
- }
- var f = !1,
- g = j(e);
- "error" === g.status && c(g.value);
- }
- function j(a, b) {
- var c = {};
- try {
- (c.value = a(b)), (c.status = "success");
- } catch (a) {
- (c.status = "error"), (c.value = a);
- }
- return c;
- }
- function k(a) {
- return a instanceof this ? a : p.resolve(new this(d), a);
- }
- function l(a) {
- var b = new this(d);
- return p.reject(b, a);
- }
- function m(a) {
- function b(a, b) {
- function d(a) {
- (g[b] = a), ++h !== e || f || ((f = !0), p.resolve(j, g));
- }
- c.resolve(a).then(d, function(a) {
- f || ((f = !0), p.reject(j, a));
- });
- }
- var c = this;
- if ("[object Array]" !== Object.prototype.toString.call(a))
- return this.reject(new TypeError("must be an array"));
- var e = a.length,
- f = !1;
- if (!e) return this.resolve([]);
- for (var g = new Array(e), h = 0, i = -1, j = new this(d); ++i < e; ) b(a[i], i);
- return j;
- }
- function n(a) {
- function b(a) {
- c.resolve(a).then(
- function(a) {
- f || ((f = !0), p.resolve(h, a));
- },
- function(a) {
- f || ((f = !0), p.reject(h, a));
- }
- );
- }
- var c = this;
- if ("[object Array]" !== Object.prototype.toString.call(a))
- return this.reject(new TypeError("must be an array"));
- var e = a.length,
- f = !1;
- if (!e) return this.resolve([]);
- for (var g = -1, h = new this(d); ++g < e; ) b(a[g]);
- return h;
- }
- var o = a(1),
- p = {},
- q = ["REJECTED"],
- r = ["FULFILLED"],
- s = ["PENDING"];
- (b.exports = e),
- (e.prototype.catch = function(a) {
- return this.then(null, a);
- }),
- (e.prototype.then = function(a, b) {
- if (
- ("function" != typeof a && this.state === r) ||
- ("function" != typeof b && this.state === q)
- )
- return this;
- var c = new this.constructor(d);
- if (this.state !== s) {
- g(c, this.state === r ? a : b, this.outcome);
- } else this.queue.push(new f(c, a, b));
- return c;
- }),
- (f.prototype.callFulfilled = function(a) {
- p.resolve(this.promise, a);
- }),
- (f.prototype.otherCallFulfilled = function(a) {
- g(this.promise, this.onFulfilled, a);
- }),
- (f.prototype.callRejected = function(a) {
- p.reject(this.promise, a);
- }),
- (f.prototype.otherCallRejected = function(a) {
- g(this.promise, this.onRejected, a);
- }),
- (p.resolve = function(a, b) {
- var c = j(h, b);
- if ("error" === c.status) return p.reject(a, c.value);
- var d = c.value;
- if (d) i(a, d);
- else {
- (a.state = r), (a.outcome = b);
- for (var e = -1, f = a.queue.length; ++e < f; ) a.queue[e].callFulfilled(b);
- }
- return a;
- }),
- (p.reject = function(a, b) {
- (a.state = q), (a.outcome = b);
- for (var c = -1, d = a.queue.length; ++c < d; ) a.queue[c].callRejected(b);
- return a;
- }),
- (e.resolve = k),
- (e.reject = l),
- (e.all = m),
- (e.race = n);
- },
- { 1: 1 }
- ],
- 3: [
- function(a, b, c) {
- (function(b) {
- "use strict";
- "function" != typeof b.Promise && (b.Promise = a(2));
- }.call(
- this,
- "undefined" != typeof global
- ? global
- : "undefined" != typeof self
- ? self
- : "undefined" != typeof window
- ? window
- : {}
- ));
- },
- { 2: 2 }
- ],
- 4: [
- function(a, b, c) {
- "use strict";
- function d(a, b) {
- if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function");
- }
- function e() {
- try {
- if ("undefined" != typeof indexedDB) return indexedDB;
- if ("undefined" != typeof webkitIndexedDB) return webkitIndexedDB;
- if ("undefined" != typeof mozIndexedDB) return mozIndexedDB;
- if ("undefined" != typeof OIndexedDB) return OIndexedDB;
- if ("undefined" != typeof msIndexedDB) return msIndexedDB;
- } catch (a) {
- return;
- }
- }
- function f() {
- try {
- if (!ua) return !1;
- var a =
- "undefined" != typeof openDatabase &&
- /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) &&
- !/Chrome/.test(navigator.userAgent) &&
- !/BlackBerry/.test(navigator.platform),
- b = "function" == typeof fetch && -1 !== fetch.toString().indexOf("[native code");
- return (
- (!a || b) && "undefined" != typeof indexedDB && "undefined" != typeof IDBKeyRange
- );
- } catch (a) {
- return !1;
- }
- }
- function g(a, b) {
- (a = a || []), (b = b || {});
- try {
- return new Blob(a, b);
- } catch (f) {
- if ("TypeError" !== f.name) throw f;
- for (
- var c =
- "undefined" != typeof BlobBuilder
- ? BlobBuilder
- : "undefined" != typeof MSBlobBuilder
- ? MSBlobBuilder
- : "undefined" != typeof MozBlobBuilder
- ? MozBlobBuilder
- : WebKitBlobBuilder,
- d = new c(),
- e = 0;
- e < a.length;
- e += 1
- )
- d.append(a[e]);
- return d.getBlob(b.type);
- }
- }
- function h(a, b) {
- b &&
- a.then(
- function(a) {
- b(null, a);
- },
- function(a) {
- b(a);
- }
- );
- }
- function i(a, b, c) {
- "function" == typeof b && a.then(b), "function" == typeof c && a.catch(c);
- }
- function j(a) {
- return (
- "string" != typeof a &&
- (console.warn(a + " used as a key, but it is not a string."), (a = String(a))),
- a
- );
- }
- function k() {
- if (arguments.length && "function" == typeof arguments[arguments.length - 1])
- return arguments[arguments.length - 1];
- }
- function l(a) {
- for (var b = a.length, c = new ArrayBuffer(b), d = new Uint8Array(c), e = 0; e < b; e++)
- d[e] = a.charCodeAt(e);
- return c;
- }
- function m(a) {
- return new va(function(b) {
- var c = a.transaction(wa, Ba),
- d = g([""]);
- c.objectStore(wa).put(d, "key"),
- (c.onabort = function(a) {
- a.preventDefault(), a.stopPropagation(), b(!1);
- }),
- (c.oncomplete = function() {
- var a = navigator.userAgent.match(/Chrome\/(\d+)/),
- c = navigator.userAgent.match(/Edge\//);
- b(c || !a || parseInt(a[1], 10) >= 43);
- });
- }).catch(function() {
- return !1;
- });
- }
- function n(a) {
- return "boolean" == typeof xa
- ? va.resolve(xa)
- : m(a).then(function(a) {
- return (xa = a);
- });
- }
- function o(a) {
- var b = ya[a.name],
- c = {};
- (c.promise = new va(function(a, b) {
- (c.resolve = a), (c.reject = b);
- })),
- b.deferredOperations.push(c),
- b.dbReady
- ? (b.dbReady = b.dbReady.then(function() {
- return c.promise;
- }))
- : (b.dbReady = c.promise);
- }
- function p(a) {
- var b = ya[a.name],
- c = b.deferredOperations.pop();
- if (c) return c.resolve(), c.promise;
- }
- function q(a, b) {
- var c = ya[a.name],
- d = c.deferredOperations.pop();
- if (d) return d.reject(b), d.promise;
- }
- function r(a, b) {
- return new va(function(c, d) {
- if (((ya[a.name] = ya[a.name] || B()), a.db)) {
- if (!b) return c(a.db);
- o(a), a.db.close();
- }
- var e = [a.name];
- b && e.push(a.version);
- var f = ua.open.apply(ua, e);
- b &&
- (f.onupgradeneeded = function(b) {
- var c = f.result;
- try {
- c.createObjectStore(a.storeName), b.oldVersion <= 1 && c.createObjectStore(wa);
- } catch (c) {
- if ("ConstraintError" !== c.name) throw c;
- console.warn(
- 'The database "' +
- a.name +
- '" has been upgraded from version ' +
- b.oldVersion +
- " to version " +
- b.newVersion +
- ', but the storage "' +
- a.storeName +
- '" already exists.'
- );
- }
- }),
- (f.onerror = function(a) {
- a.preventDefault(), d(f.error);
- }),
- (f.onsuccess = function() {
- c(f.result), p(a);
- });
- });
- }
- function s(a) {
- return r(a, !1);
- }
- function t(a) {
- return r(a, !0);
- }
- function u(a, b) {
- if (!a.db) return !0;
- var c = !a.db.objectStoreNames.contains(a.storeName),
- d = a.version < a.db.version,
- e = a.version > a.db.version;
- if (
- (d &&
- (a.version !== b &&
- console.warn(
- 'The database "' +
- a.name +
- "\" can't be downgraded from version " +
- a.db.version +
- " to version " +
- a.version +
- "."
- ),
- (a.version = a.db.version)),
- e || c)
- ) {
- if (c) {
- var f = a.db.version + 1;
- f > a.version && (a.version = f);
- }
- return !0;
- }
- return !1;
- }
- function v(a) {
- return new va(function(b, c) {
- var d = new FileReader();
- (d.onerror = c),
- (d.onloadend = function(c) {
- var d = btoa(c.target.result || "");
- b({ __local_forage_encoded_blob: !0, data: d, type: a.type });
- }),
- d.readAsBinaryString(a);
- });
- }
- function w(a) {
- return g([l(atob(a.data))], { type: a.type });
- }
- function x(a) {
- return a && a.__local_forage_encoded_blob;
- }
- function y(a) {
- var b = this,
- c = b._initReady().then(function() {
- var a = ya[b._dbInfo.name];
- if (a && a.dbReady) return a.dbReady;
- });
- return i(c, a, a), c;
- }
- function z(a) {
- o(a);
- for (var b = ya[a.name], c = b.forages, d = 0; d < c.length; d++) {
- var e = c[d];
- e._dbInfo.db && (e._dbInfo.db.close(), (e._dbInfo.db = null));
- }
- return (
- (a.db = null),
- s(a)
- .then(function(b) {
- return (a.db = b), u(a) ? t(a) : b;
- })
- .then(function(d) {
- a.db = b.db = d;
- for (var e = 0; e < c.length; e++) c[e]._dbInfo.db = d;
- })
- .catch(function(b) {
- throw (q(a, b), b);
- })
- );
- }
- function A(a, b, c, d) {
- void 0 === d && (d = 1);
- try {
- var e = a.db.transaction(a.storeName, b);
- c(null, e);
- } catch (e) {
- if (d > 0 && (!a.db || "InvalidStateError" === e.name || "NotFoundError" === e.name))
- return va
- .resolve()
- .then(function() {
- if (
- !a.db ||
- ("NotFoundError" === e.name &&
- !a.db.objectStoreNames.contains(a.storeName) &&
- a.version <= a.db.version)
- )
- return a.db && (a.version = a.db.version + 1), t(a);
- })
- .then(function() {
- return z(a).then(function() {
- A(a, b, c, d - 1);
- });
- })
- .catch(c);
- c(e);
- }
- }
- function B() {
- return { forages: [], db: null, dbReady: null, deferredOperations: [] };
- }
- function C(a) {
- function b() {
- return va.resolve();
- }
- var c = this,
- d = { db: null };
- if (a) for (var e in a) d[e] = a[e];
- var f = ya[d.name];
- f || ((f = B()), (ya[d.name] = f)),
- f.forages.push(c),
- c._initReady || ((c._initReady = c.ready), (c.ready = y));
- for (var g = [], h = 0; h < f.forages.length; h++) {
- var i = f.forages[h];
- i !== c && g.push(i._initReady().catch(b));
- }
- var j = f.forages.slice(0);
- return va
- .all(g)
- .then(function() {
- return (d.db = f.db), s(d);
- })
- .then(function(a) {
- return (d.db = a), u(d, c._defaultConfig.version) ? t(d) : a;
- })
- .then(function(a) {
- (d.db = f.db = a), (c._dbInfo = d);
- for (var b = 0; b < j.length; b++) {
- var e = j[b];
- e !== c && ((e._dbInfo.db = d.db), (e._dbInfo.version = d.version));
- }
- });
- }
- function D(a, b) {
- var c = this;
- a = j(a);
- var d = new va(function(b, d) {
- c.ready()
- .then(function() {
- A(c._dbInfo, Aa, function(e, f) {
- if (e) return d(e);
- try {
- var g = f.objectStore(c._dbInfo.storeName),
- h = g.get(a);
- (h.onsuccess = function() {
- var a = h.result;
- void 0 === a && (a = null), x(a) && (a = w(a)), b(a);
- }),
- (h.onerror = function() {
- d(h.error);
- });
- } catch (a) {
- d(a);
- }
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function E(a, b) {
- var c = this,
- d = new va(function(b, d) {
- c.ready()
- .then(function() {
- A(c._dbInfo, Aa, function(e, f) {
- if (e) return d(e);
- try {
- var g = f.objectStore(c._dbInfo.storeName),
- h = g.openCursor(),
- i = 1;
- (h.onsuccess = function() {
- var c = h.result;
- if (c) {
- var d = c.value;
- x(d) && (d = w(d));
- var e = a(d, c.key, i++);
- void 0 !== e ? b(e) : c.continue();
- } else b();
- }),
- (h.onerror = function() {
- d(h.error);
- });
- } catch (a) {
- d(a);
- }
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function F(a, b, c) {
- var d = this;
- a = j(a);
- var e = new va(function(c, e) {
- var f;
- d.ready()
- .then(function() {
- return (
- (f = d._dbInfo),
- "[object Blob]" === za.call(b)
- ? n(f.db).then(function(a) {
- return a ? b : v(b);
- })
- : b
- );
- })
- .then(function(b) {
- A(d._dbInfo, Ba, function(f, g) {
- if (f) return e(f);
- try {
- var h = g.objectStore(d._dbInfo.storeName);
- null === b && (b = void 0);
- var i = h.put(b, a);
- (g.oncomplete = function() {
- void 0 === b && (b = null), c(b);
- }),
- (g.onabort = g.onerror = function() {
- var a = i.error ? i.error : i.transaction.error;
- e(a);
- });
- } catch (a) {
- e(a);
- }
- });
- })
- .catch(e);
- });
- return h(e, c), e;
- }
- function G(a, b) {
- var c = this;
- a = j(a);
- var d = new va(function(b, d) {
- c.ready()
- .then(function() {
- A(c._dbInfo, Ba, function(e, f) {
- if (e) return d(e);
- try {
- var g = f.objectStore(c._dbInfo.storeName),
- h = g.delete(a);
- (f.oncomplete = function() {
- b();
- }),
- (f.onerror = function() {
- d(h.error);
- }),
- (f.onabort = function() {
- var a = h.error ? h.error : h.transaction.error;
- d(a);
- });
- } catch (a) {
- d(a);
- }
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function H(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- A(b._dbInfo, Ba, function(d, e) {
- if (d) return c(d);
- try {
- var f = e.objectStore(b._dbInfo.storeName),
- g = f.clear();
- (e.oncomplete = function() {
- a();
- }),
- (e.onabort = e.onerror = function() {
- var a = g.error ? g.error : g.transaction.error;
- c(a);
- });
- } catch (a) {
- c(a);
- }
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function I(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- A(b._dbInfo, Aa, function(d, e) {
- if (d) return c(d);
- try {
- var f = e.objectStore(b._dbInfo.storeName),
- g = f.count();
- (g.onsuccess = function() {
- a(g.result);
- }),
- (g.onerror = function() {
- c(g.error);
- });
- } catch (a) {
- c(a);
- }
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function J(a, b) {
- var c = this,
- d = new va(function(b, d) {
- if (a < 0) return void b(null);
- c.ready()
- .then(function() {
- A(c._dbInfo, Aa, function(e, f) {
- if (e) return d(e);
- try {
- var g = f.objectStore(c._dbInfo.storeName),
- h = !1,
- i = g.openCursor();
- (i.onsuccess = function() {
- var c = i.result;
- if (!c) return void b(null);
- 0 === a ? b(c.key) : h ? b(c.key) : ((h = !0), c.advance(a));
- }),
- (i.onerror = function() {
- d(i.error);
- });
- } catch (a) {
- d(a);
- }
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function K(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- A(b._dbInfo, Aa, function(d, e) {
- if (d) return c(d);
- try {
- var f = e.objectStore(b._dbInfo.storeName),
- g = f.openCursor(),
- h = [];
- (g.onsuccess = function() {
- var b = g.result;
- if (!b) return void a(h);
- h.push(b.key), b.continue();
- }),
- (g.onerror = function() {
- c(g.error);
- });
- } catch (a) {
- c(a);
- }
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function L(a, b) {
- b = k.apply(this, arguments);
- var c = this.config();
- (a = ("function" != typeof a && a) || {}),
- a.name || ((a.name = a.name || c.name), (a.storeName = a.storeName || c.storeName));
- var d,
- e = this;
- if (a.name) {
- var f = a.name === c.name && e._dbInfo.db,
- g = f
- ? va.resolve(e._dbInfo.db)
- : s(a).then(function(b) {
- var c = ya[a.name],
- d = c.forages;
- c.db = b;
- for (var e = 0; e < d.length; e++) d[e]._dbInfo.db = b;
- return b;
- });
- d = a.storeName
- ? g.then(function(b) {
- if (b.objectStoreNames.contains(a.storeName)) {
- var c = b.version + 1;
- o(a);
- var d = ya[a.name],
- e = d.forages;
- b.close();
- for (var f = 0; f < e.length; f++) {
- var g = e[f];
- (g._dbInfo.db = null), (g._dbInfo.version = c);
- }
- return new va(function(b, d) {
- var e = ua.open(a.name, c);
- (e.onerror = function(a) {
- e.result.close(), d(a);
- }),
- (e.onupgradeneeded = function() {
- e.result.deleteObjectStore(a.storeName);
- }),
- (e.onsuccess = function() {
- var a = e.result;
- a.close(), b(a);
- });
- })
- .then(function(a) {
- d.db = a;
- for (var b = 0; b < e.length; b++) {
- var c = e[b];
- (c._dbInfo.db = a), p(c._dbInfo);
- }
- })
- .catch(function(b) {
- throw ((q(a, b) || va.resolve()).catch(function() {}), b);
- });
- }
- })
- : g.then(function(b) {
- o(a);
- var c = ya[a.name],
- d = c.forages;
- b.close();
- for (var e = 0; e < d.length; e++) {
- d[e]._dbInfo.db = null;
- }
- return new va(function(b, c) {
- var d = ua.deleteDatabase(a.name);
- (d.onerror = d.onblocked = function(a) {
- var b = d.result;
- b && b.close(), c(a);
- }),
- (d.onsuccess = function() {
- var a = d.result;
- a && a.close(), b(a);
- });
- })
- .then(function(a) {
- c.db = a;
- for (var b = 0; b < d.length; b++) p(d[b]._dbInfo);
- })
- .catch(function(b) {
- throw ((q(a, b) || va.resolve()).catch(function() {}), b);
- });
- });
- } else d = va.reject("Invalid arguments");
- return h(d, b), d;
- }
- function M() {
- return "function" == typeof openDatabase;
- }
- function N(a) {
- var b,
- c,
- d,
- e,
- f,
- g = 0.75 * a.length,
- h = a.length,
- i = 0;
- "=" === a[a.length - 1] && (g--, "=" === a[a.length - 2] && g--);
- var j = new ArrayBuffer(g),
- k = new Uint8Array(j);
- for (b = 0; b < h; b += 4)
- (c = Da.indexOf(a[b])),
- (d = Da.indexOf(a[b + 1])),
- (e = Da.indexOf(a[b + 2])),
- (f = Da.indexOf(a[b + 3])),
- (k[i++] = (c << 2) | (d >> 4)),
- (k[i++] = ((15 & d) << 4) | (e >> 2)),
- (k[i++] = ((3 & e) << 6) | (63 & f));
- return j;
- }
- function O(a) {
- var b,
- c = new Uint8Array(a),
- d = "";
- for (b = 0; b < c.length; b += 3)
- (d += Da[c[b] >> 2]),
- (d += Da[((3 & c[b]) << 4) | (c[b + 1] >> 4)]),
- (d += Da[((15 & c[b + 1]) << 2) | (c[b + 2] >> 6)]),
- (d += Da[63 & c[b + 2]]);
- return (
- c.length % 3 == 2
- ? (d = d.substring(0, d.length - 1) + "=")
- : c.length % 3 == 1 && (d = d.substring(0, d.length - 2) + "=="),
- d
- );
- }
- function P(a, b) {
- var c = "";
- if (
- (a && (c = Ua.call(a)),
- a &&
- ("[object ArrayBuffer]" === c ||
- (a.buffer && "[object ArrayBuffer]" === Ua.call(a.buffer))))
- ) {
- var d,
- e = Ga;
- a instanceof ArrayBuffer
- ? ((d = a), (e += Ia))
- : ((d = a.buffer),
- "[object Int8Array]" === c
- ? (e += Ka)
- : "[object Uint8Array]" === c
- ? (e += La)
- : "[object Uint8ClampedArray]" === c
- ? (e += Ma)
- : "[object Int16Array]" === c
- ? (e += Na)
- : "[object Uint16Array]" === c
- ? (e += Pa)
- : "[object Int32Array]" === c
- ? (e += Oa)
- : "[object Uint32Array]" === c
- ? (e += Qa)
- : "[object Float32Array]" === c
- ? (e += Ra)
- : "[object Float64Array]" === c
- ? (e += Sa)
- : b(new Error("Failed to get type for BinaryArray"))),
- b(e + O(d));
- } else if ("[object Blob]" === c) {
- var f = new FileReader();
- (f.onload = function() {
- var c = Ea + a.type + "~" + O(this.result);
- b(Ga + Ja + c);
- }),
- f.readAsArrayBuffer(a);
- } else
- try {
- b(JSON.stringify(a));
- } catch (c) {
- console.error("Couldn't convert value into a JSON string: ", a), b(null, c);
- }
- }
- function Q(a) {
- if (a.substring(0, Ha) !== Ga) return JSON.parse(a);
- var b,
- c = a.substring(Ta),
- d = a.substring(Ha, Ta);
- if (d === Ja && Fa.test(c)) {
- var e = c.match(Fa);
- (b = e[1]), (c = c.substring(e[0].length));
- }
- var f = N(c);
- switch (d) {
- case Ia:
- return f;
- case Ja:
- return g([f], { type: b });
- case Ka:
- return new Int8Array(f);
- case La:
- return new Uint8Array(f);
- case Ma:
- return new Uint8ClampedArray(f);
- case Na:
- return new Int16Array(f);
- case Pa:
- return new Uint16Array(f);
- case Oa:
- return new Int32Array(f);
- case Qa:
- return new Uint32Array(f);
- case Ra:
- return new Float32Array(f);
- case Sa:
- return new Float64Array(f);
- default:
- throw new Error("Unkown type: " + d);
- }
- }
- function R(a, b, c, d) {
- a.executeSql(
- "CREATE TABLE IF NOT EXISTS " +
- b.storeName +
- " (id INTEGER PRIMARY KEY, key unique, value)",
- [],
- c,
- d
- );
- }
- function S(a) {
- var b = this,
- c = { db: null };
- if (a) for (var d in a) c[d] = "string" != typeof a[d] ? a[d].toString() : a[d];
- var e = new va(function(a, d) {
- try {
- c.db = openDatabase(c.name, String(c.version), c.description, c.size);
- } catch (a) {
- return d(a);
- }
- c.db.transaction(function(e) {
- R(
- e,
- c,
- function() {
- (b._dbInfo = c), a();
- },
- function(a, b) {
- d(b);
- }
- );
- }, d);
- });
- return (c.serializer = Va), e;
- }
- function T(a, b, c, d, e, f) {
- a.executeSql(
- c,
- d,
- e,
- function(a, g) {
- g.code === g.SYNTAX_ERR
- ? a.executeSql(
- "SELECT name FROM sqlite_master WHERE type='table' AND name = ?",
- [b.storeName],
- function(a, h) {
- h.rows.length
- ? f(a, g)
- : R(
- a,
- b,
- function() {
- a.executeSql(c, d, e, f);
- },
- f
- );
- },
- f
- )
- : f(a, g);
- },
- f
- );
- }
- function U(a, b) {
- var c = this;
- a = j(a);
- var d = new va(function(b, d) {
- c.ready()
- .then(function() {
- var e = c._dbInfo;
- e.db.transaction(function(c) {
- T(
- c,
- e,
- "SELECT * FROM " + e.storeName + " WHERE key = ? LIMIT 1",
- [a],
- function(a, c) {
- var d = c.rows.length ? c.rows.item(0).value : null;
- d && (d = e.serializer.deserialize(d)), b(d);
- },
- function(a, b) {
- d(b);
- }
- );
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function V(a, b) {
- var c = this,
- d = new va(function(b, d) {
- c.ready()
- .then(function() {
- var e = c._dbInfo;
- e.db.transaction(function(c) {
- T(
- c,
- e,
- "SELECT * FROM " + e.storeName,
- [],
- function(c, d) {
- for (var f = d.rows, g = f.length, h = 0; h < g; h++) {
- var i = f.item(h),
- j = i.value;
- if (
- (j && (j = e.serializer.deserialize(j)),
- void 0 !== (j = a(j, i.key, h + 1)))
- )
- return void b(j);
- }
- b();
- },
- function(a, b) {
- d(b);
- }
- );
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function W(a, b, c, d) {
- var e = this;
- a = j(a);
- var f = new va(function(f, g) {
- e.ready()
- .then(function() {
- void 0 === b && (b = null);
- var h = b,
- i = e._dbInfo;
- i.serializer.serialize(b, function(b, j) {
- j
- ? g(j)
- : i.db.transaction(
- function(c) {
- T(
- c,
- i,
- "INSERT OR REPLACE INTO " +
- i.storeName +
- " (key, value) VALUES (?, ?)",
- [a, b],
- function() {
- f(h);
- },
- function(a, b) {
- g(b);
- }
- );
- },
- function(b) {
- if (b.code === b.QUOTA_ERR) {
- if (d > 0) return void f(W.apply(e, [a, h, c, d - 1]));
- g(b);
- }
- }
- );
- });
- })
- .catch(g);
- });
- return h(f, c), f;
- }
- function X(a, b, c) {
- return W.apply(this, [a, b, c, 1]);
- }
- function Y(a, b) {
- var c = this;
- a = j(a);
- var d = new va(function(b, d) {
- c.ready()
- .then(function() {
- var e = c._dbInfo;
- e.db.transaction(function(c) {
- T(
- c,
- e,
- "DELETE FROM " + e.storeName + " WHERE key = ?",
- [a],
- function() {
- b();
- },
- function(a, b) {
- d(b);
- }
- );
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function Z(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- var d = b._dbInfo;
- d.db.transaction(function(b) {
- T(
- b,
- d,
- "DELETE FROM " + d.storeName,
- [],
- function() {
- a();
- },
- function(a, b) {
- c(b);
- }
- );
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function $(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- var d = b._dbInfo;
- d.db.transaction(function(b) {
- T(
- b,
- d,
- "SELECT COUNT(key) as c FROM " + d.storeName,
- [],
- function(b, c) {
- var d = c.rows.item(0).c;
- a(d);
- },
- function(a, b) {
- c(b);
- }
- );
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function _(a, b) {
- var c = this,
- d = new va(function(b, d) {
- c.ready()
- .then(function() {
- var e = c._dbInfo;
- e.db.transaction(function(c) {
- T(
- c,
- e,
- "SELECT key FROM " + e.storeName + " WHERE id = ? LIMIT 1",
- [a + 1],
- function(a, c) {
- var d = c.rows.length ? c.rows.item(0).key : null;
- b(d);
- },
- function(a, b) {
- d(b);
- }
- );
- });
- })
- .catch(d);
- });
- return h(d, b), d;
- }
- function aa(a) {
- var b = this,
- c = new va(function(a, c) {
- b.ready()
- .then(function() {
- var d = b._dbInfo;
- d.db.transaction(function(b) {
- T(
- b,
- d,
- "SELECT key FROM " + d.storeName,
- [],
- function(b, c) {
- for (var d = [], e = 0; e < c.rows.length; e++)
- d.push(c.rows.item(e).key);
- a(d);
- },
- function(a, b) {
- c(b);
- }
- );
- });
- })
- .catch(c);
- });
- return h(c, a), c;
- }
- function ba(a) {
- return new va(function(b, c) {
- a.transaction(
- function(d) {
- d.executeSql(
- "SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",
- [],
- function(c, d) {
- for (var e = [], f = 0; f < d.rows.length; f++) e.push(d.rows.item(f).name);
- b({ db: a, storeNames: e });
- },
- function(a, b) {
- c(b);
- }
- );
- },
- function(a) {
- c(a);
- }
- );
- });
- }
- function ca(a, b) {
- b = k.apply(this, arguments);
- var c = this.config();
- (a = ("function" != typeof a && a) || {}),
- a.name || ((a.name = a.name || c.name), (a.storeName = a.storeName || c.storeName));
- var d,
- e = this;
- return (
- (d = a.name
- ? new va(function(b) {
- var d;
- (d = a.name === c.name ? e._dbInfo.db : openDatabase(a.name, "", "", 0)),
- b(a.storeName ? { db: d, storeNames: [a.storeName] } : ba(d));
- }).then(function(a) {
- return new va(function(b, c) {
- a.db.transaction(
- function(d) {
- function e(a) {
- return new va(function(b, c) {
- d.executeSql(
- "DROP TABLE IF EXISTS " + a,
- [],
- function() {
- b();
- },
- function(a, b) {
- c(b);
- }
- );
- });
- }
- for (var f = [], g = 0, h = a.storeNames.length; g < h; g++)
- f.push(e(a.storeNames[g]));
- va.all(f)
- .then(function() {
- b();
- })
- .catch(function(a) {
- c(a);
- });
- },
- function(a) {
- c(a);
- }
- );
- });
- })
- : va.reject("Invalid arguments")),
- h(d, b),
- d
- );
- }
- function da() {
- try {
- return (
- "undefined" != typeof localStorage &&
- "setItem" in localStorage &&
- !!localStorage.setItem
- );
- } catch (a) {
- return !1;
- }
- }
- function ea(a, b) {
- var c = a.name + "/";
- return a.storeName !== b.storeName && (c += a.storeName + "/"), c;
- }
- function fa() {
- var a = "_localforage_support_test";
- try {
- return localStorage.setItem(a, !0), localStorage.removeItem(a), !1;
- } catch (a) {
- return !0;
- }
- }
- function ga() {
- return !fa() || localStorage.length > 0;
- }
- function ha(a) {
- var b = this,
- c = {};
- if (a) for (var d in a) c[d] = a[d];
- return (
- (c.keyPrefix = ea(a, b._defaultConfig)),
- ga() ? ((b._dbInfo = c), (c.serializer = Va), va.resolve()) : va.reject()
- );
- }
- function ia(a) {
- var b = this,
- c = b.ready().then(function() {
- for (var a = b._dbInfo.keyPrefix, c = localStorage.length - 1; c >= 0; c--) {
- var d = localStorage.key(c);
- 0 === d.indexOf(a) && localStorage.removeItem(d);
- }
- });
- return h(c, a), c;
- }
- function ja(a, b) {
- var c = this;
- a = j(a);
- var d = c.ready().then(function() {
- var b = c._dbInfo,
- d = localStorage.getItem(b.keyPrefix + a);
- return d && (d = b.serializer.deserialize(d)), d;
- });
- return h(d, b), d;
- }
- function ka(a, b) {
- var c = this,
- d = c.ready().then(function() {
- for (
- var b = c._dbInfo,
- d = b.keyPrefix,
- e = d.length,
- f = localStorage.length,
- g = 1,
- h = 0;
- h < f;
- h++
- ) {
- var i = localStorage.key(h);
- if (0 === i.indexOf(d)) {
- var j = localStorage.getItem(i);
- if (
- (j && (j = b.serializer.deserialize(j)),
- void 0 !== (j = a(j, i.substring(e), g++)))
- )
- return j;
- }
- }
- });
- return h(d, b), d;
- }
- function la(a, b) {
- var c = this,
- d = c.ready().then(function() {
- var b,
- d = c._dbInfo;
- try {
- b = localStorage.key(a);
- } catch (a) {
- b = null;
- }
- return b && (b = b.substring(d.keyPrefix.length)), b;
- });
- return h(d, b), d;
- }
- function ma(a) {
- var b = this,
- c = b.ready().then(function() {
- for (var a = b._dbInfo, c = localStorage.length, d = [], e = 0; e < c; e++) {
- var f = localStorage.key(e);
- 0 === f.indexOf(a.keyPrefix) && d.push(f.substring(a.keyPrefix.length));
- }
- return d;
- });
- return h(c, a), c;
- }
- function na(a) {
- var b = this,
- c = b.keys().then(function(a) {
- return a.length;
- });
- return h(c, a), c;
- }
- function oa(a, b) {
- var c = this;
- a = j(a);
- var d = c.ready().then(function() {
- var b = c._dbInfo;
- localStorage.removeItem(b.keyPrefix + a);
- });
- return h(d, b), d;
- }
- function pa(a, b, c) {
- var d = this;
- a = j(a);
- var e = d.ready().then(function() {
- void 0 === b && (b = null);
- var c = b;
- return new va(function(e, f) {
- var g = d._dbInfo;
- g.serializer.serialize(b, function(b, d) {
- if (d) f(d);
- else
- try {
- localStorage.setItem(g.keyPrefix + a, b), e(c);
- } catch (a) {
- ("QuotaExceededError" !== a.name &&
- "NS_ERROR_DOM_QUOTA_REACHED" !== a.name) ||
- f(a),
- f(a);
- }
- });
- });
- });
- return h(e, c), e;
- }
- function qa(a, b) {
- if (
- ((b = k.apply(this, arguments)), (a = ("function" != typeof a && a) || {}), !a.name)
- ) {
- var c = this.config();
- (a.name = a.name || c.name), (a.storeName = a.storeName || c.storeName);
- }
- var d,
- e = this;
- return (
- (d = a.name
- ? new va(function(b) {
- b(a.storeName ? ea(a, e._defaultConfig) : a.name + "/");
- }).then(function(a) {
- for (var b = localStorage.length - 1; b >= 0; b--) {
- var c = localStorage.key(b);
- 0 === c.indexOf(a) && localStorage.removeItem(c);
- }
- })
- : va.reject("Invalid arguments")),
- h(d, b),
- d
- );
- }
- function ra(a, b) {
- a[b] = function() {
- var c = arguments;
- return a.ready().then(function() {
- return a[b].apply(a, c);
- });
- };
- }
- function sa() {
- for (var a = 1; a < arguments.length; a++) {
- var b = arguments[a];
- if (b)
- for (var c in b)
- b.hasOwnProperty(c) &&
- ($a(b[c]) ? (arguments[0][c] = b[c].slice()) : (arguments[0][c] = b[c]));
- }
- return arguments[0];
- }
- var ta =
- "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
- ? function(a) {
- return typeof a;
- }
- : function(a) {
- return a &&
- "function" == typeof Symbol &&
- a.constructor === Symbol &&
- a !== Symbol.prototype
- ? "symbol"
- : typeof a;
- },
- ua = e();
- "undefined" == typeof Promise && a(3);
- var va = Promise,
- wa = "local-forage-detect-blob-support",
- xa = void 0,
- ya = {},
- za = Object.prototype.toString,
- Aa = "readonly",
- Ba = "readwrite",
- Ca = {
- _driver: "asyncStorage",
- _initStorage: C,
- _support: f(),
- iterate: E,
- getItem: D,
- setItem: F,
- removeItem: G,
- clear: H,
- length: I,
- key: J,
- keys: K,
- dropInstance: L
- },
- Da = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
- Ea = "~~local_forage_type~",
- Fa = /^~~local_forage_type~([^~]+)~/,
- Ga = "__lfsc__:",
- Ha = Ga.length,
- Ia = "arbf",
- Ja = "blob",
- Ka = "si08",
- La = "ui08",
- Ma = "uic8",
- Na = "si16",
- Oa = "si32",
- Pa = "ur16",
- Qa = "ui32",
- Ra = "fl32",
- Sa = "fl64",
- Ta = Ha + Ia.length,
- Ua = Object.prototype.toString,
- Va = { serialize: P, deserialize: Q, stringToBuffer: N, bufferToString: O },
- Wa = {
- _driver: "webSQLStorage",
- _initStorage: S,
- _support: M(),
- iterate: V,
- getItem: U,
- setItem: X,
- removeItem: Y,
- clear: Z,
- length: $,
- key: _,
- keys: aa,
- dropInstance: ca
- },
- Xa = {
- _driver: "localStorageWrapper",
- _initStorage: ha,
- _support: da(),
- iterate: ka,
- getItem: ja,
- setItem: pa,
- removeItem: oa,
- clear: ia,
- length: na,
- key: la,
- keys: ma,
- dropInstance: qa
- },
- Ya = function(a, b) {
- return (
- a === b || ("number" == typeof a && "number" == typeof b && isNaN(a) && isNaN(b))
- );
- },
- Za = function(a, b) {
- for (var c = a.length, d = 0; d < c; ) {
- if (Ya(a[d], b)) return !0;
- d++;
- }
- return !1;
- },
- $a =
- Array.isArray ||
- function(a) {
- return "[object Array]" === Object.prototype.toString.call(a);
- },
- _a = {},
- ab = {},
- bb = { INDEXEDDB: Ca, WEBSQL: Wa, LOCALSTORAGE: Xa },
- cb = [bb.INDEXEDDB._driver, bb.WEBSQL._driver, bb.LOCALSTORAGE._driver],
- db = ["dropInstance"],
- eb = [
- "clear",
- "getItem",
- "iterate",
- "key",
- "keys",
- "length",
- "removeItem",
- "setItem"
- ].concat(db),
- fb = {
- description: "",
- driver: cb.slice(),
- name: "localforage",
- size: 4980736,
- storeName: "keyvaluepairs",
- version: 1
- },
- gb = (function() {
- function a(b) {
- d(this, a);
- for (var c in bb)
- if (bb.hasOwnProperty(c)) {
- var e = bb[c],
- f = e._driver;
- (this[c] = f), _a[f] || this.defineDriver(e);
- }
- (this._defaultConfig = sa({}, fb)),
- (this._config = sa({}, this._defaultConfig, b)),
- (this._driverSet = null),
- (this._initDriver = null),
- (this._ready = !1),
- (this._dbInfo = null),
- this._wrapLibraryMethodsWithReady(),
- this.setDriver(this._config.driver).catch(function() {});
- }
- return (
- (a.prototype.config = function(a) {
- if ("object" === (void 0 === a ? "undefined" : ta(a))) {
- if (this._ready)
- return new Error("Can't call config() after localforage has been used.");
- for (var b in a) {
- if (
- ("storeName" === b && (a[b] = a[b].replace(/\W/g, "_")),
- "version" === b && "number" != typeof a[b])
- )
- return new Error("Database version must be a number.");
- this._config[b] = a[b];
- }
- return !("driver" in a && a.driver) || this.setDriver(this._config.driver);
- }
- return "string" == typeof a ? this._config[a] : this._config;
- }),
- (a.prototype.defineDriver = function(a, b, c) {
- var d = new va(function(b, c) {
- try {
- var d = a._driver,
- e = new Error(
- "Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver"
- );
- if (!a._driver) return void c(e);
- for (var f = eb.concat("_initStorage"), g = 0, i = f.length; g < i; g++) {
- var j = f[g];
- if ((!Za(db, j) || a[j]) && "function" != typeof a[j]) return void c(e);
- }
- (function() {
- for (
- var b = function(a) {
- return function() {
- var b = new Error(
- "Method " + a + " is not implemented by the current driver"
- ),
- c = va.reject(b);
- return h(c, arguments[arguments.length - 1]), c;
- };
- },
- c = 0,
- d = db.length;
- c < d;
- c++
- ) {
- var e = db[c];
- a[e] || (a[e] = b(e));
- }
- })();
- var k = function(c) {
- _a[d] && console.info("Redefining LocalForage driver: " + d),
- (_a[d] = a),
- (ab[d] = c),
- b();
- };
- "_support" in a
- ? a._support && "function" == typeof a._support
- ? a._support().then(k, c)
- : k(!!a._support)
- : k(!0);
- } catch (a) {
- c(a);
- }
- });
- return i(d, b, c), d;
- }),
- (a.prototype.driver = function() {
- return this._driver || null;
- }),
- (a.prototype.getDriver = function(a, b, c) {
- var d = _a[a] ? va.resolve(_a[a]) : va.reject(new Error("Driver not found."));
- return i(d, b, c), d;
- }),
- (a.prototype.getSerializer = function(a) {
- var b = va.resolve(Va);
- return i(b, a), b;
- }),
- (a.prototype.ready = function(a) {
- var b = this,
- c = b._driverSet.then(function() {
- return null === b._ready && (b._ready = b._initDriver()), b._ready;
- });
- return i(c, a, a), c;
- }),
- (a.prototype.setDriver = function(a, b, c) {
- function d() {
- g._config.driver = g.driver();
- }
- function e(a) {
- return g._extend(a), d(), (g._ready = g._initStorage(g._config)), g._ready;
- }
- function f(a) {
- return function() {
- function b() {
- for (; c < a.length; ) {
- var f = a[c];
- return (
- c++,
- (g._dbInfo = null),
- (g._ready = null),
- g
- .getDriver(f)
- .then(e)
- .catch(b)
- );
- }
- d();
- var h = new Error("No available storage method found.");
- return (g._driverSet = va.reject(h)), g._driverSet;
- }
- var c = 0;
- return b();
- };
- }
- var g = this;
- $a(a) || (a = [a]);
- var h = this._getSupportedDrivers(a),
- j =
- null !== this._driverSet
- ? this._driverSet.catch(function() {
- return va.resolve();
- })
- : va.resolve();
- return (
- (this._driverSet = j
- .then(function() {
- var a = h[0];
- return (
- (g._dbInfo = null),
- (g._ready = null),
- g.getDriver(a).then(function(a) {
- (g._driver = a._driver),
- d(),
- g._wrapLibraryMethodsWithReady(),
- (g._initDriver = f(h));
- })
- );
- })
- .catch(function() {
- d();
- var a = new Error("No available storage method found.");
- return (g._driverSet = va.reject(a)), g._driverSet;
- })),
- i(this._driverSet, b, c),
- this._driverSet
- );
- }),
- (a.prototype.supports = function(a) {
- return !!ab[a];
- }),
- (a.prototype._extend = function(a) {
- sa(this, a);
- }),
- (a.prototype._getSupportedDrivers = function(a) {
- for (var b = [], c = 0, d = a.length; c < d; c++) {
- var e = a[c];
- this.supports(e) && b.push(e);
- }
- return b;
- }),
- (a.prototype._wrapLibraryMethodsWithReady = function() {
- for (var a = 0, b = eb.length; a < b; a++) ra(this, eb[a]);
- }),
- (a.prototype.createInstance = function(b) {
- return new a(b);
- }),
- a
- );
- })(),
- hb = new gb();
- b.exports = hb;
- },
- { 3: 3 }
- ]
- },
- {},
- [4]
- )(4);
-});
diff --git a/bookmark_front/src/App.vue b/bookmark_front/src/App.vue
index 1da117b..21c04ab 100644
--- a/bookmark_front/src/App.vue
+++ b/bookmark_front/src/App.vue
@@ -18,6 +18,7 @@ body {
padding: 0;
font-size: 100px;
background-color: @bgColor;
+ height: initial;
}
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
diff --git a/bookmark_front/src/global.less b/bookmark_front/src/global.less
index 8adef63..96351a8 100644
--- a/bookmark_front/src/global.less
+++ b/bookmark_front/src/global.less
@@ -9,7 +9,7 @@
* header 配置
*/
@topHeight: 0.4rem; //header总高度
-@topPadding: 0.04rem; //header padding高度
+@topPaddingTop: 0.04rem; //header padding高度
/**
* bottom配置
diff --git a/bookmark_front/src/layout/main/Content.vue b/bookmark_front/src/layout/main/Content.vue
index aac0f0f..64c627f 100644
--- a/bookmark_front/src/layout/main/Content.vue
+++ b/bookmark_front/src/layout/main/Content.vue
@@ -10,14 +10,24 @@ export default {};
diff --git a/bookmark_front/src/layout/main/Top.vue b/bookmark_front/src/layout/main/Top.vue
index 67e47d2..ceee6d2 100644
--- a/bookmark_front/src/layout/main/Top.vue
+++ b/bookmark_front/src/layout/main/Top.vue
@@ -1,13 +1,35 @@
-
fanxb
+
+
+
+
{{ userInfo.username }}
+
+
+
+ 退出
+
+
+
@@ -16,9 +38,9 @@ export default {
.main {
position: fixed;
top: 0;
- width: calc(100% - 10px);
- height: @topHeight - (2 * @topPadding);
- padding: @topPadding;
+ width: 100%;
+ height: @topHeight;
+ padding: @topPaddingTop 3% @topPaddingTop 3%;
display: flex;
justify-content: space-between;
align-items: center;
@@ -28,6 +50,17 @@ export default {
}
.user {
font-size: 0.3rem;
+ display: flex;
+ align-items: center;
+ cursor: pointer;
+ .userIcon {
+ width: @topHeight - 0.1rem;
+ height: @topHeight - 0.1rem;
+ border-radius: 50%;
+ }
+ .name {
+ font-size: 0.2rem;
+ }
}
}
diff --git a/bookmark_front/src/main.js b/bookmark_front/src/main.js
index 0c3d1b0..385e3c3 100644
--- a/bookmark_front/src/main.js
+++ b/bookmark_front/src/main.js
@@ -1,5 +1,5 @@
import Vue from "vue";
-import { Button, FormModel, Input, Icon, message, Checkbox } from "ant-design-vue";
+import { Button, FormModel, Input, Icon, message, Checkbox, Dropdown, Menu } from "ant-design-vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
@@ -9,6 +9,8 @@ Vue.use(FormModel);
Vue.component(Input.name, Input);
Vue.component(Icon.name, Icon);
Vue.use(Checkbox);
+Vue.use(Dropdown);
+Vue.use(Menu);
Vue.prototype.$message = message;
Vue.config.productionTip = false;
diff --git a/bookmark_front/src/store/modules/globalConfig.js b/bookmark_front/src/store/modules/globalConfig.js
index a9098ba..0b6a411 100644
--- a/bookmark_front/src/store/modules/globalConfig.js
+++ b/bookmark_front/src/store/modules/globalConfig.js
@@ -1,4 +1,4 @@
-import localforage from "localforage";
+import localforage, { clear } from "localforage";
/**
* 存储全局配置
*/
@@ -6,7 +6,7 @@ const state = {
/**
* 用户信息
*/
- userInfo: null,
+ userInfo: {},
/**
* token
*/
@@ -20,6 +20,7 @@ const state = {
const getters = {};
const actions = {
+ //初始化数据
async init(context) {
if (context.state.isInit) {
return;
@@ -29,6 +30,14 @@ const actions = {
window.token = token;
context.commit("setToken", token);
context.commit("isInit", true);
+ },
+ //登出清除数据
+ async clear(context) {
+ await localforage.removeItem("userInfo");
+ await localforage.removeItem("token");
+ delete window.token;
+ context.commit("setUserInfo", {});
+ context.commit("setToken", null);
}
};
diff --git a/bookmark_front/src/views/public/pages/ResetPassword.vue b/bookmark_front/src/views/public/pages/ResetPassword.vue
new file mode 100644
index 0000000..7f9037f
--- /dev/null
+++ b/bookmark_front/src/views/public/pages/ResetPassword.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+