From 2ed25a85044657eb1d0a9b6c488bd3a614c038e1 Mon Sep 17 00:00:00 2001 From: Roxsy Date: Thu, 15 Dec 2022 08:48:10 -0500 Subject: [PATCH 01/17] primer comit de pruba para colaracion equipo --- src/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/index.html b/src/index.html index 788db3c9..7f57d9ab 100644 --- a/src/index.html +++ b/src/index.html @@ -7,6 +7,8 @@ Document + +

primer Comentario Roxsy

\ No newline at end of file From b05b5b58c602106eaf75f6228e6a99dbfef2b1ca Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Mon, 19 Dec 2022 12:19:06 -0500 Subject: [PATCH 02/17] Agregue la maquetacion de registrarse y parte de main.js --- src/index.html | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- src/main.js | 15 +++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index 788db3c9..a2892dd1 100644 --- a/src/index.html +++ b/src/index.html @@ -1,12 +1,60 @@ + - Document + DoggoS + +
+

DoogoS

+

Bienvenido(a)

+
+
+ +

REGISTRATE

+
+ + + + + +
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/main.js b/src/main.js index ac27e91a..5ff478d9 100644 --- a/src/main.js +++ b/src/main.js @@ -2,4 +2,19 @@ import { myFunction } from './lib/index.js'; + myFunction(); +console.log("esto es main"); + +const nameRegister = document.querySelector("#nameRegister"); +const emailRegister = document.querySelector("#emailRegister"); +const passwordRegister = document.querySelector("#passwordRegister"); +const passwordConfirm = document.querySelector("#passwordConfirm"); +const register = document.querySelector("#register"); + +register.addEventListener('click', (e) => { + e.preventDefault(); + console.log(nameRegister.value , emailRegister.value); +}) + + From bf11dda2b99d2f9c8e5873b8cd2416d324828954 Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Tue, 20 Dec 2022 00:04:09 -0500 Subject: [PATCH 03/17] Logre el funcionamiento de registrarse con Firebase --- src/index.html | 31 +++-------------------------- src/main.js | 54 +++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 52 insertions(+), 33 deletions(-) diff --git a/src/index.html b/src/index.html index a2892dd1..ca5f8745 100644 --- a/src/index.html +++ b/src/index.html @@ -10,13 +10,13 @@
-

DoogoS

+

DoggoS

Bienvenido(a)

REGISTRATE

-
+ @@ -28,32 +28,7 @@

REGISTRATE

- - - - + diff --git a/src/main.js b/src/main.js index 5ff478d9..aed2c945 100644 --- a/src/main.js +++ b/src/main.js @@ -3,18 +3,62 @@ import { myFunction } from './lib/index.js'; -myFunction(); -console.log("esto es main"); +// Import the functions you need from the SDKs you need +import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"; +import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-analytics.js"; +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries +// Autentificacion +import {getAuth} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" +import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + +// Your web app's Firebase configuration +// For Firebase JS SDK v7.20.0 and later, measurementId is optional +// Firebase, esta informacion la utiliza firebase para el uso de su servicio +const firebaseConfig = { + apiKey: "AIzaSyAQxr8QueNyoazFnT3cCFo4YeCEz7S4FaE", + authDomain: "social-network-dog.firebaseapp.com", + projectId: "social-network-dog", + storageBucket: "social-network-dog.appspot.com", + messagingSenderId: "1073529346267", + appId: "1:1073529346267:web:b2b1e7b435a9c16adc14fe", + measurementId: "G-5PBN6ZD4GQ" +}; + + + +// Initialize Firebase +const app = initializeApp(firebaseConfig); +const analytics = getAnalytics(app); +// Initialize Firebase Authentication and get a reference to the service +const auth = getAuth(app) + + + + +// myFunction(); +// console.log("esto es main"); const nameRegister = document.querySelector("#nameRegister"); const emailRegister = document.querySelector("#emailRegister"); const passwordRegister = document.querySelector("#passwordRegister"); const passwordConfirm = document.querySelector("#passwordConfirm"); -const register = document.querySelector("#register"); +const buttonRegister = document.querySelector("#register"); +const formRegister = document.querySelector("#formRegister"); -register.addEventListener('click', (e) => { +formRegister.addEventListener('submit', (e) => { e.preventDefault(); - console.log(nameRegister.value , emailRegister.value); + console.log(nameRegister.value, emailRegister.value); + +const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) + .then((authFirebase) => { + // const user = authFirebase.user + console.log(authFirebase) + }) + .catch((error) => { + console.log(error) + }) + }) From b50d23b298b4ae3b78f157bac96d7b1f4dcc8eaa Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Tue, 20 Dec 2022 16:27:18 -0500 Subject: [PATCH 04/17] Agregue mensajes de errores en la pagina y archivo CSS --- src/index.html | 10 +++++++--- src/lib/style.css | 13 +++++++++++++ src/main.js | 24 +++++++++++++++++++++--- 3 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 src/lib/style.css diff --git a/src/index.html b/src/index.html index ca5f8745..a14ab4b0 100644 --- a/src/index.html +++ b/src/index.html @@ -19,8 +19,12 @@

REGISTRATE

- - +
+
+ +
+ +
@@ -28,7 +32,7 @@

REGISTRATE

