parent
96cf47c419
commit
b75ac5aa97
12 changed files with 912 additions and 81 deletions
|
@ -1,45 +1,47 @@
|
||||||
'use strict'
|
'use strict'
|
||||||
const User = use('App/Models/User')
|
const User = use('App/Models/User')
|
||||||
class AuthController {
|
class AuthController {
|
||||||
|
async registerIndex({view}) {
|
||||||
|
return view.render('register')
|
||||||
|
}
|
||||||
|
|
||||||
async registerIndex({view}){
|
async loginIndex({view}) {
|
||||||
return view.render('register')
|
return view.render('login')
|
||||||
|
}
|
||||||
|
|
||||||
|
async register({request, response, view, session, auth}) {
|
||||||
|
const user = await User.create({
|
||||||
|
email: request.input('email'),
|
||||||
|
name: request.input('name'),
|
||||||
|
password: request.input('password')
|
||||||
|
});
|
||||||
|
if (user.id == 1) {
|
||||||
|
user.is_admin = true;
|
||||||
|
}
|
||||||
|
await user.save();
|
||||||
|
await auth.login(user)
|
||||||
|
response.redirect('/');
|
||||||
|
}
|
||||||
|
|
||||||
|
async login({request, response, auth, session}) {
|
||||||
|
console.log('login');
|
||||||
|
const {email, password} = request.all()
|
||||||
|
try {
|
||||||
|
const token = await auth.attempt(email, password);
|
||||||
|
console.log('logged in');
|
||||||
|
} catch (e) {
|
||||||
|
session.withErrors({loginError: 'Invalid Credentials'}).flashAll()
|
||||||
|
return response.redirect('back')
|
||||||
}
|
}
|
||||||
|
|
||||||
async loginIndex({view}){
|
|
||||||
return view.render('login')
|
|
||||||
}
|
|
||||||
|
|
||||||
async register({request, response, view, session, auth}){
|
response.redirect('/');
|
||||||
|
}
|
||||||
|
|
||||||
const user = await User.create({
|
async logout({auth, response}) {
|
||||||
email: request.input('email'),
|
await auth.logout();
|
||||||
name: request.input('name'),
|
response.redirect('/');
|
||||||
password: request.input('password')
|
}
|
||||||
});
|
|
||||||
await auth.login(user)
|
|
||||||
response.redirect('/');
|
|
||||||
}
|
|
||||||
|
|
||||||
async login({request,response, auth, session}){
|
|
||||||
console.log('login');
|
|
||||||
const { email, password } = request.all()
|
|
||||||
try{
|
|
||||||
const token = await auth.attempt(email, password);
|
|
||||||
console.log('logged in');
|
|
||||||
}catch(e){
|
|
||||||
session.withErrors({ loginError: 'Invalid Credentials' }).flashAll()
|
|
||||||
return response.redirect('back')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
response.redirect('/');
|
|
||||||
}
|
|
||||||
|
|
||||||
async logout({auth, response}){
|
|
||||||
await auth.logout();
|
|
||||||
response.redirect('/');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = AuthController
|
module.exports = AuthController
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
"description": "A shared story time experience",
|
"description": "A shared story time experience",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build:css": "node_modules/.bin/node-sass --omit-source-map-url resources/sass/main.scss public/style.css",
|
"build:css": "npx node-sass --omit-source-map-url resources/sass/main.scss public/style.css",
|
||||||
"build:applications": "node_modules/.bin/webpack --mode production",
|
"build:applications": "npx webpack --mode production",
|
||||||
"watch:css": "npm run build:css -- --watch",
|
"watch:css": "npm run build:css -- --watch",
|
||||||
"watch:applications": "node_modules/.bin/webpack --watch",
|
"watch:applications": "npx webpack --watch",
|
||||||
"migrate": "node_modules/.bin/adonis migration:run -f",
|
"migrate": "npx adonis migration:run -f",
|
||||||
"build": "npm run migrate && npm run build:css && npm run build:applications",
|
"build": "npm run migrate && npm run build:css && npm run build:applications",
|
||||||
"start": "npm run migrate && node server.js",
|
"start": "npm run migrate && node server.js",
|
||||||
"test": "node ace test"
|
"test": "node ace test"
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
/******/
|
/******/
|
||||||
/******/ var hotApplyOnUpdate = true;
|
/******/ var hotApplyOnUpdate = true;
|
||||||
/******/ // eslint-disable-next-line no-unused-vars
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
/******/ var hotCurrentHash = "a84d927f26b0414dc0a0";
|
/******/ var hotCurrentHash = "00aef5287e621526e449";
|
||||||
/******/ var hotRequestTimeout = 10000;
|
/******/ var hotRequestTimeout = 10000;
|
||||||
/******/ var hotCurrentModuleData = {};
|
/******/ var hotCurrentModuleData = {};
|
||||||
/******/ var hotCurrentChildModule;
|
/******/ var hotCurrentChildModule;
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
"use strict";
|
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
|
||||||
(function Navbar() {
|
|
||||||
var menuButton = document.getElementById('menu-button');
|
|
||||||
var navMenu = document.getElementById('nav-menu');
|
|
||||||
menuButton.onclick = function (event) {
|
|
||||||
navMenu.classList.toggle('is-active');
|
|
||||||
};
|
|
||||||
})();
|
|
||||||
});
|
|
||||||
//# sourceMappingURL=navbar.js.map
|
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"file":"navbar.js","sourceRoot":"","sources":["../../../resources/scripts/components/navbar.ts"],"names":[],"mappings":";AACA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE;IAC5C,CAAC,SAAS,MAAM;QACd,IAAM,UAAU,GAAsB,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAsB,CAAC;QAClG,IAAM,OAAO,GAAmB,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAmB,CAAC;QAEtF,UAAU,CAAC,OAAO,GAAG,UAAC,KAAK;YACzB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAA;IAGH,CAAC,CAAC,EAAE,CAAC;AAEP,CAAC,CAAC,CAAC"}
|
|
|
@ -63,7 +63,7 @@
|
||||||
/******/
|
/******/
|
||||||
/******/ var hotApplyOnUpdate = true;
|
/******/ var hotApplyOnUpdate = true;
|
||||||
/******/ // eslint-disable-next-line no-unused-vars
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
/******/ var hotCurrentHash = "a84d927f26b0414dc0a0";
|
/******/ var hotCurrentHash = "00aef5287e621526e449";
|
||||||
/******/ var hotRequestTimeout = 10000;
|
/******/ var hotRequestTimeout = 10000;
|
||||||
/******/ var hotCurrentModuleData = {};
|
/******/ var hotCurrentModuleData = {};
|
||||||
/******/ var hotCurrentChildModule;
|
/******/ var hotCurrentChildModule;
|
||||||
|
@ -258,7 +258,7 @@
|
||||||
/******/ };
|
/******/ };
|
||||||
/******/ });
|
/******/ });
|
||||||
/******/ hotUpdate = {};
|
/******/ hotUpdate = {};
|
||||||
/******/ var chunkId = "components";
|
/******/ var chunkId = "components/navbar";
|
||||||
/******/ // eslint-disable-next-line no-lone-blocks
|
/******/ // eslint-disable-next-line no-lone-blocks
|
||||||
/******/ {
|
/******/ {
|
||||||
/******/ /*globals chunkId */
|
/******/ /*globals chunkId */
|
810
public/scripts/views/register/app.bundle.js
Normal file
810
public/scripts/views/register/app.bundle.js
Normal file
|
@ -0,0 +1,810 @@
|
||||||
|
/******/ (function(modules) { // webpackBootstrap
|
||||||
|
/******/ function hotDisposeChunk(chunkId) {
|
||||||
|
/******/ delete installedChunks[chunkId];
|
||||||
|
/******/ }
|
||||||
|
/******/ var parentHotUpdateCallback = window["webpackHotUpdate"];
|
||||||
|
/******/ window["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function webpackHotUpdateCallback(chunkId, moreModules) {
|
||||||
|
/******/ hotAddUpdateChunk(chunkId, moreModules);
|
||||||
|
/******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
||||||
|
/******/ } ;
|
||||||
|
/******/
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function hotDownloadUpdateChunk(chunkId) {
|
||||||
|
/******/ var script = document.createElement("script");
|
||||||
|
/******/ script.charset = "utf-8";
|
||||||
|
/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
|
||||||
|
/******/ if (null) script.crossOrigin = null;
|
||||||
|
/******/ document.head.appendChild(script);
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function hotDownloadManifest(requestTimeout) {
|
||||||
|
/******/ requestTimeout = requestTimeout || 10000;
|
||||||
|
/******/ return new Promise(function(resolve, reject) {
|
||||||
|
/******/ if (typeof XMLHttpRequest === "undefined") {
|
||||||
|
/******/ return reject(new Error("No browser support"));
|
||||||
|
/******/ }
|
||||||
|
/******/ try {
|
||||||
|
/******/ var request = new XMLHttpRequest();
|
||||||
|
/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
|
||||||
|
/******/ request.open("GET", requestPath, true);
|
||||||
|
/******/ request.timeout = requestTimeout;
|
||||||
|
/******/ request.send(null);
|
||||||
|
/******/ } catch (err) {
|
||||||
|
/******/ return reject(err);
|
||||||
|
/******/ }
|
||||||
|
/******/ request.onreadystatechange = function() {
|
||||||
|
/******/ if (request.readyState !== 4) return;
|
||||||
|
/******/ if (request.status === 0) {
|
||||||
|
/******/ // timeout
|
||||||
|
/******/ reject(
|
||||||
|
/******/ new Error("Manifest request to " + requestPath + " timed out.")
|
||||||
|
/******/ );
|
||||||
|
/******/ } else if (request.status === 404) {
|
||||||
|
/******/ // no update available
|
||||||
|
/******/ resolve();
|
||||||
|
/******/ } else if (request.status !== 200 && request.status !== 304) {
|
||||||
|
/******/ // other failure
|
||||||
|
/******/ reject(new Error("Manifest request to " + requestPath + " failed."));
|
||||||
|
/******/ } else {
|
||||||
|
/******/ // success
|
||||||
|
/******/ try {
|
||||||
|
/******/ var update = JSON.parse(request.responseText);
|
||||||
|
/******/ } catch (e) {
|
||||||
|
/******/ reject(e);
|
||||||
|
/******/ return;
|
||||||
|
/******/ }
|
||||||
|
/******/ resolve(update);
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ var hotApplyOnUpdate = true;
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ var hotCurrentHash = "00aef5287e621526e449";
|
||||||
|
/******/ var hotRequestTimeout = 10000;
|
||||||
|
/******/ var hotCurrentModuleData = {};
|
||||||
|
/******/ var hotCurrentChildModule;
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ var hotCurrentParents = [];
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ var hotCurrentParentsTemp = [];
|
||||||
|
/******/
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function hotCreateRequire(moduleId) {
|
||||||
|
/******/ var me = installedModules[moduleId];
|
||||||
|
/******/ if (!me) return __webpack_require__;
|
||||||
|
/******/ var fn = function(request) {
|
||||||
|
/******/ if (me.hot.active) {
|
||||||
|
/******/ if (installedModules[request]) {
|
||||||
|
/******/ if (installedModules[request].parents.indexOf(moduleId) === -1) {
|
||||||
|
/******/ installedModules[request].parents.push(moduleId);
|
||||||
|
/******/ }
|
||||||
|
/******/ } else {
|
||||||
|
/******/ hotCurrentParents = [moduleId];
|
||||||
|
/******/ hotCurrentChildModule = request;
|
||||||
|
/******/ }
|
||||||
|
/******/ if (me.children.indexOf(request) === -1) {
|
||||||
|
/******/ me.children.push(request);
|
||||||
|
/******/ }
|
||||||
|
/******/ } else {
|
||||||
|
/******/ console.warn(
|
||||||
|
/******/ "[HMR] unexpected require(" +
|
||||||
|
/******/ request +
|
||||||
|
/******/ ") from disposed module " +
|
||||||
|
/******/ moduleId
|
||||||
|
/******/ );
|
||||||
|
/******/ hotCurrentParents = [];
|
||||||
|
/******/ }
|
||||||
|
/******/ return __webpack_require__(request);
|
||||||
|
/******/ };
|
||||||
|
/******/ var ObjectFactory = function ObjectFactory(name) {
|
||||||
|
/******/ return {
|
||||||
|
/******/ configurable: true,
|
||||||
|
/******/ enumerable: true,
|
||||||
|
/******/ get: function() {
|
||||||
|
/******/ return __webpack_require__[name];
|
||||||
|
/******/ },
|
||||||
|
/******/ set: function(value) {
|
||||||
|
/******/ __webpack_require__[name] = value;
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/ };
|
||||||
|
/******/ for (var name in __webpack_require__) {
|
||||||
|
/******/ if (
|
||||||
|
/******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) &&
|
||||||
|
/******/ name !== "e" &&
|
||||||
|
/******/ name !== "t"
|
||||||
|
/******/ ) {
|
||||||
|
/******/ Object.defineProperty(fn, name, ObjectFactory(name));
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ fn.e = function(chunkId) {
|
||||||
|
/******/ if (hotStatus === "ready") hotSetStatus("prepare");
|
||||||
|
/******/ hotChunksLoading++;
|
||||||
|
/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
|
||||||
|
/******/ finishChunkLoading();
|
||||||
|
/******/ throw err;
|
||||||
|
/******/ });
|
||||||
|
/******/
|
||||||
|
/******/ function finishChunkLoading() {
|
||||||
|
/******/ hotChunksLoading--;
|
||||||
|
/******/ if (hotStatus === "prepare") {
|
||||||
|
/******/ if (!hotWaitingFilesMap[chunkId]) {
|
||||||
|
/******/ hotEnsureUpdateChunk(chunkId);
|
||||||
|
/******/ }
|
||||||
|
/******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) {
|
||||||
|
/******/ hotUpdateDownloaded();
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/ fn.t = function(value, mode) {
|
||||||
|
/******/ if (mode & 1) value = fn(value);
|
||||||
|
/******/ return __webpack_require__.t(value, mode & ~1);
|
||||||
|
/******/ };
|
||||||
|
/******/ return fn;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function hotCreateModule(moduleId) {
|
||||||
|
/******/ var hot = {
|
||||||
|
/******/ // private stuff
|
||||||
|
/******/ _acceptedDependencies: {},
|
||||||
|
/******/ _declinedDependencies: {},
|
||||||
|
/******/ _selfAccepted: false,
|
||||||
|
/******/ _selfDeclined: false,
|
||||||
|
/******/ _disposeHandlers: [],
|
||||||
|
/******/ _main: hotCurrentChildModule !== moduleId,
|
||||||
|
/******/
|
||||||
|
/******/ // Module API
|
||||||
|
/******/ active: true,
|
||||||
|
/******/ accept: function(dep, callback) {
|
||||||
|
/******/ if (dep === undefined) hot._selfAccepted = true;
|
||||||
|
/******/ else if (typeof dep === "function") hot._selfAccepted = dep;
|
||||||
|
/******/ else if (typeof dep === "object")
|
||||||
|
/******/ for (var i = 0; i < dep.length; i++)
|
||||||
|
/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
|
||||||
|
/******/ else hot._acceptedDependencies[dep] = callback || function() {};
|
||||||
|
/******/ },
|
||||||
|
/******/ decline: function(dep) {
|
||||||
|
/******/ if (dep === undefined) hot._selfDeclined = true;
|
||||||
|
/******/ else if (typeof dep === "object")
|
||||||
|
/******/ for (var i = 0; i < dep.length; i++)
|
||||||
|
/******/ hot._declinedDependencies[dep[i]] = true;
|
||||||
|
/******/ else hot._declinedDependencies[dep] = true;
|
||||||
|
/******/ },
|
||||||
|
/******/ dispose: function(callback) {
|
||||||
|
/******/ hot._disposeHandlers.push(callback);
|
||||||
|
/******/ },
|
||||||
|
/******/ addDisposeHandler: function(callback) {
|
||||||
|
/******/ hot._disposeHandlers.push(callback);
|
||||||
|
/******/ },
|
||||||
|
/******/ removeDisposeHandler: function(callback) {
|
||||||
|
/******/ var idx = hot._disposeHandlers.indexOf(callback);
|
||||||
|
/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1);
|
||||||
|
/******/ },
|
||||||
|
/******/
|
||||||
|
/******/ // Management API
|
||||||
|
/******/ check: hotCheck,
|
||||||
|
/******/ apply: hotApply,
|
||||||
|
/******/ status: function(l) {
|
||||||
|
/******/ if (!l) return hotStatus;
|
||||||
|
/******/ hotStatusHandlers.push(l);
|
||||||
|
/******/ },
|
||||||
|
/******/ addStatusHandler: function(l) {
|
||||||
|
/******/ hotStatusHandlers.push(l);
|
||||||
|
/******/ },
|
||||||
|
/******/ removeStatusHandler: function(l) {
|
||||||
|
/******/ var idx = hotStatusHandlers.indexOf(l);
|
||||||
|
/******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1);
|
||||||
|
/******/ },
|
||||||
|
/******/
|
||||||
|
/******/ //inherit from previous dispose call
|
||||||
|
/******/ data: hotCurrentModuleData[moduleId]
|
||||||
|
/******/ };
|
||||||
|
/******/ hotCurrentChildModule = undefined;
|
||||||
|
/******/ return hot;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ var hotStatusHandlers = [];
|
||||||
|
/******/ var hotStatus = "idle";
|
||||||
|
/******/
|
||||||
|
/******/ function hotSetStatus(newStatus) {
|
||||||
|
/******/ hotStatus = newStatus;
|
||||||
|
/******/ for (var i = 0; i < hotStatusHandlers.length; i++)
|
||||||
|
/******/ hotStatusHandlers[i].call(null, newStatus);
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // while downloading
|
||||||
|
/******/ var hotWaitingFiles = 0;
|
||||||
|
/******/ var hotChunksLoading = 0;
|
||||||
|
/******/ var hotWaitingFilesMap = {};
|
||||||
|
/******/ var hotRequestedFilesMap = {};
|
||||||
|
/******/ var hotAvailableFilesMap = {};
|
||||||
|
/******/ var hotDeferred;
|
||||||
|
/******/
|
||||||
|
/******/ // The update info
|
||||||
|
/******/ var hotUpdate, hotUpdateNewHash;
|
||||||
|
/******/
|
||||||
|
/******/ function toModuleId(id) {
|
||||||
|
/******/ var isNumber = +id + "" === id;
|
||||||
|
/******/ return isNumber ? +id : id;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ function hotCheck(apply) {
|
||||||
|
/******/ if (hotStatus !== "idle") {
|
||||||
|
/******/ throw new Error("check() is only allowed in idle status");
|
||||||
|
/******/ }
|
||||||
|
/******/ hotApplyOnUpdate = apply;
|
||||||
|
/******/ hotSetStatus("check");
|
||||||
|
/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) {
|
||||||
|
/******/ if (!update) {
|
||||||
|
/******/ hotSetStatus("idle");
|
||||||
|
/******/ return null;
|
||||||
|
/******/ }
|
||||||
|
/******/ hotRequestedFilesMap = {};
|
||||||
|
/******/ hotWaitingFilesMap = {};
|
||||||
|
/******/ hotAvailableFilesMap = update.c;
|
||||||
|
/******/ hotUpdateNewHash = update.h;
|
||||||
|
/******/
|
||||||
|
/******/ hotSetStatus("prepare");
|
||||||
|
/******/ var promise = new Promise(function(resolve, reject) {
|
||||||
|
/******/ hotDeferred = {
|
||||||
|
/******/ resolve: resolve,
|
||||||
|
/******/ reject: reject
|
||||||
|
/******/ };
|
||||||
|
/******/ });
|
||||||
|
/******/ hotUpdate = {};
|
||||||
|
/******/ var chunkId = "views/register";
|
||||||
|
/******/ // eslint-disable-next-line no-lone-blocks
|
||||||
|
/******/ {
|
||||||
|
/******/ /*globals chunkId */
|
||||||
|
/******/ hotEnsureUpdateChunk(chunkId);
|
||||||
|
/******/ }
|
||||||
|
/******/ if (
|
||||||
|
/******/ hotStatus === "prepare" &&
|
||||||
|
/******/ hotChunksLoading === 0 &&
|
||||||
|
/******/ hotWaitingFiles === 0
|
||||||
|
/******/ ) {
|
||||||
|
/******/ hotUpdateDownloaded();
|
||||||
|
/******/ }
|
||||||
|
/******/ return promise;
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // eslint-disable-next-line no-unused-vars
|
||||||
|
/******/ function hotAddUpdateChunk(chunkId, moreModules) {
|
||||||
|
/******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
|
||||||
|
/******/ return;
|
||||||
|
/******/ hotRequestedFilesMap[chunkId] = false;
|
||||||
|
/******/ for (var moduleId in moreModules) {
|
||||||
|
/******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||||
|
/******/ hotUpdate[moduleId] = moreModules[moduleId];
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) {
|
||||||
|
/******/ hotUpdateDownloaded();
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ function hotEnsureUpdateChunk(chunkId) {
|
||||||
|
/******/ if (!hotAvailableFilesMap[chunkId]) {
|
||||||
|
/******/ hotWaitingFilesMap[chunkId] = true;
|
||||||
|
/******/ } else {
|
||||||
|
/******/ hotRequestedFilesMap[chunkId] = true;
|
||||||
|
/******/ hotWaitingFiles++;
|
||||||
|
/******/ hotDownloadUpdateChunk(chunkId);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ function hotUpdateDownloaded() {
|
||||||
|
/******/ hotSetStatus("ready");
|
||||||
|
/******/ var deferred = hotDeferred;
|
||||||
|
/******/ hotDeferred = null;
|
||||||
|
/******/ if (!deferred) return;
|
||||||
|
/******/ if (hotApplyOnUpdate) {
|
||||||
|
/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to
|
||||||
|
/******/ // avoid triggering uncaught exception warning in Chrome.
|
||||||
|
/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666
|
||||||
|
/******/ Promise.resolve()
|
||||||
|
/******/ .then(function() {
|
||||||
|
/******/ return hotApply(hotApplyOnUpdate);
|
||||||
|
/******/ })
|
||||||
|
/******/ .then(
|
||||||
|
/******/ function(result) {
|
||||||
|
/******/ deferred.resolve(result);
|
||||||
|
/******/ },
|
||||||
|
/******/ function(err) {
|
||||||
|
/******/ deferred.reject(err);
|
||||||
|
/******/ }
|
||||||
|
/******/ );
|
||||||
|
/******/ } else {
|
||||||
|
/******/ var outdatedModules = [];
|
||||||
|
/******/ for (var id in hotUpdate) {
|
||||||
|
/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
||||||
|
/******/ outdatedModules.push(toModuleId(id));
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ deferred.resolve(outdatedModules);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ function hotApply(options) {
|
||||||
|
/******/ if (hotStatus !== "ready")
|
||||||
|
/******/ throw new Error("apply() is only allowed in ready status");
|
||||||
|
/******/ options = options || {};
|
||||||
|
/******/
|
||||||
|
/******/ var cb;
|
||||||
|
/******/ var i;
|
||||||
|
/******/ var j;
|
||||||
|
/******/ var module;
|
||||||
|
/******/ var moduleId;
|
||||||
|
/******/
|
||||||
|
/******/ function getAffectedStuff(updateModuleId) {
|
||||||
|
/******/ var outdatedModules = [updateModuleId];
|
||||||
|
/******/ var outdatedDependencies = {};
|
||||||
|
/******/
|
||||||
|
/******/ var queue = outdatedModules.map(function(id) {
|
||||||
|
/******/ return {
|
||||||
|
/******/ chain: [id],
|
||||||
|
/******/ id: id
|
||||||
|
/******/ };
|
||||||
|
/******/ });
|
||||||
|
/******/ while (queue.length > 0) {
|
||||||
|
/******/ var queueItem = queue.pop();
|
||||||
|
/******/ var moduleId = queueItem.id;
|
||||||
|
/******/ var chain = queueItem.chain;
|
||||||
|
/******/ module = installedModules[moduleId];
|
||||||
|
/******/ if (!module || module.hot._selfAccepted) continue;
|
||||||
|
/******/ if (module.hot._selfDeclined) {
|
||||||
|
/******/ return {
|
||||||
|
/******/ type: "self-declined",
|
||||||
|
/******/ chain: chain,
|
||||||
|
/******/ moduleId: moduleId
|
||||||
|
/******/ };
|
||||||
|
/******/ }
|
||||||
|
/******/ if (module.hot._main) {
|
||||||
|
/******/ return {
|
||||||
|
/******/ type: "unaccepted",
|
||||||
|
/******/ chain: chain,
|
||||||
|
/******/ moduleId: moduleId
|
||||||
|
/******/ };
|
||||||
|
/******/ }
|
||||||
|
/******/ for (var i = 0; i < module.parents.length; i++) {
|
||||||
|
/******/ var parentId = module.parents[i];
|
||||||
|
/******/ var parent = installedModules[parentId];
|
||||||
|
/******/ if (!parent) continue;
|
||||||
|
/******/ if (parent.hot._declinedDependencies[moduleId]) {
|
||||||
|
/******/ return {
|
||||||
|
/******/ type: "declined",
|
||||||
|
/******/ chain: chain.concat([parentId]),
|
||||||
|
/******/ moduleId: moduleId,
|
||||||
|
/******/ parentId: parentId
|
||||||
|
/******/ };
|
||||||
|
/******/ }
|
||||||
|
/******/ if (outdatedModules.indexOf(parentId) !== -1) continue;
|
||||||
|
/******/ if (parent.hot._acceptedDependencies[moduleId]) {
|
||||||
|
/******/ if (!outdatedDependencies[parentId])
|
||||||
|
/******/ outdatedDependencies[parentId] = [];
|
||||||
|
/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
|
||||||
|
/******/ continue;
|
||||||
|
/******/ }
|
||||||
|
/******/ delete outdatedDependencies[parentId];
|
||||||
|
/******/ outdatedModules.push(parentId);
|
||||||
|
/******/ queue.push({
|
||||||
|
/******/ chain: chain.concat([parentId]),
|
||||||
|
/******/ id: parentId
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ return {
|
||||||
|
/******/ type: "accepted",
|
||||||
|
/******/ moduleId: updateModuleId,
|
||||||
|
/******/ outdatedModules: outdatedModules,
|
||||||
|
/******/ outdatedDependencies: outdatedDependencies
|
||||||
|
/******/ };
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ function addAllToSet(a, b) {
|
||||||
|
/******/ for (var i = 0; i < b.length; i++) {
|
||||||
|
/******/ var item = b[i];
|
||||||
|
/******/ if (a.indexOf(item) === -1) a.push(item);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // at begin all updates modules are outdated
|
||||||
|
/******/ // the "outdated" status can propagate to parents if they don't accept the children
|
||||||
|
/******/ var outdatedDependencies = {};
|
||||||
|
/******/ var outdatedModules = [];
|
||||||
|
/******/ var appliedUpdate = {};
|
||||||
|
/******/
|
||||||
|
/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
|
||||||
|
/******/ console.warn(
|
||||||
|
/******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module"
|
||||||
|
/******/ );
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ for (var id in hotUpdate) {
|
||||||
|
/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
||||||
|
/******/ moduleId = toModuleId(id);
|
||||||
|
/******/ /** @type {TODO} */
|
||||||
|
/******/ var result;
|
||||||
|
/******/ if (hotUpdate[id]) {
|
||||||
|
/******/ result = getAffectedStuff(moduleId);
|
||||||
|
/******/ } else {
|
||||||
|
/******/ result = {
|
||||||
|
/******/ type: "disposed",
|
||||||
|
/******/ moduleId: id
|
||||||
|
/******/ };
|
||||||
|
/******/ }
|
||||||
|
/******/ /** @type {Error|false} */
|
||||||
|
/******/ var abortError = false;
|
||||||
|
/******/ var doApply = false;
|
||||||
|
/******/ var doDispose = false;
|
||||||
|
/******/ var chainInfo = "";
|
||||||
|
/******/ if (result.chain) {
|
||||||
|
/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
|
||||||
|
/******/ }
|
||||||
|
/******/ switch (result.type) {
|
||||||
|
/******/ case "self-declined":
|
||||||
|
/******/ if (options.onDeclined) options.onDeclined(result);
|
||||||
|
/******/ if (!options.ignoreDeclined)
|
||||||
|
/******/ abortError = new Error(
|
||||||
|
/******/ "Aborted because of self decline: " +
|
||||||
|
/******/ result.moduleId +
|
||||||
|
/******/ chainInfo
|
||||||
|
/******/ );
|
||||||
|
/******/ break;
|
||||||
|
/******/ case "declined":
|
||||||
|
/******/ if (options.onDeclined) options.onDeclined(result);
|
||||||
|
/******/ if (!options.ignoreDeclined)
|
||||||
|
/******/ abortError = new Error(
|
||||||
|
/******/ "Aborted because of declined dependency: " +
|
||||||
|
/******/ result.moduleId +
|
||||||
|
/******/ " in " +
|
||||||
|
/******/ result.parentId +
|
||||||
|
/******/ chainInfo
|
||||||
|
/******/ );
|
||||||
|
/******/ break;
|
||||||
|
/******/ case "unaccepted":
|
||||||
|
/******/ if (options.onUnaccepted) options.onUnaccepted(result);
|
||||||
|
/******/ if (!options.ignoreUnaccepted)
|
||||||
|
/******/ abortError = new Error(
|
||||||
|
/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo
|
||||||
|
/******/ );
|
||||||
|
/******/ break;
|
||||||
|
/******/ case "accepted":
|
||||||
|
/******/ if (options.onAccepted) options.onAccepted(result);
|
||||||
|
/******/ doApply = true;
|
||||||
|
/******/ break;
|
||||||
|
/******/ case "disposed":
|
||||||
|
/******/ if (options.onDisposed) options.onDisposed(result);
|
||||||
|
/******/ doDispose = true;
|
||||||
|
/******/ break;
|
||||||
|
/******/ default:
|
||||||
|
/******/ throw new Error("Unexception type " + result.type);
|
||||||
|
/******/ }
|
||||||
|
/******/ if (abortError) {
|
||||||
|
/******/ hotSetStatus("abort");
|
||||||
|
/******/ return Promise.reject(abortError);
|
||||||
|
/******/ }
|
||||||
|
/******/ if (doApply) {
|
||||||
|
/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
|
||||||
|
/******/ addAllToSet(outdatedModules, result.outdatedModules);
|
||||||
|
/******/ for (moduleId in result.outdatedDependencies) {
|
||||||
|
/******/ if (
|
||||||
|
/******/ Object.prototype.hasOwnProperty.call(
|
||||||
|
/******/ result.outdatedDependencies,
|
||||||
|
/******/ moduleId
|
||||||
|
/******/ )
|
||||||
|
/******/ ) {
|
||||||
|
/******/ if (!outdatedDependencies[moduleId])
|
||||||
|
/******/ outdatedDependencies[moduleId] = [];
|
||||||
|
/******/ addAllToSet(
|
||||||
|
/******/ outdatedDependencies[moduleId],
|
||||||
|
/******/ result.outdatedDependencies[moduleId]
|
||||||
|
/******/ );
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ if (doDispose) {
|
||||||
|
/******/ addAllToSet(outdatedModules, [result.moduleId]);
|
||||||
|
/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // Store self accepted outdated modules to require them later by the module system
|
||||||
|
/******/ var outdatedSelfAcceptedModules = [];
|
||||||
|
/******/ for (i = 0; i < outdatedModules.length; i++) {
|
||||||
|
/******/ moduleId = outdatedModules[i];
|
||||||
|
/******/ if (
|
||||||
|
/******/ installedModules[moduleId] &&
|
||||||
|
/******/ installedModules[moduleId].hot._selfAccepted &&
|
||||||
|
/******/ // removed self-accepted modules should not be required
|
||||||
|
/******/ appliedUpdate[moduleId] !== warnUnexpectedRequire
|
||||||
|
/******/ ) {
|
||||||
|
/******/ outdatedSelfAcceptedModules.push({
|
||||||
|
/******/ module: moduleId,
|
||||||
|
/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // Now in "dispose" phase
|
||||||
|
/******/ hotSetStatus("dispose");
|
||||||
|
/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
|
||||||
|
/******/ if (hotAvailableFilesMap[chunkId] === false) {
|
||||||
|
/******/ hotDisposeChunk(chunkId);
|
||||||
|
/******/ }
|
||||||
|
/******/ });
|
||||||
|
/******/
|
||||||
|
/******/ var idx;
|
||||||
|
/******/ var queue = outdatedModules.slice();
|
||||||
|
/******/ while (queue.length > 0) {
|
||||||
|
/******/ moduleId = queue.pop();
|
||||||
|
/******/ module = installedModules[moduleId];
|
||||||
|
/******/ if (!module) continue;
|
||||||
|
/******/
|
||||||
|
/******/ var data = {};
|
||||||
|
/******/
|
||||||
|
/******/ // Call dispose handlers
|
||||||
|
/******/ var disposeHandlers = module.hot._disposeHandlers;
|
||||||
|
/******/ for (j = 0; j < disposeHandlers.length; j++) {
|
||||||
|
/******/ cb = disposeHandlers[j];
|
||||||
|
/******/ cb(data);
|
||||||
|
/******/ }
|
||||||
|
/******/ hotCurrentModuleData[moduleId] = data;
|
||||||
|
/******/
|
||||||
|
/******/ // disable module (this disables requires from this module)
|
||||||
|
/******/ module.hot.active = false;
|
||||||
|
/******/
|
||||||
|
/******/ // remove module from cache
|
||||||
|
/******/ delete installedModules[moduleId];
|
||||||
|
/******/
|
||||||
|
/******/ // when disposing there is no need to call dispose handler
|
||||||
|
/******/ delete outdatedDependencies[moduleId];
|
||||||
|
/******/
|
||||||
|
/******/ // remove "parents" references from all children
|
||||||
|
/******/ for (j = 0; j < module.children.length; j++) {
|
||||||
|
/******/ var child = installedModules[module.children[j]];
|
||||||
|
/******/ if (!child) continue;
|
||||||
|
/******/ idx = child.parents.indexOf(moduleId);
|
||||||
|
/******/ if (idx >= 0) {
|
||||||
|
/******/ child.parents.splice(idx, 1);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // remove outdated dependency from module children
|
||||||
|
/******/ var dependency;
|
||||||
|
/******/ var moduleOutdatedDependencies;
|
||||||
|
/******/ for (moduleId in outdatedDependencies) {
|
||||||
|
/******/ if (
|
||||||
|
/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
|
||||||
|
/******/ ) {
|
||||||
|
/******/ module = installedModules[moduleId];
|
||||||
|
/******/ if (module) {
|
||||||
|
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
||||||
|
/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) {
|
||||||
|
/******/ dependency = moduleOutdatedDependencies[j];
|
||||||
|
/******/ idx = module.children.indexOf(dependency);
|
||||||
|
/******/ if (idx >= 0) module.children.splice(idx, 1);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // Now in "apply" phase
|
||||||
|
/******/ hotSetStatus("apply");
|
||||||
|
/******/
|
||||||
|
/******/ hotCurrentHash = hotUpdateNewHash;
|
||||||
|
/******/
|
||||||
|
/******/ // insert new code
|
||||||
|
/******/ for (moduleId in appliedUpdate) {
|
||||||
|
/******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
|
||||||
|
/******/ modules[moduleId] = appliedUpdate[moduleId];
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // call accept handlers
|
||||||
|
/******/ var error = null;
|
||||||
|
/******/ for (moduleId in outdatedDependencies) {
|
||||||
|
/******/ if (
|
||||||
|
/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)
|
||||||
|
/******/ ) {
|
||||||
|
/******/ module = installedModules[moduleId];
|
||||||
|
/******/ if (module) {
|
||||||
|
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
||||||
|
/******/ var callbacks = [];
|
||||||
|
/******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) {
|
||||||
|
/******/ dependency = moduleOutdatedDependencies[i];
|
||||||
|
/******/ cb = module.hot._acceptedDependencies[dependency];
|
||||||
|
/******/ if (cb) {
|
||||||
|
/******/ if (callbacks.indexOf(cb) !== -1) continue;
|
||||||
|
/******/ callbacks.push(cb);
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ for (i = 0; i < callbacks.length; i++) {
|
||||||
|
/******/ cb = callbacks[i];
|
||||||
|
/******/ try {
|
||||||
|
/******/ cb(moduleOutdatedDependencies);
|
||||||
|
/******/ } catch (err) {
|
||||||
|
/******/ if (options.onErrored) {
|
||||||
|
/******/ options.onErrored({
|
||||||
|
/******/ type: "accept-errored",
|
||||||
|
/******/ moduleId: moduleId,
|
||||||
|
/******/ dependencyId: moduleOutdatedDependencies[i],
|
||||||
|
/******/ error: err
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/ if (!options.ignoreErrored) {
|
||||||
|
/******/ if (!error) error = err;
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // Load self accepted modules
|
||||||
|
/******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) {
|
||||||
|
/******/ var item = outdatedSelfAcceptedModules[i];
|
||||||
|
/******/ moduleId = item.module;
|
||||||
|
/******/ hotCurrentParents = [moduleId];
|
||||||
|
/******/ try {
|
||||||
|
/******/ __webpack_require__(moduleId);
|
||||||
|
/******/ } catch (err) {
|
||||||
|
/******/ if (typeof item.errorHandler === "function") {
|
||||||
|
/******/ try {
|
||||||
|
/******/ item.errorHandler(err);
|
||||||
|
/******/ } catch (err2) {
|
||||||
|
/******/ if (options.onErrored) {
|
||||||
|
/******/ options.onErrored({
|
||||||
|
/******/ type: "self-accept-error-handler-errored",
|
||||||
|
/******/ moduleId: moduleId,
|
||||||
|
/******/ error: err2,
|
||||||
|
/******/ originalError: err
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/ if (!options.ignoreErrored) {
|
||||||
|
/******/ if (!error) error = err2;
|
||||||
|
/******/ }
|
||||||
|
/******/ if (!error) error = err;
|
||||||
|
/******/ }
|
||||||
|
/******/ } else {
|
||||||
|
/******/ if (options.onErrored) {
|
||||||
|
/******/ options.onErrored({
|
||||||
|
/******/ type: "self-accept-errored",
|
||||||
|
/******/ moduleId: moduleId,
|
||||||
|
/******/ error: err
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/ if (!options.ignoreErrored) {
|
||||||
|
/******/ if (!error) error = err;
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // handle errors in accept handlers and self accepted module load
|
||||||
|
/******/ if (error) {
|
||||||
|
/******/ hotSetStatus("fail");
|
||||||
|
/******/ return Promise.reject(error);
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ hotSetStatus("idle");
|
||||||
|
/******/ return new Promise(function(resolve) {
|
||||||
|
/******/ resolve(outdatedModules);
|
||||||
|
/******/ });
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/ // 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: {},
|
||||||
|
/******/ hot: hotCreateModule(moduleId),
|
||||||
|
/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
|
||||||
|
/******/ children: []
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
|
||||||
|
/******/
|
||||||
|
/******/ // 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 = "";
|
||||||
|
/******/
|
||||||
|
/******/ // __webpack_hash__
|
||||||
|
/******/ __webpack_require__.h = function() { return hotCurrentHash; };
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // Load entry module and return exports
|
||||||
|
/******/ return hotCreateRequire("./resources/scripts/views/register.ts")(__webpack_require__.s = "./resources/scripts/views/register.ts");
|
||||||
|
/******/ })
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ ({
|
||||||
|
|
||||||
|
/***/ "./resources/scripts/views/register.ts":
|
||||||
|
/*!*********************************************!*\
|
||||||
|
!*** ./resources/scripts/views/register.ts ***!
|
||||||
|
\*********************************************/
|
||||||
|
/*! no static exports found */
|
||||||
|
/***/ (function(module, exports) {
|
||||||
|
|
||||||
|
eval("document.addEventListener(\"DOMContentLoaded\", function () {\n var isFormValid = false;\n var isPassMatch = false;\n var form = document.getElementById('form-register');\n var pass = document.getElementById('txt-register-password');\n var confirmPass = document.getElementById('txt-register-confirm-password');\n var terms = document.getElementById('chk-register-terms');\n var submit = document.getElementById('btn-register-submit');\n if (!pass || !confirmPass || !terms) alert('Something Went wrong');\n\n form.oninput = function (ev) {\n isPassMatch = pass.value === confirmPass.value && !!pass.value.trim().length;\n validateForm();\n };\n\n function validateForm() {\n isFormValid = form.checkValidity() && isPassMatch && terms.checked;\n submit.disabled = !isFormValid;\n }\n\n validateForm();\n});\n\n//# sourceURL=webpack:///./resources/scripts/views/register.ts?");
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
24
resources/scripts/views/register.ts
Normal file
24
resources/scripts/views/register.ts
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
let isFormValid = false;
|
||||||
|
let isPassMatch = false;
|
||||||
|
|
||||||
|
const form = document.getElementById('form-register') as HTMLFormElement;
|
||||||
|
const pass = document.getElementById('txt-register-password') as HTMLInputElement;
|
||||||
|
const confirmPass = document.getElementById('txt-register-confirm-password') as HTMLInputElement;
|
||||||
|
const terms = document.getElementById('chk-register-terms') as HTMLInputElement;
|
||||||
|
const submit = document.getElementById('btn-register-submit') as HTMLButtonElement;
|
||||||
|
if (!pass || !confirmPass || !terms) alert('Something Went wrong');
|
||||||
|
|
||||||
|
form.oninput = (ev: Event) => {
|
||||||
|
isPassMatch = (pass.value === confirmPass.value) && !!pass.value.trim().length;
|
||||||
|
validateForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
function validateForm(): void {
|
||||||
|
isFormValid = form.checkValidity() && isPassMatch && terms.checked;
|
||||||
|
submit.disabled = !isFormValid;
|
||||||
|
}
|
||||||
|
|
||||||
|
validateForm();
|
||||||
|
|
||||||
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
{{ script('scripts/components/navbar.js') }}
|
{{ script('scripts/components/navbar/app.bundle.js') }}
|
||||||
<nav class="{{ isLanding ? 'darken' : '' }} navbar" role="navigation" aria-label="main navigation">
|
<nav class="{{ isLanding ? 'darken' : '' }} navbar" role="navigation" aria-label="main navigation">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<a class="navbar-item" href="/">
|
<a class="navbar-item" href="/">
|
||||||
|
@ -33,9 +33,14 @@
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div class="navbar-dropdown">
|
<div class="navbar-dropdown">
|
||||||
<a class="navbar-item">
|
<a class="navbar-item" href='/settings'>
|
||||||
Settings
|
Settings
|
||||||
</a>
|
</a>
|
||||||
|
@if(auth.user.is_admin)
|
||||||
|
<a class="navbar-item" href='/admin'>
|
||||||
|
Admin Settigns
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
<a class="navbar-item" href="/logout">
|
<a class="navbar-item" href="/logout">
|
||||||
Logout
|
Logout
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
@!section('page-title')
|
@!section('page-title')
|
||||||
</title>
|
</title>
|
||||||
{{ style('style') }}
|
{{ style('style') }}
|
||||||
|
{{ script('scripts/views/register/app.bundle.js') }}
|
||||||
@!section('scripts')
|
@!section('scripts')
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -27,13 +28,13 @@
|
||||||
<section class="section has-text-centered">
|
<section class="section has-text-centered">
|
||||||
<h1 class="title">Join Now</h1>
|
<h1 class="title">Join Now</h1>
|
||||||
<h2 class="subtitle">It takes less then a minute. You could have been done by now, but you are still reading...</h2>
|
<h2 class="subtitle">It takes less then a minute. You could have been done by now, but you are still reading...</h2>
|
||||||
<form class="form register" method="POST" action="{{ route('register') }}">
|
<form class="form register" method="POST" action="{{ route('register') }}" id="form-register">
|
||||||
{{ csrfField() }}
|
{{ csrfField() }}
|
||||||
<nav class="level">
|
<nav class="level">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label has-text-light">Name</label>
|
<label class="label has-text-light">Name</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('name') ? 'is-danger' : ''}}" name="name" type="text" placeholder="John Snow" value="{{ old('name', '') }}">
|
<input class="input {{ getErrorFor('name') ? 'is-danger' : ''}}" required="true" name="name" type="text" placeholder="John Snow" value="{{ old('name', '') }}">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-id-card"></i>
|
<i class="fa fa-id-card"></i>
|
||||||
</span>
|
</span>
|
||||||
|
@ -45,7 +46,7 @@
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label has-text-light">Email</label>
|
<label class="label has-text-light">Email</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('email') ? 'is-danger' : ''}}" name="email" type="email" placeholder="j.snow@thewall.com" value="{{ old('email', '') }}">
|
<input class="input {{ getErrorFor('email') ? 'is-danger' : ''}}" name="email" required="true" type="email" placeholder="j.snow@thewall.com" value="{{ old('email', '') }}">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-envelope"></i>
|
<i class="fa fa-envelope"></i>
|
||||||
</span>
|
</span>
|
||||||
|
@ -57,7 +58,7 @@
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label has-text-light">Password</label>
|
<label class="label has-text-light">Password</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('password') ? 'is-danger' : ''}}" name="password" type="password" placeholder="password">
|
<input class="input {{ getErrorFor('password') ? 'is-danger' : ''}}" id="txt-register-password" name="password" required="true" type="password" placeholder="password">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-lock"></i>
|
<i class="fa fa-lock"></i>
|
||||||
</span>
|
</span>
|
||||||
|
@ -67,7 +68,7 @@
|
||||||
<div class="field m-b-xxs">
|
<div class="field m-b-xxs">
|
||||||
<label class="label has-text-light">Confirm Password</label>
|
<label class="label has-text-light">Confirm Password</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input" type="password" placeholder="confirm password">
|
<input class="input" type="password" id="txt-register-confirm-password" placeholder="confirm password" required="true">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-lock"></i>
|
<i class="fa fa-lock"></i>
|
||||||
</span>
|
</span>
|
||||||
|
@ -79,11 +80,11 @@
|
||||||
<div class="field is-grouped">
|
<div class="field is-grouped">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox">
|
<input type="checkbox" id="chk-register-terms">
|
||||||
I agree to the <a href="#">terms and conditions</a>
|
I agree to the <a href="#">terms and conditions</a>
|
||||||
</label>
|
</label>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<button class="button is-link">Submit</button>
|
<button id="btn-register-submit" class="button is-link" disabled="true">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
@layout('layouts.main')
|
@layout('layouts.main')
|
||||||
|
|
||||||
@section('page-title')
|
@section('page-title')
|
||||||
Seepur| Register
|
Seepur| Register
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
|
{{ script('scripts/views/register/app.bundle.js') }}
|
||||||
<h1 class="title">
|
<h1 class="title">
|
||||||
Register
|
Register
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -13,28 +14,28 @@ Seepur| Register
|
||||||
Yep, It's Free
|
Yep, It's Free
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<form class="form register" method="POST" action="{{ route('register') }}">
|
<form class="form register" method="POST" action="{{ route('register') }}" id="form-register">
|
||||||
{{ csrfField() }}
|
{{ csrfField() }}
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label">Name</label>
|
<label class="label">Name</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('name') ? 'is-danger' : ''}}" name="name" type="text" placeholder="John Snow" value="{{ old('name', '') }}">
|
<input class="input {{ getErrorFor('name') ? 'is-danger' : ''}}" required="true" name="name" type="text" placeholder="John Snow" value="{{ old('name', '') }}">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-id-card"></i>
|
<i class="fa fa-id-card"></i>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p class="help is-danger">{{ getErrorFor('name') ? getErrorFor('name') : '' }}</p>
|
<p class="help is-danger">{{ getErrorFor('name') ? getErrorFor('name') : '' }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label">Email</label>
|
<label class="label">Email</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('email') ? 'is-danger' : ''}}" name="email" type="email" placeholder="j.snow@thewall.com" value="{{ old('email', '') }}">
|
<input class="input {{ getErrorFor('email') ? 'is-danger' : ''}}" required="true" name="email" type="email" placeholder="j.snow@thewall.com" value="{{ old('email', '') }}">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-envelope"></i>
|
<i class="fa fa-envelope"></i>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<p class="help is-danger">{{ getErrorFor('email') ? getErrorFor('email') : '' }}</p>
|
<p class="help is-danger">{{ getErrorFor('email') ? getErrorFor('email') : '' }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,7 +43,7 @@ Seepur| Register
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label">Password</label>
|
<label class="label">Password</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input {{ getErrorFor('password') ? 'is-danger' : ''}}" name="password" type="password" placeholder="password">
|
<input id="txt-register-password" class="input {{ getErrorFor('password') ? 'is-danger' : ''}}" required="true" name="password" type="password" placeholder="password">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-lock"></i>
|
<i class="fa fa-lock"></i>
|
||||||
</span>
|
</span>
|
||||||
|
@ -52,28 +53,28 @@ Seepur| Register
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label class="label">Confirm Password</label>
|
<label class="label">Confirm Password</label>
|
||||||
<div class="control has-icons-left">
|
<div class="control has-icons-left">
|
||||||
<input class="input" type="password" placeholder="confirm password">
|
<input id="txt-register-confirm-password" class="input" required="true" type="password" placeholder="confirm password">
|
||||||
<span class="icon is-small is-left">
|
<span class="icon is-small is-left">
|
||||||
<i class="fa fa-lock"></i>
|
<i class="fa fa-lock"></i>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox">
|
<input type="checkbox" id="chk-register-terms">
|
||||||
I agree to the <a href="#">terms and conditions</a>
|
I agree to the <a href="#">terms and conditions</a>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="field is-grouped">
|
<div class="field is-grouped">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<button class="button is-link">Submit</button>
|
<button id="btn-register-submit" class="button is-link" disabled="true">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<a class="button is-link is-light" href='/'>Cancel</a>
|
<a class="button is-link is-light" href='/'>Cancel</a>
|
||||||
|
@ -81,4 +82,4 @@ Seepur| Register
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@endsection
|
@endsection
|
||||||
|
|
|
@ -11,8 +11,8 @@ const resolve = relativePath => path.resolve(__dirname, '..', relativePath);
|
||||||
module.exports = {
|
module.exports = {
|
||||||
mode: 'development',
|
mode: 'development',
|
||||||
entry: {
|
entry: {
|
||||||
'components': './resources/scripts/components/navbar.ts',
|
'components/navbar': './resources/scripts/components/navbar.ts',
|
||||||
|
'views/register': './resources/scripts/views/register.ts',
|
||||||
|
|
||||||
// 'applications/story-time':
|
// 'applications/story-time':
|
||||||
// './resources/scripts/applications/story-time/main.vue',
|
// './resources/scripts/applications/story-time/main.vue',
|
||||||
|
|
Reference in a new issue