diff --git a/.env b/.env new file mode 100644 index 000000000..7d910f148 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +SKIP_PREFLIGHT_CHECK=true \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..89967363f --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/ObjetivosDeAprendizaje.md b/ObjetivosDeAprendizaje.md new file mode 100644 index 000000000..b2b4e9ba7 --- /dev/null +++ b/ObjetivosDeAprendizaje.md @@ -0,0 +1,352 @@ +# Burger Queen + +## Preámbulo + +[React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html) y [Angular](https://angular.io/) +son algunos de los _frameworks_ y _librerías_ de JavaScript más utilizados por +lxs desarrolladorxs alrededor del mundo, y hay una razón para eso. +En el contexto del navegador, [_mantener la interfaz sincronizada con el estado +es difícil_](https://medium.com/dailyjs/the-deepest-reason-why-modern-javascript-frameworks-exist-933b86ebc445). +Al elegir un _framework_ o _librería_ para nuestra interfaz, nos apoyamos en una +serie de convenciones e implementaciones _probadas_ y _documentadas_ para +resolver un problema común a toda interfaz web. Esto nos permite concentrarnos +mejor (dedicar más tiempo) en las características _específicas_ de +nuestra aplicación. + +Cuando elegimos una de estas tecnologías no solo importamos un pedacito de +código para reusarlo (lo cuál es un gran valor per se), si no que adoptamos una +**arquitectura**, una serie de **principios de diseño**, un **paradigma**, unas +**abstracciones**, un **vocabulario**, una **comunidad**, etc... + +Como desarrolladora Front-end, estos kits de desarrollo pueden resultarte +de gran ayuda para implementar rápidamente características de los proyectos en +los que trabajes. + +## Resumen del proyecto + +Esta vez tenemos un proyecto 100% por encargo. Si bien siempre puedes (y debes) +hacer sugerencias de mejoras y/o cambios, muchas veces trabajarás en proyectos +en los que primero hay que asegurarse de cumplir con lo requerido. + +Un pequeño restaurante de hamburguesas, que está creciendo, necesita una +interfaz en la que puedan tomar pedidos usando una _tablet_, y enviarlos +a la cocina para que se preparen ordenada y eficientemente (a través de un +_backend_ del que nos darán detalles más adelante). + +![burger-queen](https://user-images.githubusercontent.com/110297/42118136-996b4a52-7bc6-11e8-8a03-ada078754715.jpg) + +Esta es la información que tenemos del cliente: + +> Somos **Burguer Queen**, una cadena de comida 24hrs. +> +> Nuestra propuesta de servicio 24hrs ha tenido muy buena acogida y, para +> seguir creciendo, necesitamos un sistema que nos ayude a tomar los pedidos de +> nuestros clientes. +> +> Tenemos 2 menús: uno muy sencillo para el desayuno: +> +> | Ítem | Precio \$ | +> | ------------------------- | --------- | +> | Café americano | 5 | +> | Café con leche | 7 | +> | Sandwich de jamón y queso | 10 | +> | Jugo de frutas natural | 7 | +> +> Y otro menú para el resto del día: +> +> | Ítem | Precio | +> | -------------------- | ------ | +> | **Hamburguesas** | **\$** | +> | Hamburguesa simple | 10 | +> | Hamburguesa doble | 15 | +> | **Acompañamientos** | **\$** | +> | Papas fritas | 5 | +> | Aros de cebolla | 5 | +> | **Para tomar** | **\$** | +> | Agua 500ml | 5 | +> | Agua 750ml | 7 | +> | Bebida/gaseosa 500ml | 7 | +> | Bebida/gaseosa 750ml | 10 | +> +> **Importante:** Lxs clientes pueden escoger entre hamburguesas de res, +> de pollo, o vegetariana. Además, por \$ 1 adicional, pueden agregarle queso +> o huevo. +> +> Nuestros clientes son bastante indecisos, por lo que es muy común que cambien +> el pedido varias veces antes de finalizarlo. + +La interfaz debe mostrar los dos menús (desayuno y resto del día), cada uno +con todos sus _productos_. El usuario debe poder ir eligiendo qué _productos_ +agregar y la interfaz debe ir mostrando el _resumen del pedido_ con el +costo total. + +![out](https://user-images.githubusercontent.com/110297/45984241-b8b51c00-c025-11e8-8fa4-a390016bee9d.gif) + +## Objetivos de aprendizaje + +1. El objetivo principal de es aprender a construir una _interfaz web_ usando + el _framework_ elegido ([React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html) o [Angular](https://angular.io/)) o vanilla JS. Todos estos frameworks de + Front-end atacan el mismo problema: **cómo mantener la interfaz y el estado + sincronizados**. Así que esta experiencia espera familiarizarte con el concepto + de _estado de pantalla_, y cómo cada cambio sobre el estado se va a + ir reflejando en la interfaz (por ejemplo, cada vez que agregamos un _producto_ + a un _pedido_, la interfaz debe actualizar la lista del pedido y el total). + +2. Como objetivo secundario, deberás seguir las recomendaciones para PWAs + (_Progressive Web Apps_), lo cual incluye conceptos como **offline**. Para + guiarte con respecto a este tema te recomendamos usar [Lighthouse](https://developers.google.com/web/tools/lighthouse/?hl=es), + que es una herramienta de Google que nos ayuda a asegurar que nuestras web apps + sigan "buenas prácticas". De hecho, usaremos Lighthouse a la hora de evaluar el + proyecto. + +Recuerda colocar en esta seccion los objetivos de aprendizaje que quedaron +pendientes de tu proyecto anterior. + +### HTML y CSS + +- [ ] HTML semántico +- [ ] CSS flexbox +- [ ] Sass +- [ ] Maquetación + +### Frontend Development + +- [ ] Componentes +- [ ] Manejo del estado + +### PWA + +- [ ] Concepto +- [ ] Utilidad +- [ ] Que es [Workbox](https://developers.google.com/web/tools/workbox) +- [ ] Qué es un `serviceWorker` + +### Angular + +- [ ] [Uso de Components | Templates](https://angular.io/guide/architecture-components#introduction-to-components) +- [ ] [Directivas estructurales (ngIf / ngFor)](https://angular.io/guide/template-syntax#built-in-structural-directives) +- [ ] [@Input | @Ouput](https://angular.io/guide/component-interaction#component-interaction) +- [ ] [Creación y uso de servicios](https://angular.io/guide/architecture-services#providing-services) +- [ ] [Manejos de rutas](https://angular.io/guide/router) +- [ ] [Uso de Observables](https://angular.io/guide/observables-in-angular) +- [ ] [Uso de HttpClient](https://angular.io/guide/http) +- [ ] [Estilos de componentes (ngStyle / ngClass)](https://angular.io/guide/template-syntax#built-in-directives) + +### React + +- [ ] [`JSX`](https://es.reactjs.org/docs/introducing-jsx.html) +- [ ] [Componentes `class` y componentes `function`](https://es.reactjs.org/docs/components-and-props.html#function-and-class-components) +- [ ] `props` +- [ ] [Manejo de eventos](https://es.reactjs.org/docs/handling-events.html) +- [ ] [Listas y keys](https://es.reactjs.org/docs/lists-and-keys.html) +- [ ] [Renderizado condicional](https://es.reactjs.org/docs/conditional-rendering.html) +- [ ] [Levantamiento de estados](https://es.reactjs.org/docs/lifting-state-up.html) +- [ ] [`hooks`](https://es.reactjs.org/docs/hooks-intro.html) +- [ ] [`CSS` modules](https://create-react-app.dev/docs/adding-a-css-modules-stylesheet) +- [ ] [React Router](https://reacttraining.com/react-router/web) + +### Vue + +- [ ] [Instancia de Vue.js](https://es.vuejs.org/v2/guide/instance.html) +- [ ] [Datos y métodos](https://es.vuejs.org/v2/guide/instance.html#Datos-y-Metodos) +- [ ] [Uso y creación de Componentes](https://vuejs.org/v2/guide/components.html) +- [ ] [Props](https://es.vuejs.org/v2/guide/components.html#Pasando-datos-a-componentes-secundarios-con-Props) +- [ ] Directivas ([v-bind](https://es.vuejs.org/v2/api/#v-bind) | [v-model](https://es.vuejs.org/v2/guide/forms.html)) +- [ ] Renderizado condicional ([v-if](https://es.vuejs.org/v2/guide/conditional.html#v-if) | [v-else](https://es.vuejs.org/v2/guide/conditional.html#v-else)) +- [ ] Iteraciones ([v-for](https://es.vuejs.org/v2/guide/list.html#Mapeando-una-matriz-a-elementos-con-v-for)) +- [ ] Eventos ([v-on](https://es.vuejs.org/v2/guide/events.html)) +- [ ] [Propiedades Computadas y Observadores](https://es.vuejs.org/v2/guide/computed.html) +- [ ] [Router](https://router.vuejs.org/guide/#html) +- [ ] [Clases y Estilos](https://es.vuejs.org/v2/guide/class-and-style.html) +- [ ] [Gestión de Estado](https://es.vuejs.org/v2/guide/state-management.html#Gestion-de-estado-simple-desde-cero) + +### Firebase + +- [ ] Firestore +- [ ] Firebase security rules +- [ ] Observables + +### Testing + +- [ ] Testeo de tus interfaces +- [ ] Testeo de componentes +- [ ] Testeo asíncrono +- [ ] Mocking + +### Colaboración en Github + +- [ ] Branches +- [ ] Pull Requests +- [ ] Tags + +### Organización en Github + +- [ ] Projects +- [ ] Issues +- [ ] Labels +- [ ] Milestones + +### Buenas prácticas de desarrollo + +- [ ] Modularización +- [ ] Nomenclatura / Semántica +- [ ] Linting + +--- + +## Consideraciones + +- Este proyecto se debe "resolver" de a pares. + +- La duración propuesta del proyecto es 5 sprints, con una duración de una semana cada uno. + +- Trabaja en una historia hasta terminarla antes de pasar a la siguiente. + +- Trabaja hasta la historia que puedas en el tiempo especificado. + +- La lógica del proyecto debe estar implementada completamente en JavaScript + (ES6+), HTML y CSS y empaquetada de manera automatizada. + +- En este proyecto Sí está permitido usar librerías o frameworks + (debes elegir entre [React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html), + [Angular](https://angular.io/) o Vanilla Js). + +- La aplicación debe ser un _Single Page App_. Los pedidos los tomaremos desde una + _tablet_, pero **no queremos una app nativa**, sino una web app que sea + **responsive** y pueda funcionar **offline**. + +- La interfaz debe estar diseñada específicamente para correr en + **tablets**. + +- Necesitamos pensar bien en el aspecto UX de quienes van a tomar los pedidos, + el tamaño y aspecto de los botones, la visibilidad del estado actual del + pedido, etc. + +- La aplicación desplegada debe tener 80% o más el las puntuaciones de + Performance, Progressive Web App, Accessibility y Best Practices de Lighthouse. + +- Deberas de guardar la información de los pedidos realizados por + lo cual te recomendamos utilizar [Firebase](https://firebase.google.com/). + +- La aplicación debe hacer uso de `npm-scripts` y contar con scripts `start`, + `test`, `build` y `deploy`, que se encarguen de arrancar, correr las pruebas, + empaquetar y desplegar la aplicación respectivamente. + +- Los tests unitarios deben cubrir un mínimo del 90% de _statements_, _functions_, + _lines_ y _branches_. + +- Por otro lado, deberás definir la estructura de carpetas y archivos que consideres + necesaria. Puedes guiarte de las convenciones del _framework_ elegido. Por ende, + los _tests_ y el _setup_ necesario para ejecutarlos, serán hechos por ti. + +## Criterios de aceptación del proyecto + +### Definición del producto + +El [_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) nos presenta este _backlog_ que es el resultado de su trabajo con el cliente hasta hoy. + +--- + +#### [Historia de usuario 1] Mesero/a debe poder tomar pedido de cliente + +Yo como meserx quiero tomar el pedido de un cliente para no depender de mi mala +memoria, para saber cuánto cobrar, y enviarlo a la cocina para evitar errores y +que se puedan ir preparando en orden. + +##### Criterios de aceptación + +Lo que debe ocurrir para que se satisfagan las necesidades del usuario + +- Anotar nombre de cliente. +- Agregar productos al pedido. +- Eliminar productos. +- Ver resumen y el total de la compra. +- Enviar pedido a cocina (guardar en alguna base de datos). +- Se ve y funciona bien en una _tablet_ + +##### Definición de terminado + +Lo acordado que debe ocurrir para decir que la historia está terminada. + +- Debes haber recibido _code review_ de al menos una compañera. +- Haces _test_ unitarios y, además, has testeado tu producto manualmente. +- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. +- Desplegaste tu aplicación y has etiquetado tu versión (git tag). + +--- + +#### [Historia de usuario 2] Jefe de cocina debe ver los pedidos + +Yo como jefx de cocina quiero ver los pedidos de los clientes en orden y +marcar cuáles están listos para saber qué se debe cocinar y avisar a lxs meserxs +que un pedido está listo para servirlo a un cliente. + +##### Criterios de aceptación + +- Ver los pedidos ordenados según se van haciendo. +- Marcar los pedidos que se han preparado y están listos para servirse. +- Ver el tiempo que tomó prepara el pedido desde que llegó hasta que se + marcó como completado. + +##### Definición de terminado + +- Debes haber recibido _code review_ de al menos una compañera. +- Haces _test_ unitarios y, además, has testeado tu producto manualmente. +- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. +- Desplegaste tu aplicación y has etiquetado tu versión (git tag). + +--- + +#### [Historia de usuario 3] Meserx debe ver pedidos listos para servir + +Yo como meserx quiero ver los pedidos que están preparados para entregarlos +rápidamente a los clientes que las hicieron. + +##### Criterios de aceptación + +- Ver listado de pedido listos para servir. +- Marcar pedidos que han sido entregados. + +##### Definición de terminado + +- Debes haber recibido _code review_ de al menos una compañera. +- Haces _test_ unitarios y, además, has testeado tu producto manualmente. +- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. +- Desplegaste tu aplicación y has etiquetado tu versión (git tag). +- Los datos se deben mantener íntegros, incluso después de que un pedido ha + terminado. Todo esto para poder tener estadísticas en el futuro. + +--- + +## Pistas / Tips + +### Frameworks / libraries + +- [React](https://reactjs.org/) +- [Angular](https://angular.io/) +- [Vue](https://es.vuejs.org/index.html) + +### Herramientas + +- [npm-scripts](https://docs.npmjs.com/misc/scripts) +- [Babel](https://babeljs.io/) +- [webpack](https://webpack.js.org/) + +### PWA + +- [Tu primera Progressive Web App - Google developers](https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=es) +- [Progressive Web Apps - codigofacilito.com](https://codigofacilito.com/articulos/progressive-apps) +- [offlinefirst.org](http://offlinefirst.org/) +- [Usando Service Workers - MDN](https://developer.mozilla.org/es/docs/Web/API/Service_Worker_API/Using_Service_Workers) +- [Cómo habilitar datos sin conexión - Firebase Docs](https://firebase.google.com/docs/firestore/manage-data/enable-offline?hl=es-419) + +### Serverless + +- [Qué es eso de serverless? - @PamRucinque en Medium](https://medium.com/@PamRucinque/qu%C3%A9-es-eso-de-serverless-f4f6c8949b87) +- [Qué es Serverless? | FooBar - YouTube](https://www.youtube.com/watch?v=_SYHUpLi-2U) +- [Firebase](https://firebase.google.com/) +- [Serverless Architectures - Martin Fowler](https://www.martinfowler.com/articles/serverless.html) + +### Cloud functions + +- [Cloud functions - Firebase Docs](https://firebase.google.com/docs/functions/?hl=es-419) diff --git a/README.md b/README.md index b2b4e9ba7..4fca3c642 100644 --- a/README.md +++ b/README.md @@ -1,352 +1,14 @@ -# Burger Queen +# Burger Queen -## Preámbulo +Burger Queen 👑 is a Web App designed for restaurants, that allows you to Create, Update, Read and Delete orders in real time. -[React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html) y [Angular](https://angular.io/) -son algunos de los _frameworks_ y _librerías_ de JavaScript más utilizados por -lxs desarrolladorxs alrededor del mundo, y hay una razón para eso. -En el contexto del navegador, [_mantener la interfaz sincronizada con el estado -es difícil_](https://medium.com/dailyjs/the-deepest-reason-why-modern-javascript-frameworks-exist-933b86ebc445). -Al elegir un _framework_ o _librería_ para nuestra interfaz, nos apoyamos en una -serie de convenciones e implementaciones _probadas_ y _documentadas_ para -resolver un problema común a toda interfaz web. Esto nos permite concentrarnos -mejor (dedicar más tiempo) en las características _específicas_ de -nuestra aplicación. +You must login to view the view the contents, and you can do so with the following credentials: -Cuando elegimos una de estas tecnologías no solo importamos un pedacito de -código para reusarlo (lo cuál es un gran valor per se), si no que adoptamos una -**arquitectura**, una serie de **principios de diseño**, un **paradigma**, unas -**abstracciones**, un **vocabulario**, una **comunidad**, etc... +E-mail: keupa@bq.com || mara@bq.com +Password: 123456 -Como desarrolladora Front-end, estos kits de desarrollo pueden resultarte -de gran ayuda para implementar rápidamente características de los proyectos en -los que trabajes. +Technologies used: HTML5, CSS3, Firebase and React. -## Resumen del proyecto +[Demo](https://i.pinimg.com/originals/e9/02/2c/e9022cd0abbf53461b6cdcafa10e4674.jpg) -Esta vez tenemos un proyecto 100% por encargo. Si bien siempre puedes (y debes) -hacer sugerencias de mejoras y/o cambios, muchas veces trabajarás en proyectos -en los que primero hay que asegurarse de cumplir con lo requerido. - -Un pequeño restaurante de hamburguesas, que está creciendo, necesita una -interfaz en la que puedan tomar pedidos usando una _tablet_, y enviarlos -a la cocina para que se preparen ordenada y eficientemente (a través de un -_backend_ del que nos darán detalles más adelante). - -![burger-queen](https://user-images.githubusercontent.com/110297/42118136-996b4a52-7bc6-11e8-8a03-ada078754715.jpg) - -Esta es la información que tenemos del cliente: - -> Somos **Burguer Queen**, una cadena de comida 24hrs. -> -> Nuestra propuesta de servicio 24hrs ha tenido muy buena acogida y, para -> seguir creciendo, necesitamos un sistema que nos ayude a tomar los pedidos de -> nuestros clientes. -> -> Tenemos 2 menús: uno muy sencillo para el desayuno: -> -> | Ítem | Precio \$ | -> | ------------------------- | --------- | -> | Café americano | 5 | -> | Café con leche | 7 | -> | Sandwich de jamón y queso | 10 | -> | Jugo de frutas natural | 7 | -> -> Y otro menú para el resto del día: -> -> | Ítem | Precio | -> | -------------------- | ------ | -> | **Hamburguesas** | **\$** | -> | Hamburguesa simple | 10 | -> | Hamburguesa doble | 15 | -> | **Acompañamientos** | **\$** | -> | Papas fritas | 5 | -> | Aros de cebolla | 5 | -> | **Para tomar** | **\$** | -> | Agua 500ml | 5 | -> | Agua 750ml | 7 | -> | Bebida/gaseosa 500ml | 7 | -> | Bebida/gaseosa 750ml | 10 | -> -> **Importante:** Lxs clientes pueden escoger entre hamburguesas de res, -> de pollo, o vegetariana. Además, por \$ 1 adicional, pueden agregarle queso -> o huevo. -> -> Nuestros clientes son bastante indecisos, por lo que es muy común que cambien -> el pedido varias veces antes de finalizarlo. - -La interfaz debe mostrar los dos menús (desayuno y resto del día), cada uno -con todos sus _productos_. El usuario debe poder ir eligiendo qué _productos_ -agregar y la interfaz debe ir mostrando el _resumen del pedido_ con el -costo total. - -![out](https://user-images.githubusercontent.com/110297/45984241-b8b51c00-c025-11e8-8fa4-a390016bee9d.gif) - -## Objetivos de aprendizaje - -1. El objetivo principal de es aprender a construir una _interfaz web_ usando - el _framework_ elegido ([React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html) o [Angular](https://angular.io/)) o vanilla JS. Todos estos frameworks de - Front-end atacan el mismo problema: **cómo mantener la interfaz y el estado - sincronizados**. Así que esta experiencia espera familiarizarte con el concepto - de _estado de pantalla_, y cómo cada cambio sobre el estado se va a - ir reflejando en la interfaz (por ejemplo, cada vez que agregamos un _producto_ - a un _pedido_, la interfaz debe actualizar la lista del pedido y el total). - -2. Como objetivo secundario, deberás seguir las recomendaciones para PWAs - (_Progressive Web Apps_), lo cual incluye conceptos como **offline**. Para - guiarte con respecto a este tema te recomendamos usar [Lighthouse](https://developers.google.com/web/tools/lighthouse/?hl=es), - que es una herramienta de Google que nos ayuda a asegurar que nuestras web apps - sigan "buenas prácticas". De hecho, usaremos Lighthouse a la hora de evaluar el - proyecto. - -Recuerda colocar en esta seccion los objetivos de aprendizaje que quedaron -pendientes de tu proyecto anterior. - -### HTML y CSS - -- [ ] HTML semántico -- [ ] CSS flexbox -- [ ] Sass -- [ ] Maquetación - -### Frontend Development - -- [ ] Componentes -- [ ] Manejo del estado - -### PWA - -- [ ] Concepto -- [ ] Utilidad -- [ ] Que es [Workbox](https://developers.google.com/web/tools/workbox) -- [ ] Qué es un `serviceWorker` - -### Angular - -- [ ] [Uso de Components | Templates](https://angular.io/guide/architecture-components#introduction-to-components) -- [ ] [Directivas estructurales (ngIf / ngFor)](https://angular.io/guide/template-syntax#built-in-structural-directives) -- [ ] [@Input | @Ouput](https://angular.io/guide/component-interaction#component-interaction) -- [ ] [Creación y uso de servicios](https://angular.io/guide/architecture-services#providing-services) -- [ ] [Manejos de rutas](https://angular.io/guide/router) -- [ ] [Uso de Observables](https://angular.io/guide/observables-in-angular) -- [ ] [Uso de HttpClient](https://angular.io/guide/http) -- [ ] [Estilos de componentes (ngStyle / ngClass)](https://angular.io/guide/template-syntax#built-in-directives) - -### React - -- [ ] [`JSX`](https://es.reactjs.org/docs/introducing-jsx.html) -- [ ] [Componentes `class` y componentes `function`](https://es.reactjs.org/docs/components-and-props.html#function-and-class-components) -- [ ] `props` -- [ ] [Manejo de eventos](https://es.reactjs.org/docs/handling-events.html) -- [ ] [Listas y keys](https://es.reactjs.org/docs/lists-and-keys.html) -- [ ] [Renderizado condicional](https://es.reactjs.org/docs/conditional-rendering.html) -- [ ] [Levantamiento de estados](https://es.reactjs.org/docs/lifting-state-up.html) -- [ ] [`hooks`](https://es.reactjs.org/docs/hooks-intro.html) -- [ ] [`CSS` modules](https://create-react-app.dev/docs/adding-a-css-modules-stylesheet) -- [ ] [React Router](https://reacttraining.com/react-router/web) - -### Vue - -- [ ] [Instancia de Vue.js](https://es.vuejs.org/v2/guide/instance.html) -- [ ] [Datos y métodos](https://es.vuejs.org/v2/guide/instance.html#Datos-y-Metodos) -- [ ] [Uso y creación de Componentes](https://vuejs.org/v2/guide/components.html) -- [ ] [Props](https://es.vuejs.org/v2/guide/components.html#Pasando-datos-a-componentes-secundarios-con-Props) -- [ ] Directivas ([v-bind](https://es.vuejs.org/v2/api/#v-bind) | [v-model](https://es.vuejs.org/v2/guide/forms.html)) -- [ ] Renderizado condicional ([v-if](https://es.vuejs.org/v2/guide/conditional.html#v-if) | [v-else](https://es.vuejs.org/v2/guide/conditional.html#v-else)) -- [ ] Iteraciones ([v-for](https://es.vuejs.org/v2/guide/list.html#Mapeando-una-matriz-a-elementos-con-v-for)) -- [ ] Eventos ([v-on](https://es.vuejs.org/v2/guide/events.html)) -- [ ] [Propiedades Computadas y Observadores](https://es.vuejs.org/v2/guide/computed.html) -- [ ] [Router](https://router.vuejs.org/guide/#html) -- [ ] [Clases y Estilos](https://es.vuejs.org/v2/guide/class-and-style.html) -- [ ] [Gestión de Estado](https://es.vuejs.org/v2/guide/state-management.html#Gestion-de-estado-simple-desde-cero) - -### Firebase - -- [ ] Firestore -- [ ] Firebase security rules -- [ ] Observables - -### Testing - -- [ ] Testeo de tus interfaces -- [ ] Testeo de componentes -- [ ] Testeo asíncrono -- [ ] Mocking - -### Colaboración en Github - -- [ ] Branches -- [ ] Pull Requests -- [ ] Tags - -### Organización en Github - -- [ ] Projects -- [ ] Issues -- [ ] Labels -- [ ] Milestones - -### Buenas prácticas de desarrollo - -- [ ] Modularización -- [ ] Nomenclatura / Semántica -- [ ] Linting - ---- - -## Consideraciones - -- Este proyecto se debe "resolver" de a pares. - -- La duración propuesta del proyecto es 5 sprints, con una duración de una semana cada uno. - -- Trabaja en una historia hasta terminarla antes de pasar a la siguiente. - -- Trabaja hasta la historia que puedas en el tiempo especificado. - -- La lógica del proyecto debe estar implementada completamente en JavaScript - (ES6+), HTML y CSS y empaquetada de manera automatizada. - -- En este proyecto Sí está permitido usar librerías o frameworks - (debes elegir entre [React](https://reactjs.org/), [Vue](https://es.vuejs.org/index.html), - [Angular](https://angular.io/) o Vanilla Js). - -- La aplicación debe ser un _Single Page App_. Los pedidos los tomaremos desde una - _tablet_, pero **no queremos una app nativa**, sino una web app que sea - **responsive** y pueda funcionar **offline**. - -- La interfaz debe estar diseñada específicamente para correr en - **tablets**. - -- Necesitamos pensar bien en el aspecto UX de quienes van a tomar los pedidos, - el tamaño y aspecto de los botones, la visibilidad del estado actual del - pedido, etc. - -- La aplicación desplegada debe tener 80% o más el las puntuaciones de - Performance, Progressive Web App, Accessibility y Best Practices de Lighthouse. - -- Deberas de guardar la información de los pedidos realizados por - lo cual te recomendamos utilizar [Firebase](https://firebase.google.com/). - -- La aplicación debe hacer uso de `npm-scripts` y contar con scripts `start`, - `test`, `build` y `deploy`, que se encarguen de arrancar, correr las pruebas, - empaquetar y desplegar la aplicación respectivamente. - -- Los tests unitarios deben cubrir un mínimo del 90% de _statements_, _functions_, - _lines_ y _branches_. - -- Por otro lado, deberás definir la estructura de carpetas y archivos que consideres - necesaria. Puedes guiarte de las convenciones del _framework_ elegido. Por ende, - los _tests_ y el _setup_ necesario para ejecutarlos, serán hechos por ti. - -## Criterios de aceptación del proyecto - -### Definición del producto - -El [_Product Owner_](https://www.youtube.com/watch?v=r2hU7MVIzxs&t=202s) nos presenta este _backlog_ que es el resultado de su trabajo con el cliente hasta hoy. - ---- - -#### [Historia de usuario 1] Mesero/a debe poder tomar pedido de cliente - -Yo como meserx quiero tomar el pedido de un cliente para no depender de mi mala -memoria, para saber cuánto cobrar, y enviarlo a la cocina para evitar errores y -que se puedan ir preparando en orden. - -##### Criterios de aceptación - -Lo que debe ocurrir para que se satisfagan las necesidades del usuario - -- Anotar nombre de cliente. -- Agregar productos al pedido. -- Eliminar productos. -- Ver resumen y el total de la compra. -- Enviar pedido a cocina (guardar en alguna base de datos). -- Se ve y funciona bien en una _tablet_ - -##### Definición de terminado - -Lo acordado que debe ocurrir para decir que la historia está terminada. - -- Debes haber recibido _code review_ de al menos una compañera. -- Haces _test_ unitarios y, además, has testeado tu producto manualmente. -- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. -- Desplegaste tu aplicación y has etiquetado tu versión (git tag). - ---- - -#### [Historia de usuario 2] Jefe de cocina debe ver los pedidos - -Yo como jefx de cocina quiero ver los pedidos de los clientes en orden y -marcar cuáles están listos para saber qué se debe cocinar y avisar a lxs meserxs -que un pedido está listo para servirlo a un cliente. - -##### Criterios de aceptación - -- Ver los pedidos ordenados según se van haciendo. -- Marcar los pedidos que se han preparado y están listos para servirse. -- Ver el tiempo que tomó prepara el pedido desde que llegó hasta que se - marcó como completado. - -##### Definición de terminado - -- Debes haber recibido _code review_ de al menos una compañera. -- Haces _test_ unitarios y, además, has testeado tu producto manualmente. -- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. -- Desplegaste tu aplicación y has etiquetado tu versión (git tag). - ---- - -#### [Historia de usuario 3] Meserx debe ver pedidos listos para servir - -Yo como meserx quiero ver los pedidos que están preparados para entregarlos -rápidamente a los clientes que las hicieron. - -##### Criterios de aceptación - -- Ver listado de pedido listos para servir. -- Marcar pedidos que han sido entregados. - -##### Definición de terminado - -- Debes haber recibido _code review_ de al menos una compañera. -- Haces _test_ unitarios y, además, has testeado tu producto manualmente. -- Hiciste _tests_ de usabilidad e incorporaste el _feedback_ del usuario. -- Desplegaste tu aplicación y has etiquetado tu versión (git tag). -- Los datos se deben mantener íntegros, incluso después de que un pedido ha - terminado. Todo esto para poder tener estadísticas en el futuro. - ---- - -## Pistas / Tips - -### Frameworks / libraries - -- [React](https://reactjs.org/) -- [Angular](https://angular.io/) -- [Vue](https://es.vuejs.org/index.html) - -### Herramientas - -- [npm-scripts](https://docs.npmjs.com/misc/scripts) -- [Babel](https://babeljs.io/) -- [webpack](https://webpack.js.org/) - -### PWA - -- [Tu primera Progressive Web App - Google developers](https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/?hl=es) -- [Progressive Web Apps - codigofacilito.com](https://codigofacilito.com/articulos/progressive-apps) -- [offlinefirst.org](http://offlinefirst.org/) -- [Usando Service Workers - MDN](https://developer.mozilla.org/es/docs/Web/API/Service_Worker_API/Using_Service_Workers) -- [Cómo habilitar datos sin conexión - Firebase Docs](https://firebase.google.com/docs/firestore/manage-data/enable-offline?hl=es-419) - -### Serverless - -- [Qué es eso de serverless? - @PamRucinque en Medium](https://medium.com/@PamRucinque/qu%C3%A9-es-eso-de-serverless-f4f6c8949b87) -- [Qué es Serverless? | FooBar - YouTube](https://www.youtube.com/watch?v=_SYHUpLi-2U) -- [Firebase](https://firebase.google.com/) -- [Serverless Architectures - Martin Fowler](https://www.martinfowler.com/articles/serverless.html) - -### Cloud functions - -- [Cloud functions - Firebase Docs](https://firebase.google.com/docs/functions/?hl=es-419) +Created by [Keupa de la Peña](https://github.com/keupa) & [Mara Mulato](https://github.com/maranyil) diff --git a/build/asset-manifest.json b/build/asset-manifest.json new file mode 100644 index 000000000..2cc041fef --- /dev/null +++ b/build/asset-manifest.json @@ -0,0 +1,38 @@ +{ + "files": { + "main.css": "/static/css/main.36f15960.chunk.css", + "main.js": "/static/js/main.b5c3fb02.chunk.js", + "main.js.map": "/static/js/main.b5c3fb02.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.19e996be.js", + "runtime-main.js.map": "/static/js/runtime-main.19e996be.js.map", + "static/css/2.d34346ea.chunk.css": "/static/css/2.d34346ea.chunk.css", + "static/js/2.29bfcd43.chunk.js": "/static/js/2.29bfcd43.chunk.js", + "static/js/2.29bfcd43.chunk.js.map": "/static/js/2.29bfcd43.chunk.js.map", + "index.html": "/index.html", + "precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js": "/precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js", + "service-worker.js": "/service-worker.js", + "static/css/2.d34346ea.chunk.css.map": "/static/css/2.d34346ea.chunk.css.map", + "static/css/main.36f15960.chunk.css.map": "/static/css/main.36f15960.chunk.css.map", + "static/js/2.29bfcd43.chunk.js.LICENSE.txt": "/static/js/2.29bfcd43.chunk.js.LICENSE.txt", + "static/media/LogoBQ.svg": "/static/media/LogoBQ.431d6a8b.svg", + "static/media/american-coffee.webp": "/static/media/american-coffee.664bd145.webp", + "static/media/coffee-milk.webp": "/static/media/coffee-milk.b27ee13f.webp", + "static/media/double-hamb.webp": "/static/media/double-hamb.cf6c9ef2.webp", + "static/media/fries.webp": "/static/media/fries.e727c2cf.webp", + "static/media/juice.webp": "/static/media/juice.8bba1fa5.webp", + "static/media/logout.svg": "/static/media/logout.961342c0.svg", + "static/media/onion-rings.webp": "/static/media/onion-rings.86f422f8.webp", + "static/media/sandwich.webp": "/static/media/sandwich.dfde5530.webp", + "static/media/simple-hamb.webp": "/static/media/simple-hamb.0b0091c7.webp", + "static/media/soda.webp": "/static/media/soda.fb0b5006.webp", + "static/media/trash.svg": "/static/media/trash.5a226e36.svg", + "static/media/wata.webp": "/static/media/wata.374b0228.webp" + }, + "entrypoints": [ + "static/js/runtime-main.19e996be.js", + "static/css/2.d34346ea.chunk.css", + "static/js/2.29bfcd43.chunk.js", + "static/css/main.36f15960.chunk.css", + "static/js/main.b5c3fb02.chunk.js" + ] +} \ No newline at end of file diff --git a/build/favicon.ico b/build/favicon.ico new file mode 100644 index 000000000..41733dc42 Binary files /dev/null and b/build/favicon.ico differ diff --git a/build/index.html b/build/index.html new file mode 100644 index 000000000..297f92c11 --- /dev/null +++ b/build/index.html @@ -0,0 +1 @@ +Burger ♛ Queen
\ No newline at end of file diff --git a/build/manifest.json b/build/manifest.json new file mode 100644 index 000000000..b043ee91e --- /dev/null +++ b/build/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "128x128 64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "128x128" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "128x128" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/build/precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js b/build/precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js new file mode 100644 index 000000000..3f6fe0bee --- /dev/null +++ b/build/precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js @@ -0,0 +1,82 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "15f78e27b2538e3d269fd1adcc07b867", + "url": "/index.html" + }, + { + "revision": "e8212fef7ea35c608479", + "url": "/static/css/2.d34346ea.chunk.css" + }, + { + "revision": "f7c3ce5c0aa793d40b50", + "url": "/static/css/main.36f15960.chunk.css" + }, + { + "revision": "e8212fef7ea35c608479", + "url": "/static/js/2.29bfcd43.chunk.js" + }, + { + "revision": "544111c69119227bbf075a65771ccdb1", + "url": "/static/js/2.29bfcd43.chunk.js.LICENSE.txt" + }, + { + "revision": "f7c3ce5c0aa793d40b50", + "url": "/static/js/main.b5c3fb02.chunk.js" + }, + { + "revision": "91dbc765750696e66f95", + "url": "/static/js/runtime-main.19e996be.js" + }, + { + "revision": "431d6a8b94b154cad61dffadc35f57bf", + "url": "/static/media/LogoBQ.431d6a8b.svg" + }, + { + "revision": "664bd14593e629b1e9d4c400f3549623", + "url": "/static/media/american-coffee.664bd145.webp" + }, + { + "revision": "b27ee13f5e485c8f8930a3ad84b6d949", + "url": "/static/media/coffee-milk.b27ee13f.webp" + }, + { + "revision": "cf6c9ef27b151ddf44f0af1e067456b5", + "url": "/static/media/double-hamb.cf6c9ef2.webp" + }, + { + "revision": "e727c2cf0817f4d0ea8f638aa20161ad", + "url": "/static/media/fries.e727c2cf.webp" + }, + { + "revision": "8bba1fa5d2ffef5c8a0e18c89b7a0aa3", + "url": "/static/media/juice.8bba1fa5.webp" + }, + { + "revision": "961342c08a3e2f4b501a877a76834596", + "url": "/static/media/logout.961342c0.svg" + }, + { + "revision": "86f422f84d3c744b089c46c0e54de3f7", + "url": "/static/media/onion-rings.86f422f8.webp" + }, + { + "revision": "dfde55304b41352107638543b1ed02f6", + "url": "/static/media/sandwich.dfde5530.webp" + }, + { + "revision": "0b0091c735a00f6b6083720ff52d4c22", + "url": "/static/media/simple-hamb.0b0091c7.webp" + }, + { + "revision": "fb0b500699329733372ad0f652413a5c", + "url": "/static/media/soda.fb0b5006.webp" + }, + { + "revision": "5a226e36b139f8e3415d5de7358db0ed", + "url": "/static/media/trash.5a226e36.svg" + }, + { + "revision": "374b02287cdbaf49b396c4989dd3dde8", + "url": "/static/media/wata.374b0228.webp" + } +]); \ No newline at end of file diff --git a/build/robots.txt b/build/robots.txt new file mode 100644 index 000000000..e9e57dc4d --- /dev/null +++ b/build/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/build/service-worker.js b/build/service-worker.js new file mode 100644 index 000000000..9cba471f0 --- /dev/null +++ b/build/service-worker.js @@ -0,0 +1,39 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); + +importScripts( + "/precache-manifest.5f85d8cbce6d405260944d39fcc955a0.js" +); + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } +}); + +workbox.core.clientsClaim(); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); + +workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { + + blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], +}); diff --git a/build/static/css/2.d34346ea.chunk.css b/build/static/css/2.d34346ea.chunk.css new file mode 100644 index 000000000..b084945d1 --- /dev/null +++ b/build/static/css/2.d34346ea.chunk.css @@ -0,0 +1,2 @@ +.Toastify__toast-container{z-index:9999;-webkit-transform:translateZ(9999px);position:fixed;padding:4px;width:320px;box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:auto}}.Toastify__toast{position:relative;min-height:64px;box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:1px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);display:flex;justify-content:space-between;max-height:800px;overflow:hidden;font-family:sans-serif;cursor:pointer;direction:ltr}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--dark{background:#121212;color:#fff}.Toastify__toast--default{background:#fff;color:#aaa}.Toastify__toast--info{background:#3498db}.Toastify__toast--success{background:#07bc0c}.Toastify__toast--warning{background:#f1c40f}.Toastify__toast--error{background:#e74c3c}.Toastify__toast-body{margin:auto 0;flex:1 1 auto}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0}}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--default{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@-webkit-keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:9999;opacity:.7;background-color:hsla(0,0%,100%,.7);transform-origin:left}.Toastify__progress-bar--animated{-webkit-animation:Toastify__trackProgress linear 1 forwards;animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right}.Toastify__progress-bar--default{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55)}.Toastify__progress-bar--dark{background:#bb86fc}@-webkit-keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@-webkit-keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@-webkit-keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@-webkit-keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@-webkit-keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@-webkit-keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@-webkit-keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@-webkit-keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{-webkit-animation-name:Toastify__bounceInLeft;animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{-webkit-animation-name:Toastify__bounceInRight;animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{-webkit-animation-name:Toastify__bounceInDown;animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{-webkit-animation-name:Toastify__bounceInUp;animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{-webkit-animation-name:Toastify__bounceOutLeft;animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{-webkit-animation-name:Toastify__bounceOutRight;animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{-webkit-animation-name:Toastify__bounceOutUp;animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{-webkit-animation-name:Toastify__bounceOutDown;animation-name:Toastify__bounceOutDown}@-webkit-keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@-webkit-keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{-webkit-animation-name:Toastify__zoomIn;animation-name:Toastify__zoomIn}.Toastify__zoom-exit{-webkit-animation-name:Toastify__zoomOut;animation-name:Toastify__zoomOut}@-webkit-keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@-webkit-keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{-webkit-animation-name:Toastify__flipIn;animation-name:Toastify__flipIn}.Toastify__flip-exit{-webkit-animation-name:Toastify__flipOut;animation-name:Toastify__flipOut}@-webkit-keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@-webkit-keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@-webkit-keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@-webkit-keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@-webkit-keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@-webkit-keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{-webkit-animation-name:Toastify__slideInLeft;animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{-webkit-animation-name:Toastify__slideInRight;animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{-webkit-animation-name:Toastify__slideInDown;animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{-webkit-animation-name:Toastify__slideInUp;animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{-webkit-animation-name:Toastify__slideOutLeft;animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{-webkit-animation-name:Toastify__slideOutRight;animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{-webkit-animation-name:Toastify__slideOutUp;animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{-webkit-animation-name:Toastify__slideOutDown;animation-name:Toastify__slideOutDown} +/*# sourceMappingURL=2.d34346ea.chunk.css.map */ \ No newline at end of file diff --git a/build/static/css/2.d34346ea.chunk.css.map b/build/static/css/2.d34346ea.chunk.css.map new file mode 100644 index 000000000..96bf35282 --- /dev/null +++ b/build/static/css/2.d34346ea.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../scss/_toastContainer.scss","../scss/_variables.scss","ReactToastify.css","../scss/_toast.scss","../scss/_closeButton.scss","../scss/_progressBar.scss","../scss/animations/_bounce.scss","../scss/animations/_zoom.scss","../scss/animations/_flip.scss","../scss/animations/_slide.scss"],"names":[],"mappings":"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","file":"2.d34346ea.chunk.css"} \ No newline at end of file diff --git a/build/static/css/main.36f15960.chunk.css b/build/static/css/main.36f15960.chunk.css new file mode 100644 index 000000000..d8072f03c --- /dev/null +++ b/build/static/css/main.36f15960.chunk.css @@ -0,0 +1,2 @@ +body{margin:0;padding:0;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f2f2f2}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}*,body,html{box-sizing:border-box;font-family:"Montserrat",sans-serif;color:#170000!important}#root,body{width:100%;height:100%}#root{max-width:100%}.input-form{background:#b8aae0;width:100vw;height:100vh;overflow:hidden;position:relative;align-items:center}.form-container,.input-form{display:flex;flex-direction:column;justify-content:center}.bq-logo{width:15%;height:auto}.inputf{display:table-cell;vertical-align:middle;padding:0 10px;margin-bottom:25px;border-radius:12px;border-style:none;height:35px;width:300px;font-size:18px}button.btn{font-family:"Montserrat",sans-serif;font-size:18px;font-weight:700;width:150px;height:50px;border:0;border-radius:15px;background-color:#c6b3fd;box-shadow:-3px 6px #ae9cdf;margin-left:auto;margin-right:auto}.beverage{background:#87d5c2}.beverage,.meal{display:flex;flex-direction:column;margin:10px;width:170px;height:170px;align-items:center;border-radius:25px;font-family:"Montserrat",sans-serif;overflow:hidden}.meal{background:#ffcf87}img{width:60%;height:60%;margin:5px 0 0}h2{margin:0;font-weight:700}h2,p{font-size:17px}p{margin:5px 0 10px}.toggle-container{display:flex;align-items:center;width:400px;padding-bottom:20px;height:auto;justify-content:space-between}button.toggle{font-size:25px;width:192px;height:58px;border:0;border-radius:16px}.order-list-container{display:grid;grid-template-columns:3fr 1.5fr 1.2fr 1fr 1fr;align-items:center}h3,h4{font-size:18px;font-weight:400}input[type=number]{font-size:18px;width:40px;height:30px;border:none;border-radius:2px;padding-left:15px}.trash{width:70%;height:auto;padding:0 0 10px 20px}button.yellowbtn{font-family:"Montserrat",sans-serif;font-size:18px;font-weight:700;width:150px;height:50px;border:0;border-radius:15px;background-color:#c6b3fd;box-shadow:-3px 6px #ae9cdf;justify-content:center}button.green{background-color:#afd14e;box-shadow:-3px 6px #94c217}button.green,button.orange{font-family:"Montserrat",sans-serif;font-size:18px;margin:12px 0 6px;font-weight:700;width:150px;height:50px;border:0;border-radius:15px}button.orange{background-color:#f88a57;box-shadow:-3px 6px #fc7d42}button.red{font-family:"Montserrat",sans-serif;font-size:18px;margin:12px 0 6px;font-weight:700;width:150px;height:50px;border:0;border-radius:15px;background-color:#dc6363;box-shadow:-3px 6px #db4949}*{color:#170000}.toggle-btn{display:flex;justify-content:center;align-content:center;grid-area:toggle}.items-container{display:flex;flex-wrap:wrap;grid-area:menu;position:relative;border-radius:20px;width:400px;background-color:#fffcfc;padding:10px 0 10px 9px}.menu-parent{width:100vw;height:100%;padding:30px 60px 30px 130px}.container{margin-bottom:20px}.menu-container{display:flex;flex-direction:column;float:left}.order-container{float:left;margin:0}.order-note{width:560px;height:auto;border-radius:20px;background-color:#ded2ff;grid-area:order;padding:30px 20px 20px 35px;margin-left:60px}.total{font-size:18px;font-weight:700;text-align:right;padding:35px}h1{font-size:28px;font-family:"Montserrat",sans-serif;text-align:center;margin-right:10px}.center,.table{display:flex;justify-content:center}.table{flex-direction:row;align-items:center}input[type=number].table-number{font-weight:bolder;width:45px!important;height:30px!important;font-size:25px;padding-left:14px}.titles-container{display:grid;grid-template-columns:3fr 1.2fr 1.2fr 1fr 1fr;align-items:center}h4.bold{font-weight:700;justify-content:center}.rounder-edges{border-radius:4px;text-align:center}.center-align{text-align:center;font-size:18px;margin-top:40px}hr.solid{border:none;background-color:#170000;color:#170000;height:2px;margin:-5px 45px 5px 25px}.plusminus{border:none;background:transparent;font-size:25px;margin:5px}.menuToggle{display:inline-block;position:relative;top:-58px;left:35px;z-index:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.menuToggle a{text-decoration:none;color:#232323;transition:color .3s ease}.menuToggle a:hover{color:#fff}.menu li:hover{color:#fff;transition-duration:.5s}.menuToggle input{display:block;width:50px;height:42px;position:absolute;top:-7px;left:-5px;cursor:pointer;opacity:0;z-index:2;-webkit-touch-callout:none}.menuToggle span{display:block;width:33px;height:4px;margin-bottom:5px;position:relative;background:#232323;border-radius:3px;z-index:1;transform-origin:4px 0;transition:transform .5s cubic-bezier(.77,.2,.05,1),background .5s cubic-bezier(.77,.2,.05,1),opacity .55s ease}.menuToggle span:first-child{transform-origin:0 0}.menuToggle span:nth-last-child(2){transform-origin:0 100%}.menuToggle input:checked~span{opacity:1;transform:rotate(45deg) translate(-2px,-1px);background:#232323}.menuToggle input:checked~span:nth-last-child(3){opacity:0;transform:rotate(0deg) scale(.2)}.menuToggle input:checked~span:nth-last-child(2){transform:rotate(-45deg) translateY(-1px)}.menu{position:absolute;width:300px;height:200vh;margin:-100px 0 0 -50px;padding:125px 30px 30px;text-align:center;background:#b8aae0;list-style-type:none;-webkit-font-smoothing:antialiased;transform-origin:0 0;transform:translate(-100%);transition:transform .5s cubic-bezier(.77,.2,.05,1)}.menu h1{font-size:35px}.menu li{padding:20px 0;font-size:30px}li:hover{color:#ffffdb!important}.menuToggle input:checked~ul{transform:none}.topbar{display:flex;justify-content:center;height:100px;width:100%;background-color:#b8aae0;margin-top:-21px;text-align:center;vertical-align:middle;line-height:100px}.topbar h1{font-size:35px;font-weight:400;margin-top:7px;padding-top:5px}.white{font-weight:700;color:#ffffdb!important}.logout{width:2.3%;height:auto}.my-masonry-grid{display:flex;margin-left:-10px;padding:30px 30px 30px 80px;width:auto}.my-masonry-grid_column{padding-left:60px;margin-bottom:20px;background-clip:padding-box}.green-note{background-color:#ddfc84}.green-note,.orange-note{width:300px;border-radius:9px;text-align:center;justify-content:center;align-items:center;padding:20px 0;margin-bottom:30px}.orange-note{background-color:#fca884}.red-note{width:300px;border-radius:9px;text-align:center;align-items:center;padding:20px 0;margin-bottom:30px;background-color:#d47878}.red-note,h2.table{justify-content:center}h2.table{font-size:28px;font-weight:700}.products-on-note{display:grid;grid-template-columns:80% 20%;padding:0 30px 0 10px}li.product-name{font-size:20px;text-align:left}p.product-quantity{font-size:20px;text-align:right;font-weight:700;padding-top:12px}ul.note-ul{list-style:none}ul.note-ul li:before{content:"\22C6";display:inline-block;width:1em;margin-left:-1em}.no-orders-message-container{display:flex;justify-content:center;padding-top:250px}.no-orders-message{font-size:25px} +/*# sourceMappingURL=main.36f15960.chunk.css.map */ \ No newline at end of file diff --git a/build/static/css/main.36f15960.chunk.css.map b/build/static/css/main.36f15960.chunk.css.map new file mode 100644 index 000000000..81a3c22a8 --- /dev/null +++ b/build/static/css/main.36f15960.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css","Forms.css","MenuElement.css","ToggleMenu.css","OrderItem.css","Button.css","BMenu.css","Navbar.css","Note.css"],"names":[],"mappings":"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","file":"main.36f15960.chunk.css","sourcesContent":["*{\n color: #170000; \n}\n\n.toggle-btn{\n display: flex; \n justify-content: center;\n align-content: center;\n grid-area: toggle; \n}\n\n.items-container{\n display: flex;\n flex-wrap: wrap;\n grid-area: menu; \n position: relative; \n border-radius: 20px;\n width: 400px; \n background-color: #FFFCFC;\n padding: 10px 0px 10px 9px; \n\n}\n\n.menu-parent{\n width: 100vw;\n height: 100%; \n padding: 30px 60px 30px 130px; \n}\n\n.container{\n margin-bottom: 20px; \n}\n\n.menu-container{\n display:flex; \n flex-direction: column;\n float:left;\n}\n\n.order-container{\n float:left; \n margin: 0px 0px 0px 0px; \n}\n\n.order-note{ \n width: 560px;\n height: auto; \n border-radius: 20px; \n background-color: #DED2FF; \n grid-area: order; \n padding: 30px 20px 20px 35px; \n margin-left: 60px; \n}\n\n.total{\n font-size: 18px; \n font-weight: bold; \n text-align: right; \n padding: 35px; \n}\n\nh1{\n font-size: 28px; \n font-family: 'Montserrat', sans-serif; \n text-align: center; \n margin-right: 10px; \n}\n\n.center{\n display: flex; \n justify-content: center;\n}\n\n.table{\n display:flex; \n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\ninput[type=number].table-number{\n font-weight: bolder;\n width: 45px !important; \n height: 30px !important; \n font-size: 25px; \n padding-left: 14px; \n}\n\n.titles-container{\n display: grid; \n grid-template-columns: 3fr 1.2fr 1.2fr 1fr 1fr; \n align-items: center; \n}\n\nh4.bold{\n font-weight: bold; \n justify-content: center;\n}\n\n.rounder-edges{\n border-radius: 4px; \n text-align: center; \n}\n\n.center-align{\n text-align: center;\n font-size: 18px; \n margin-top: 40px; \n}\n\nhr.solid{ \n border: none;\n background-color: #170000;\n color: #170000;\n height: 2px;\n margin: -5px 45px 5px 25px; \n}\n\n.plusminus{\n border: none; \n background: transparent; \n font-size: 25px; \n margin: 5px; \n}",".input-form{\n display: flex; \n flex-direction: column;\n justify-content: center;\n background: #B8AAE0;\n width: 100vw;\n height: 100vh; \n\toverflow:hidden;\n position:relative; \n align-items:center; \n}\n\n.form-container{\n display: flex; \n flex-direction: column; \n justify-content: center;\n}\n\n.bq-logo{\n width: 15%;\n height: auto; \n}\n\n.inputf {\n display: table-cell;\n vertical-align: middle;\n padding: 0px 10px 0px 10px;\n margin-bottom: 25px; \n border-radius: 12px;\n border-style: none;\n height: 35px;\n width: 300px;\n font-size: 18px; \n}\n\nbutton.btn {\n font-family: 'Montserrat', sans-serif;\n font-size: 18px;;\n font-weight: bold; \n width: 150px; \n height: 50px; \n border: 0; \n border-radius: 15px;\n background-color: #C6B3FD;\n box-shadow: -3px 6px rgb(174, 156, 223);\n margin-left: auto;\n margin-right: auto;\n}",".beverage{\n \n display:flex; \n flex-direction: column;\n\n margin: 10px; \n width: 170px; \n height: 170px; \n\n align-items: center;\n \n border-radius: 25px; \n\n background: #87D5C2;\n\n font-family: 'Montserrat', sans-serif; \n\n overflow: hidden;\n}\n\n.meal{\n \n display:flex; \n flex-direction: column;\n\n margin: 10px; \n width: 170px; \n height: 170px; \n\n align-items: center;\n \n border-radius: 25px; \n\n background: #FFCF87;\n\n font-family: 'Montserrat', sans-serif; \n\n overflow: hidden;\n}\n\nimg{\n width: 60%; \n height: 60%; \n\n margin: 5px 0px 0px 0px; \n}\n\nh2{\n margin: 0px 0px 0px 0px; \n\n font-size: 17px; \n font-weight: bold;\n}\n\np{\n margin: 5px 0px 10px 0px; \n\n font-size: 17px; \n}",".toggle-container{\n\n display: flex; \n align-items: center; \n width: 400px;\n padding-bottom: 20px; \n height: auto; \n justify-content: space-between;\n \n}\n\nbutton.toggle{\n font-size: 25px;\n width: 192px; \n height: 58px; \n border: 0; \n border-radius: 16px;\n}\n",".order-list-container{\n display: grid; \n grid-template-columns: 3fr 1.5fr 1.2fr 1fr 1fr; \n align-items: center;\n}\n\nh3{\n font-size: 18px; \n font-weight: normal;\n}\n\nh4{\n font-size: 18px; \n font-weight: normal;\n}\n\ninput[type=number]{\n\n font-size: 18px; \n width: 40px; \n height: 30px; \n border: none; \n border-radius: 2px;\n padding-left: 15px; \n}\n\n.trash{\n width: 70%;\n height: auto; \n padding: 0px 0px 10px 20px; \n}\n","button.yellowbtn{\n\n font-family: 'Montserrat', sans-serif;\n font-size: 18px;;\n font-weight: bold; \n width: 150px; \n height: 50px; \n border: 0; \n border-radius: 15px;\n background-color: #C6B3FD;\n box-shadow: -3px 6px rgb(174, 156, 223);\n justify-content: center; \n}\n\nbutton.green{\n\n font-family: 'Montserrat', sans-serif;\n font-size: 18px;\n margin: 12px 0px 6px 0px; \n font-weight: bold; \n width: 150px; \n height: 50px; \n border: 0; \n border-radius: 15px;\n background-color: #AFD14E;\n box-shadow: -3px 6px rgb(148, 194, 23); \n}\n\nbutton.orange{\n\n font-family: 'Montserrat', sans-serif;\n font-size: 18px;\n margin: 12px 0px 6px 0px; \n font-weight: bold; \n width: 150px; \n height: 50px; \n border: 0; \n border-radius: 15px;\n background-color: rgb(248, 138, 87);\n box-shadow: -3px 6px rgb(252, 125, 66); \n}\n\nbutton.red{\n\n font-family: 'Montserrat', sans-serif;\n font-size: 18px;\n margin: 12px 0px 6px 0px; \n font-weight: bold; \n width: 150px; \n height: 50px; \n border: 0; \n border-radius: 15px;\n background-color: #DC6363;\n box-shadow: -3px 6px rgb(219, 73, 73); \n}\n\n",".menuToggle {\n display: inline-block;\n position: relative;\n top: -58px;\n left: 35px;\n \n z-index: 1;\n \n -webkit-user-select: none;\n user-select: none;\n}\n\n.menuToggle a {\n text-decoration: none;\n color: #232323;\n \n transition: color 0.3s ease;\n}\n\n.menuToggle a:hover {\n color: #ffffff;\n}\n\n.menu li:hover {\n color: #ffffff;\n transition-duration: .5s; \n}\n\n\n.menuToggle input {\n display: block;\n width: 50px;\n height: 42px;\n position: absolute;\n top: -7px;\n left: -5px;\n \n cursor: pointer;\n \n opacity: 0; /* hide this */\n z-index: 2; /* and place it over the hamburger */\n \n -webkit-touch-callout: none;\n}\n\n/* Just a quick hamburger */\n.menuToggle span {\n display: block;\n width: 33px;\n height: 4px;\n margin-bottom: 5px;\n position: relative;\n \n background: #232323;\n border-radius: 3px;\n \n z-index: 1;\n \n transform-origin: 4px 0px;\n \n transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),\n background 0.5s cubic-bezier(0.77,0.2,0.05,1.0),\n opacity 0.55s ease;\n}\n\n.menuToggle span:first-child\n{\n transform-origin: 0% 0%;\n}\n\n.menuToggle span:nth-last-child(2)\n{\n transform-origin: 0% 100%;\n}\n\n/* Transform the slices of hamburger\ninto a crossmark. */\n.menuToggle input:checked ~ span\n{\n opacity: 1;\n transform: rotate(45deg) translate(-2px, -1px);\n background: #232323;\n}\n\n/*\n * But let's hide the middle one.\n */\n.menuToggle input:checked ~ span:nth-last-child(3)\n{\n opacity: 0;\n transform: rotate(0deg) scale(0.2, 0.2);\n}\n\n\n.menuToggle input:checked ~ span:nth-last-child(2)\n{\n transform: rotate(-45deg) translate(0, -1px);\n}\n\n/* Make this absolute at the top left of the screen */\n.menu {\n position: absolute;\n width: 300px;\n height: 200vh;\n margin: -100px 0 0 -50px;\n padding: 30px;\n padding-top: 125px;\n text-align: center;\n \n background: #B8AAE0;\n list-style-type: none;\n -webkit-font-smoothing: antialiased;\n /* to stop flickering of text in safari */\n \n transform-origin: 0% 0%;\n transform: translate(-100%, 0);\n \n transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);\n}\n\n.menu h1 {\n font-size: 35px;\n}\n\n.menu li {\n padding: 20px 0;\n font-size: 30px;\n}\n\nli:hover{\n color: #ffffdb !important;\n}\n\n/* slide it from the left */\n.menuToggle input:checked ~ ul\n{\n transform: none;\n}\n",".topbar {\n display: flex; \n justify-content: center;\n height: 100px;\n width: 100%; \n background-color: #B8AAE0;\n margin-top: -21px;\n text-align: center;\n vertical-align: middle;\n line-height: 100px; \n}\n\n.topbar h1 {\n font-size: 35px;\n font-weight: normal; \n margin-top: 7px;\n padding-top: 5px;\n}\n\n.white{\n font-weight: bold; \n color: #ffffdb !important; \n}\n\n.logout{\n width: 2.3%;\n height: auto; \n}\n\n\n",".my-masonry-grid {\n display: -webkit-box; /* Not needed if autoprefixing */\n display: -ms-flexbox; /* Not needed if autoprefixing */\n display: flex;\n margin-left: -10px; /* gutter size offset */\n padding: 30px 30px 30px 80px ; \n width: auto;\n }\n \n .my-masonry-grid_column {\n padding-left: 60px; /* gutter size */\n margin-bottom: 20px; \n background-clip: padding-box;\n }\n\n .green-note{ \n width: 300px; \n border-radius: 9px;\n text-align: center; \n justify-content: center;\n align-items: center;\n padding: 20px 0px 20px 0px; \n margin-bottom: 30px; \n background-color: #DDFC84; \n}\n\n.orange-note{ \n width: 300px; \n border-radius: 9px;\n text-align: center; \n justify-content: center;\n align-items: center;\n padding: 20px 0px 20px 0px; \n margin-bottom: 30px; \n background-color: #FCA884; \n}\n\n.red-note{ \n width: 300px; \n border-radius: 9px;\n text-align: center; \n justify-content: center;\n align-items: center;\n padding: 20px 0px 20px 0px; \n margin-bottom: 30px; \n background-color: rgb(212, 120, 120); \n}\n\n\nh2.table{\n font-size: 28px; \n font-weight: bold; \n justify-content: center;\n}\n\n.products-on-note {\n display: grid; \n grid-template-columns: 80% 20%;\n padding: 0px 30px 0px 10px; \n}\n\nli.product-name{\n font-size: 20px; \n text-align: left; \n \n}\n\np.product-quantity{\n font-size: 20px;\n text-align: right; \n font-weight: bold;\n padding-top: 12px; \n\n}\n\nul.note-ul{\n list-style: none;\n}\n\nul.note-ul li::before {\n content: \"\\22C6\"; /* Add content: \\2022 is the CSS Code/unicode for a bullet */\n display: inline-block; /* Needed to add space between the bullet and the text */\n width: 1em; /* Also needed for space (tweak if needed) */\n margin-left: -1em; /* Also needed for space (tweak if needed) */\n }\n\n.no-orders-message-container{\n display: flex; \n justify-content: center;\n padding-top: 250px; \n}\n.no-orders-message{\n font-size: 25px; \n \n}"]} \ No newline at end of file diff --git a/build/static/js/2.29bfcd43.chunk.js b/build/static/js/2.29bfcd43.chunk.js new file mode 100644 index 000000000..4e7fdecb8 --- /dev/null +++ b/build/static/js/2.29bfcd43.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 2.29bfcd43.chunk.js.LICENSE.txt */ +(this["webpackJsonpburger-queen"]=this["webpackJsonpburger-queen"]||[]).push([[2],[function(t,e,n){"use strict";t.exports=n(51)},function(t,e,n){"use strict";n.d(e,"a",(function(){return _})),n.d(e,"b",(function(){return k})),n.d(e,"c",(function(){return m})),n.d(e,"d",(function(){return P})),n.d(e,"e",(function(){return y})),n.d(e,"f",(function(){return S})),n.d(e,"g",(function(){return L})),n.d(e,"h",(function(){return D}));var r=n(6),i=n(0),o=n.n(i),a=(n(13),n(8)),s=n(27),u=n(7),c=n(4),l=n(28),f=n.n(l),h=(n(32),n(11)),p=n(36),d=n.n(p),v=function(t){var e=Object(s.a)();return e.displayName=t,e}("Router-History"),y=function(t){var e=Object(s.a)();return e.displayName=t,e}("Router"),m=function(t){function e(e){var n;return(n=t.call(this,e)||this).state={location:e.history.location},n._isMounted=!1,n._pendingLocation=null,e.staticContext||(n.unlisten=e.history.listen((function(t){n._isMounted?n.setState({location:t}):n._pendingLocation=t}))),n}Object(r.a)(e,t),e.computeRootMatch=function(t){return{path:"/",url:"/",params:{},isExact:"/"===t}};var n=e.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return o.a.createElement(y.Provider,{value:{history:this.props.history,location:this.state.location,match:e.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.a.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},e}(o.a.Component);o.a.Component;var g=function(t){function e(){return t.apply(this,arguments)||this}Object(r.a)(e,t);var n=e.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(t){this.props.onUpdate&&this.props.onUpdate.call(this,this,t)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},e}(o.a.Component);var b={},w=0;function E(t,e){return void 0===t&&(t="/"),void 0===e&&(e={}),"/"===t?t:function(t){if(b[t])return b[t];var e=f.a.compile(t);return w<1e4&&(b[t]=e,w++),e}(t)(e,{pretty:!0})}function _(t){var e=t.computedMatch,n=t.to,r=t.push,i=void 0!==r&&r;return o.a.createElement(y.Consumer,null,(function(t){t||Object(u.a)(!1);var r=t.history,s=t.staticContext,l=i?r.push:r.replace,f=Object(a.c)(e?"string"===typeof n?E(n,e.params):Object(c.a)({},n,{pathname:E(n.pathname,e.params)}):n);return s?(l(f),null):o.a.createElement(g,{onMount:function(){l(f)},onUpdate:function(t,e){var n=Object(a.c)(e.to);Object(a.f)(n,Object(c.a)({},f,{key:n.key}))||l(f)},to:n})}))}var T={},I=0;function S(t,e){void 0===e&&(e={}),("string"===typeof e||Array.isArray(e))&&(e={path:e});var n=e,r=n.path,i=n.exact,o=void 0!==i&&i,a=n.strict,s=void 0!==a&&a,u=n.sensitive,c=void 0!==u&&u;return[].concat(r).reduce((function(e,n){if(!n&&""!==n)return null;if(e)return e;var r=function(t,e){var n=""+e.end+e.strict+e.sensitive,r=T[n]||(T[n]={});if(r[t])return r[t];var i=[],o={regexp:f()(t,i,e),keys:i};return I<1e4&&(r[t]=o,I++),o}(n,{end:o,strict:s,sensitive:c}),i=r.regexp,a=r.keys,u=i.exec(t);if(!u)return null;var l=u[0],h=u.slice(1),p=t===l;return o&&!p?null:{path:n,url:"/"===n&&""===l?"/":l,isExact:p,params:a.reduce((function(t,e,n){return t[e.name]=h[n],t}),{})}}),null)}var k=function(t){function e(){return t.apply(this,arguments)||this}return Object(r.a)(e,t),e.prototype.render=function(){var t=this;return o.a.createElement(y.Consumer,null,(function(e){e||Object(u.a)(!1);var n=t.props.location||e.location,r=t.props.computedMatch?t.props.computedMatch:t.props.path?S(n.pathname,t.props):e.match,i=Object(c.a)({},e,{location:n,match:r}),a=t.props,s=a.children,l=a.component,f=a.render;return Array.isArray(s)&&0===s.length&&(s=null),o.a.createElement(y.Provider,{value:i},i.match?s?"function"===typeof s?s(i):s:l?o.a.createElement(l,i):f?f(i):null:"function"===typeof s?s(i):null)}))},e}(o.a.Component);function x(t){return"/"===t.charAt(0)?t:"/"+t}function N(t,e){if(!t)return e;var n=x(t);return 0!==e.pathname.indexOf(n)?e:Object(c.a)({},e,{pathname:e.pathname.substr(n.length)})}function A(t){return"string"===typeof t?t:Object(a.e)(t)}function O(t){return function(){Object(u.a)(!1)}}function C(){}o.a.Component;var P=function(t){function e(){return t.apply(this,arguments)||this}return Object(r.a)(e,t),e.prototype.render=function(){var t=this;return o.a.createElement(y.Consumer,null,(function(e){e||Object(u.a)(!1);var n,r,i=t.props.location||e.location;return o.a.Children.forEach(t.props.children,(function(t){if(null==r&&o.a.isValidElement(t)){n=t;var a=t.props.path||t.props.from;r=a?S(i.pathname,Object(c.a)({},t.props,{path:a})):e.match}})),r?o.a.cloneElement(n,{location:i,computedMatch:r}):null}))},e}(o.a.Component);function D(t){var e="withRouter("+(t.displayName||t.name)+")",n=function(e){var n=e.wrappedComponentRef,r=Object(h.a)(e,["wrappedComponentRef"]);return o.a.createElement(y.Consumer,null,(function(e){return e||Object(u.a)(!1),o.a.createElement(t,Object(c.a)({},r,e,{ref:n}))}))};return n.displayName=e,n.WrappedComponent=t,d()(n,t)}var R=o.a.useContext;function L(){return R(y).location}},function(t,e,n){"use strict";n.d(e,"a",(function(){return R})),n.d(e,"b",(function(){return Q}));var r=n(0),i=n.n(r),o=n(12),a=n.n(o),s=n(11),u=n(6),c=(n(13),!1),l=i.a.createContext(null),f=function(t){function e(e,n){var r;r=t.call(this,e,n)||this;var i,o=n&&!n.isMounting?e.enter:e.appear;return r.appearStatus=null,e.in?o?(i="exited",r.appearStatus="entering"):i="entered":i=e.unmountOnExit||e.mountOnEnter?"unmounted":"exited",r.state={status:i},r.nextCallback=null,r}Object(u.a)(e,t),e.getDerivedStateFromProps=function(t,e){return t.in&&"unmounted"===e.status?{status:"exited"}:null};var n=e.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(t){var e=null;if(t!==this.props){var n=this.state.status;this.props.in?"entering"!==n&&"entered"!==n&&(e="entering"):"entering"!==n&&"entered"!==n||(e="exiting")}this.updateStatus(!1,e)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var t,e,n,r=this.props.timeout;return t=e=n=r,null!=r&&"number"!==typeof r&&(t=r.exit,e=r.enter,n=void 0!==r.appear?r.appear:e),{exit:t,enter:e,appear:n}},n.updateStatus=function(t,e){void 0===t&&(t=!1),null!==e?(this.cancelNextCallback(),"entering"===e?this.performEnter(t):this.performExit()):this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:"unmounted"})},n.performEnter=function(t){var e=this,n=this.props.enter,r=this.context?this.context.isMounting:t,i=this.props.nodeRef?[r]:[a.a.findDOMNode(this),r],o=i[0],s=i[1],u=this.getTimeouts(),l=r?u.appear:u.enter;!t&&!n||c?this.safeSetState({status:"entered"},(function(){e.props.onEntered(o)})):(this.props.onEnter(o,s),this.safeSetState({status:"entering"},(function(){e.props.onEntering(o,s),e.onTransitionEnd(l,(function(){e.safeSetState({status:"entered"},(function(){e.props.onEntered(o,s)}))}))})))},n.performExit=function(){var t=this,e=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:a.a.findDOMNode(this);e&&!c?(this.props.onExit(r),this.safeSetState({status:"exiting"},(function(){t.props.onExiting(r),t.onTransitionEnd(n.exit,(function(){t.safeSetState({status:"exited"},(function(){t.props.onExited(r)}))}))}))):this.safeSetState({status:"exited"},(function(){t.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(t,e){e=this.setNextCallback(e),this.setState(t,e)},n.setNextCallback=function(t){var e=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,e.nextCallback=null,t(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(t,e){this.setNextCallback(e);var n=this.props.nodeRef?this.props.nodeRef.current:a.a.findDOMNode(this),r=null==t&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],o=i[0],s=i[1];this.props.addEndListener(o,s)}null!=t&&setTimeout(this.nextCallback,t)}else setTimeout(this.nextCallback,0)},n.render=function(){var t=this.state.status;if("unmounted"===t)return null;var e=this.props,n=e.children,r=(e.in,e.mountOnEnter,e.unmountOnExit,e.appear,e.enter,e.exit,e.timeout,e.addEndListener,e.onEnter,e.onEntering,e.onEntered,e.onExit,e.onExiting,e.onExited,e.nodeRef,Object(s.a)(e,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.a.createElement(l.Provider,{value:null},"function"===typeof n?n(t,r):i.a.cloneElement(i.a.Children.only(n),r))},e}(i.a.Component);function h(){}f.contextType=l,f.propTypes={},f.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:h,onEntering:h,onEntered:h,onExit:h,onExiting:h,onExited:h},f.UNMOUNTED="unmounted",f.EXITED="exited",f.ENTERING="entering",f.ENTERED="entered",f.EXITING="exiting";var p=f,d=n(17),v=n.n(d);function y(){return(y=Object.assign||function(t){for(var e=1;e=0||(i[n]=t[n]);return i}var g={list:new Map,emitQueue:new Map,on:function(t,e){return this.list.has(t)||this.list.set(t,[]),this.list.get(t).push(e),this},off:function(t,e){if(e){var n=this.list.get(t).filter((function(t){return t!==e}));return this.list.set(t,n),this}return this.list.delete(t),this},cancelEmit:function(t){var e=this.emitQueue.get(t);return e&&(e.forEach((function(t){return clearTimeout(t)})),this.emitQueue.delete(t)),this},emit:function(t){for(var e=this,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i=1?"onTransitionEnd":"onAnimationEnd"]=f&&h<1?null:function(){d&&a()},n);return Object(r.createElement)("div",Object.assign({className:g,style:m},b))}C.defaultProps={type:N.DEFAULT,hide:!1};var P=function(t){var e,n=function(t){var e=Object(r.useState)(!0),n=e[0],i=e[1],o=Object(r.useState)(!1),a=o[0],s=o[1],u=Object(r.useRef)(null),c=X({start:0,x:0,y:0,deltaX:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,boundingRect:null}),l=X(t,!0),f=t.autoClose,h=t.pauseOnHover,p=t.closeToast,d=t.onClick,v=t.closeOnClick;function y(e){var n=u.current;c.canCloseOnClick=!0,c.canDrag=!0,c.boundingRect=n.getBoundingClientRect(),n.style.transition="",c.start=c.x=J(e.nativeEvent),c.removalDistance=n.offsetWidth*(t.draggablePercent/100)}function m(){if(c.boundingRect){var e=c.boundingRect,n=e.top,r=e.bottom,i=e.left,o=e.right;t.pauseOnHover&&c.x>=i&&c.x<=o&&c.y>=n&&c.y<=r?b():g()}}function g(){i(!0)}function b(){i(!1)}function w(t){var e=u.current;c.canDrag&&(n&&b(),c.x=J(t),c.deltaX=c.x-c.start,c.y=function(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientY:t.clientY}(t),c.start!==c.x&&(c.canCloseOnClick=!1),e.style.transform="translateX("+c.deltaX+"px)",e.style.opacity=""+(1-Math.abs(c.deltaX/c.removalDistance)))}function E(){var e=u.current;if(c.canDrag){if(c.canDrag=!1,Math.abs(c.deltaX)>c.removalDistance)return s(!0),void t.closeToast();e.style.transition="transform 0.2s, opacity 0.2s",e.style.transform="translateX(0)",e.style.opacity="1"}}Object(r.useEffect)((function(){return _(t.onOpen)&&t.onOpen(Object(r.isValidElement)(t.children)&&t.children.props),function(){_(l.onClose)&&l.onClose(Object(r.isValidElement)(l.children)&&l.children.props)}}),[]),Object(r.useEffect)((function(){return t.draggable&&(document.addEventListener("mousemove",w),document.addEventListener("mouseup",E),document.addEventListener("touchmove",w),document.addEventListener("touchend",E)),function(){t.draggable&&(document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",E),document.removeEventListener("touchmove",w),document.removeEventListener("touchend",E))}}),[t.draggable]),Object(r.useEffect)((function(){return t.pauseOnFocusLoss&&(window.addEventListener("focus",g),window.addEventListener("blur",b)),function(){t.pauseOnFocusLoss&&(window.removeEventListener("focus",g),window.removeEventListener("blur",b))}}),[t.pauseOnFocusLoss]);var T={onMouseDown:y,onTouchStart:y,onMouseUp:m,onTouchEnd:m};f&&h&&(T.onMouseEnter=b,T.onMouseLeave=g);v&&(T.onClick=function(t){d&&d(t),c.canCloseOnClick&&p()});return{playToast:g,pauseToast:b,isRunning:n,preventExitTransition:a,toastRef:u,eventHandlers:T}}(t),i=n.isRunning,o=n.preventExitTransition,a=n.toastRef,s=n.eventHandlers,u=t.closeButton,c=t.children,l=t.autoClose,f=t.onClick,h=t.type,p=t.hideProgressBar,d=t.closeToast,y=t.transition,m=t.position,g=t.className,b=t.style,w=t.bodyClassName,E=t.bodyStyle,T=t.progressClassName,I=t.progressStyle,S=t.updateId,k=t.role,x=t.progress,N=t.rtl,A=t.toastId,O=t.deleteToast,P=v()("Toastify__toast","Toastify__toast--"+h,((e={})["Toastify__toast--rtl"]=N,e),g),D=!!x;return Object(r.createElement)(y,{in:t.in,appear:!0,done:O,position:m,preventExitTransition:o,nodeRef:a},Object(r.createElement)("div",Object.assign({id:A,onClick:f,className:P},s,{style:b,ref:a}),Object(r.createElement)("div",Object.assign({},t.in&&{role:k},{className:v()("Toastify__toast-body",w),style:E}),c),function(t){if(!t)return null;var e={closeToast:d,type:h};return _(t)?t(e):Object(r.isValidElement)(t)?Object(r.cloneElement)(t,e):void 0}(u),(l||D)&&Object(r.createElement)(C,Object.assign({},S&&!D?{key:"pb-"+S}:{},{rtl:N,delay:l,isRunning:i,isIn:t.in,closeToast:d,hide:p,type:h,style:I,className:T,controlledProgress:D,progress:x}))))},D=A({enter:"Toastify__bounce-enter",exit:"Toastify__bounce-exit",appendPosition:!0}),R=A({enter:"Toastify__slide-enter",exit:"Toastify__slide-exit",duration:[450,750],appendPosition:!0}),L=function(t){var e=t.children,n=t.className,i=t.style,o=m(t,["children","className","style"]);return delete o.in,Object(r.createElement)("div",{className:n,style:i},r.Children.map(e,(function(t){return Object(r.cloneElement)(t,o)})))},j=function(t){var e=function(t){var e=Object(r.useReducer)((function(t){return t+1}),0)[1],n=Object(r.useReducer)(Y,[]),i=n[0],o=n[1],a=Object(r.useRef)(null),s=X(0),u=X([]),c=X({}),l=X({toastKey:1,displayedToast:0,props:t,containerId:null,isToastActive:f,getToast:function(t){return c[t]||null}});function f(t){return-1!==i.indexOf(t)}function h(t){var e=t.containerId,n=l.props,r=n.limit,i=n.enableMultiContainer;r&&(!e||l.containerId===e&&i)&&(s-=u.length,u=[])}function p(t){var e=u.length;if((s=I(t)?s-1:s-l.displayedToast)<0&&(s=0),e>0){var n=I(t)?1:l.props.limit;if(1===e||1===n)l.displayedToast++,d();else{var r=n>e?e:n;l.displayedToast=r;for(var i=0;i0?S:x),hideProgressBar:w(f.hideProgressBar)?f.hideProgressBar:v.hideProgressBar,progress:f.progress,role:E(f.role)?f.role:v.role,deleteToast:function(){!function(t){delete c[t],e()}(h)}};_(f.onOpen)&&(N.onOpen=f.onOpen),_(f.onClose)&&(N.onClose=f.onClose);var A=v.closeButton;!1===f.closeButton||k(f.closeButton)?A=f.closeButton:!0===f.closeButton&&(A=!k(v.closeButton)||v.closeButton),N.closeButton=A;var O=t;Object(r.isValidElement)(t)&&!E(t.type)?O=Object(r.cloneElement)(t,{closeToast:g}):_(t)&&(O=t({closeToast:g})),v.limit&&v.limit>0&&s>v.limit&&I?u.push({toastContent:O,toastProps:N,staleId:o}):b(i)&&i>0?setTimeout((function(){y(O,N,o)}),i):y(O,N,o)}}function y(t,e,n){var r=e.toastId;c[r]={content:t,props:e},o({type:"ADD",toastId:r,staleId:n})}function S(e){for(var n={},r=t.newestOnTop?Object.keys(c).reverse():Object.keys(c),i=0;i0}function G(t,e){var n=function(t){return q()?V.get(t||M):null}(e.containerId);return n?n.getToast(t):null}function H(){return(Math.random().toString(36)+Date.now().toString(36)).substr(2,10)}function W(t){return t&&(E(t.toastId)||b(t.toastId))?t.toastId:H()}function K(t,e){return q()?g.emit(0,t,e):(z.push({content:t,options:e}),B&&S&&(B=!1,U=document.createElement("div"),document.body.appendChild(U),Object(o.render)(Object(r.createElement)(j,Object.assign({},F)),U))),e.toastId}function $(t,e){return y(y({},e),{},{type:e&&e.type||t,toastId:W(e)})}var Q=function(t,e){return K(t,$(N.DEFAULT,e))};function X(t,e){void 0===e&&(e=!1);var n=Object(r.useRef)(t);return Object(r.useEffect)((function(){e&&(n.current=t)})),n.current}function Y(t,e){switch(e.type){case"ADD":return[].concat(t,[e.toastId]).filter((function(t){return t!==e.staleId}));case"REMOVE":return I(e.toastId)?t.filter((function(t){return t!==e.toastId})):[]}}function J(t){return t.targetTouches&&t.targetTouches.length>=1?t.targetTouches[0].clientX:t.clientX}Q.success=function(t,e){return K(t,$(N.SUCCESS,e))},Q.info=function(t,e){return K(t,$(N.INFO,e))},Q.error=function(t,e){return K(t,$(N.ERROR,e))},Q.warning=function(t,e){return K(t,$(N.WARNING,e))},Q.dark=function(t,e){return K(t,$(N.DARK,e))},Q.warn=Q.warning,Q.dismiss=function(t){return q()&&g.emit(1,t)},Q.clearWaitingQueue=function(t){return void 0===t&&(t={}),q()&&g.emit(5,t)},Q.isActive=function(t){var e=!1;return V.forEach((function(n){n.isToastActive&&n.isToastActive(t)&&(e=!0)})),e},Q.update=function(t,e){void 0===e&&(e={}),setTimeout((function(){var n=G(t,e);if(n){var r=n.props,i=n.content,o=y(y(y({},r),e),{},{toastId:e.toastId||t,updateId:H()});o.toastId!==t&&(o.staleId=t);var a="undefined"!==typeof o.render?o.render:i;delete o.render,K(a,o)}}),0)},Q.done=function(t){Q.update(t,{progress:1})},Q.onChange=function(t){return _(t)&&g.on(4,t),function(){_(t)&&g.off(4,t)}},Q.configure=function(t){void 0===t&&(t={}),B=!0,F=t},Q.POSITION=x,Q.TYPE=N,g.on(2,(function(t){M=t.containerId||t,V.set(M,t),z.forEach((function(t){g.emit(0,t.content,t.options)})),z=[]})).on(3,(function(t){V.delete(t.containerId||t),0===V.size&&g.off(0).off(1).off(5),S&&U&&document.body.removeChild(U)}))},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e=0;h--){var p=a[h];"."===p?o(a,h):".."===p?(o(a,h),f++):f&&(o(a,h),f--)}if(!c)for(;f--;f)a.unshift("..");!c||""===a[0]||a[0]&&i(a[0])||a.unshift("");var d=a.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d};function s(t){return t.valueOf?t.valueOf():Object.prototype.valueOf.call(t)}var u=function t(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(Array.isArray(e))return Array.isArray(n)&&e.length===n.length&&e.every((function(e,r){return t(e,n[r])}));if("object"===typeof e||"object"===typeof n){var r=s(e),i=s(n);return r!==e||i!==n?t(r,i):Object.keys(Object.assign({},e,n)).every((function(r){return t(e[r],n[r])}))}return!1},c=n(7);function l(t){return"/"===t.charAt(0)?t:"/"+t}function f(t){return"/"===t.charAt(0)?t.substr(1):t}function h(t,e){return function(t,e){return 0===t.toLowerCase().indexOf(e.toLowerCase())&&-1!=="/?#".indexOf(t.charAt(e.length))}(t,e)?t.substr(e.length):t}function p(t){return"/"===t.charAt(t.length-1)?t.slice(0,-1):t}function d(t){var e=t.pathname,n=t.search,r=t.hash,i=e||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function v(t,e,n,i){var o;"string"===typeof t?(o=function(t){var e=t||"/",n="",r="",i=e.indexOf("#");-1!==i&&(r=e.substr(i),e=e.substr(0,i));var o=e.indexOf("?");return-1!==o&&(n=e.substr(o),e=e.substr(0,o)),{pathname:e,search:"?"===n?"":n,hash:"#"===r?"":r}}(t)).state=e:(void 0===(o=Object(r.a)({},t)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==e&&void 0===o.state&&(o.state=e));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function y(t,e){return t.pathname===e.pathname&&t.search===e.search&&t.hash===e.hash&&t.key===e.key&&u(t.state,e.state)}function m(){var t=null;var e=[];return{setPrompt:function(e){return t=e,function(){t===e&&(t=null)}},confirmTransitionTo:function(e,n,r,i){if(null!=t){var o="function"===typeof t?t(e,n):t;"string"===typeof o?"function"===typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(t){var n=!0;function r(){n&&t.apply(void 0,arguments)}return e.push(r),function(){n=!1,e=e.filter((function(t){return t!==r}))}},notifyListeners:function(){for(var t=arguments.length,n=new Array(t),r=0;re?n.splice(e,n.length-e,r):n.push(r),f({action:"PUSH",location:r,index:e,entries:n})}}))},replace:function(t,e){var r=v(t,e,h(),w.location);l.confirmTransitionTo(r,"REPLACE",n,(function(t){t&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(t){var e=w.index+t;return e>=0&&e=0||(i[n]=t[n]);return i}n.d(e,"a",(function(){return r}))},function(t,e,n){"use strict";!function t(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}}(),t.exports=n(52)},function(t,e,n){t.exports=n(64)()},function(t,e,n){t.exports=n(56)},function(t,e,n){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=0;s--)(i=t[s])&&(a=(o<3?i(a):o>3?i(e,n,a):i(e,n))||a);return o>3&&a&&Object.defineProperty(e,n,a),a}function u(t,e){return function(n,r){e(n,r,t)}}function c(t,e){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(t,e)}function l(t,e,n,r){return new(n||(n=Promise))((function(i,o){function a(t){try{u(r.next(t))}catch(e){o(e)}}function s(t){try{u(r.throw(t))}catch(e){o(e)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(a,s)}u((r=r.apply(t,e||[])).next())}))}function f(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(t,e){var n="function"===typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,i,o=n.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(s){i={error:s}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function y(){for(var t=[],e=0;e1||s(t,e)}))})}function s(t,e){try{(n=i[t](e)).value instanceof g?Promise.resolve(n.value.v).then(u,c):l(o[0][2],n)}catch(r){l(o[0][3],r)}var n}function u(t){s("next",t)}function c(t){s("throw",t)}function l(t,e){t(e),o.shift(),o.length&&s(o[0][0],o[0][1])}}function w(t){var e,n;return e={},r("next"),r("throw",(function(t){throw t})),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,i){e[r]=t[r]?function(e){return(n=!n)?{value:g(t[r](e)),done:"return"===r}:i?i(e):e}:i}}function E(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=d(t),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,i,(e=t[n](e)).done,e.value)}))}}}function _(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function T(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function I(t){return t&&t.__esModule?t:{default:t}}function S(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function k(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";function r(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(c){return void n(c)}s.done?e(u):Promise.resolve(u).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,u,"next",t)}function u(t){r(a,i,o,s,u,"throw",t)}s(void 0)}))}}n.d(e,"a",(function(){return i}))},function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var r=n(15);function i(t,e){if(t){if("string"===typeof t)return Object(r.a)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(t,e):void 0}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=Object.assign||function(t){for(var e=1;e0&&t<=a&&a=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}(t,["children","breakpointCols","columnClassName","columnAttrs","column","className"]),r=e;return"string"!==typeof e&&(this.logDeprecated('The property "className" requires a string'),"undefined"===typeof e&&(r="my-masonry-grid")),u.default.createElement("div",i({},n,{className:r}),this.renderColumns())}}]),e}(u.default.Component);l.defaultProps=c,e.default=l},,function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i,o=n(18),a=n(25),s=n(30),u=n(31),c=((r={})["no-app"]="No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",r["bad-app-name"]="Illegal App name: '{$appName}",r["duplicate-app"]="Firebase App named '{$appName}' already exists",r["app-deleted"]="Firebase App named '{$appName}' already deleted",r["invalid-app-argument"]="firebase.{$appName}() takes either no argument or a Firebase App instance.",r["invalid-log-argument"]="First argument to `onLog` must be null or a function.",r),l=new a.ErrorFactory("app","Firebase",c),f=((i={})["@firebase/app"]="fire-core",i["@firebase/analytics"]="fire-analytics",i["@firebase/auth"]="fire-auth",i["@firebase/database"]="fire-rtdb",i["@firebase/functions"]="fire-fn",i["@firebase/installations"]="fire-iid",i["@firebase/messaging"]="fire-fcm",i["@firebase/performance"]="fire-perf",i["@firebase/remote-config"]="fire-rc",i["@firebase/storage"]="fire-gcs",i["@firebase/firestore"]="fire-fst",i["fire-js"]="fire-js",i["firebase-wrapper"]="fire-js-all",i),h=new u.Logger("@firebase/app"),p=function(){function t(t,e,n){var r,i,u=this;this.firebase_=n,this.isDeleted_=!1,this.name_=e.name,this.automaticDataCollectionEnabled_=e.automaticDataCollectionEnabled||!1,this.options_=a.deepCopy(t),this.container=new s.ComponentContainer(e.name),this._addComponent(new s.Component("app",(function(){return u}),"PUBLIC"));try{for(var c=o.__values(this.firebase_.INTERNAL.components.values()),l=c.next();!l.done;l=c.next()){var f=l.value;this._addComponent(f)}}catch(h){r={error:h}}finally{try{l&&!l.done&&(i=c.return)&&i.call(c)}finally{if(r)throw r.error}}}return Object.defineProperty(t.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this.automaticDataCollectionEnabled_},set:function(t){this.checkDestroyed_(),this.automaticDataCollectionEnabled_=t},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!1,configurable:!0}),t.prototype.delete=function(){var t=this;return new Promise((function(e){t.checkDestroyed_(),e()})).then((function(){return t.firebase_.INTERNAL.removeApp(t.name_),Promise.all(t.container.getProviders().map((function(t){return t.delete()})))})).then((function(){t.isDeleted_=!0}))},t.prototype._getService=function(t,e){return void 0===e&&(e="[DEFAULT]"),this.checkDestroyed_(),this.container.getProvider(t).getImmediate({identifier:e})},t.prototype._removeServiceInstance=function(t,e){void 0===e&&(e="[DEFAULT]"),this.container.getProvider(t).clearInstance(e)},t.prototype._addComponent=function(t){try{this.container.addComponent(t)}catch(e){h.debug("Component "+t.name+" failed to register with FirebaseApp "+this.name,e)}},t.prototype._addOrOverwriteComponent=function(t){this.container.addOrOverwriteComponent(t)},t.prototype.checkDestroyed_=function(){if(this.isDeleted_)throw l.create("app-deleted",{appName:this.name_})},t}();p.prototype.name&&p.prototype.options||p.prototype.delete||console.log("dc");var d=function t(){var e=function(t){var e={},n=new Map,r={__esModule:!0,initializeApp:function(n,i){void 0===i&&(i={});if("object"!==typeof i||null===i){i={name:i}}var o=i;void 0===o.name&&(o.name="[DEFAULT]");var s=o.name;if("string"!==typeof s||!s)throw l.create("bad-app-name",{appName:String(s)});if(a.contains(e,s))throw l.create("duplicate-app",{appName:s});var u=new t(n,o,r);return e[s]=u,u},app:i,registerVersion:function(t,e,n){var r,i=null!==(r=f[t])&&void 0!==r?r:t;n&&(i+="-"+n);var o=i.match(/\s|\//),a=e.match(/\s|\//);if(o||a){var u=['Unable to register library "'+i+'" with version "'+e+'":'];return o&&u.push('library name "'+i+'" contains illegal characters (whitespace or "/")'),o&&a&&u.push("and"),a&&u.push('version name "'+e+'" contains illegal characters (whitespace or "/")'),void h.warn(u.join(" "))}c(new s.Component(i+"-version",(function(){return{library:i,version:e}}),"VERSION"))},setLogLevel:u.setLogLevel,onLog:function(t,e){if(null!==t&&"function"!==typeof t)throw l.create("invalid-log-argument",{appName:name});u.setUserLogHandler(t,e)},apps:null,SDK_VERSION:"7.16.0",INTERNAL:{registerComponent:c,removeApp:function(t){delete e[t]},components:n,useAsService:function(t,e){if("serverAuth"===e)return null;return e}}};function i(t){if(t=t||"[DEFAULT]",!a.contains(e,t))throw l.create("no-app",{appName:t});return e[t]}function c(s){var u,c,f=s.name;if(n.has(f))return h.debug("There were multiple attempts to register component "+f+"."),"PUBLIC"===s.type?r[f]:null;if(n.set(f,s),"PUBLIC"===s.type){var p=function(t){if(void 0===t&&(t=i()),"function"!==typeof t[f])throw l.create("invalid-app-argument",{appName:f});return t[f]()};void 0!==s.serviceProps&&a.deepExtend(p,s.serviceProps),r[f]=p,t.prototype[f]=function(){for(var t=[],e=0;e=0&&h.warn("\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\n ")}var m=d.initializeApp;d.initializeApp=function(){for(var t=[],e=0;e>6|192,e[n++]=63&i|128):55296===(64512&i)&&r+1>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e},u={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"===typeof atob,encodeByteArray:function(t,e){if(!Array.isArray(t))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i>2,f=(3&o)<<4|s>>4,h=(15&s)<<2|c>>6,p=63&c;u||(p=64,a||(h=64)),r.push(n[l],n[f],n[h],n[p])}return r.join("")},encodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?btoa(t):this.encodeByteArray(s(t),e)},decodeString:function(t,e){return this.HAS_NATIVE_SUPPORT&&!e?atob(t):function(t){for(var e=[],n=0,r=0;n191&&i<224){var o=t[n++];e[r++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){var a=((7&i)<<18|(63&(o=t[n++]))<<12|(63&(s=t[n++]))<<6|63&t[n++])-65536;e[r++]=String.fromCharCode(55296+(a>>10)),e[r++]=String.fromCharCode(56320+(1023&a))}else{o=t[n++];var s=t[n++];e[r++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&s)}}return e.join("")}(this.decodeStringToByteArray(t,e))},decodeStringToByteArray:function(t,e){this.init_();for(var n=e?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i>4;if(r.push(c),64!==s){var l=a<<4&240|s>>2;if(r.push(l),64!==u){var f=s<<6&192|u;r.push(f)}}}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var t=0;t=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(t)]=t,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(t)]=t)}}},c=function(t){try{return u.decodeString(t,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function l(t,e){if(!(e instanceof Object))return e;switch(e.constructor){case Date:return new Date(e.getTime());case Object:void 0===t&&(t={});break;case Array:t=[];break;default:return e}for(var n in e)e.hasOwnProperty(n)&&(t[n]=l(t[n],e[n]));return t}var f=function(){function t(){var t=this;this.reject=function(){},this.resolve=function(){},this.promise=new Promise((function(e,n){t.resolve=e,t.reject=n}))}return t.prototype.wrapCallback=function(t){var e=this;return function(n,r){n?e.reject(n):e.resolve(r),"function"===typeof t&&(e.promise.catch((function(){})),1===t.length?t(n):t(n,r))}},t}();function h(){return"undefined"!==typeof navigator&&"string"===typeof navigator.userAgent?navigator.userAgent:""}function p(){try{return"[object process]"===Object.prototype.toString.call(t.process)}catch(e){return!1}}var d=function(t){function e(n,r){var i=t.call(this,r)||this;return i.code=n,i.name="FirebaseError",Object.setPrototypeOf(i,e.prototype),Error.captureStackTrace&&Error.captureStackTrace(i,v.prototype.create),i}return r.__extends(e,t),e}(Error),v=function(){function t(t,e,n){this.service=t,this.serviceName=e,this.errors=n}return t.prototype.create=function(t){for(var e=[],n=1;n"}))}var m=/\{\$([^}]+)}/g;function g(t){return JSON.parse(t)}var b=function(t){var e={},n={},r={},i="";try{var o=t.split(".");e=g(c(o[0])||""),n=g(c(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch(a){}return{header:e,claims:n,data:r,signature:i}};var w=function(){function t(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(var t=1;t>>31)}var o,a,s=this.chain_[0],u=this.chain_[1],c=this.chain_[2],l=this.chain_[3],f=this.chain_[4];for(r=0;r<80;r++){r<40?r<20?(o=l^u&(c^l),a=1518500249):(o=u^c^l,a=1859775393):r<60?(o=u&c|l&(u|c),a=2400959708):(o=u^c^l,a=3395469782);i=(s<<5|s>>>27)+o+f+a+n[r]&4294967295;f=l,l=c,c=4294967295&(u<<30|u>>>2),u=s,s=i}this.chain_[0]=this.chain_[0]+s&4294967295,this.chain_[1]=this.chain_[1]+u&4294967295,this.chain_[2]=this.chain_[2]+c&4294967295,this.chain_[3]=this.chain_[3]+l&4294967295,this.chain_[4]=this.chain_[4]+f&4294967295},t.prototype.update=function(t,e){if(null!=t){void 0===e&&(e=t.length);for(var n=e-this.blockSize,r=0,i=this.buf_,o=this.inbuf_;r=56;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);var r=0;for(n=0;n<5;n++)for(var i=24;i>=0;i-=8)t[r]=this.chain_[n]>>i&255,++r;return t},t}();var E=function(){function t(t,e){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=e,this.task.then((function(){t(n)})).catch((function(t){n.error(t)}))}return t.prototype.next=function(t){this.forEachObserver((function(e){e.next(t)}))},t.prototype.error=function(t){this.forEachObserver((function(e){e.error(t)})),this.close(t)},t.prototype.complete=function(){this.forEachObserver((function(t){t.complete()})),this.close()},t.prototype.subscribe=function(t,e,n){var r,i=this;if(void 0===t&&void 0===e&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(t,e){if("object"!==typeof t||null===t)return!1;for(var n=0,r=e;n 4. Need to update it?")}var i=t+" failed: ";return i+=r+" argument "}e.CONSTANTS=i,e.Deferred=f,e.ErrorFactory=v,e.FirebaseError=d,e.Sha1=w,e.assert=o,e.assertionError=a,e.async=function(t,e){return function(){for(var n=[],r=0;r=0},e.isEmpty=function(t){for(var e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0},e.isIE=function(){var t=h();return t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0},e.isMobileCordova=function(){return"undefined"!==typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(h())},e.isNode=p,e.isNodeSdk=function(){return!0===i.NODE_CLIENT||!0===i.NODE_ADMIN},e.isReactNative=function(){return"object"===typeof navigator&&"ReactNative"===navigator.product},e.isSafari=function(){return!p()&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")},e.isUWP=function(){return h().indexOf("MSAppHost/")>=0},e.isValidFormat=function(t){var e=b(t).claims;return!!e&&"object"===typeof e&&e.hasOwnProperty("iat")},e.isValidTimestamp=function(t){var e=b(t).claims,n=Math.floor((new Date).getTime()/1e3),r=0,i=0;return"object"===typeof e&&(e.hasOwnProperty("nbf")?r=e.nbf:e.hasOwnProperty("iat")&&(r=e.iat),i=e.hasOwnProperty("exp")?e.exp:r+86400),!!n&&!!r&&!!i&&n>=r&&n<=i},e.issuedAtTime=function(t){var e=b(t).claims;return"object"===typeof e&&e.hasOwnProperty("iat")?e.iat:null},e.jsonEval=g,e.map=function(t,e,n){var r={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(r[i]=e.call(n,t[i],i,t));return r},e.querystring=function(t){for(var e=[],n=function(t,n){Array.isArray(n)?n.forEach((function(n){e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))})):e.push(encodeURIComponent(t)+"="+encodeURIComponent(n))},r=0,i=Object.entries(t);r=55296&&r<=56319?(e+=4,n++):e+=3}return e},e.stringToByteArray=function(t){for(var e=[],n=0,r=0;r=55296&&i<=56319){var a=i-55296;r++,o(r>6|192,e[n++]=63&i|128):i<65536?(e[n++]=i>>12|224,e[n++]=i>>6&63|128,e[n++]=63&i|128):(e[n++]=i>>18|240,e[n++]=i>>12&63|128,e[n++]=i>>6&63|128,e[n++]=63&i|128)}return e},e.stringify=function(t){return JSON.stringify(t)},e.validateArgCount=function(t,e,n,r){var i;if(rn&&(i=0===n?"none":"no more than "+n),i)throw new Error(t+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".")},e.validateCallback=function(t,e,n,r){if((!r||n)&&"function"!==typeof n)throw new Error(T(t,e,r)+"must be a valid function.")},e.validateContextObject=function(t,e,n,r){if((!r||n)&&("object"!==typeof n||null===n))throw new Error(T(t,e,r)+"must be a valid context object.")},e.validateNamespace=function(t,e,n,r){if((!r||n)&&"string"!==typeof n)throw new Error(T(t,e,r)+"must be a valid firebase namespace.")}}).call(this,n(19))},function(t,e,n){},function(t,e,n){"use strict";(function(t){var r=n(0),i=n.n(r),o=n(6),a=n(13),s=n.n(a),u="undefined"!==typeof globalThis?globalThis:"undefined"!==typeof window?window:"undefined"!==typeof t?t:{};function c(t){var e=[];return{on:function(t){e.push(t)},off:function(t){e=e.filter((function(e){return e!==t}))},get:function(){return t},set:function(n,r){t=n,e.forEach((function(e){return e(t,r)}))}}}var l=i.a.createContext||function(t,e){var n,i,a="__create-react-context-"+function(){var t="__global_unique_id__";return u[t]=(u[t]||0)+1}()+"__",l=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).emitter=c(e.props.value),e}Object(o.a)(n,t);var r=n.prototype;return r.getChildContext=function(){var t;return(t={})[a]=this.emitter,t},r.componentWillReceiveProps=function(t){if(this.props.value!==t.value){var n,r=this.props.value,i=t.value;((o=r)===(a=i)?0!==o||1/o===1/a:o!==o&&a!==a)?n=0:(n="function"===typeof e?e(r,i):1073741823,0!==(n|=0)&&this.emitter.set(t.value,n))}var o,a},r.render=function(){return this.props.children},n}(r.Component);l.childContextTypes=((n={})[a]=s.a.object.isRequired,n);var f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).state={value:t.getValue()},t.onUpdate=function(e,n){0!==((0|t.observedBits)&n)&&t.setState({value:t.getValue()})},t}Object(o.a)(n,e);var r=n.prototype;return r.componentWillReceiveProps=function(t){var e=t.observedBits;this.observedBits=void 0===e||null===e?1073741823:e},r.componentDidMount=function(){this.context[a]&&this.context[a].on(this.onUpdate);var t=this.props.observedBits;this.observedBits=void 0===t||null===t?1073741823:t},r.componentWillUnmount=function(){this.context[a]&&this.context[a].off(this.onUpdate)},r.getValue=function(){return this.context[a]?this.context[a].get():t},r.render=function(){return(t=this.props.children,Array.isArray(t)?t[0]:t)(this.state.value);var t},n}(r.Component);return f.contextTypes=((i={})[a]=s.a.object,i),{Provider:l,Consumer:f}};e.a=l}).call(this,n(19))},function(t,e,n){var r=n(66);t.exports=p,t.exports.parse=o,t.exports.compile=function(t,e){return s(o(t,e),e)},t.exports.tokensToFunction=s,t.exports.tokensToRegExp=h;var i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(t,e){for(var n,r=[],o=0,a=0,s="",l=e&&e.delimiter||"/";null!=(n=i.exec(t));){var f=n[0],h=n[1],p=n.index;if(s+=t.slice(a,p),a=p+f.length,h)s+=h[1];else{var d=t[a],v=n[2],y=n[3],m=n[4],g=n[5],b=n[6],w=n[7];s&&(r.push(s),s="");var E=null!=v&&null!=d&&d!==v,_="+"===b||"*"===b,T="?"===b||"*"===b,I=n[2]||l,S=m||g;r.push({name:y||o++,prefix:v||"",delimiter:I,optional:T,repeat:_,partial:E,asterisk:!!w,pattern:S?c(S):w?".*":"[^"+u(I)+"]+?"})}}return a=(null!==r&&void 0!==r?r:e.logLevel)&&t({level:o[n].toLowerCase(),message:s,args:i,type:e.name})}},r=0,i=a;r>>((3&e)<<3)&255;return i}}},function(t,e){for(var n=[],r=0;r<256;++r)n[r]=(r+256).toString(16).substr(1);t.exports=function(t,e){var r=e||0,i=n;return[i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],"-",i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]],i[t[r++]]].join("")}},,function(t,e,n){"use strict";var r=n(32),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(t){return r.isMemo(t)?a:s[t.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,d=Object.prototype;t.exports=function t(e,n,r){if("string"!==typeof n){if(d){var i=p(n);i&&i!==d&&t(e,i,r)}var a=l(n);f&&(a=a.concat(f(n)));for(var s=u(e),v=u(n),y=0;yO.length&&O.push(t)}function D(t,e,n){return null==t?0:function t(e,n,r,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var u=!1;if(null===e)u=!0;else switch(s){case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case o:case a:u=!0}}if(u)return r(i,e,""===n?"."+R(e,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(e))for(var c=0;c