- + diff --git a/src/lib/style.css b/src/lib/style.css new file mode 100644 index 00000000..97177063 --- /dev/null +++ b/src/lib/style.css @@ -0,0 +1,13 @@ +/* poppins */ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); +* { + margin : 0; + padding: 0; + box-sizing: border-box; +} + +body{ + /* extraligth 200 */ + font-family: 'Poppins', sans-serif;; +} + diff --git a/src/main.js b/src/main.js index aed2c945..66786dbd 100644 --- a/src/main.js +++ b/src/main.js @@ -45,6 +45,10 @@ const passwordRegister = document.querySelector("#passwordRegister"); const passwordConfirm = document.querySelector("#passwordConfirm"); const buttonRegister = document.querySelector("#register"); const formRegister = document.querySelector("#formRegister"); +const messageEmail = document.querySelector("#messageEmail"); +const messagePassword = document.querySelector("#messagePassword"); +const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); +const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); formRegister.addEventListener('submit', (e) => { e.preventDefault(); @@ -56,9 +60,23 @@ const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, p console.log(authFirebase) }) .catch((error) => { - console.log(error) + console.log(error.message) + // identificardor unico para el error + console.log(error.code) + + if(error.code === "auth/invalid-email"){ + messageEmail.innerHTML = "correo invalido" + } else if (error.code === "auth/email-already-in-use"){ + messageEmail.innerHTML = "el correo ya fue utilizado" + } else if (error.code === "auth/weak-password"){ + messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + } + }) }) - -}) + passwordConfirm.addEventListener("keydown", ()=> { + if( passwordConfirm.value != passwordRegister.value){ + messagePasswordConfirm.innerHTML = "la contrasena no es igual" + } + }) \ No newline at end of file From 849bb7824d97ff2886b820865eda652bb4e1260f Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Tue, 20 Dec 2022 16:53:49 -0500 Subject: [PATCH 05/17] Registro y errores --- src/main.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main.js b/src/main.js index 66786dbd..032f9104 100644 --- a/src/main.js +++ b/src/main.js @@ -72,11 +72,12 @@ const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, p messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" } }) - }) + }); - passwordConfirm.addEventListener("keydown", ()=> { + buttonRegister.addEventListener("click", ()=> { if( passwordConfirm.value != passwordRegister.value){ messagePasswordConfirm.innerHTML = "la contrasena no es igual" } - }) \ No newline at end of file + }); + \ No newline at end of file From 8280cb277c8efa1df4fd6f6b35cdae6b1fa1ed20 Mon Sep 17 00:00:00 2001 From: Roxsy Date: Tue, 27 Dec 2022 10:17:29 -0500 Subject: [PATCH 06/17] arreglo de archivos --- src/component/Register.js | 41 +++++++++++++++++++++++++++++++++++++++ src/firebase/index.js | 28 ++++++++++++++++++++++++++ src/lib/index.js | 6 ------ src/{lib => }/style.css | 0 4 files changed, 69 insertions(+), 6 deletions(-) create mode 100644 src/component/Register.js create mode 100644 src/firebase/index.js delete mode 100644 src/lib/index.js rename src/{lib => }/style.css (100%) diff --git a/src/component/Register.js b/src/component/Register.js new file mode 100644 index 00000000..5d8b54e4 --- /dev/null +++ b/src/component/Register.js @@ -0,0 +1,41 @@ +const nameRegister = document.querySelector("#nameRegister"); +const emailRegister = document.querySelector("#emailRegister"); +const passwordRegister = document.querySelector("#passwordRegister"); +const passwordConfirm = document.querySelector("#passwordConfirm"); +const buttonRegister = document.querySelector("#register"); +const formRegister = document.querySelector("#formRegister"); +const messageEmail = document.querySelector("#messageEmail"); +const messagePassword = document.querySelector("#messagePassword"); +const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); +const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); + +formRegister.addEventListener('submit', (e) => { + e.preventDefault(); + console.log(nameRegister.value, emailRegister.value); + +const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) + .then((authFirebase) => { + // const user = authFirebase.user + console.log(authFirebase) + }) + .catch((error) => { + console.log(error.message) + // identificardor unico para el error + console.log(error.code) + + if(error.code === "auth/invalid-email"){ + messageEmail.innerHTML = "correo invalido" + } else if (error.code === "auth/email-already-in-use"){ + messageEmail.innerHTML = "el correo ya fue utilizado" + } else if (error.code === "auth/weak-password"){ + messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + } + }) + }); + + + buttonRegister.addEventListener("click", ()=> { + if( passwordConfirm.value != passwordRegister.value){ + messagePasswordConfirm.innerHTML = "la contrasena no es igual" + } + }); \ No newline at end of file diff --git a/src/firebase/index.js b/src/firebase/index.js new file mode 100644 index 00000000..b07755d4 --- /dev/null +++ b/src/firebase/index.js @@ -0,0 +1,28 @@ +// Import the functions you need from the SDKs you need +import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"; + +// https://firebase.google.com/docs/web/setup#available-libraries +// Autentificacion +import {getAuth} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" +import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + +// Your web app's Firebase configuration +// For Firebase JS SDK v7.20.0 and later, measurementId is optional +// Firebase, esta informacion la utiliza firebase para el uso de su servicio +const firebaseConfig = { + apiKey: "AIzaSyAQxr8QueNyoazFnT3cCFo4YeCEz7S4FaE", + authDomain: "social-network-dog.firebaseapp.com", + projectId: "social-network-dog", + storageBucket: "social-network-dog.appspot.com", + messagingSenderId: "1073529346267", + appId: "1:1073529346267:web:b2b1e7b435a9c16adc14fe", + measurementId: "G-5PBN6ZD4GQ" +}; + + + +// Initialize Firebase +const app = initializeApp(firebaseConfig); +// Initialize Firebase Authentication and get a reference to the service +export const auth = getAuth(app) + diff --git a/src/lib/index.js b/src/lib/index.js deleted file mode 100644 index d1930899..00000000 --- a/src/lib/index.js +++ /dev/null @@ -1,6 +0,0 @@ -// aqui exportaras las funciones que necesites - -export const myFunction = () => { - // aqui tu codigo - console.log('Hola mundo!'); -}; diff --git a/src/lib/style.css b/src/style.css similarity index 100% rename from src/lib/style.css rename to src/style.css From 3238bd35a50e951778b3642b0108f370ea00ee46 Mon Sep 17 00:00:00 2001 From: Roxsy Date: Tue, 27 Dec 2022 11:36:27 -0500 Subject: [PATCH 07/17] routes --- src/index.html | 24 ++--------- src/main.js | 89 ++++----------------------------------- src/templates/Register.js | 22 ++++++++++ 3 files changed, 33 insertions(+), 102 deletions(-) create mode 100644 src/templates/Register.js diff --git a/src/index.html b/src/index.html index 334fa3f1..84fddca2 100644 --- a/src/index.html +++ b/src/index.html @@ -9,28 +9,10 @@ -
-

DoggoS

-

Bienvenido(a)

-
-
- -

REGISTRATE

-
- - -
-
- -
- -
- -
-
- - +
+
+ diff --git a/src/main.js b/src/main.js index 032f9104..9cf73aa4 100644 --- a/src/main.js +++ b/src/main.js @@ -1,83 +1,10 @@ -// Este es el punto de entrada de tu aplicacion +import { register } from "./templates/Register.js"; +const main = document.querySelector('.main'); -import { myFunction } from './lib/index.js'; +const routes = { + '/': register, +} +const prints = routes[window.location.pathname]; +main.appendChild(prints()); - -// Import the functions you need from the SDKs you need -import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-app.js"; -import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-analytics.js"; -// TODO: Add SDKs for Firebase products that you want to use -// https://firebase.google.com/docs/web/setup#available-libraries -// Autentificacion -import {getAuth} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" -import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" - -// Your web app's Firebase configuration -// For Firebase JS SDK v7.20.0 and later, measurementId is optional -// Firebase, esta informacion la utiliza firebase para el uso de su servicio -const firebaseConfig = { - apiKey: "AIzaSyAQxr8QueNyoazFnT3cCFo4YeCEz7S4FaE", - authDomain: "social-network-dog.firebaseapp.com", - projectId: "social-network-dog", - storageBucket: "social-network-dog.appspot.com", - messagingSenderId: "1073529346267", - appId: "1:1073529346267:web:b2b1e7b435a9c16adc14fe", - measurementId: "G-5PBN6ZD4GQ" -}; - - - -// Initialize Firebase -const app = initializeApp(firebaseConfig); -const analytics = getAnalytics(app); -// Initialize Firebase Authentication and get a reference to the service -const auth = getAuth(app) - - - - -// myFunction(); -// console.log("esto es main"); - -const nameRegister = document.querySelector("#nameRegister"); -const emailRegister = document.querySelector("#emailRegister"); -const passwordRegister = document.querySelector("#passwordRegister"); -const passwordConfirm = document.querySelector("#passwordConfirm"); -const buttonRegister = document.querySelector("#register"); -const formRegister = document.querySelector("#formRegister"); -const messageEmail = document.querySelector("#messageEmail"); -const messagePassword = document.querySelector("#messagePassword"); -const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); -const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); - -formRegister.addEventListener('submit', (e) => { - e.preventDefault(); - console.log(nameRegister.value, emailRegister.value); - -const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) - .then((authFirebase) => { - // const user = authFirebase.user - console.log(authFirebase) - }) - .catch((error) => { - console.log(error.message) - // identificardor unico para el error - console.log(error.code) - - if(error.code === "auth/invalid-email"){ - messageEmail.innerHTML = "correo invalido" - } else if (error.code === "auth/email-already-in-use"){ - messageEmail.innerHTML = "el correo ya fue utilizado" - } else if (error.code === "auth/weak-password"){ - messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" - } - }) - }); - - - buttonRegister.addEventListener("click", ()=> { - if( passwordConfirm.value != passwordRegister.value){ - messagePasswordConfirm.innerHTML = "la contrasena no es igual" - } - }); - \ No newline at end of file +console.log("resiter", register); \ No newline at end of file diff --git a/src/templates/Register.js b/src/templates/Register.js new file mode 100644 index 00000000..c66a1d50 --- /dev/null +++ b/src/templates/Register.js @@ -0,0 +1,22 @@ + +export const register = () => { + + const view = `

REGISTRATE

+
+ + +
+
+ +
+ +
+ +
` + const divView = document.createElement('div'); + divView.className = 'cont'; + divView.innerHTML = view; + + } + + From 1f5702fbd357d811430d7336db9ee29ee182f7fb Mon Sep 17 00:00:00 2001 From: Roxsy Date: Tue, 27 Dec 2022 13:42:11 -0500 Subject: [PATCH 08/17] crear template estrings de view registre --- src/component/Register.js | 20 +++++------ src/firebase/index.js | 1 - src/main.js | 10 +++--- src/templates/Register.js | 22 ------------ src/templates/viewRegister.js | 63 +++++++++++++++++++++++++++++++++++ 5 files changed, 78 insertions(+), 38 deletions(-) delete mode 100644 src/templates/Register.js create mode 100644 src/templates/viewRegister.js diff --git a/src/component/Register.js b/src/component/Register.js index 5d8b54e4..c09f4360 100644 --- a/src/component/Register.js +++ b/src/component/Register.js @@ -1,13 +1,11 @@ -const nameRegister = document.querySelector("#nameRegister"); -const emailRegister = document.querySelector("#emailRegister"); -const passwordRegister = document.querySelector("#passwordRegister"); -const passwordConfirm = document.querySelector("#passwordConfirm"); -const buttonRegister = document.querySelector("#register"); -const formRegister = document.querySelector("#formRegister"); -const messageEmail = document.querySelector("#messageEmail"); -const messagePassword = document.querySelector("#messagePassword"); -const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); -const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); +import { register } from "../templates/viewRegister.js"; +import { auth } from "../firebase/index.js"; +import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + + + + + formRegister.addEventListener('submit', (e) => { e.preventDefault(); @@ -38,4 +36,4 @@ const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, p if( passwordConfirm.value != passwordRegister.value){ messagePasswordConfirm.innerHTML = "la contrasena no es igual" } - }); \ No newline at end of file + }); diff --git a/src/firebase/index.js b/src/firebase/index.js index b07755d4..456b6347 100644 --- a/src/firebase/index.js +++ b/src/firebase/index.js @@ -4,7 +4,6 @@ import { initializeApp } from "https://www.gstatic.com/firebasejs/9.15.0/firebas // https://firebase.google.com/docs/web/setup#available-libraries // Autentificacion import {getAuth} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" -import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" // Your web app's Firebase configuration // For Firebase JS SDK v7.20.0 and later, measurementId is optional diff --git a/src/main.js b/src/main.js index 9cf73aa4..89cf450d 100644 --- a/src/main.js +++ b/src/main.js @@ -1,10 +1,12 @@ -import { register } from "./templates/Register.js"; -const main = document.querySelector('.main'); +import { register } from "./templates/viewRegister.js"; + +const main = document.querySelector('#main'); const routes = { - '/': register, + '/': register } +console.log("ubicacion",window.location.pathname) const prints = routes[window.location.pathname]; + main.appendChild(prints()); -console.log("resiter", register); \ No newline at end of file diff --git a/src/templates/Register.js b/src/templates/Register.js deleted file mode 100644 index c66a1d50..00000000 --- a/src/templates/Register.js +++ /dev/null @@ -1,22 +0,0 @@ - -export const register = () => { - - const view = `

REGISTRATE

-
- - -
-
- -
- -
- -
` - const divView = document.createElement('div'); - divView.className = 'cont'; - divView.innerHTML = view; - - } - - diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js new file mode 100644 index 00000000..d49f30a8 --- /dev/null +++ b/src/templates/viewRegister.js @@ -0,0 +1,63 @@ +import { auth } from "../firebase/index.js"; +import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + + +export const register = () => { + const containerRegister = document.createElement('div'); + + const view = `

REGISTRATE

+
+ + +
+
+ +
+ +
+ +
` + containerRegister.innerHTML = view; + + const nameRegister = containerRegister.querySelector("#nameRegister"); + console.log("nameee", nameRegister); + const emailRegister = containerRegister.querySelector("#emailRegister"); + const passwordRegister = document.querySelector("#passwordRegister"); + const passwordConfirm = document.querySelector("#passwordConfirm"); + const buttonRegister = document.querySelector("#register"); + const formRegister = document.querySelector("#formRegister"); + const messageEmail = document.querySelector("#messageEmail"); + const messagePassword = document.querySelector("#messagePassword"); + const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); + const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); + + formRegister.addEventListener('submit', (e) => { + e.preventDefault(); + console.log(nameRegister.value, emailRegister.value); + + const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) + .then((authFirebase) => { + // const user = authFirebase.user + console.log(authFirebase) + }) + .catch((error) => { + console.log(error.message) + // identificardor unico para el error + console.log(error.code) + + if(error.code === "auth/invalid-email"){ + messageEmail.innerHTML = "correo invalido" + } else if (error.code === "auth/email-already-in-use"){ + messageEmail.innerHTML = "el correo ya fue utilizado" + } else if (error.code === "auth/weak-password"){ + messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + } + }) + }); + return containerRegister + + + + } + + From 36a62eed45b7c904cdf90573488d9245a59a0b75 Mon Sep 17 00:00:00 2001 From: Roxsy Date: Tue, 27 Dec 2022 18:35:30 -0500 Subject: [PATCH 09/17] impresion de errores --- src/img/5482829.jpg | Bin 0 -> 222534 bytes src/img/perro.png | Bin 0 -> 19226 bytes src/index.html | 1 + src/style.css | 38 +++++++++++++-- src/templates/viewRegister.js | 86 ++++++++++++++++++++++++---------- 5 files changed, 97 insertions(+), 28 deletions(-) create mode 100644 src/img/5482829.jpg create mode 100644 src/img/perro.png diff --git a/src/img/5482829.jpg b/src/img/5482829.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4b4d19c6bbc35f3eea335434a09a1ac65586d700 GIT binary patch literal 222534 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 q4 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 literal 0 HcmV?d00001 diff --git a/src/img/perro.png b/src/img/perro.png new file mode 100644 index 0000000000000000000000000000000000000000..c4a5e4d0df8e758c0d96e94503267c338f6d53c0 GIT binary patch literal 19226 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 JS?83{1OUU DoggoS + diff --git a/src/style.css b/src/style.css index 97177063..9f246db5 100644 --- a/src/style.css +++ b/src/style.css @@ -1,13 +1,45 @@ /* poppins */ + @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); * { margin : 0; padding: 0; box-sizing: border-box; } +body { + margin: 0; +} +:root { + --blueCrud:#425A9A; + --white:#fff; + --pink:#FBCFDC; + --fontText: 'Poppins', sans-serif ; +} +.main{ + display: flex; +} +.main div { + display: flex; + + justify-items: center; + align-items: center; -body{ - /* extraligth 200 */ - font-family: 'Poppins', sans-serif;; } +.contentHome{ + width: 70%; +} +.contentHome img { + width: 100%; +} +.sectionForm{ + width: 30%; +} + +#conditions:required { + border: 1px solid #FBCFDC; + color: #425A9A; + font-family: 'Poppins', sans-serif; +} + + diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index d49f30a8..f2b43c7c 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -4,37 +4,58 @@ import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs export const register = () => { const containerRegister = document.createElement('div'); + + - const view = `

REGISTRATE

-
- - -
-
- -
- -
- -
` + const view = ` +
+ imagen de portada +

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de + tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. + ¿Qué esperas? ¡No te pierdas más novedades!

+
+
+ imagen de perrito del logo +

DoggoS

+

Bienvenido(a)

+

REGISTRATE

+
+ +
+ +
+ +
+ +
+ + +
+

¿Ya tienes una cuenta? + +

+
` + + containerRegister.innerHTML = view; const nameRegister = containerRegister.querySelector("#nameRegister"); - console.log("nameee", nameRegister); const emailRegister = containerRegister.querySelector("#emailRegister"); - const passwordRegister = document.querySelector("#passwordRegister"); - const passwordConfirm = document.querySelector("#passwordConfirm"); - const buttonRegister = document.querySelector("#register"); - const formRegister = document.querySelector("#formRegister"); - const messageEmail = document.querySelector("#messageEmail"); - const messagePassword = document.querySelector("#messagePassword"); - const anotherMessageEmail = document.querySelector("#anotherMessageEmail"); - const messagePasswordConfirm = document.querySelector("#messagePasswordConfirm"); + const passwordRegister = containerRegister.querySelector("#passwordRegister"); + const passwordConfirm = containerRegister.querySelector("#passwordConfirm"); + const buttonRegister = containerRegister.querySelector("#register"); + const formRegister = containerRegister.querySelector("#formRegister"); + const messageName = containerRegister.querySelector("#messageName"); + const messageEmail = containerRegister.querySelector("#messageEmail"); + const messagePassword = containerRegister.querySelector("#messagePassword"); + const anotherMessageEmail = containerRegister.querySelector("#anotherMessageEmail"); + const messagePasswordConfirm = containerRegister.querySelector("#messagePasswordConfirm"); formRegister.addEventListener('submit', (e) => { e.preventDefault(); console.log(nameRegister.value, emailRegister.value); + const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) .then((authFirebase) => { // const user = authFirebase.user @@ -44,8 +65,12 @@ export const register = () => { console.log(error.message) // identificardor unico para el error console.log(error.code) - - if(error.code === "auth/invalid-email"){ + + + if (emailUser === ''){ + messageEmail.innerHTML = "ingresa un correo" + } + if(error.code === "auth/invalid-email"){ messageEmail.innerHTML = "correo invalido" } else if (error.code === "auth/email-already-in-use"){ messageEmail.innerHTML = "el correo ya fue utilizado" @@ -54,9 +79,20 @@ export const register = () => { } }) }); - return containerRegister - + buttonRegister.addEventListener("click", ()=> { + if( passwordConfirm.value != passwordRegister.value){ + messagePasswordConfirm.innerHTML = "la contrasena no es igual" + } else if (passwordConfirm.value === passwordRegister.value){ + messagePasswordConfirm.innerHTML = "" + + } else if (nameUser === '') { + messageName.innerHTML = ' Debe ingresar su nombre'; + } + }); + + + return containerRegister; } From 4aa4e7b4013b21791709bb21a63b66b12b4c5dc4 Mon Sep 17 00:00:00 2001 From: Roxsy Date: Wed, 28 Dec 2022 10:32:36 -0500 Subject: [PATCH 10/17] validacion de campos de formulario registro --- src/index.html | 8 ++++++-- src/style.css | 35 +++++++++++++++++++++++++++-------- src/templates/viewRegister.js | 30 ++++++++++++++++-------------- 3 files changed, 49 insertions(+), 24 deletions(-) diff --git a/src/index.html b/src/index.html index 003a8c10..c8bd6879 100644 --- a/src/index.html +++ b/src/index.html @@ -10,9 +10,13 @@ -
+
+
-
+
+ + + diff --git a/src/style.css b/src/style.css index 9f246db5..6d11c3bd 100644 --- a/src/style.css +++ b/src/style.css @@ -15,24 +15,43 @@ body { --pink:#FBCFDC; --fontText: 'Poppins', sans-serif ; } + .main{ display: flex; + flex-direction: column; + align-items: center; } -.main div { +.container{ display: flex; - - justify-items: center; - align-items: center; + flex-direction: row; + justify-content: space-evenly; + align-items: center; + margin: 2% auto; + width: 100%; + height: 100%; } .contentHome{ - width: 70%; + text-align: center; + width: 50%; + display: flex; + flex-direction: column; + align-items: center; } -.contentHome img { - width: 100%; +.contentHome .imghome { + width: 90%; + margin: 0 0 3%; } .sectionForm{ - width: 30%; + background: var(--blueCrud); + box-shadow: 0.13vw 0.25vw 0.25vw rgb(0 0 0 / 25%), -1px 0px 4px rgb(0 0 0 / 25%); + border-radius: 0.95vw; + + + +} +.sectionForm img { + width: 25%; } #conditions:required { diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index f2b43c7c..c827c631 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -4,7 +4,7 @@ import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs export const register = () => { const containerRegister = document.createElement('div'); - + containerRegister.classList.add('container'); const view = ` @@ -20,15 +20,15 @@ export const register = () => {

Bienvenido(a)

REGISTRATE

- +
- +
- +
- +

¿Ya tienes una cuenta? @@ -66,29 +66,29 @@ export const register = () => { // identificardor unico para el error console.log(error.code) - - if (emailUser === ''){ - messageEmail.innerHTML = "ingresa un correo" - } if(error.code === "auth/invalid-email"){ messageEmail.innerHTML = "correo invalido" } else if (error.code === "auth/email-already-in-use"){ messageEmail.innerHTML = "el correo ya fue utilizado" } else if (error.code === "auth/weak-password"){ messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + } else if (error.code){ + alert('algo salio mal') } + }) }); buttonRegister.addEventListener("click", ()=> { if( passwordConfirm.value != passwordRegister.value){ - messagePasswordConfirm.innerHTML = "la contrasena no es igual" + messagePasswordConfirm.innerHTML = "la contraseña no es igual" + } else if (nameRegister.value === '') { + messageName.innerHTML = 'Debe ingresar su nombre'; } else if (passwordConfirm.value === passwordRegister.value){ messagePasswordConfirm.innerHTML = "" - - } else if (nameUser === '') { - messageName.innerHTML = ' Debe ingresar su nombre'; } + else if ( nameRegister.value ==='string' ) + messageName.innerHTML = '' }); @@ -96,4 +96,6 @@ export const register = () => { } - +// else if (emailRegister === ''){ +// messageEmail.innerHTML = "ingresa un correo" +// } From 16c0a991a29a496ffa644c8c4a9a27e83e55835a Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Wed, 28 Dec 2022 13:05:05 -0500 Subject: [PATCH 11/17] Parte del diseno de la vista register --- src/index.html | 2 +- src/main.js | 4 +- src/style.css | 103 +++++++++++++++++++++++++--------- src/templates/viewRegister.js | 16 ++++-- 4 files changed, 89 insertions(+), 36 deletions(-) diff --git a/src/index.html b/src/index.html index c8bd6879..1b84edbb 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,7 @@

-
+
diff --git a/src/main.js b/src/main.js index 89cf450d..59991fbf 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,6 @@ import { register } from "./templates/viewRegister.js"; -const main = document.querySelector('#main'); +const view = document.querySelector('#view'); const routes = { '/': register @@ -8,5 +8,5 @@ const routes = { console.log("ubicacion",window.location.pathname) const prints = routes[window.location.pathname]; -main.appendChild(prints()); +view.appendChild(prints()); diff --git a/src/style.css b/src/style.css index 6d11c3bd..e93356c5 100644 --- a/src/style.css +++ b/src/style.css @@ -1,14 +1,12 @@ /* poppins */ - @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); + * { margin : 0; padding: 0; box-sizing: border-box; } -body { - margin: 0; -} + :root { --blueCrud:#425A9A; --white:#fff; @@ -16,44 +14,95 @@ body { --fontText: 'Poppins', sans-serif ; } -.main{ - display: flex; - flex-direction: column; - align-items: center; +.view{ + /* display: flex; */ + /* flex-direction: column; */ + /* align-items: center; */ + /* width: 100 vw; + height: 100 vw; */ + border: 2px solid red; } -.container{ + +.containerRegister{ display: flex; - flex-direction: row; - justify-content: space-evenly; + /* flex-direction: row; */ + /* justify-content: space-evenly; */ align-items: center; - margin: 2% auto; - width: 100%; - height: 100%; + /* margin: 2% auto; */ + /* width: 1800px; + height: 900px; */ + border: 2px solid blue; } + .contentHome{ - text-align: center; - width: 50%; - display: flex; - flex-direction: column; - align-items: center; + /* text-align: center; */ + width: 65%; + /* display: flex; */ + /* flex-direction: column; */ + /* align-items: center; */ + border: 2px solid green; } + .contentHome .imghome { - width: 90%; - margin: 0 0 3%; + width: 100%; + height: 60%; + /* margin: 0 0 3%; */ +} + +.contentHome p { + color: #425A9A; + font-size: 30px; + margin: 40px; + padding: 10px; } + +/* -------------inicia section form ------------ */ .sectionForm{ + display: flex; + flex-direction: column; + width: 35%; background: var(--blueCrud); - box-shadow: 0.13vw 0.25vw 0.25vw rgb(0 0 0 / 25%), -1px 0px 4px rgb(0 0 0 / 25%); - border-radius: 0.95vw; - - - + text-align: center; + /* justify-content: center; */ + /* align-items: center; */ + border: 2px solid yellow; + position: relative; } + .sectionForm img { - width: 25%; + width: 90px; + position: absolute; +} +/* -------------estilos para los inputs de section form ------------ */ +.sectionForm input { + /* estilos para todos los elementos input dentro del elemento con la clase .sectionForm */ + border-radius: 15px; + background-color: #C1E1FF; + width: 240px; + height: 32px; + margin: 8px; + } + .sectionForm input::placeholder { + color: #425A9A; + text-align: center; + } + +.messageName, +.messageEmail, +.messagePassword, +.messagePasswordConfirm { + color: #FBCFDC; + font-weight: 600; } + .sectionForm #register{ + border-radius: .25vw; + color:var(--white); + background-color: var(--pink); + + + } #conditions:required { border: 1px solid #FBCFDC; color: #425A9A; diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index c827c631..71351577 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -4,16 +4,16 @@ import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs export const register = () => { const containerRegister = document.createElement('div'); - containerRegister.classList.add('container'); + containerRegister.classList.add('containerRegister'); const view = `
- imagen de portada + imagen de portada

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

-
+
imagen de perrito del logo

DoggoS

@@ -78,6 +78,12 @@ export const register = () => { }) }); + + nameRegister.addEventListener("input", () => { + if (nameRegister.value !== "") { + messageName.innerHTML = ""; + } + }); buttonRegister.addEventListener("click", ()=> { if( passwordConfirm.value != passwordRegister.value){ @@ -87,14 +93,12 @@ export const register = () => { } else if (passwordConfirm.value === passwordRegister.value){ messagePasswordConfirm.innerHTML = "" } - else if ( nameRegister.value ==='string' ) - messageName.innerHTML = '' }); return containerRegister; - } +} // else if (emailRegister === ''){ // messageEmail.innerHTML = "ingresa un correo" From a06178ea61b9f93863381159ccba3ad6493536b3 Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Thu, 29 Dec 2022 11:24:37 -0500 Subject: [PATCH 12/17] se logro realizar la vista registrar con firebase --- src/component/Register.js | 39 -------- src/components/Register.js | 81 ++++++++++++++++ src/img/{5482829.jpg => imgportada.jpg} | Bin src/main.js | 5 +- src/style.css | 102 ++++++++++++++++---- src/templates/viewRegister.js | 122 +++++++++++------------- 6 files changed, 224 insertions(+), 125 deletions(-) delete mode 100644 src/component/Register.js create mode 100644 src/components/Register.js rename src/img/{5482829.jpg => imgportada.jpg} (100%) diff --git a/src/component/Register.js b/src/component/Register.js deleted file mode 100644 index c09f4360..00000000 --- a/src/component/Register.js +++ /dev/null @@ -1,39 +0,0 @@ -import { register } from "../templates/viewRegister.js"; -import { auth } from "../firebase/index.js"; -import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" - - - - - - -formRegister.addEventListener('submit', (e) => { - e.preventDefault(); - console.log(nameRegister.value, emailRegister.value); - -const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) - .then((authFirebase) => { - // const user = authFirebase.user - console.log(authFirebase) - }) - .catch((error) => { - console.log(error.message) - // identificardor unico para el error - console.log(error.code) - - if(error.code === "auth/invalid-email"){ - messageEmail.innerHTML = "correo invalido" - } else if (error.code === "auth/email-already-in-use"){ - messageEmail.innerHTML = "el correo ya fue utilizado" - } else if (error.code === "auth/weak-password"){ - messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" - } - }) - }); - - - buttonRegister.addEventListener("click", ()=> { - if( passwordConfirm.value != passwordRegister.value){ - messagePasswordConfirm.innerHTML = "la contrasena no es igual" - } - }); diff --git a/src/components/Register.js b/src/components/Register.js new file mode 100644 index 00000000..9d1099db --- /dev/null +++ b/src/components/Register.js @@ -0,0 +1,81 @@ +import { register } from "../templates/viewRegister.js"; +import { auth } from "../firebase/index.js"; +import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + + +// let templateRegister = register(); + +// const nameRegister = templateRegister.querySelector("#nameRegister"); +// const emailRegister = container.querySelector("#emailRegister"); +// const passwordRegister = container.querySelector("#passwordRegister"); +// const passwordConfirm = container.querySelector("#passwordConfirm"); +// const buttonRegister = container.querySelector("#register"); +// const formRegister = container.querySelector("#formRegister"); +// const messageName = container.querySelector("#messageName"); +// const messageEmail = container.querySelector("#messageEmail"); +// const messagePassword = container.querySelector("#messagePassword"); +// const anotherMessageEmail = container.querySelector("#anotherMessageEmail"); +// const messagePasswordConfirm = container.querySelector("#messagePasswordConfirm"); + +// console.log(nameRegister); +// console.log(emailRegister) +// console.log(templateRegister) + +// formRegister.addEventListener('submit', (e) => { +// e.preventDefault(); +// console.log(nameRegister.value, emailRegister.value); + + +// const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) +// .then((authFirebase) => { +// // const user = authFirebase.user +// console.log(authFirebase) +// }) +// .catch((error) => { +// console.log(error.message) +// // identificardor unico para el error +// console.log(error.code) + +// if(error.code === "auth/invalid-email"){ +// messageEmail.innerHTML = "correo invalido" +// } else if (error.code === "auth/email-already-in-use"){ +// messageEmail.innerHTML = "el correo ya fue utilizado" +// } else if (error.code === "auth/weak-password"){ +// messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" +// } else if (error.code){ +// alert('algo salio mal') +// } + +// }) +// }); + +// nameRegister.addEventListener("input", () => { +// if (nameRegister.value !== "") { +// messageName.innerHTML = ""; +// } +// }); + +// buttonRegister.addEventListener("click", ()=> { +// if( passwordConfirm.value != passwordRegister.value){ +// messagePasswordConfirm.innerHTML = "la contraseña no es igual" +// } else if (nameRegister.value === '') { +// messageName.innerHTML = 'Debe ingresar su nombre'; +// } else if (passwordConfirm.value === passwordRegister.value){ +// messagePasswordConfirm.innerHTML = "" +// } +// }); + + // else if (emailRegister === ''){ + // messageEmail.innerHTML = "ingresa un correo" + // } + + + + + + + + + + + diff --git a/src/img/5482829.jpg b/src/img/imgportada.jpg similarity index 100% rename from src/img/5482829.jpg rename to src/img/imgportada.jpg diff --git a/src/main.js b/src/main.js index 59991fbf..a86372fa 100644 --- a/src/main.js +++ b/src/main.js @@ -1,10 +1,13 @@ import { register } from "./templates/viewRegister.js"; +import './components/Register.js' + const view = document.querySelector('#view'); const routes = { - '/': register + '/': register, } + console.log("ubicacion",window.location.pathname) const prints = routes[window.location.pathname]; diff --git a/src/style.css b/src/style.css index e93356c5..5e3b0b69 100644 --- a/src/style.css +++ b/src/style.css @@ -18,19 +18,18 @@ /* display: flex; */ /* flex-direction: column; */ /* align-items: center; */ - /* width: 100 vw; - height: 100 vw; */ + /* width: 100 vw;*/ border: 2px solid red; } -.containerRegister{ +.containerRegister { display: flex; /* flex-direction: row; */ /* justify-content: space-evenly; */ align-items: center; /* margin: 2% auto; */ - /* width: 1800px; - height: 900px; */ + /* width: 1800px; */ + min-height: 90vh; border: 2px solid blue; } @@ -82,32 +81,93 @@ width: 240px; height: 32px; margin: 8px; + text-align: center; } .sectionForm input::placeholder { color: #425A9A; text-align: center; } - -.messageName, -.messageEmail, -.messagePassword, -.messagePasswordConfirm { - color: #FBCFDC; - font-weight: 600; -} + .sectionForm input:hover { + background-color: #a4bacf; + + transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out; + } - .sectionForm #register{ - border-radius: .25vw; - color:var(--white); - background-color: var(--pink); - - + #messageName, + #messageEmail, + #messagePassword, + #messagePasswordConfirm { + color: #FBCFDC; + font-weight: 600; + } + + #register { + display: block; + margin: 0 auto; + border-radius: 15px; + color:var(--white); + background-color: var(--pink); + width: 127px; + height: 43px; + border:none; + font-weight: 600; } -#conditions:required { + + #register:hover { + /* Modificar el estilo del botón cuando el mouse esté sobre él */ + background-color: #ddb3c4; /* Color rosa */ + } + + #conditions:required { border: 1px solid #FBCFDC; color: #425A9A; font-family: 'Poppins', sans-serif; -} + width: 15px; + vertical-align: middle; + font-size: 16px; + font-weight: bold + + } + + #conditions + span { + font-size: 16px; /* reducir el tamaño del texto */ + display: inline-block; /* hacer que el texto ocupe el mismo espacio que el checkbox */ + vertical-align: middle; /* alinear el texto con el checkbox */ + font-family: 'Poppins', sans-serif; + + } + + #iniciarSesion { + border: none; /* eliminar el borde del input */ + color: #FBCFDC; /* color rosa */ + text-decoration: underline; /* subrayado */ + cursor: pointer; /* cursor de mano al pasar el mouse */ + background-color: transparent; + border: none; + text-decoration: underline; + cursor: pointer; + outline: none; + + } + + #iniciarSesion:hover { + color: #f5eef1; /* cambiar el color al pasar el mouse */ + } + + #termsLink { + color: #FBCFDC; /* color rosa */ + text-decoration: underline; /* subrayado */ + cursor: pointer; /* cursor de mano al pasar el mouse */ + } + + #termsLink:hover { + color: #ff3399; /* cambiar el color al pasar el mouse */ + } + + .question { + font-family: 'Poppins', sans-serif; + + } diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index 71351577..1fb49adb 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -1,15 +1,13 @@ import { auth } from "../firebase/index.js"; import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" - export const register = () => { - const containerRegister = document.createElement('div'); - containerRegister.classList.add('containerRegister'); + const container = document.createElement('div'); + container.classList.add('containerRegister'); - - const view = ` + const view = `
- imagen de portada + imagen de portada

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -37,69 +35,65 @@ export const register = () => {
` - containerRegister.innerHTML = view; + container.innerHTML = view; + +const nameRegister = container.querySelector("#nameRegister"); +const emailRegister = container.querySelector("#emailRegister"); +const passwordRegister = container.querySelector("#passwordRegister"); +const passwordConfirm = container.querySelector("#passwordConfirm"); +const buttonRegister = container.querySelector("#register"); +const formRegister = container.querySelector("#formRegister"); +const messageName = container.querySelector("#messageName"); +const messageEmail = container.querySelector("#messageEmail"); +const messagePassword = container.querySelector("#messagePassword"); +const anotherMessageEmail = container.querySelector("#anotherMessageEmail"); +const messagePasswordConfirm = container.querySelector("#messagePasswordConfirm"); - const nameRegister = containerRegister.querySelector("#nameRegister"); - const emailRegister = containerRegister.querySelector("#emailRegister"); - const passwordRegister = containerRegister.querySelector("#passwordRegister"); - const passwordConfirm = containerRegister.querySelector("#passwordConfirm"); - const buttonRegister = containerRegister.querySelector("#register"); - const formRegister = containerRegister.querySelector("#formRegister"); - const messageName = containerRegister.querySelector("#messageName"); - const messageEmail = containerRegister.querySelector("#messageEmail"); - const messagePassword = containerRegister.querySelector("#messagePassword"); - const anotherMessageEmail = containerRegister.querySelector("#anotherMessageEmail"); - const messagePasswordConfirm = containerRegister.querySelector("#messagePasswordConfirm"); - formRegister.addEventListener('submit', (e) => { - e.preventDefault(); - console.log(nameRegister.value, emailRegister.value); - + e.preventDefault(); + console.log(nameRegister.value, emailRegister.value); - const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) - .then((authFirebase) => { - // const user = authFirebase.user - console.log(authFirebase) - }) - .catch((error) => { - console.log(error.message) - // identificardor unico para el error - console.log(error.code) - - if(error.code === "auth/invalid-email"){ - messageEmail.innerHTML = "correo invalido" - } else if (error.code === "auth/email-already-in-use"){ - messageEmail.innerHTML = "el correo ya fue utilizado" - } else if (error.code === "auth/weak-password"){ - messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" - } else if (error.code){ - alert('algo salio mal') - } - - }) - }); - - nameRegister.addEventListener("input", () => { - if (nameRegister.value !== "") { - messageName.innerHTML = ""; - } - }); - buttonRegister.addEventListener("click", ()=> { - if( passwordConfirm.value != passwordRegister.value){ - messagePasswordConfirm.innerHTML = "la contraseña no es igual" - } else if (nameRegister.value === '') { - messageName.innerHTML = 'Debe ingresar su nombre'; - } else if (passwordConfirm.value === passwordRegister.value){ - messagePasswordConfirm.innerHTML = "" - } - }); - +const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, passwordRegister.value) + .then((authFirebase) => { + // const user = authFirebase.user + console.log(authFirebase) + }) + .catch((error) => { + console.log(error.message) + // identificardor unico para el error + console.log(error.code) + + if(error.code === "auth/invalid-email"){ + messageEmail.innerHTML = "correo invalido" + } else if (error.code === "auth/email-already-in-use"){ + messageEmail.innerHTML = "el correo ya fue utilizado" + } else if (error.code === "auth/weak-password"){ + messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + } else if (error.code){ + alert('algo salio mal') + } + + }) + }); + + nameRegister.addEventListener("input", () => { + if (nameRegister.value !== "") { + messageName.innerHTML = ""; + } + }); - return containerRegister; + buttonRegister.addEventListener("click", ()=> { + if( passwordConfirm.value != passwordRegister.value){ + messagePasswordConfirm.innerHTML = "la contraseña no es igual" + } else if (nameRegister.value === '') { + messageName.innerHTML = 'Debe ingresar su nombre'; + } else if (passwordConfirm.value === passwordRegister.value){ + messagePasswordConfirm.innerHTML = "" + } + }); + + return container; } -// else if (emailRegister === ''){ -// messageEmail.innerHTML = "ingresa un correo" -// } From 7ce5f759e0629b4001ea825907732e7d3be12197 Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Thu, 29 Dec 2022 12:42:15 -0500 Subject: [PATCH 13/17] creamos la vista login y modificamos estilos --- src/components/Login.js | 0 src/main.js | 2 ++ src/style.css | 47 +++++++++++++++-------------------- src/templates/viewLogin.js | 32 ++++++++++++++++++++++++ src/templates/viewRegister.js | 5 +++- 5 files changed, 58 insertions(+), 28 deletions(-) create mode 100644 src/components/Login.js create mode 100644 src/templates/viewLogin.js diff --git a/src/components/Login.js b/src/components/Login.js new file mode 100644 index 00000000..e69de29b diff --git a/src/main.js b/src/main.js index a86372fa..797766c3 100644 --- a/src/main.js +++ b/src/main.js @@ -1,4 +1,5 @@ import { register } from "./templates/viewRegister.js"; +import { login } from "./templates/viewLogin.js"; import './components/Register.js' @@ -6,6 +7,7 @@ const view = document.querySelector('#view'); const routes = { '/': register, + '/login':login } console.log("ubicacion",window.location.pathname) diff --git a/src/style.css b/src/style.css index 5e3b0b69..58829359 100644 --- a/src/style.css +++ b/src/style.css @@ -6,7 +6,11 @@ padding: 0; box-sizing: border-box; } +body { + overflow: hidden; +} + :root { --blueCrud:#425A9A; --white:#fff; @@ -15,63 +19,52 @@ } .view{ - /* display: flex; */ - /* flex-direction: column; */ - /* align-items: center; */ - /* width: 100 vw;*/ - border: 2px solid red; + display: flex; + /* border: 2px solid red; */ } .containerRegister { display: flex; - /* flex-direction: row; */ - /* justify-content: space-evenly; */ - align-items: center; - /* margin: 2% auto; */ - /* width: 1800px; */ - min-height: 90vh; - border: 2px solid blue; + /* border: 2px solid blue; */ + } .contentHome{ - /* text-align: center; */ - width: 65%; - /* display: flex; */ - /* flex-direction: column; */ - /* align-items: center; */ + flex: 2; border: 2px solid green; + } .contentHome .imghome { width: 100%; - height: 60%; - /* margin: 0 0 3%; */ + + + } .contentHome p { color: #425A9A; - font-size: 30px; + font-size: 2rem; margin: 40px; padding: 10px; } /* -------------inicia section form ------------ */ .sectionForm{ - display: flex; + flex: 1; + display: flex; flex-direction: column; - width: 35%; background: var(--blueCrud); text-align: center; - /* justify-content: center; */ - /* align-items: center; */ - border: 2px solid yellow; - position: relative; + justify-content: center; + align-items: center; + } .sectionForm img { width: 90px; - position: absolute; + } /* -------------estilos para los inputs de section form ------------ */ .sectionForm input { diff --git a/src/templates/viewLogin.js b/src/templates/viewLogin.js new file mode 100644 index 00000000..a17fda0a --- /dev/null +++ b/src/templates/viewLogin.js @@ -0,0 +1,32 @@ +export const login = () => { + const container = document.createElement('div'); + container.classList.add('containerLogin'); + + const view = ` +
+ imagen de portada +

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de + tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. + ¿Qué esperas? ¡No te pierdas más novedades!

+
+
+ imagen de perrito del logo +

DoggoS

+

Bienvenido(a)

+

REGISTRATE

+
+ +
+ +
+ +
+

¿NO tienes una cuenta? + +

+
` + + container.innerHTML = view; + return container; + +} \ No newline at end of file diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index 1fb49adb..2fba9ed8 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -26,7 +26,10 @@ export const register = () => {
- +

¿Ya tienes una cuenta? From c60012a5513e29406d9e53e2d98cf5d4822f9f77 Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Thu, 29 Dec 2022 13:42:07 -0500 Subject: [PATCH 14/17] agregamos el router a login pero todavia no funciona --- package.json | 2 +- src/index.html | 2 +- src/main.js | 23 ++++- src/style.css | 167 +--------------------------------- src/templates/viewLogin.js | 12 ++- src/templates/viewRegister.js | 8 +- 6 files changed, 39 insertions(+), 175 deletions(-) diff --git a/package.json b/package.json index 0c72f6c8..5dcf81fa 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "stylelint": "stylelint --aei src/**/*.css", "pretest": "npm run htmlhint && npm run eslint && npm run stylelint", "test": "jest --coverage", - "start": "serve -s src/" + "start": "serve -s src/ -s" }, "devDependencies": { "@babel/core": "^7.11.4", diff --git a/src/index.html b/src/index.html index 1b84edbb..c3b45be7 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,7 @@

-
+
diff --git a/src/main.js b/src/main.js index 797766c3..43d1eb9e 100644 --- a/src/main.js +++ b/src/main.js @@ -1,17 +1,32 @@ import { register } from "./templates/viewRegister.js"; import { login } from "./templates/viewLogin.js"; +// console.log(login()) + import './components/Register.js' -const view = document.querySelector('#view'); +const root = document.querySelector('#root'); const routes = { '/': register, '/login':login } -console.log("ubicacion",window.location.pathname) -const prints = routes[window.location.pathname]; +export const onNavigate = (pathname) => { + window.history.pushState( + {}, + pathname, + window.location.origin + pathname + ); + + while(root.firstChild){ + root.removeChild(root.firstChild); + } -view.appendChild(prints()); + root.appendChild(routes[pathname]()); +}; + +// console.log("ubicacion",window.location.pathname) +const prints = routes[window.location.pathname]; +root.appendChild(prints()); diff --git a/src/style.css b/src/style.css index 58829359..1c85d366 100644 --- a/src/style.css +++ b/src/style.css @@ -1,166 +1 @@ -/* poppins */ -@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); - -* { - margin : 0; - padding: 0; - box-sizing: border-box; -} -body { - overflow: hidden; -} - - -:root { - --blueCrud:#425A9A; - --white:#fff; - --pink:#FBCFDC; - --fontText: 'Poppins', sans-serif ; -} - -.view{ - display: flex; - /* border: 2px solid red; */ -} - -.containerRegister { - display: flex; - /* border: 2px solid blue; */ - - -} - -.contentHome{ - flex: 2; - border: 2px solid green; - -} - -.contentHome .imghome { - width: 100%; - - - -} - -.contentHome p { - color: #425A9A; - font-size: 2rem; - margin: 40px; - padding: 10px; -} - -/* -------------inicia section form ------------ */ -.sectionForm{ - flex: 1; - display: flex; - flex-direction: column; - background: var(--blueCrud); - text-align: center; - justify-content: center; - align-items: center; - -} - -.sectionForm img { - width: 90px; - -} -/* -------------estilos para los inputs de section form ------------ */ -.sectionForm input { - /* estilos para todos los elementos input dentro del elemento con la clase .sectionForm */ - border-radius: 15px; - background-color: #C1E1FF; - width: 240px; - height: 32px; - margin: 8px; - text-align: center; - } - .sectionForm input::placeholder { - color: #425A9A; - text-align: center; - } - .sectionForm input:hover { - background-color: #a4bacf; - - transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out; - } - - #messageName, - #messageEmail, - #messagePassword, - #messagePasswordConfirm { - color: #FBCFDC; - font-weight: 600; - } - - #register { - display: block; - margin: 0 auto; - border-radius: 15px; - color:var(--white); - background-color: var(--pink); - width: 127px; - height: 43px; - border:none; - font-weight: 600; - } - - #register:hover { - /* Modificar el estilo del botón cuando el mouse esté sobre él */ - background-color: #ddb3c4; /* Color rosa */ - } - - #conditions:required { - border: 1px solid #FBCFDC; - color: #425A9A; - font-family: 'Poppins', sans-serif; - width: 15px; - vertical-align: middle; - font-size: 16px; - font-weight: bold - - } - - #conditions + span { - font-size: 16px; /* reducir el tamaño del texto */ - display: inline-block; /* hacer que el texto ocupe el mismo espacio que el checkbox */ - vertical-align: middle; /* alinear el texto con el checkbox */ - font-family: 'Poppins', sans-serif; - - } - - #iniciarSesion { - border: none; /* eliminar el borde del input */ - color: #FBCFDC; /* color rosa */ - text-decoration: underline; /* subrayado */ - cursor: pointer; /* cursor de mano al pasar el mouse */ - background-color: transparent; - border: none; - text-decoration: underline; - cursor: pointer; - outline: none; - - } - - #iniciarSesion:hover { - color: #f5eef1; /* cambiar el color al pasar el mouse */ - } - - #termsLink { - color: #FBCFDC; /* color rosa */ - text-decoration: underline; /* subrayado */ - cursor: pointer; /* cursor de mano al pasar el mouse */ - } - - #termsLink:hover { - color: #ff3399; /* cambiar el color al pasar el mouse */ - } - - .question { - font-family: 'Poppins', sans-serif; - - } - - - +/* imagen de portada */ diff --git a/src/templates/viewLogin.js b/src/templates/viewLogin.js index a17fda0a..6d7198d9 100644 --- a/src/templates/viewLogin.js +++ b/src/templates/viewLogin.js @@ -1,10 +1,12 @@ +import { onNavigate } from "../main.js"; + export const login = () => { const container = document.createElement('div'); container.classList.add('containerLogin'); const view = `
- imagen de portada +

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -19,12 +21,18 @@ export const login = () => {
- +

¿NO tienes una cuenta?

` + + const registrate = container.querySelector("#registrate"); + // console.log(registrate) + + + registrate.addEventListener('click', () => onNavigate("/")) container.innerHTML = view; return container; diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index 2fba9ed8..43e4fcdf 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -1,5 +1,7 @@ import { auth } from "../firebase/index.js"; import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" +import { onNavigate } from "../main.js"; + export const register = () => { const container = document.createElement('div'); @@ -7,7 +9,7 @@ export const register = () => { const view = `
- imagen de portada +

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -51,6 +53,10 @@ const messageEmail = container.querySelector("#messageEmail"); const messagePassword = container.querySelector("#messagePassword"); const anotherMessageEmail = container.querySelector("#anotherMessageEmail"); const messagePasswordConfirm = container.querySelector("#messagePasswordConfirm"); +const iniciarSesion = container.querySelector("#iniciarSesion"); + +iniciarSesion.addEventListener('click', () => onNavigate("/login")) + formRegister.addEventListener('submit', (e) => { e.preventDefault(); From 27562ef140d7f6af6e63415cdb3fac8bda9e562b Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Thu, 29 Dec 2022 14:02:43 -0500 Subject: [PATCH 15/17] realizamos el router y spa sin exito --- src/main.js | 8 +- src/style.css | 166 +++++++++++++++++++++++++++++++++- src/templates/viewLogin.js | 4 +- src/templates/viewRegister.js | 2 +- 4 files changed, 173 insertions(+), 7 deletions(-) diff --git a/src/main.js b/src/main.js index 43d1eb9e..475352c2 100644 --- a/src/main.js +++ b/src/main.js @@ -12,6 +12,10 @@ const routes = { '/login':login } +// console.log("ubicacion",window.location.pathname) +const prints = routes[window.location.pathname]; +root.appendChild(prints()); + export const onNavigate = (pathname) => { window.history.pushState( {}, @@ -26,7 +30,5 @@ export const onNavigate = (pathname) => { root.appendChild(routes[pathname]()); }; -// console.log("ubicacion",window.location.pathname) -const prints = routes[window.location.pathname]; -root.appendChild(prints()); + diff --git a/src/style.css b/src/style.css index 1c85d366..5a04e65f 100644 --- a/src/style.css +++ b/src/style.css @@ -1 +1,165 @@ -/* imagen de portada */ +/* poppins */ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); + +* { + margin : 0; + padding: 0; + box-sizing: border-box; +} +body { + overflow: hidden; +} + + +:root { + --blueCrud:#425A9A; + --white:#fff; + --pink:#FBCFDC; + --fontText: 'Poppins', sans-serif ; +} + +.root{ + display: flex; + /* border: 2px solid red; */ +} + +.containerRegister { + display: flex; + /* border: 2px solid blue; */ + + +} + +.contentHome{ + flex: 2; + /* border: 2px solid green; */ + +} + +.contentHome .imghome { + width: 100%; + + +} + +.contentHome p { + color: #425A9A; + font-size: 2rem; + margin: 40px; + padding: 10px; +} + +/* -------------inicia section form ------------ */ +.sectionForm{ + flex: 1; + display: flex; + flex-direction: column; + background: var(--blueCrud); + text-align: center; + justify-content: center; + align-items: center; + +} + +.sectionForm img { + width: 90px; + +} +/* -------------estilos para los inputs de section form ------------ */ +.sectionForm input { + /* estilos para todos los elementos input dentro del elemento con la clase .sectionForm */ + border-radius: 15px; + background-color: #C1E1FF; + width: 240px; + height: 32px; + margin: 8px; + text-align: center; + } + .sectionForm input::placeholder { + color: #425A9A; + text-align: center; + } + .sectionForm input:hover { + background-color: #a4bacf; + + transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out; + } + + #messageName, + #messageEmail, + #messagePassword, + #messagePasswordConfirm { + color: #FBCFDC; + font-weight: 600; + } + + #register { + display: block; + margin: 0 auto; + border-radius: 15px; + color:var(--white); + background-color: var(--pink); + width: 127px; + height: 43px; + border:none; + font-weight: 600; + } + + #register:hover { + /* Modificar el estilo del botón cuando el mouse esté sobre él */ + background-color: #ddb3c4; /* Color rosa */ + } + + #conditions:required { + border: 1px solid #FBCFDC; + color: #425A9A; + font-family: 'Poppins', sans-serif; + width: 15px; + vertical-align: middle; + font-size: 16px; + font-weight: bold + + } + + #conditions + span { + font-size: 16px; /* reducir el tamaño del texto */ + display: inline-block; /* hacer que el texto ocupe el mismo espacio que el checkbox */ + vertical-align: middle; /* alinear el texto con el checkbox */ + font-family: 'Poppins', sans-serif; + + } + + #iniciarSesion { + border: none; /* eliminar el borde del input */ + color: #FBCFDC; /* color rosa */ + text-decoration: underline; /* subrayado */ + cursor: pointer; /* cursor de mano al pasar el mouse */ + background-color: transparent; + border: none; + text-decoration: underline; + cursor: pointer; + outline: none; + + } + + #iniciarSesion:hover { + color: #f5eef1; /* cambiar el color al pasar el mouse */ + } + + #termsLink { + color: #FBCFDC; /* color rosa */ + text-decoration: underline; /* subrayado */ + cursor: pointer; /* cursor de mano al pasar el mouse */ + } + + #termsLink:hover { + color: #ff3399; /* cambiar el color al pasar el mouse */ + } + + .question { + font-family: 'Poppins', sans-serif; + + } + + + diff --git a/src/templates/viewLogin.js b/src/templates/viewLogin.js index 6d7198d9..497bebbf 100644 --- a/src/templates/viewLogin.js +++ b/src/templates/viewLogin.js @@ -6,7 +6,7 @@ export const login = () => { const view = `
- + imagen de portada

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -32,7 +32,7 @@ export const login = () => { // console.log(registrate) - registrate.addEventListener('click', () => onNavigate("/")) + // registrate.addEventListener('click', () => onNavigate("/")) container.innerHTML = view; return container; diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index 43e4fcdf..a595d51b 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -9,7 +9,7 @@ export const register = () => { const view = `
- + imagen de portada

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

From a88608ec4ca823aba00733e9e570a7d27bd55a9c Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Fri, 30 Dec 2022 10:46:47 -0500 Subject: [PATCH 16/17] logramos que funcione el spa en las dos vistas --- src/main.js | 2 ++ src/style.css | 4 +--- src/templates/viewLogin.js | 17 +++++++++++------ src/templates/viewRegister.js | 5 ++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main.js b/src/main.js index 475352c2..ad075121 100644 --- a/src/main.js +++ b/src/main.js @@ -4,6 +4,7 @@ import { login } from "./templates/viewLogin.js"; import './components/Register.js' +console.log("loginn", login) const root = document.querySelector('#root'); @@ -32,3 +33,4 @@ export const onNavigate = (pathname) => { + diff --git a/src/style.css b/src/style.css index 5a04e65f..d19e844a 100644 --- a/src/style.css +++ b/src/style.css @@ -1,3 +1,4 @@ + /* poppins */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); @@ -39,7 +40,6 @@ body { .contentHome .imghome { width: 100%; - } .contentHome p { @@ -161,5 +161,3 @@ body { } - - diff --git a/src/templates/viewLogin.js b/src/templates/viewLogin.js index 497bebbf..eab7fa9b 100644 --- a/src/templates/viewLogin.js +++ b/src/templates/viewLogin.js @@ -6,8 +6,8 @@ export const login = () => { const view = `
- imagen de portada -

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de + imagen de portada +

DoggoS es una app para dueños de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -15,7 +15,7 @@ export const login = () => { imagen de perrito del logo

DoggoS

Bienvenido(a)

-

REGISTRATE

+

INICIA SESIÓN

@@ -27,14 +27,19 @@ export const login = () => {

` + container.innerHTML = view; + // const emailLogin = container.querySelector("#emailLogin");const messageEmail container.querySelector("#emailLogin") + // const passwordLogin = container.querySelector("#passwordLogin"); + const registrate = container.querySelector("#registrate"); - // console.log(registrate) + + console.log(registrate) - // registrate.addEventListener('click', () => onNavigate("/")) + registrate.addEventListener('click', () => onNavigate("/")) - container.innerHTML = view; + return container; } \ No newline at end of file diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index a595d51b..77525d99 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -9,8 +9,8 @@ export const register = () => { const view = `
- imagen de portada -

DoggoS es una app para duenos de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de + imagen de portada +

DoggoS es una app para dueños de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. ¿Qué esperas? ¡No te pierdas más novedades!

@@ -51,7 +51,6 @@ const formRegister = container.querySelector("#formRegister"); const messageName = container.querySelector("#messageName"); const messageEmail = container.querySelector("#messageEmail"); const messagePassword = container.querySelector("#messagePassword"); -const anotherMessageEmail = container.querySelector("#anotherMessageEmail"); const messagePasswordConfirm = container.querySelector("#messagePasswordConfirm"); const iniciarSesion = container.querySelector("#iniciarSesion"); From 77848460efd85f45908c578d73638c34660883bb Mon Sep 17 00:00:00 2001 From: Ana Cecilia Toribio Arrieta Date: Fri, 30 Dec 2022 14:02:37 -0500 Subject: [PATCH 17/17] estilos logrados y parte funcional de la vista login --- src/img/facebook.png | Bin 0 -> 16055 bytes src/img/google.png | Bin 0 -> 31423 bytes src/index.html | 4 + src/main.js | 16 +- src/style.css | 344 ++++++++++++++++++++-------------- src/templates/viewHome.js | 16 ++ src/templates/viewLogin.js | 65 ++++++- src/templates/viewRegister.js | 49 ++++- 8 files changed, 329 insertions(+), 165 deletions(-) create mode 100644 src/img/facebook.png create mode 100644 src/img/google.png create mode 100644 src/templates/viewHome.js diff --git a/src/img/facebook.png b/src/img/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb64d2d3e0ae278637d54d3f0691a8e7dabee50 GIT binary patch literal 16055 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 Tr_qMBH=w3`N2yT3;>G^}=}7g5 literal 0 HcmV?d00001 diff --git a/src/img/google.png b/src/img/google.png new file mode 100644 index 0000000000000000000000000000000000000000..0200d2f656d427dcfba9b77f5533576950232e6f GIT binary patch literal 31423 zcmXtA1yogCw>?}MB&54bY3c3~X{5Uw=`Jae4gu-z?gl|hTDn7|yPJ3L`=3Jx$USSv z+H=+1>ky_WFNK0cfCK;lij1_lG5|opZy^8z9QftJed-SU0^=kqqly6j@kTKD0{$QI zleDH20HFSS`3Lol9+eRMA-=POhO>&jnX{XrqbcC#=Eh`cXYFKc_{o&X-qAeuh@Sue z$N(8}5mooJgJrig)#+QIld*QUJDcyz^Lj-?zrC=Lb0+9;us%r$V{y>1u0G`G8-IAP zqGAnWWu3-~#IvdU25b159j7eo%X@nY1cs`1h0g1YRZ{8sW#?rh-ov2y*jI=yFnse(p#%FVqznV(ynR33-{Ax7Hk}78>q4fKMnabCB8`qQ% zU#CqtwLj3rYsO`1FsRis48@I@eU$eV2%n~S^Xtv(=K@OvxX&A#$F~o@ayz0hfdMh- zYMcMGalHYg`-|r7HZ8UdzT`PO`jz z8R9M2IktVu0rNSaM3~H(Zs+%u zz_bt24#W2hK7iJqo0w?m48!(vRRfb zrq8gk(X;g$v0fG4T1>E`pj@H^EG*phl#i6BwwJFowq2Izvvu(0Ch`&*p9UcVeWTfR zbyF0(1=i{E{hO-ld)#i4o?LE{Er%C!&Jl?PmPMuI=d;r@q!v~-cXRufoqMB>z%74@|{YxA3LQKm~r zQ$6>ma;KW{!m%Iv`d*bEIeqepI`+DzR#q z;$mm8wyAiYP2+JQD0X7SVSE_v$5^RRS6fO*i*xoeQ|oJLdsuRg9~37J>&;T63+lm^ z+S{|*o8jW*9P6~aOE8`Kju%eF1ZZ@B7xL>E`WENwrsa7TL9&btU(lrN-e*ocGdEsD zBA|0?>Z7ZxX={8)>h9uCO#n)WYE&7BWY%F_kG-p1Qpa_rA6~D$W=Q)SK!!?O#I3BY zU0YB*{d{w=%jGMP9#&nk0rBrG?+s7FE~J`29{V+#vD7YQ$Z5Y~Jdw4}8%0uVBk0+5 zc9`<3M1M4m%?Zv_scj`r}}da&KZ3x#t*vh(?hEB?Yzey zp~UC8S#-TNi#>#@PI5P)>$dz+Aw3iy9$ffa97Zi(e!iYZ)yxhFT<-X^m&F*#S(i$! zwt5}6Ir_^a;C znDVw^SU9LZSL@jdj(Scn-^E<>=+<-OGj|nI<8)PrlTYUXm1u(T3487q8$ZL|x{xGl zfO|Al(b7su*pz+}Q_9R)WP7)~6p>lYVp(L5;B)!+>0>B8+VT%BYNPdTSYW@VCh3=B zJe%_KN~2%qe!NOtvmB}M>kZ4x9WPg(TM=Wq9$OW2c>&?{&|WSOiiM1NZEbFeiWBJcv;izb7qid9^kD zNBE1>*tnGL);s)gm66Diy{N-hJ*!I&zi4}zVflVofUozg23u%XC~K9uriRUSN^|bJ zi9Jf*-f|2fs;C|JtLA376Hl^RZKzJ%xI*kWAz%;}fV|D?^7HEdk_Bh6ky=UJ=^q1V zM0cVLyrbH$4kjU&^}lrAmXrvo`c6)SieQcrlK_d`{4D)GRC>@qF%2;`4mnmCSpJAt z-ib5=RnOt_BYn~J!Rl;kFj~pnuo^U5I6$MtWY(aBr{FvnXlxD>H;uXZ(0W&%& zH?ay{pm>XJGsG;51E>ok^MFDBdaAD}AxtGJTmnnMh}go1LLq?bsYZTrK(R9qo!xv7 zATXfCkuDVPAvPf1)-%B-lZi77pZuz z-e;EfWBoT3+4t{JRkjVCU!6tu$gAt=9aW_qFr$%h?!c8!cR!cGPe`~%89f1g}eD{v6Y)TU&V96cfSI4!%LOsc^r{x&b8PSs0{@l+_n)hE!ps=XK z_NOtmCZvNxE_t7i9IKccPW*uNhe}9F;yb|UFBJ*zMw7*QuCzuz-h(1Dwrxz0YAN8Zgs zTkHKjX96o;NoDbPPsx6LN;=C1g>YG4CG_T$^P z4o{~}D4(bF)TI5aQ4Cym?1FT9!}%tpUk$`D9aj*7=aiq+^kkmA*_VX=<5l$N1l-?| zKf9Jxlw8>_*8K6Bw97byxZvRMJd7r0ZH=TR=}nc6SqFx^BBC8y`gyGLK}s;xqlbbn zRVcWvmE`2KQbM!_ap!SaQA#gp?S`i2TQFTm{Wwy%$y(@_eQ^!h+uVZxNq@%%}2B92rAoV1^ldlQXz^PKj- z>(%{|c#-#ceWfCt@{!+5UA<-UELT4!nV-@$`drZ6=E2HvoFqE$4xA{$8##!dCJTuo9v*LKrhYttVA$7452ztDPds%~14g>w z=EKQ466wJ%uW$heGmrUS+VE)jEMrxC4;itj4ry52oFc%`02znft zKdRmEuc$AQWM26x%ajmCeH)+3it4NP9nFf~YY;Nj1V$!8^{L9S zlx{m%raguUv!?@U4Rrx{4{HIpP2*FM*W>VcE_j`|7_HAz@l8@*4=WUlq|T^d+4qy z`udH(>pa~Jtq{`kbR@WsgQaS(Q4|4Ys%{l^F9iwyDrrm``gp%dvvNMVKO>SySbbG zeH#6H<2{ChP7L3;FkG+_Ni2&vxQ0U`W@nnXztI+a!Ywm>4yl`!A`WKN!XSgA>Tw%- zRD@rVPN&HULZ53f?caLTFa5JM{C%fzw5JL9g7^}`kF=M(bgxN*?e-XAO`aZ1=WqmI zEt#K>*j#y)OhTV$?q3r)V!9-J;dQRcaX3#T#vRKL@F8@;$^8TI*U+3VWeY(eJ`>ey zp*KXkPUT_@DZh9l&8J+fAX_<5y>KEgn8D z5TsVAbv`^WL3zZPIs!h^4I0TD&co~9B+M>YeH&49u3bX+P(g6=*-;p;vtz!Farr*| zo}Se)Z8Jk;{frDiO7->9;}(`LWu5~b@085LU?$bA4Ktq+@(vlNl<>msF|yFydbqX` zEnsttC&hnOqfw!gE)&V4o0tgE^`UL@(Yor)pwZX-lp`b}bcG+U@NVpGF@vbT^U7(|vo~50a(S~lSq-Ad7S-ax zc4|uvzGN!+UO#qLX{K&{<$`^tdsx1e2mCC3jF5sM0A1gegQ<;{pQ4= z3ayZ2dM^To`Ma-%m6e`f5_)DpP>@2(LP-Z z_8A4h>`=0;KmOp~sUVrM>^2+PI!s;lIX-;tv_1NlSmJdztZ-17uZPQft;&lLpL^_U za15Ljq{Y4FDuy@k{8NT_#^zPXK?OQUs|i9-jz(pizRl+Ly;13l@MGWE3S)U?DZtPN z!C}^0Y4z(|Aw+J)ZYrt`f@Z#E!x0i!p!Z(&dS!LmSezTwyZ)7uanbDnpTp-aK>*AR zP;dc5HLVt#?yBs-=lIy&21WDTxAU{W;zO&Ur#0Hk2nr^`txbI1Zi2`HJgK~LNz>Ca zp&fHgVD*TvvXVC%C*1@f2_rV=%X|;xvlCMQ^*e zgXw$r=Y5~#p(SufOUSvxX}b`~tYR*Mr2_%ilX8C36`V2La9AuV;V%Mn|@PI_RNM z@xH#UF3&(7>i*j{7+npMKvxO{mR|cpcQ@IDh4Q{>ys~Y7AX(vh^!krutbZi^m@~$1 zhDJiyZ}x2lGN+ZL3?n2oD9Yf9O1`4(bMiYJqRc)e@XGRoGRP|$=Ub(@eG$nFGN<>m z7P{B$3<}Tje7CG-WE7fY+}o}&G*8Sf3G$QdD5RD57tFJA8P3cuiSF2)Y`E22`hM2a z1FV!4*`pJhHI=AWovTQu%Z42@W67^&{5hG>I!KxP?Gy^-C*QPG828*M=qEcbPdBQV zhe_!G&fVJfZS9^vche;$D*ZC_tgiz>l zW7=N-vYfEE_9r0|z`Jw!+;(oa)NnPe%DpufU^#-*q04N1(D?z9oyrt&T+rEfI18qFm=+xS6(3YiIN{dZOu+BqtH$s1Emo`jdN88}XFh24_G)3?r zd*3LT1a6xnXBYObQU^q4dN-W?Dy>ZZkWQJ{yKNUucRQBSsMhyq)Beeb`~Youb1;*2 zhWfXjP};RzfXBY_9vv~K)V}b%8d%oI_7)UvS)Xw zxJ+C(JY!v2Sl}G~Sfqi(f8khr%3(n+j%xGoHfsA#x9lViquvRxONPeJT5-aeGOhEA zWaK_?t_t1`@Hs z8;mYXH3q*!uH3$;ucd>ls`c1|LLCXTetjC^Z}y|eZhs&uTDhr6S#n7zv0QamqgB#r z|A6hX1m$GZ63SbiKZp16<0!aYviVgbTs2>dl>8kPjHn)nC*Vk4^@8>6gzS9xDgILz z&M-7EGM4JT4vRa({6@DXfLEbx4cq^Zo@SfP=p3@tqhJP&-=d!{^!=Y`v9q6JR%b{O|IgV$ho!UeLf|rq$m)qYpjHdI= zR-GF>9JnLb$}+WF1o}RPdns*OpiO2xcRiKDlhrHI8b;uU3Gx%Kz$c0{_V;e*q3%ys z7HM1WQy&9O3B1U#Vrqh=L;BBdZAPG!Nqx8)1-5VrV}Ckx^N-Xv_M%YD@2jm$*Fyb#&Z=7mg9j^y9jg zHXEl`VeI)6;tljh&-JWA>pzN5GlzPMw)>MNi{FnbWLljY%dhm*Th{{IdUvQFhPY1f zK~zqC5kz$-c^iE6HZMxFAiG29aWgksYP89=4+l(Q4Zc7Oo*r&1SabW;Hn;wA7uTjm z{|Rn2@Vr#n!;4^rp6J{D;dK12%cd|&^hmllb|z38b&GJ_-C#q14N6gG>NvhB`C)rx z12kJ4fv>_lSEcJ71}F+o{eQ7Hsq>xP$_qzdqaf-7Wtx|LvXAgrj0K|(f>Gvn0lW3( zQ>=K#lIwss+6vn0=FRZ|t{pVo6=7A2_sIDa4+Ud3vj4xBW^{2f*Kry+zWy+T!qVOm z$ctz^Oy`L0?k7Z=J<+H{8>R`GVw>$tl~C*?uH1bD^^d-EFlL^MO+5O#EaxX0dOjAP z-R2kbB1(4g+RojthNy+(8}IvJYdae?p_P-{uHDJP1JJ$^5t|{3T3S}StM*-Y$r%q& z+)sMl@j}K7yz=bV9yg2`4~uVlzZvb#HeTO>bk9wbrVc!{2~!tN*Rvd?=CE5ooYb$6%p~ZQhzKFq(Q<~l6hD=acV6`DsK>OV2H}s;2 zGpv9$Tku(o7j9!2xfa6=k&7J3{|vh{;{ar7a9yHmS^e%H3<}IIz8psr6>2r`8TlCn z6j8oIJJ8nYFuKevb_x<((uZg~IL_~cGZEj1^{jsxe8vH*@wJ=VXGlkKL_eM^77tQe z^l)Gb*Joat?(^G+jX!8J(V4tHd;L?IEff{z`SsSbDZh1hr-PS~CyQ$9dR3cYuQFGV zio?KjW{BPG`5nb^UERN_Z7BMZ{##yW=xS0^Q;X~|q+`z}0d-j#n5FTZOE(+`LYX5k zTXUomZg&K<{GL!1o|M$)%E>qwr`ywbrPP1gLRC5Mo@s(K$sLYMRKq|34fnQuplT29 zBfjx#BUp$~8_LQt^Tw8-ct|APyWMZSL!cYjDQjwjIoSwjHq&J}`YguUysy6_eK(CA zBUJfcprO$Hd|cQWy0DG3M;D^5u1$L9{O79Mou2?N$<+8b!$OVBUX{_UbtjnmC^>utaYRSV+(BpM~Hec zO+NV0N%CvLrDqfXBp?>(?bHCZ_LjTK_WO&`>`@0^o^hCd<3>@df|p3k?Sa(R=@&rz z%so-79$hx8R(4D15_R=89Aa>~@wYuR3hx0L+>*n?Da~4yByk{XqQONrQ=Q-~&Q#m_ zl#&MgD}2_Q3|xI3elR`q`q@kEZwEVX53=B_>Sc3D4?+Wk8%LY)#texv{&(d@?wyTz zG1z`JIb7;P#tau`x>@Mi?x@ zg8@z3bz675AJP7Dp_}|m6|cO_oteB+-*ECh7~hzQ(1~g}-L7EN@m;KD+xU{TCI@F(>H(*xumE{)J7nX|(=I`@b*N!kJTu zok6R&J}49bZo|>eb>;0I(KbdcY}aqpe1ob{IDJ;@s;SpaSonRT7QqGhCL13_Q)5Uj!+@gT4q~ zZ?>m4s8K33d`%{U0f$0zvVC^u2=9{E@N@Hxe>cC6sl1)*hx%4!E4QAzu|lZVlZ!OT zN`wB=7%|Gj=rU>up(x#Up`W+`^S9#4Z^>lPX^;(Mt?oI3;07mQEXbwx(AF$JW1Wbd z-ICS2lXKjYYq3k~L0LR_jZ@1&I=o1QEjG)iWHf?I%}nP|iMi{rx~TRT3d5UMH(t0- z<_z~!J{px*(=;hxH#2o%c4bLjFw9gj$dsW>7P8G-$sLih|6+>`9YMz`!Hg`!E9PAD zQO+I)>olVj{L+nyJ_=P;L2NF8D>@Ulf;9dVOwz$@LlZ*gu!nKMz@Y{U64EkVzje9B zrK%|2p+O^yM1cbBv7>M!t26jDjT?cC2hEE)Sn&>MPeZ0UlEe%-W~5h?vY##e8qSH!=l3;&yIQE8yV2^CyDUQWC7&FhoGWS@+Bki-~S+hc}jpw0T;_{}P`3z}^; zC4Zj=U448A8lm3y=qK%>+B7n+lC=lF)eu$t1h+Rh4jAApd;S^Yk~&f2C#l(s%TvYD z1B@S8?DddLC$*AY58&TU|73UxU#*Q4pXQ^B<5`Tr+kk*&FV}p1w`CW-JqF=dx)5nu zm!#g`VEP4CQls%g`@F6Gf^^7x1BeJwEy2fsebX}1BD*An04847RJ3MSG=@wDf6Ga! zm_~Kzj^tbK-MOGr`j%X{!IKGW z0`rwfNo1$K_(TuVSWkFXt8qm<4<*(K{LfVTb}o~vgWbiV+MhpzT90~MyzWtUaM?Pk z9nTH9{kX&IPltHLsi5z^93ki_e;z-<_b%s(_~5nr`S0>}cG)6QaRBegt>vHdwPrVb zgQ()kVFt;Ar3UNm;G_sr;q<^ZK;!Dy*HjuESEXXASgBjd-^NK|Pi=|3aN+Q3P`2WN zqL}ugpMD+`k@T`r$p!yC$2Ih@M%gV(V2;zdgCh zLWbO75y5@CJ0mCE#-m_XCz`&y(PKlOJ<~lrhMB*q=q)xB5Oo2B(9(Ys$#e$AsyYn|6p2vN=P+z8?D@STElEH*z`em6(g0UEb^CHgwfgEyHfX58O( zTH$4`S76+W;;WKPVC$-vUpH-$6!ofuu7Z~J&;xn~+b`s7*N{y7q#-f4>wbXW?x=@1 z=uU%76YAx9Ycco_G68rI$Xd(yb{7|u+`gnR>W5K;G;E!HWT4-f&dy--l*1g)0LU_E zU*aV+3I$BzrL$g=Gr9Y<3|IB@Xl_rd&fam^&nIXpD~md^h97)3l{Y(?*GPFNCl&0C z7vc-1W2bZ;i9FHw6 zBwyqE160@5lAHUPIr=gq!U_v?fb20iQny4LdeaF!g3b+ea;FBu;^$71MV2{O3hWbs z6WJnY^rW}GS2;5=`;A;)pi37!f=5Il1<1Q zdK}X4;gmT6+g6pdjCNiUJ?eW5B|+vq)VP*<*S}+C9I|nJ-y2HmJJ*_*XX01a7qLg; zpT=;FT>b8L$i>T0?^Mtz3l}3C2XUO~2yXSzFYtwZLJ5aegZE~83hSDNH+;SpP!!~K zwh|+!UAv!nM2PH&WT0S!OC6zU*2N!#PDU?h&E>pj)TqiDGfmR%;8Q~awvQ`9YMu~W zUg1#ZBw=?P^CQ)-a)7zSE4D+r(8urkqP%!8j#%y_o&;L!czYVdWRNHSo3$RaoCYNH zdTjr;gNNkX3;P8n)W60V4=6vF(9?WT9%dg?#;j`3mEmjIkix|!_A%xgLDuBY_ z#RAgDc-Bc4N3dUhAqgigVzXsF*_LjfZDy{Cze8{P<0?2dh8NDqnJV{7dgy`6KP;An ze#1HkM-LRDl4I`@MYxxf1_(q-@rK2$?AO@F1 zr7Byj*I ztz$Zia-)89i@$)Kb|o-HAchyoI6^|lx3Mjh@^azz8z7NMSCF1rh>HiKa#?9+*4NF- z-X13tbkk+_KhC=dz!F)$2hUh(qO{1|PSa9T+%s7!51<jz%KtvwG$gH`|!8Zj%*$2cl-dcJ$NSogy!kZHkTBwhi>i2l@RXRZ;=?|aaB@=MY{ z89M7kS-9=B9b(4n1N0A8w-=U_6~pHq7tQ^&w>Pl+vBi)Xs9|G!GJ7X+$<$-3tR)oi z`(cGkKm2t$daV^uD4G1#B?x5F&wnag2!JJGH=eP{2O3Ny$J$J!>-~^=K;!XjFF~-k zy+8PzgKx+)FY-@(Fw_^mQvWoA3+QUp3HZY9^ZUl^*6<>be#C3e>5xeJ$C-2Mvz5X6 zOZQ@qQqg++APDn&scryG7$J$D;vmb6pH)FRzy*zQZ!#7@D4Bl)QGthv}%v1oo z6Ls4<#HHqFrhRevQ-_|pCjD5gem4bK!89a^Lt-~%psan0{_9JUnl-L3X%tbdp{$|t z$(mcA*#=g4KBva=7S>}^>KW@8S21N(=oy+?IKn=Jt{Aq=b2G5|T)C1iURTWSA)QYMxg8+-c%wIdgf6x+fmENz`zsCxzf@dv z9wsKH!zi=X!TEqj(MJda`=wV&AatcLag*K4(izBfyX%FBJB>Zyc-_^ z!9qNuw{4@NJ+$p+BV2Rcy}Swwuq>Wg)wWeTE8R`})d|UoAG&oVHj?D{xifPTVziyN z!h*D-o%vF-89V$itCjh_``xfv)<6Tvzq|W0Vb3YAE_o>j%k($bQwhMkH6RsEBFuC7 zle@iF)W6xjwS9iDTz5}r!Ugh?lXSnOW~O3AvFI9BcoM`RjA3-(O&~eQqO7fr1jOdZ z6Tlo3kE!$>idS*Sl#uZK2Y1)p?SL<2u{zX>yO zp&)VDdXu!RY6^ojSl>n*mCPserk1wT4q4c)hg)k~0ncl^>1lLb(-JS(I4#mAT=@wy zyK=ZYhsmr@uc70?^WyaCSvwa41E1=j^c@{BJhp{oXA9G{2HDe`b@-%bLCyj^CCT>J1n!WNvPwYbf!NY z_-!td8OOWIpxqQa1-u+Jbs333t2r|m&lJov7K@9A{<;bj(7iX$AmA)Wtd9u{m1YC{ z@urbjO9?(%O(_|D17gO~~U&9;Q5)cC|P%?Ky{ z%6Fjw;frNGIxYucgJle_B?6doNWDPol~|%FRek~g-1@f51tL%Lyt?ZJ&$?NKwkYxX z0TqzMiC<$Gvtt4qpVZ# zWBy45&4E&b4*}koVoZXAE_9c_Q`TE&J$}yA)+PMfA7;toR4RO0w+upc+CgWt zA`9^-iWiR%e2e*1O8U=|L$*eTn+hnS?cJcN?*2}{fn7%8U3TIo`oMTBg8ETOa)(F) zn4N)+Cy09F2>{!Gjs?7zGgnb`~{|tj5Q8HZ7*ABfgtw@!}N^!fJ6ST*eaXF;-~0Ex>y0pvQe66S5Fz5x|P;7x6+Z}@xIZ7{V7-9Wh&<| z&rYZD4)Nu_8H8+gd|rOx_ap|5g$k7W!?%F)Z(XMroZ@hCgo1)Ot4Bf{46;5hu_Zix zxj=C@h z#wzr8);=Sp5WdImEB>RlCQM}ie zeSzDY<|gi@X~Q=6ng=qV{{HTI#LUTE*(GG$(8@Q^?!m$lJXzx=%NVgPxBkihG!WQp zCDK)~;?U8b-Uvu5D73QjgLieOzHo0;#qh~njG8PJEzV$G${Uc}j!2iXviju_eU#Y< z42%w1UB`ZwX5n}Yb##AMJ;N@YCwn62`}yB?UBQnDJUjZ+Y5|QlcaP)YvJYN26fSAS zgJeU`wqe-?B0uoifYN`_rP_61aKtqciGC6#COrcT2S9Y|7LO4X$ z1ga<(+13P9E!s_gNWp;gS|-lGQDf92=s68m*y{b+xAn*=*7tu10i%6hZp2blC1qp> z88(^8tgZ;x#zZqPDWTLUE>=(9-`-{b-o1Nw7tAH!pPaHP3oLf>eZpW+)dVtDR8i6XN7)X zD3H?R(UdV|{+52ZGoy(NfF0>c43jQiDs8D`mLn#A`s)sM*ikSfIANqRuj$@^Fv82D zL&7TbxSIF%oxvBR=DA&r4Vw~te}13P)8Bz97Z@U0VX3%Q&`No=0Ir6DnTO{#rS|cl z3|6>>FY@ZnZ^#RL5FRu+i6TqIjOB-PIg$Mn5~iwSBc1HPNx*$@ zm7+R0;ikZ8`gi3?b(4gH&qhv7B{NVd6lUIP|d5@t71{}7B7Hh?wOy4X(-uInT`4+*~Bu$rOQPLp%)CiT41Dk z|9&BFveVBDDrU2dpEq`)!2RY%e=gmEfPHg`o<5s?)MFI^RHnl(yXp)Fr%pB`|IMk* z^@*@a&fu|UsSpbP{b()}E9>o0SOh&+{V8K`hv98`37fAA{f;Aw$rwkb1$Z4ssY<6~ z#H5NtxL{awu#G%N@Ien}I6r>4D_;DvQDv=^(*E65zI=d=k+I&yq$OQR*4Yzp3|Cc* zP?k_G@H3_?0`$wsdBbH9d6RsQ3}ryN#kqLiCd#fPejr26#F%iTx zK1wb)ZZA)GFU3c7^=P46uR<)qHTAJ(N0Rs3#-b=s+o{Hj7erX*fKp_bvV2)Y%(CYm z&9e#;kh;wJuEjyV7sVezTG(QWXb&;39O(CZ3c6*W~K z7kM};?KYgwcb)3-oGPRW?yis@D(l8AHqutLI}LG!C*;LZ;rC5Qwp26XgilpkoN#$P zcDw<~%ZBKLu74JM$xhEA1!)bfQ@W?Y#@G1MS}Rm>8> zv}fOvhH%xc5j*qd+z%NDE%&EE1(&CSVyn?&jPA@fpN$4iT2{i_5)X`;Y;!q1a={9} zw|Y+?MlXvyFL^RoH{gV9@3ED@SiQ}j=5K-GMiGZz#RG28_(eG-z#(+q&Rcq_<=C`h_2 zDI7k%fXl4}XfQ4peU=V@2G28bkI3Z-{sqs;A$9nA#^R7jhaAISt$ybxwK^^a>P^mBDDH zK^uxz*0y0UAZI8=Djn3o%V%F~Y~p*<-lmS2(S8JED3<_3_Bh0rjep2G;8qZhiL~WR zjWg}diy?lMp?EgAPeR#iYwjORED| z^Lcb8*N{Y*bsXuy*GQVJp#2-$D#GeQ8B`~mY9^Z2Kmbu{!Uc<=m;A$n_fvfC|ANhcj4%B>bLybiS*XoT3>f7kOG&(L| zlFJ6J4UR^*34$g(4$eaTl%`Q@W)o-2Yfs_JEM>_C05SV}*Dcdahf5WK- z+c~+?VNIEQ{5Xh#@EzITVqNw{DcTG{u>J*>Oc;is_Z|2%Gj873j!rL2^=5KABmvJ1Wga2F*d^)&?( zwrI28oI!}lpc4J3uO<`PWf^X{Nh{Njlk|fa$sVAQQazLGA%JU*l9kW7M`v&@*P2m% zw5|c(BawXvvj(E?|0YDlnTJn}w1XwX`+fDxH`<&_6CyqCK`J~o@PjhOxke@PWdx`1 z`_lchV%Y+Y=pL;>S$yGi!_8nMi1y#SkK=^_BctBe?-c^A75o0MUVmR+hw#xO)f6)_ z94RDNh`|zC{|qKmtbqT}9y#IS_T}zN9|AtmrpLVe2n>6G&O7d4QRH9XVP0ORBwYM+ z3Iin!2V~A}=Og84gDtK!y{%!qke7K{0*`*Tu9BWWK)0Kjd0-U8a!&1U5hsueh`1rY z2hr`%HxF9)?7sC&r19;{EW>?q07-d`qNv^y|H^Def#4&Atkr$K7uWt7ss+b^7knap zsl6t0CwJap@?SiQd8u$|&~IUz7fMccVmzw0zEf0Ol*=)N@l{ z9Fl!#B0~k+(i~&sPN~dK_yVnDL(_#Q;W*QpQ!x=2HZY!@l&nOW$N)PHD+xV>Q3uNq znOtj85Gs<1*0ingqySl-Y$jAcvj2BBb6@;darF@Ys!IyO#h4(td{cpc@gVPjs)a@v z%1?O7aR?>U{|_txuyb(U7DFr(NnQfr?=z@>fi$lStEHNdfS~jHe&-t?B{hZ6Vgs~6 zSe5FyS7p(v6etA|Hw8abs2q@Vr+fWd9AVbF5GdMZ`CIO3k z0?r#_w77tm@b^#Ui{Ss=aiZ`6- zqp$16zCDtE7$$9rOZ}w@7ab0&9#ocrop0d3*(F8bmVFx+Qh1NScDl}H;)6Hs2&pM4 zB{`(KcpWgpJyT6^z_L#O91+R$v>ATiPf`M-PIb^MTX5Mj zD$uomo_=O|oB-)MzO0C}OH;9oG6cbpSZs(-rurXE)zUi9Fb@Shh#d3L`uV(vA~QK< z`YRXUyp2#(9r*!iy6fjP95~{ay;xh?e;Y3=D|4as8*@Ix1&!**p>|{A*48$S1lIy< zN+2_oqS9WHsN8o@uS)S$RNo1TRjLrqEM>-nb|2784Ao=A8lkFMY6?uj*BJ{LE;CLm zvpPD~L6tELCVCr=`rEw;BI0*`g0HPA#^U5xZAOdUp6)Un%!}$ln75ICFvW2}!g=!} z3-`J8Ct9ZD8UEOKO<8D6+5rt=XK}UV^X_WA!n34x`1bkEPfNl|i1;kca`0}p!;Pv! zFJEXzb`;p(m!;5P^Jg$qdbKVv?@wc0T?T6-SZUor2Rw_@$}e8zO@Ipe^-h4)El4t3 zUIPH=t+>*+@gu6;uU4Lj_7Fm*X~SJ}UAp$Y&M%JB!GzGK06Rr;wnS03!{5dxcbsfp z!HSfhfZ)rx%ri`bHO)aeWjUDjzjn;pkUhA*$c-}8kbre|15`g^&%|8TgGHMp6pQ6d z-d4*3ub;C~x=bxvNDQ%R4{e*IVV_$d<*9wSd8!bzP#e{+Fg)XllOI<&;3B>mSqZDD zk{@>n@tv2*Wtz2B$W+FA>3ht{btX70!F zPo6{plz$C8m0$jR4hqTrJFJpvtEKadt(x9ojBU)oullh!^&VcipQSDb((?2Sj4y3k z)~oU#5_Ei-MRSPoE%C0{G9k1Q9~TK3Q%Cx5Zk?Cs3q_CJf{@OAUyT zC5YGbgVyN-a)qA1LU@mbZ?Mz>5CGN~b?^pu|SHxQaG_^+XPVAUP2>=P*)~ zL^DY4ZZj9%u?)Ycn1<}6kEG?u>D5kr3p@>`?sjiU?l+f0H-JBT1pHMDd)E7Il1#sE ziwBny8)`XsnT8P}dzoUFc4z0ZQ>xYn9#{&DA|w_om>bu#8o%&{WTX5luq|I!Ty1)^ z5#qCk8vniYAZfBu7oF(%=I@EazPMASmf_(U_*T}HMerdw`f%r!nydXGg&9u zp}l{!ivQln?O0A2$5(+Y6Lx7|Xw9vUCb6|SFgv(gSQsjM@xm*J_3e6(wth^pzG58F z30_JgG5KSi5`v>Jd2W7xt7-nVxKUm}OZVepm~_ci3|7%#QVa^ILW)73o0z#hIMz9R zV(23WzHw}$k<&IaRLu!qqKMa1XGu+q>D9sfG&ly2(A$~msbeI+ysJM$z_yz(Hw!&C zT;|R{aY8X9L7_WGalKSl9Q;K$`yVT6aj7je@vq+Ir9MDqH56Qx%{~X5V*x0UBYBbQ z^$A0Cq0t_sJNQl1+(&IAJ}rC2ft8}Tp5kC22oCk{D%DmlHpa`KDBf9&cZD`nQ90k= zzPsf?2K32p($Gx~fh=vL?8WAQ-d*0wr9ygFYZ|cMv=#at4w~R%1L8gZBPgw>bS6J{ z=$vHetQ)$ABIsA~!uKT$KK50Xye*Z{?k=tJKQvRnD?#dw8$9*2;K)pVCLGc@&JMd9LY1^BlXLrj(>Gu7^)K=l~Du`Bm#P<9G@C z6ZQuV8eGPIpH{_vbow;z+iM*#tv=s^#H4?KfQ3T!M|CxO-c{pKZ2?Fr_l^j$gYKGqR&{u+KaqUAMFl>aW*rlwUR3vQAhxWMTh#gt0t- z+iTbZ*}re=&M#Or`-Ex_3sGzDThO0L?fkzR6)YUryI;)=yPdp9C`Y>RthI0Nd`|wa zrLT^P`uYA|8l*dyR6x4B8x*8VKmqBFr8}fcP#UDWTe`bpN$Fnc?&tma{+@I85B40+ z?981zw_Z1_U8!&u{bPogl)awVNl<&Xw6et4w}Fj}0kt&eLz_x7QKY3XrjgCz49k;C zZU_gwvGvKU)~IO3qM3 zmG{lC1ffqKQb9Q+Wwmxer0eK0;R*mvr)V~-9`~gK;*hwA&_gPXyM-jeq`;w@y0@KK zp}vaTa|=+vxvas4GC=fLr!F)I7}C8h%i%+y#KBr6qX>?J@I#XLd~wyQAIb**%Mb*$ z-7Z-y!Zr)VYfL^)uqkjIN7|W6!|IMb4O-PzTJHyRU@-FKw#={f#a8_4SX8_WX^;Qn z{&%}J^Yn9`3JxU0DVq)TbH+<-Yj?ySiqXY2*mR-?4}>XHm93mU&xZqYfKB{&O9oEAw=DNfLc`L0 z&_V=*xukUMpoS@wWMOt*Pi&j>==gq}m&SlOKsxflChqrpg7ox|7$!i7tchAi)k>o< zGbt%4>90KAVO40&L80Y`9{C(UKB~?Z{*XgW*3xG?Q9n$74C!t413R4f|CfjT{cN}} zW>J?Ph+zqj_ah0@jMmF@+E`l~!G^YlH9;QfZE+<`hsGepzfJM6>sn-QMRIO>C+E7) zq82Sr@UcE=`vomSUDmwPIH9uFm_K!^A&d|VH!?JMVvKw{J>d0_@8PLX`55skw-s%{CEa?s)UILX#@Q;7Vdi#-n0~H$RAWA^aSd4bLvv%jr;Z( zmznom3RC6BcI!&%pTF!c&T_>IA=~u!w;z?z{VuFE*8;FHpp2-nW3%ax$_g@Hk{dpC zsv@^*ABq>UJzBq?OSYp&N68!VxHbUUtqG~!9<9*z{R$7kfFh^=>kjv;&m`ehmNqTh zkBAkk>P71Mw=~-Xt`wM=n+Bjm4ht#eXCku@H(XHGtQV!t37ttNkmr67e-?$XTYUSk zFt$fm%F@1cpe~z0x=$?*hmJI}0Zp6yIIJ~NTK=f;Q+91p-Xv^}t$rkL{`GL|vgiFy zmMnNP13vz|S_su&`>{_8*kCa}{gds=D^0N{kaj?{AZ3l??>`%5&Ko22MmP#R>hP1Z z7G=r5Ika{aLJ%uvjQ9di1@|XRa^7pDgI`iJ7#13=G za>bV@=Q7!W0|J-Z^TiF$DYe1V1k#}_TaBlNcG1>q;R z#l%xB_vG=F2qJWH)W>xgv*X3$K#k;8r)qC&^^gOyv>>t zUSra~KqVp=5vIhKr|$g=LLfyUC9OdyCbC4F@%tM%bhYm;p2x%Mfph%p5m!z_`{8lc zi%*<<*?gG}zh;t_=GE1HML$LL_rqsMylI6XW%g&2)IFR!KFQd9mzR%W$hgkvLcYu| z=fQaTvBzCf_I5{LqjI|6`T6DFu8-z1MW64Dd<`oq%GRgSvzw5k7T%sQ@u6^NqFTRA zAJ|}|8rpe@&5zXiYIyU3Ll1ygaA=h>mIAOl?PM!Bze5O|(SzG+aR{fAAs9S!{65R+ z*{51?Q)YZ^6?O}?fQy3mu{&<%xpMGMqMV~e&V|aRrEmD$9BNv9W)4+D#U;$zKU-=F zWtDJUs%{rvf>=z5O~+I7#cbe*zM#iHi1 zOo0tH$ZLt?1@m2a+-~*abTy{Gr7@wA=o&b!bL=o{h*WJt7rO6eTKe?Sq`&`jl39X zyxZ*c`b#;(x!7HX$qgzvs*Z5nQ1f3r5XI*2T0Um>UTGFonm)6*B2xNmvp z&XL$VlY;#MQq?d_G>L)f0v0}uqXNd|R^y8e>LR#6EaxdXuY2}ErQ~5yb)h1^|LlVH zk}fZgiof7|_fOE4Ib%c!`4Bm^FFKWOvB{mEBwFe-1jY<){-p&#NIRj|vZ4LSz|qz= zv=F-WN;s!}?uo(1q>TxRTjE%K=hS1_U9v5}!8ok~9!C^>dn#t&VAt8cc$c$V(=Q+b zLIR6-;%T-&wV$-fmyTdZM&|7#IG{gLS+Hx~desfZOH}IMR9?fuTBbM4AG4N!3kp*8TU)dfuND)AEZ5WDPSa1u&cJ554WYfRaW!xUr*Xy8j$W~ z87e%-v;O?m16iNYsmQk?KJh(E){~9u%G2b_Up<&VLEL#~KH~vj+c~^b1XRpe#@K~^ zB_(~Er|i@IvSy^Cb;&d61nsbGa>~+h5JaD%Zr=2Bf$ylP{<5U#$C{qFIX$+ow&s@x z$eKR|IVErWR}lzYs~t!`c-e=4qJNONwE!cSbBFy&TW)}MR4R8|WQjQye(TzJ8B3lT zb+!0C(fQKYWw3_+$>qElU(-!R_Rr{tp3Tg~-EeHZZlO0cO`5u1q_0Ax^70P=9*)?? z#fo2}W~-9kuD`b1)^naX@VOnYW*GT4?Lnxlqv+s0Ks!ex_va)3bvv|Php{}XGj|+) z$=HT>!qrW8tbm+oDZxK1I!`t|=eZLORC}?I<-9|Xu(Rv6X>6_>H}Z-y`|w*c8%=r5 z6$H-`zd>d2WqJLyYp;d*d}|6jCyDdb68D0e+oIv+%_RZcpxU;J?8ZNh<8MIN4%ef~G0M4%V|J*I;2-08P9fNU zEZ3D}V;GbsUf7m8)&WE*aq^d>2>x4Z)qL_Xp*J;np>yH)rnLWY7!ZeZ_q_9X>egOp z(u0dnNf{y}BygyiziyS@5<~5s?*@bbvo+Dqo!z04kK;LRiXZ|^ps!z-h2jP*9@Uva z62-^uTjNMym#fk{$Pf;}07Tg+OT6lAz^Td5 zXwz;CP6U23Y9^jvc7-~HM_JmG^?J85Ro4mN2H8>N^iA;8x{WE33<)8FBvvXL4uphl zy_C|F#oN(|SPoc5*dL(3Zkr7|PJFAEbtq0m@}3q=>L4QQX%jgj^Gd zCHZ~9dSa{K>RY|*uj*LojE`ZJq*TW(A)mPDr5$hwL6YUn5_&OKc}rAx2%yZ&Oeu}B z7pKqbgL^==&pJ!R_~@{>J?wE6t6&a4F6`r1aPZ<(1RLe8S$oJf;j0NaR3IYy1F45^ zGV*@9d|j-Rt)-Ta;EpptloJHH7ep!<9!7`R`BJsEby-_N*K9aQWI53}L~ryk64Lbs zsrlwuhH5I0NT3$0QQFd+z+FgMH7MV?ejySQ5f3DL6lkFlBMqmbm;^}IWy$l#E~Wx| zaofo4JxIGkUo$m3kv&p6=xzK~YRcomA{DXYRF|>Y-f4B~nev$kE9hO5{06Il_ojf+ z;{d(|`Cv_~wCzXw&1#c!VHk<{XnThLw?oknqsLC{t*pj&c9yu~EL|JFTWeHVv&0=u zguy`=r#yQb5tq!WGe1Uzuy9*S(`egT>+rITGLSO+lOYr)DBN^$bS!Tp0Y(w`eRQzY zGp%}Dx{f;Aq>9amrsBNXlfPP0Y^|YSW*3Qb8`6`faia|m=%=Lg_`Pm(<`icP4hvUE z&%t3{y>>z`cn zfuIhwR%$7N%MweN-6zHp|Fu;m&McLEQ(SPe>)Ui)tPBaa)A3?P6BaXpd-+-GZu3+_V_P08-TL&=2z&DL+1)+i(4Hkx z7oqHjaSt9>ra~EUG&EjUr}so1=qO6-y+tv^Q$x&t=dYo9JS3Wzc-9!bqy=<0Q1Zi|cz^V|xIiuR9v*I@}tW*#&*#zWMRifASlyKV67 zI@x``7Kx7e7aG9($uuZ_5f@2meB)m}`7*zO4dUezRgr58C8-j{n8EdqR}@&~jwK%7 zsG2?Ww3A+WzUg33^nX0XdOCyj9NnUN6H20;i+ z5J-8+&-LcnzB$*fJnX*%?O8JXE0rkx!#Ko>@&&AX7lVMx|a^?`4<;vLjBc8_LtefUUUhdq&x zg{GC+E5<0J9;Wnt~)eYT=Zm=XOznr3;kVQh@vlOZ3aprxv zTe2%-Yrz!6Y^`b9v!UQQm|luKzR?7*hgHLgst@&eje zOh~jLX4N~x27adlk?Z*1eOj}huM9VpOX-D1o2q9D1cTN&c$dQ58@sRkU~r=(@+)}o z-C;DZfcmqb8;=?Fy2*O3Z>b-NzV(;DRGp>kj{JS23=blN$F*Uhfyu}>k<9XO%3qg* z;_suzXD%YO)Hv1T3Eu3ffk4}IRNaO#^5?+`UW19`qnkTJR%|`;Nt5U z1@qPEN39LMhw^XxjQiKLZlX}|>vu`QcfD}C$@A!u5S>%BSuaT2VAVc8E8c!Y6AcXX zm9LIH=Z@W0)mBRz6GFKp1%U*-?iN#px5L8CKgj{YJ_Ozyxoe>T6D$1CVV0{ zFFlID9HOSyw;rJ8$HoA8c&zPqhz4*>e+(yZkr)G#x!%=I+q#L zXt&1ecTw-eK=|hTW9w%R?yL`;C|2faNYu6pG}JOZG*UG3AyUDpTGT!B)2PmIlE1wv z+WwmUYn)OA#X%=bcn&Vr*7YKhO<7B$F^f5@)XZys8_ASi>E#wm+V(vfb!niZgzx2x zgE&$@_S8rZ;{7;LRI}Tgn{z(FYq>2lcKw ziTpYJGoj|_VcKw(ySw7YoeWK;`ttB(FlZot#^ukj6p#05=V7gwXBStd;9cUG3ByHR zn;XO26?)o{>GE2+KX2;`8wGh-G{=QT3H^@zJebYV{60TmvRs|f(e_FQ(Mtx>ql3^v zj^fWn_!4!5CtZb`vD^axQorX!T5M|7QR=hBLnw;gg(AhpuzpW2@@Ra5ldx0H>@ZxR z9pN636)b8uSI*@WZ#wXck~R2yw6P6lNc+FPvwz`rIcJ zsX@A#{GDMBJ4lA9a=%tr=;d#Cv)|_hMwa&}E30!R=D^jfmta(3-s3;L%Z-#pbpj#3 z4||p*$05HGdyCVr?HER!TiS)doh!qC*TmD5GEz1|R6XIuox7G?=Y4D6TVLW1kr|Yk zAkuIExrb7HZ)w?-7?llkFpxs6>6FqU-CCWcnU6zan2HDzEr=&OU!5bndyIh1ms6uE zh^M#Mn_Wa|LiOwiXymG9876kHNme_>VH67wg_fd#MluCl>aE`<<9^}!g_5E-Q`LDS z{33yn=r1i9nTgz1BYncU`^|(-dS-tO!OK`q6{v{S)u&!8(B`^WNmM7*f=Hro z@*UBParotV0vV*ZgEE45?yd)S-%B4_%3W5m!WjS0^2|(q#)b-3?k~|$nKWlW5pblu z3boApuyamnM%?jXj97V9gJvx0T+xtd*vLflU2?%K3#&!uwwpj7a{%+qL{?PB#TCXW<-gtj{g3YW>vVjDf^vIS#>7-%sxp{`-); z;7BnjG*YEN-5(__K44kU1$fYX-Do(DUHcquv_?U#<(Uu)`tJ`0U8Svk_q)rsd-0i& z`;Hy?#B^PYL$oj-B**?+6h8qD=c{nNau-7M<78{q`Gp_s>MO^17(YM09Am%TvCPsebK8q&XYe)#@UbXQ!ON#zH^=rm;wYh7JbM*145C?o+J9_tA-V4*M$3QsM1A} zL!;~&$tfuZQ`qid%g7$0D{l5>${8Yt_=I4=K*%rHIV7%M;pdz6rf)$m|Gc7bXyJoo zByzmrzB5IAor^;_y^A~l;+W{Vwe(&#{0;HxJ*rjF>`SBTeeR^*{sC*45rShwB7+Js z7MX}deRc}>{Odr}?t1T*NT;(Ds%dX@g6e#E*e`TI>@e-%;b&#W0~X9FK%?)@?7O=v zDI$IxFbe1f&lkl}W-@v{UOot*?&(Z>sd`{JXz@}>4$P=DSd1UEB1Qn|FGWBIl7zslm^}xrp(GD6)?rw z{UZx7?@@f3>ZvDuui&S8$h9fBNd7HOwfO;BG$r2;ND?_05T<)r8WSA8t!(QPifRy0 zh690C8XcIkxZbPbk`i+2(c+q61_;9!O3!*yT434%p$4gp5WSwfAv!Rf+4am$CFXX?5?Hr$+6e(Ta-)0DFk_K`=*=# z$uaglqv5W+A`5~c6`n|1MulN|Tz0S}sw>~Z8nvy?=|4jP<+Nwo_SvgBZduNt=GFESXwtoJ*$%SQ=CM0~2R2l0^ZL;gj`xm;y{Xq)c=Z!B$+Doge zP@Z52)@R2Ncxq101ZGAis+E};rX$fb?6q?^s4A`mYE7+_8G>`}7n!8Jw=hQjdVv#E zqECbt{;$l-`YX*(L0jj5vd9(jE^NxM#_XDJbXZ>>W*T3LmOA<4W~-<&{Ss4{Z@8 z)H6f|;!89tebk$(d!A%@`Cv;J!NS&`cTVyg{y&;g{A0Hr_iUGa6%{|I>sizgp2tRO z$Jg48?jC9sg~`dtMVn;qn#&=N2bLV;u%$)+kJ3Xw3nkA-Oh~RwWv6*871#4p7%sZ0 zKoi-DuTLkkm+K~(y}vS?aW@)ND8wP2XJ7=`^=4z2H6foV+Lv3m5S&4}?}d^d9>LwK zXj@cI>}Fp&1UyIbjmupY(=;mKntwI6*%{bDDq)u0Y5FQ_HGdXI zdtr5#QqbRiIiU{rhiECw8~Ro-ejfcy{&-IikbqYL87D%4!m>hIKx$~+*pj_XPB~jF=1$>|nj5VK zf#mYk6og%jmrA{V0X@+BjSLEbg_7*vhbA)6H+~Nd8&4RP5ycG<>(~a$T?RSrNWs)H zs5O6RwcaEDDUzOwL11Xsdwu|v!l$^-keuMYSEj!vH5;oXF6^vsLHI9!dJBNb8jH1% z%cT+xJOo0Cub zJf*U0jutXVFl}+`R2IUf&JXw5RFw5wc+!E^!xY<}#s+}U zf;Ojd&(4pjsrY{97K1CgQbfE}QVxXYsc`&dJjY7W1Zh+tT3CV>W5j^#a3hm`xS$-Y zsVqpzBp9=w4FnRb}E;~Gk zdRZ6_fBr?_uNRS!K7|5m4Oe1c5bfj_e#{H4x$RIZt%G&>EBW%Lv2R@4t0i@vhP6J^ z$WXn$Ai0<_TjeD$w>a2~Vp0bg)n|`RjCy zY!*+vy(_;Tu61W7GJz z>8+}zPp0lg(&ZL!Lj->FMt10OKS73em7r?&>HQ|%fcLoG<~{wyuWNxz{xISJPS@b0 z%I0z^r5B;K4ayrs9Ll#(A*n@8*i+A#)(OsAj>R!~r*x(ZTgUDseIUwLA0*}T$QoQq zw4!3s<#7PRSWIN{`jr2zxNOwbY~xend5><`5b}ZhPSM3BmHBVa@uY?tf(p#r!0zJ6 zNNiuh1)mWmyOuPpzDyW$Jc%jDh)cnl z;l}?PuyEpmomGkoRr@20gP5Nw*a^95(__}Nz~v?b+xNPo_}vK^Uxmw-ySOHY@|#MZ zT;6^17WH_@qYqi7Cq)$5A`bON=|GP_u;=cG|8;(BSXVe{mMQ(uQnOh(tn-s7rMUB= z3{=pIHqQ+ontUoj2d0-nZ9)1Hf#e{!9+P0)X$&rq=bEsf%oKB3)`SXDz!8G}p7pwi z-NY%7h=l=Wn+$hBkDB32q+0Ez2C2iwDz2k6jHJXzX9w>^}TEuto zQFR2oP0(p`E)sWXF(aNW>JJSruM+?Q4PM5l{NC$S+{@`<7B%N{5pZET{)A3E>75E8l9xjYApE!7vVX|A zjrX#*SLk}MzTZ+hd9J-H#-oNJDV3oT&=*bITV$#}2e>s?ktL%cvqck?pW9qFv-K>T zT(LyIMhxFn2%nM*8($$e=pRpY&hklC(EnSIpA5m9Tu|Ys}(gmU| zepC&Jy}c&@yDYeZg~XmeKD0;au&e=^qV6|**GQxNUm;JAr|@97z!&@Sx~pHqx&4Jt z3pF_v-ye{1wj{pc#P4jz$Rl^6^S7|W1loboF^dpRI``!Zttge6iLH;tpz1(itj{9c zGjhJXoV?J>x(G;i9Oc}8x~SPU0YE2ETS94^xsCo^GCm-U{b#fOhhaszM1`@pTUZIg zSSG%|0g(e1(0Mp&+!%#`r33|x1^RV!e9`cUNX+UFMukKuh{j}_ee+D_Okph2bJ)1` z-jJD}p|ki;p|gj&`j1!$k;M*0HXiPBqh0!YE~X3Vf-yU51xv^1JU7fXDW(MDcz;?V zQ^5qV+Fh=cOCyJTL z0)H-xmyAJO3nw>C(Bd$^@Qs+b^}q1W=GL-|J$JT%!JL`fbK}2OJX1DsQvc|6tp~Vs zG&tWqG?nM+{saJm4B_;b)vW^e*BA(q&IV6#0^MQ<Gn>}*sOB_-01%r1I({+)+6R3W>wbz69=pzi4>4&_h2$RmD3xR zg%O2%`8BhDxqd*&mdy(#y&;BUx=~W9Tn>&Borlt+_?7w0$vqO%->GV-HJjkgX<<9l zt|(Yu*Nn#mB3Z1a(IO;gRR)v!@9RSKY;)9-W7s3t2ie*wMSS~E4>{i>e$*L0w_M-H z-Qx{{P^1sFCnbM2)ZtCjepsOr%_LoJvUruJ!&S8;FS-c_VJ@U4OriaaoON?6^kf`o5tqU!0%C)3)nYo3kQ zCuVY#UxP+s$WB4^%;T*PsXHR83Ao?9-cJ9-XE`+NSB35c5{#uX`V9zovDwMAQxX9s zJ2D~$3n0QTXEL|#(MV+hxgsq53+8iYbjnzR=*^tr^1MY&Jw;DbNwuZspUlL>brV}h z#UPxBYuLgEhS>Ca_q*ad!PqsP18qyWfOslJ8tQ4~?~f)Y@?ZS-E&qDc1yNHA!)8b& zdp;?B{J5jLPooJ6pExn}e&ygY?z5SgW8aXAO!x2l70K?@HHC!kOAvwHQrmnQC>BSz zY(WbX;9D^JhX-)dtLIDZeWz(==#&4|9AQq9vakgPIp;U`uc`r&5F+nlXdzv}72Ut- zrd|bK#Bh8Ugt!(m%pa!NQq2nrP^W*nB{fS)nGh!+-+-8k2_$1ZTj&sEnimv@`M(ej z%gu~E%iv3`zp;xAZW`kLDygJFVrO4;!CHdu>b{;wS+3q-P5SDnr)PhGtcG@#(cdm1 z^m|@lA^XWnU;kKOo&i#f+%cEGHhm>HjOiu9E`~T>ULFS@h415pvFsVa$4DPUt`c&X zfSV}?NoaKa81_DU+9MB)WoN*^T-E7YddDJ<>joGByZBta%L1W4l)LN!d-Kl|+ zClQ4lareHidzxj-);$eARe0m;ymt^^uP9q_|vA*M8 zISj*c)#kOPEp2JEo1f3avG*C3%g?29K+W@8D{8$Wflz4r)?R2 zL>y>&y*jOPN-yc}nOI6DM%mNay{<<-0A$Vr$gKG9Z^LcXIoMHfD2APkO>^ zb9yA)3@gvUdP=4ApoN){kAHX1J$vVfb?9gfjND-ld;fBN1UjtTyA}Dc5sCdYq;m!a2d-L+y z%HEpKaHQj^XR9De{A*^YE-@iU#rks3Fd>KL#rylJpk<1t5_V&{6?A{=<6o8hhJEUa zGW3e8(ysUS9|WS^7rthkqDH?l!ot=ffhpvg*XTM53h#fk@*K|KwSm^xOh}jicgQBw z!OERLga=x zl2z-$F)*Eue`jY;wAOZMt4h~`rcoLx0DZB}B5v8RWKHbbV!WWzyY`iTSol@FyAOYd ztd*tREHG=8MO^266q4GyjhoZqdqqt+=lt;=9+dNteExnr;-X=O%~ZPCjYj6@zr}}% z^fdx3N%NjuLr$(wreKP;JFD)@JgI?F+HI86VCE-v?_z}hk?>b{JPwR8A-Y7*WW^j2qLFl8(pbvkn&1api%hI(^6Sum>NOj7nzbAqJl!KBqs@B z%fQX?J0$^`(YN7h)>HD}Sih{^sY!8MYcpz?rAkqrw8il7#NYB6#)YX((aH$QC$^JO z_9l#os0bxepp7c^GV53Gitl)u^+h>SUji;Bn3CKZa(->A(hV7y*W|#9&=yeS{$!GQ z?~A)j8DTlu9ezf3a^ZV@9JnoDF!INzwzSb1?fTT+P7{O!>Vn3s><{$G`p#7OucJcs z47Ad7NFWa)bFdGp4&}0jI`~K9V9T16=^k{;tpbj4AGlm{55!>>)FdTbCU^OO9{fQ2 z7gRTN=>Q?Jz@v^cwd)-B>*yqcsLU^o+hEl(hJysoux zrw&96(7!Mxe;bPE_r5Xbl^6G)yoAGZ z{c)?PgrJ>Y9ZwgdzpFRSUNOkHEE`*ek4dOy%K!ZNDCKAWvh=<1!3?kz=gTi~obtj1 zTkQTrQ0Ih)_Fs!}sAUW)$?g&pfBaC=+oy>Qq}6I z?q(3+*!k=C{J3^XwNdpgGYrR~0Py%j?_~$c(;7PeTbPIt)Mx!4@cD=DFFB`Ejm>|V zmcT~(^mzCiQa(hD-Z+mJKJKpx>x>FvJ7EFLlfKwscZdU#t&H)^Wwr!S5jOOe8tI#C^~*EzRp!=aPEMgzh=Fv~>?M+C=wKO)EK9%L zYxf=0GyF0SK44KxNhvZ+zr>H5R_LN*s2Ek;OH{(Z&`#OTLRN2n;^@yv1GeauDlj0b z4>C2I%#m1Ywg2xo&MW`cLx0S)r6oCy6Br1VF|sm^mX(xvL+(f32?Iw5-rk>(7WU33 zF2*VLv*WX&GqX+H%{3loiHrnl)Z)@|`?AVX6{|9P-**7KKo3m~x5;B*#r-*+-V}#+ zb?Hk-&u0ETJDWXIMuEZzK(p2L)qg>C*DsC$*8>|6ze9uo71flKm4CX|yS5RKkXmCr;SMkX1G&P8lY^z@pz#=h$0W)Yc-Bf=LdqC$Ck zm>3xNC1vRSXq-9y^hv+rlL09qD8yj5C};zYoxMu1!%r+&S}OQilZo(I)JXz}fE8Dj zIoR9Tx0fFuEUxD`yiOj?myzr4)5@?MbjuAX=NA@^q?4!ZdsvDPdwO}sUSeNGonxQ5 z1F^C4yo55q*aK1&$Jd~$bl^UKUkd_I1-hIvAlP;r@=K&Xd>qTV;fF<#pk zF=2xS4Fjgpot+N0fSp~WuJ{@IxceIy+PL!g_nVtop-k=M`4ZSuPD#5lI=JA2!tE47 z6b|!Jo9CnBPjyb|JZSX1NqbL{*3q4SK7Ys(5f%&V2-Z}L9OY|ZR$DEIyS41WxQ!XqbY20sxMSO%ZO3_ zV}*)}zl+n;)8(gAI;0o_L2QZd^G3glrRpSQs%YGWEXIBi_dzvg1+GlHXEdy}B&nA` z$;_X>fJ_Te4mHSCW%P5xu3N&G z7(>%}5oSl_fIysx(AiVQ=_gETQap{SQ(DL5V)s9qb1!tKj_F7B&sg)Nrwc|Es8#=- s_{R4$tuP8AOHXW literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html index c3b45be7..d774d55f 100644 --- a/src/index.html +++ b/src/index.html @@ -2,6 +2,10 @@ + + + + diff --git a/src/main.js b/src/main.js index ad075121..2c20be8f 100644 --- a/src/main.js +++ b/src/main.js @@ -4,7 +4,7 @@ import { login } from "./templates/viewLogin.js"; import './components/Register.js' -console.log("loginn", login) +// console.log("loginn", login) const root = document.querySelector('#root'); @@ -14,8 +14,7 @@ const routes = { } // console.log("ubicacion",window.location.pathname) -const prints = routes[window.location.pathname]; -root.appendChild(prints()); + export const onNavigate = (pathname) => { window.history.pushState( @@ -23,14 +22,21 @@ export const onNavigate = (pathname) => { pathname, window.location.origin + pathname ); - while(root.firstChild){ root.removeChild(root.firstChild); } - root.appendChild(routes[pathname]()); }; +const prints = routes[window.location.pathname]; + +window.onpopstate = () => { + root.appendChild(prints()); + +} +root.appendChild(prints()); + + diff --git a/src/style.css b/src/style.css index d19e844a..0afb803b 100644 --- a/src/style.css +++ b/src/style.css @@ -1,163 +1,225 @@ - /* poppins */ @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500&display=swap'); - * { margin : 0; padding: 0; box-sizing: border-box; } -body { - overflow: hidden; -} - -:root { - --blueCrud:#425A9A; - --white:#fff; - --pink:#FBCFDC; - --fontText: 'Poppins', sans-serif ; +:root{ + --blue: #425A9A; + --pink: #FBCFDC; + --white: white; + --fontPoppins: 'Poppins', sans-serif; } -.root{ - display: flex; - /* border: 2px solid red; */ +body{ + /* extraligth 200 */ + font-family: var(--fontPoppins); } -.containerRegister { +/* #root{ + width: 1680px; + height: 915px; + border: 3px solid red; +} */ + + /* padre de contenthome y sectionForm */ +.containerRegister, .containerLogin { + /* width: 100%; + height: 100%; */ + height: 915px; display: flex; - /* border: 2px solid blue; */ - - -} - -.contentHome{ - flex: 2; - /* border: 2px solid green; */ - -} - -.contentHome .imghome { - width: 100%; - -} - -.contentHome p { - color: #425A9A; - font-size: 2rem; - margin: 40px; - padding: 10px; -} - -/* -------------inicia section form ------------ */ -.sectionForm{ - flex: 1; - display: flex; - flex-direction: column; - background: var(--blueCrud); text-align: center; - justify-content: center; - align-items: center; - + } -.sectionForm img { - width: 90px; - -} -/* -------------estilos para los inputs de section form ------------ */ -.sectionForm input { - /* estilos para todos los elementos input dentro del elemento con la clase .sectionForm */ - border-radius: 15px; - background-color: #C1E1FF; - width: 240px; - height: 32px; - margin: 8px; - text-align: center; - } - .sectionForm input::placeholder { - color: #425A9A; - text-align: center; - } - .sectionForm input:hover { - background-color: #a4bacf; - - transition: background-color 0.5s ease-in-out, border-color 0.5s ease-in-out; +/* contenido de la portada de escritorio, imagen y parrafo */ + + .contentHome{ + width: 70%; + /* border: 3px solid blue; */ + } + + .imghome { + width: 100%; + height: 65%; + } + + .contentHome p{ + margin: 40px; + padding: 30px; + color: #425A9A; + font-size: 23px; + font-weight: medium; + } + +/* contenido de los formularios de register y login */ + .sectionForm{ + width: 40%; + /* border: 3px solid yellow; */ + background-color: #425A9A; + padding: 20px; + position: relative; } - - #messageName, - #messageEmail, - #messagePassword, - #messagePasswordConfirm { - color: #FBCFDC; - font-weight: 600; - } - - #register { - display: block; - margin: 0 auto; - border-radius: 15px; - color:var(--white); - background-color: var(--pink); - width: 127px; - height: 43px; - border:none; - font-weight: 600; - } - - #register:hover { - /* Modificar el estilo del botón cuando el mouse esté sobre él */ - background-color: #ddb3c4; /* Color rosa */ - } - - #conditions:required { - border: 1px solid #FBCFDC; - color: #425A9A; - font-family: 'Poppins', sans-serif; - width: 15px; - vertical-align: middle; - font-size: 16px; - font-weight: bold - - } - - #conditions + span { - font-size: 16px; /* reducir el tamaño del texto */ - display: inline-block; /* hacer que el texto ocupe el mismo espacio que el checkbox */ - vertical-align: middle; /* alinear el texto con el checkbox */ - font-family: 'Poppins', sans-serif; + /* encabezado del formulario */ + .sectionForm img{ + width: 90px; + height: 90px; + position: absolute; + margin-top: 62px; + /* margin-right: auto; + margin-left: auto; */ + } + + .sectionForm h1{ + color: white; + font-size: 50px; + margin-top: 120px; + margin-bottom: 20px; + + } + + .sectionForm h2{ + color: white; + font-size: 20px; + + } + + .sectionForm h3{ + color: white; + font-size: 18px; + margin-top: 50px; + } + + /* formulario de registrarse y login */ + + #formRegister, #formLogin{ + padding: 50px; + display: flex; + flex-direction: column; + row-gap: 5px; + align-items: center; - } - - #iniciarSesion { - border: none; /* eliminar el borde del input */ - color: #FBCFDC; /* color rosa */ - text-decoration: underline; /* subrayado */ - cursor: pointer; /* cursor de mano al pasar el mouse */ - background-color: transparent; - border: none; - text-decoration: underline; - cursor: pointer; - outline: none; + } + + /* inputs del formulario */ + #nameRegister, #emailRegister, #passwordRegister, #passwordConfirm, + #emailLogin, #passwordLogin{ + background-color: #C1E1FF; + height: 30px; + width: 200px; + border-radius: 15px; + text-align: center; + font-size: 14px; + color: #425A9A; + } + + .sectionForm input::placeholder { + color: #425A9A; + } + + #messageEmail, #messageName, #messagePassword, #messagePasswordConfirm { + color:#FBCFDC; + font-size: 12px; + font-weight: 600; + } + + /* botones para registrarse e iniciar sesión */ + #register, #login{ + background-color: #FBCFDC; + margin: 20px; + height: 40px; + width: 110px; + font-size: 12px; + border-radius: 20px; + border:0 solid transparent; + color: #425A9A; + font-family: 'Poppins', sans-serif; + } + + #register:hover, #login:hover { + /* Modificar el estilo del botón cuando el mouse esté sobre él */ + background-color: white; /* Color rosa */ + cursor: pointer; + } + + .question{ + margin: 0px; + color: white; + font-size: 15px; + } + + .question input{ + width: 93px; + border: transparent; + border-bottom: 2px solid #FBCFDC; + background-color: transparent; + color: #FBCFDC; + text-align: center; + } + + .question input:hover{ + color: var(--white); + border-bottom: 2px solid var(--white); + cursor: pointer; + } + + .terminos { + color: var(--white); + font-size: 13px; + display: inline-block; /* hacer que el texto ocupe el mismo espacio que el checkbox */ + vertical-align: middle; + /* alinear el texto con el checkbox */ + } + + .terminos span { + color: var(--pink); + /* font-size: 15px; */ + } + + .redes-sociales{ + display: flex; + width: 110px; + height: 50px; + position: relative; + text-align: center; + margin: 15px; + } + + #imggoogle { + width: 45px; + height: 45px; + position: absolute; + margin: 0; + left: 0; + + } + + #imgfacebook { + width: 45px; + height: 45px; + position: absolute; + margin: 0; + right: 0; + + } + + #imggoogle:hover, #imgfacebook:hover{ + cursor: pointer; + } + + + + + + +/* form input:focus:required:invalid{ + border:2px solid #FBCFDC; +} */ - } - - #iniciarSesion:hover { - color: #f5eef1; /* cambiar el color al pasar el mouse */ - } - #termsLink { - color: #FBCFDC; /* color rosa */ - text-decoration: underline; /* subrayado */ - cursor: pointer; /* cursor de mano al pasar el mouse */ - } +/* */ - #termsLink:hover { - color: #ff3399; /* cambiar el color al pasar el mouse */ - } - - .question { - font-family: 'Poppins', sans-serif; - } - + \ No newline at end of file diff --git a/src/templates/viewHome.js b/src/templates/viewHome.js new file mode 100644 index 00000000..99ae8416 --- /dev/null +++ b/src/templates/viewHome.js @@ -0,0 +1,16 @@ +export const home = () => { + const container = document.createElement('div'); + container.classList.add('containerHome'); + + const view = ` +
+

DoggoS es una app para dueños de perros, en el que podras encontrar y compartir recomendaciones sobre el cuidado de + tus engreidos. Te invitamos a unirte y ser parte de esta gran comunidad doglover. + ¿Qué esperas? ¡No te pierdas más novedades!

+
` + + + container.innerHTML = view; + + return container; +} \ No newline at end of file diff --git a/src/templates/viewLogin.js b/src/templates/viewLogin.js index eab7fa9b..07dc3c6d 100644 --- a/src/templates/viewLogin.js +++ b/src/templates/viewLogin.js @@ -1,5 +1,8 @@ +import { auth } from "../firebase/index.js"; +import { signInWithEmailAndPassword } from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" import { onNavigate } from "../main.js"; + export const login = () => { const container = document.createElement('div'); container.classList.add('containerLogin'); @@ -15,31 +18,73 @@ export const login = () => { imagen de perrito del logo

DoggoS

Bienvenido(a)

-

INICIA SESIÓN

- +

¡Inicia Sesión!

+
+
+ icono de google + icono de facebook +

¿NO tienes una cuenta?

` - container.innerHTML = view; - // const emailLogin = container.querySelector("#emailLogin");const messageEmail container.querySelector("#emailLogin") - // const passwordLogin = container.querySelector("#passwordLogin"); + container.innerHTML = view; const registrate = container.querySelector("#registrate"); - console.log(registrate) + // console.log(registrate) - registrate.addEventListener('click', () => onNavigate("/")) - - return container; +const emailLogin = container.querySelector('#emailLogin'); +const passwordLogin = container.querySelector('#passwordLogin'); +const formLogin= container.querySelector('#formLogin'); +const googleLogin = container.querySelector('#imggoogles'); +const messagePassword = container.querySelector('#messagePassword'); + + formLogin.addEventListener('submit', (e) => { + e.preventDefault(); + const email = emailLogin.value; + const password = passwordLogin.value; + + const signIn = signInWithEmailAndPassword(auth, email, password) + .then((signIn) => { + + console.log("iniciando secion exzfd") + }) + .catch((error) => { + console.log("errors",error.message) + // identificardor unico para el error + console.log(error.code) + + // Mostrar mensaje de error al usuario o realizar alguna otra acción + if(error.code === "auth/invalid-email"){ + messageEmail.innerHTML = "correo inválido" + } else if (error.code === "auth/user-not-found"){ + messageEmail.innerHTML = "no se ha registrado" + } else if (error.code === "auth/wrong-password"){ + messagePassword.innerHTML = "contraseña incorrecta" + }else if (error.code === "auth/user-disabled"){ + messageEmail.innerHTML = "suarioinhabilitado" + } else if (error.code){ + alert('algo salio mal') + } + + }); + + }); + -} \ No newline at end of file + return container; +} + + + + diff --git a/src/templates/viewRegister.js b/src/templates/viewRegister.js index 77525d99..81cc705c 100644 --- a/src/templates/viewRegister.js +++ b/src/templates/viewRegister.js @@ -1,5 +1,6 @@ import { auth } from "../firebase/index.js"; -import {createUserWithEmailAndPassword} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" +import {createUserWithEmailAndPassword, GoogleAuthProvider, signInWithPopup} from "https://www.gstatic.com/firebasejs/9.15.0/firebase-auth.js" + import { onNavigate } from "../main.js"; @@ -18,7 +19,7 @@ export const register = () => { imagen de perrito del logo

DoggoS

Bienvenido(a)

-

REGISTRATE

+

¡Regístrate!

@@ -28,10 +29,13 @@ export const register = () => {
- +
+ icono de google + icono de facebook +
+ +

¿Ya tienes una cuenta? @@ -53,6 +57,7 @@ const messageEmail = container.querySelector("#messageEmail"); const messagePassword = container.querySelector("#messagePassword"); const messagePasswordConfirm = container.querySelector("#messagePasswordConfirm"); const iniciarSesion = container.querySelector("#iniciarSesion"); +const googleLogin = container.querySelector('#imggoogle'); iniciarSesion.addEventListener('click', () => onNavigate("/login")) @@ -73,11 +78,11 @@ const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, p console.log(error.code) if(error.code === "auth/invalid-email"){ - messageEmail.innerHTML = "correo invalido" + messageEmail.innerHTML = "correo inválido" } else if (error.code === "auth/email-already-in-use"){ messageEmail.innerHTML = "el correo ya fue utilizado" } else if (error.code === "auth/weak-password"){ - messagePassword.innerHTML = "la contrasena debe tener por lo menos 6 caracteres" + messagePassword.innerHTML = "la contraseña debe tener por lo menos 6 carácteres" } else if (error.code){ alert('algo salio mal') } @@ -100,7 +105,33 @@ const authFirebase = createUserWithEmailAndPassword(auth, emailRegister.value, p messagePasswordConfirm.innerHTML = "" } }); - + + + const provider = new GoogleAuthProvider(); + + googleLogin.addEventListener('click', ()=> { + +signInWithPopup(auth, provider) + .then((result) => { + // This gives you a Google Access Token. You can use it to access the Google API. + const credential = GoogleAuthProvider.credentialFromResult(result); + const token = credential.accessToken; + // The signed-in user info. + const user = result.user; + // ... + }).catch((error) => { + // Handle Errors here. + const errorCode = error.code; + const errorMessage = error.message; + // The email of the user's account used. + const email = error.customData.email; + // The AuthCredential type that was used. + const credential = GoogleAuthProvider.credentialFromError(error); + // ... + }); + + + }) return container; }