diff --git a/UML/0.Project/0.0.Config.puml b/UML/0.Project/0.0.Config.puml
new file mode 100644
index 0000000..2edaf51
--- /dev/null
+++ b/UML/0.Project/0.0.Config.puml
@@ -0,0 +1,46 @@
+@startuml(id=Config)
+'https://plantuml.com/es/gantt-diagram
+!theme plain
+
+'page 2x2
+skinparam defaultFontName consolas
+skinparam minClassWidth 100
+skinparam conditionStyle inside
+
+'printscale daily zoom 2
+saturday are closed and are colored in pink
+sunday are closed and are colored in pink
+@enduml
+
+
+'2021-08-01 to 2021-08-05 are named [Holidays]
+'2021-08-01 to 2021-08-05 are colored in lime
+
+
+''XL+M+L => 6+2+4 = 12 días
+'then [UML Gestión cuentas] lasts 4 days
+''L+L+L => 4+4+4 = 12 días
+'then [UML Gestión ficheros] lasts 4 days
+''M+M+M+L+L+XL => 2+2+2+4+4+6 = 20 días
+'then [UML Editor de ficheros] lasts 7 days
+''XL+XL+M+M+M+L+L => 6+6+2+2+2+4+4 = 26 días
+'then [UML Simulación] lasts 9 days
+''M+S+S+S+S+S+S+S+L+XL => 2+1+1+1+1+1+1+1+4+6 = 19 días
+'then [UML Configuración] lasts 6 days
+'
+''M => 2 = 2 días
+'then [UML Componente Calculadora] lasts 1 days
+''M+XXL => 2+10 = 12 días
+'then [UML Componente Memoria] lasts 4 days
+''L => 6 = 6 días
+'then [UML Componente Código] lasts 2 days
+''S+S+M+L+M+M+L+XL => 1+1+2+4+2+2+4+6 = 22 días
+'then [UML Componente Registros] lasts 7 days
+''XL => 6 = 6 días
+'then [UML Componente Pipeline] lasts 2 days
+''XL+L+L => 6+4+4 = 14 días
+'then [UML Componente Cycle Clock] lasts 5 days
+''XL+L+L => 6+4+4 = 14 días
+'then [UML Componente Cycle Clock] lasts 5 days
+''L+M+L+L+L+XL+L => 4+2+4+4+4+6+4 = 28 días
+'then [UML Servidor de pruebas] lasts 9 days
diff --git a/UML/0.Project/0.0.Gantt-2021-08.puml b/UML/0.Project/0.0.Gantt-2021-08.puml
new file mode 100644
index 0000000..8ac7058
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2021-08.puml
@@ -0,0 +1,20 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 1st of November 2021
+
+-- Planteamiento del proyecto --
+
+-- Desarrollo de los prototipos --
+
+-- Análisis y Diseño--
+
+-- Implementación --
+
+-- Pruebas --
+
+-- Entregas --
+
+-- Reuniones --
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2021-09.puml b/UML/0.Project/0.0.Gantt-2021-09.puml
new file mode 100644
index 0000000..4346f00
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2021-09.puml
@@ -0,0 +1,33 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 1st of September 2021
+
+
+-- Planteamiento del proyecto --
+
+[Desarrollar la planificación] starts 2021-09-01 and lasts 4 days
+[Gantt] lasts 5 days and starts 4 days before [Desarrollar la planificación]'s end
+
+-- Desarrollo de los prototipos --
+
+[Mockups] lasts 3 days and starts 0 days before [Gantt]'s end
+[Wireframes] lasts 5 days and starts 0 days before [Mockups]'s end
+
+note bottom
+ Generar una versión de prueba
+ con los diseños y prototipos
+end note
+
+
+[Story Case] lasts 5 days and starts 0 days before [Wireframes]'s end
+then [Story Case] lasts 3 days
+then [State Diagram] lasts 4 days
+
+
+-- Reuniones --
+
+[1ª Reunión] starts 2021-09-01
+
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2021-10.puml b/UML/0.Project/0.0.Gantt-2021-10.puml
new file mode 100644
index 0000000..3968261
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2021-10.puml
@@ -0,0 +1,26 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 1st of October 2021
+
+
+-- Desarrollo de los prototipos --
+
+[Presentación análisis] lasts 1 days and starts at 2021/10/01
+then [UML - Proyecto plantilla] lasts 3 days
+then [Proyecto plantilla] lasts 5 days
+then [Proyecto plantilla - Frameworks] lasts 6 days
+then [Proyecto plantilla - Tests] lasts 4 days
+[Proyecto plantilla - CI] lasts 3 days and starts 0 days before [Proyecto plantilla - Tests]'s end
+[Pre release v1.0.0] happens at [Proyecto plantilla - CI]'s end
+
+
+2021/10/01 to 2021/10/31 are colored in orange and are named [Sprint Init]
+2021/11/01 to 2021/11/06 are colored in lightblue and are named [Sprint 1]
+
+-- Reuniones --
+
+[2ª Reunión] starts 2021-10-01
+
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2021-11.puml b/UML/0.Project/0.0.Gantt-2021-11.puml
new file mode 100644
index 0000000..5cbcd83
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2021-11.puml
@@ -0,0 +1,35 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+'November
+Project starts the 29 of October 2021
+
+
+-- Análisis, Diseño e Implementación--
+
+[Pre release v1.0.0] happens 2021/10/29
+
+'XL+M+L => 4+2+3 = 9 días
+[UML - Manager accounts] lasts 5 days and starts 0 days before [Pre release v1.0.0]'s end
+[Servicio - Manager accounts] lasts 10 days and starts 0 days after [UML - Manager accounts]'s end
+[Tests - Manager accounts] lasts 3 days and starts 5 days after [Servicio - Manager accounts]'s end
+
+'L+L+L => 3+3+3 = 9 días
+[UML - Manager files] lasts 5 days and starts 0 days before [Pre release v1.0.0]'s end
+[Component-view Manager files] lasts 13 days and starts 0 days after [UML - Manager accounts]'s end
+[Tests - Manager files] lasts 4 days and starts 0 days after [Component-view Manager files]'s end
+
+[Pre release v1.1.0] happens at [Tests - Manager accounts]'s end
+[Pre release v1.1.0] happens at [Tests - Manager files]'s end
+
+
+-- Reuniones --
+
+[3ª Reunión] happens 0 days after [Pre release v1.0.0]'s end
+[4ª Reunión] happens 0 days after [Pre release v1.1.0]'s end
+
+
+2021/11/01 to 2021/11/14 are colored in lightblue and are named [Sprint 1]
+2021/11/15 to 2021/11/30 are colored in lightgreen and are named [Sprint 2]
+2021/12/01 to 2021/12/05 are colored in lightblue and are named [Sprint 3]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2021-12.puml b/UML/0.Project/0.0.Gantt-2021-12.puml
new file mode 100644
index 0000000..c38261a
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2021-12.puml
@@ -0,0 +1,38 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+'December
+Project starts 30 29 of November 2021
+
+-- Análisis, Diseño e Implementación--
+
+[Pre release v1.1.0] happens 2021/11/30
+
+
+'M+S+S+S+S+S+S+S+L+XL => 2+1+1+1+1+1+1+1+3+4 = 16 días
+[UML - Config] lasts 2 days and starts 0 days before [Pre release v1.1.0]'s end
+then [Component-view Config] lasts 6 days
+then [Tests - Config] lasts 2 days
+
+'M+M+M+L+L+XL => 2+2+2+3+3+4 = 16 días
+[UML - Editor of files] lasts 2 days and starts 0 days before [Pre release v1.1.0]'s end
+[Component-view Editor of files] lasts 5 days and starts 0 days after [UML - Config]'s end
+[Tests - Editor of files] lasts 2 days and starts 0 days after [Component-view Config]'s end
+
+[Pre release v1.2.0] happens at 0 day after [Tests - Config]'s end
+[Pre release v1.2.0] happens at 0 day after [Tests - Editor of files]'s end
+
+
+
+-- Reuniones --
+
+[4ª Reunión] happens 0 days after [Pre release v1.1.0]'s end
+[5ª Reunión] happens 0 days after [Pre release v1.2.0]'s end
+
+
+2021/12/01 to 2021/12/14 are colored in lightblue and are named [Sprint 3]
+2021/12/15 to 2021/12/31 are closed
+2021/12/15 to 2021/12/31 are named [Holidays]
+2021/12/15 to 2022/01/01 are colored salmon
+'2021/12/15 to 2022/01/14 are colored in lightgreen and are named [Sprint 3]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2022-01.puml b/UML/0.Project/0.0.Gantt-2022-01.puml
new file mode 100644
index 0000000..ec08ea8
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2022-01.puml
@@ -0,0 +1,35 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 14 of December 2021
+
+-- Análisis, Diseño e Implementación--
+
+[Pre release v1.2.0] happens 2021/12/14
+
+
+'S+S+M+L+M+M+L+XL => 1+1+2+3+2+2+3+4 = 18 días
+[UML - Manager Registers] lasts 5 days and starts 0 days after [Pre release v1.2.0]'s end
+[Component-view Registers] lasts 10 days and starts 17 days after [UML - Manager Registers]'s end
+[Tests - Manager Registers] lasts 5 days and starts 0 days after [Component-view Registers]'s end
+
+'M+XXL => 2+6 = 8 días
+[UML - Manager Memory] lasts 5 days and starts 0 days after [Pre release v1.2.0]'s end
+[Component-view Memory] lasts 11 days and starts 17 days after [UML - Manager Memory]'s end
+[Tests - Manager Memory] lasts 5 days and starts 0 days after [Component-view Memory]'s end
+
+[Pre release v1.3.0] happens at 0 day after [Tests - Manager Registers]'s end
+[Pre release v1.3.0] happens at 0 day after [Tests - Manager Memory]'s end
+
+
+-- Reuniones --
+
+[5ª Reunión] happens 0 days after [Pre release v1.2.0]'s end
+[6ª Reunión] happens 0 days after [Pre release v1.3.0]'s end
+
+2021/12/15 to 2021/12/31 are closed
+2021/12/15 to 2021/12/31 are named [Holidays]
+2022/01/01 to 2022/01/14 are colored in lightblue and are named [Sprint 4]
+2022/01/15 to 2022/01/31 are colored in lightgreen and are named [Sprint 5]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2022-02.puml b/UML/0.Project/0.0.Gantt-2022-02.puml
new file mode 100644
index 0000000..fdecce7
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2022-02.puml
@@ -0,0 +1,33 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 31 of January 2022
+
+
+-- Análisis, Diseño e Implementación--
+
+[Pre release v1.3.0] happens 2021/01/31
+
+'XL+L+L => 4+3+3 = 10 días
+[UML - Component Cycle Clock] lasts 4 days and starts 0 days after [Pre release v1.3.0]'s end
+then [Component-view Cycle Clock] lasts 13 days
+then [Tests - Component Cycle Clock] lasts 3 days
+
+'XL => 4 = 4 días
+[UML - Component Pipeline] lasts 2 days and starts 0 days after [Pre release v1.3.0]'s end
+[Component-view Pipeline] lasts 10 days and starts 0 days before [UML - Component Cycle Clock]'s end
+[Tests - Component Pipeline] lasts 3 days and starts 0 days after [Component-view Cycle Clock]'s end
+
+[Pre release v1.4.0] happens at 0 days after [Tests - Component Cycle Clock]'s end
+[Pre release v1.4.0] happens at 0 days after [Tests - Component Pipeline]'s end
+
+
+-- Reuniones --
+
+[6ª Reunión] happens 0 days after [Pre release v1.3.0]'s end
+[7ª Reunión] happens 0 days after [Pre release v1.4.0]'s end
+
+2022/02/01 to 2022/02/14 are colored in lightblue and are named [Sprint 6]
+2022/02/15 to 2022/02/28 are colored in lightgreen and are named [Sprint 7]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2022-03.puml b/UML/0.Project/0.0.Gantt-2022-03.puml
new file mode 100644
index 0000000..1b056a0
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2022-03.puml
@@ -0,0 +1,52 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+
+Project starts the 28 of February 2022
+
+
+-- Análisis, Diseño e Implementación--
+
+[Pre release v1.4.0] happens 2022/01/31
+
+' Statistics TODO
+[UML - Component Statistics] lasts 1 days and starts 1 days after [Pre release v1.4.0]'s end
+then [Component-view Statistics] lasts 6 days
+then [Tests - Component Statistics] lasts 2 days
+
+'L => 4 = 4 días
+[UML - Component Código] lasts 2 days and starts 0 days before [Pre release v1.4.0]'s end
+[Component-view Código] lasts 5 days and starts 0 days after [UML - Component Statistics]'s end
+[Tests - Component Código] lasts 2 days and starts 0 days after [Component-view Statistics]'s end
+
+
+[Pre release v1.5.0] happens at 0 days after [Tests - Component Código]'s end
+[Pre release v1.5.0] happens at 0 days after [Tests - Component Statistics]'s end
+
+
+' Multiview TODO
+[UML - Component Multiview] lasts 2 days and starts 0 days before [Pre release v1.5.0]'s end
+[Component-view Multiview] lasts 8 days and starts 0 days after [UML - Component Multiview]'s end
+[Tests - Component Multiview] lasts 3 days and starts 0 days after [Component-view Multiview]'s end
+
+'M => 2 = 2 días
+[UML - Component Calculator] lasts 1 days and starts 0 days before [Pre release v1.5.0]'s end
+[Component-view Calculator] lasts 3 days and starts 0 days after [UML - Component Multiview]'s end
+[Tests - Component Calculator] lasts 1 days and starts 0 days after [Component-view Multiview]'s end
+
+
+[Pre release v1.6.0] happens at 0 days after [Tests - Component Multiview]'s end
+[Pre release v1.6.0] happens at 0 days after [Tests - Component Calculator]'s end
+
+
+-- Reuniones --
+
+[7ª Reunión] happens 0 days after [Pre release v1.4.0]'s end
+[8ª Reunión] happens 0 days after [Pre release v1.5.0]'s end
+[9ª Reunión] happens 0 days after [Pre release v1.6.0]'s end
+
+
+2022/03/01 to 2022/03/14 are colored in lightblue and are named [Sprint 8]
+2022/03/15 to 2022/04/02 are colored in lightgreen and are named [Sprint 9]
+2022/04/01 to 2022/04/04 are colored in lightblue and are named [Sprint 10]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt-2022-04.puml b/UML/0.Project/0.0.Gantt-2022-04.puml
new file mode 100644
index 0000000..9d13633
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt-2022-04.puml
@@ -0,0 +1,36 @@
+@startgantt
+!include ./0.0.Config.puml!Config
+'April
+Project starts the 31st of March 2022
+
+
+
+[Pre release v1.6.0] happens 2022/03/31
+
+
+
+' About TODO
+[UML - Component Documentation] lasts 3 days and starts 0 days before [Pre release v1.6.0]'s end
+then [Component-view Documentation] lasts 6 days
+then [Tests - Component Documentation] lasts 1 days
+
+' Documentation TODO
+[UML - Component About] lasts 2 days and starts 0 days before [Pre release v1.6.0]'s end
+[Component-view About] lasts 5 days and starts 0 days after [UML - Component Documentation]'s end
+[Tests - Component About] lasts 1 days and starts 0 days after [Component-view Documentation]'s end
+
+
+[Pre release v1.7.0] happens at 0 days after [Tests - Component Documentation]'s end
+[Pre release v1.7.0] happens at 0 days after [Tests - Component About]'s end
+
+
+-- Reuniones --
+
+[9ª Reunión] happens 0 days after [Pre release v1.6.0]'s end
+[10ª Reunión] happens 0 days after [Pre release v1.7.0]'s end
+
+
+2022/04/01 to 2022/04/14 are colored in lightblue and are named [Sprint 10]
+2022/04/15 to 2022/04/30 are colored in lightgreen and are named [Sprint 11]
+
+@endgantt
diff --git a/UML/0.Project/0.0.Gantt.puml b/UML/0.Project/0.0.Gantt.puml
index de12714..5f2b24a 100644
--- a/UML/0.Project/0.0.Gantt.puml
+++ b/UML/0.Project/0.0.Gantt.puml
@@ -1,61 +1,237 @@
@startgantt
-'https://plantuml.com/es/gantt-diagram
-'!theme amiga from https://raw.githubusercontent.com/plantuml/plantuml/master/themes
-skinparam defaultFontName consolas
-skinparam minClassWidth 100
-skinparam conditionStyle inside
-printscale daily zoom 2
-
-saturday are closed
-sunday are closed
-
-Project starts the 1st of july 2021
-
--- Planteamiento del proyeto --
-[Desarrollar la planificación] starts 2021-07-01 and lasts 3 days
-'[Test prototype] lasts 3 days and starts 7 days before [Desarrollar la planificación]'s end
-then [Gantt] lasts 2 days
-then [Story Case] lasts 3 days
-then [State Diagram] lasts 3 days
-then [UML] lasts 6 days
-'then [Presentación] is deleted
-'[Presentación] happens at [UML]'s end
+!include ./0.0.Config.puml!Config
+' Norma Estimación
+' Talla S --> 1 día
+' Talla M --> 2 días
+' Talla L --> 3 días
+' Talla XL --> 4 días
+' Talla XXL --> 6 días
+'Ejemplo si Gestión de cuentas tiene 3 tareas: Crear cuenta, recuperar cuenta, iniciar y cerrar sesión
+'Se suman todas las tallas y se dividen en UML e implementación
+'Crear cuenta --> XL --> 6 días
+'Recuperar cuenta --> M --> 2 días
+'Iniciar y cerrar sesión --> L --> 4 días
+' Total: 12 días
+' 50 % de los días para planteamiento
+' 50 % de los días para la implementación
+'2+2+2+4+4+6
+
+
+Project starts the 1st of September 2021
+
+-- Planteamiento del proyecto --
+
+[Desarrollar la planificación] starts 2021-07-02 and lasts 4 days
+[Gantt] lasts 5 days and starts 1 days before [Desarrollar la planificación]'s end
+
+-- Desarrollo de los prototipos --
+
+[Mockups] lasts 3 days and starts 1 days before [Gantt]'s end
+[Wireframes] lasts 5 days and starts 1 days before [Mockups]'s end
note bottom
- Diagrama de clase
- Diagrama de casos de uso
- Diagrama de secuencia
- Diagrama de actividad
- Diagrama de Despliegue
- Diagrama de componentes
- Diagrama de máquina de estado
- Diagrama de paquete
+ Generar una versión de prueba
+ con los diseños y prototipos
end note
--- Desarrollo de los prototipos --
+[Story Case] lasts 5 days and starts 0 days before [Wireframes]'s end
+then [Story Case] lasts 3 days
+then [State Diagram] lasts 4 days
+'then [UML] lasts 9 days
+then [Presentación análisis] lasts 1 days
+'then [Presentación] is deleted
-[Mockups] starts 2021-07-25 and lasts 3 days
-[Wireframes] lasts 3 days and starts 1 days before [Mockups]'s end
+then [UML - Proyecto plantilla] lasts 3 days
+then [Proyecto plantilla] lasts 5 days
+then [Proyecto plantilla - Frameworks] lasts 6 days
+then [Proyecto plantilla - Tests] lasts 4 days
+[Proyecto plantilla - CI] lasts 3 days and starts 0 days before [Proyecto plantilla - Tests]'s end
+[Pre release v1.0.0] happens at [Proyecto plantilla - CI]'s end
+
+
+-- Análisis, Diseño e Implementación--
+
+
+'XL+M+L => 4+2+3 = 9 días
+[UML - Manager accounts] lasts 5 days and starts 0 days before [Pre release v1.0.0]'s end
+[Servicio - Manager accounts] lasts 10 days and starts 0 days after [UML - Manager accounts]'s end
+[Tests - Manager accounts] lasts 3 days and starts 5 days after [Servicio - Manager accounts]'s end
+
+'L+L+L => 3+3+3 = 9 días and starts 0 days before [Servicio Manager accounts]'s end
+[UML - Manager files] lasts 5 days and starts 0 days before [Pre release v1.0.0]'s end
+[Component-view Manager files] lasts 13 days and starts 0 days after [UML - Manager accounts]'s end
+[Tests - Manager files] lasts 4 days and starts 0 days after [Component-view Manager files]'s end
+
+[Pre release v1.1.0] happens at [Tests - Manager accounts]'s end
+[Pre release v1.1.0] happens at [Tests - Manager files]'s end
+
+
+
+
+'M+S+S+S+S+S+S+S+L+XL => 2+1+1+1+1+1+1+1+3+4 = 16 días
+[UML - Config] lasts 2 days and starts 0 days before [Pre release v1.1.0]'s end
+then [Component-view Config] lasts 6 days
+then [Tests - Config] lasts 2 days
+
+'M+M+M+L+L+XL => 2+2+2+3+3+4 = 16 días
+[UML - Editor of files] lasts 2 days and starts 0 days before [Pre release v1.1.0]'s end
+[Component-view Editor of files] lasts 5 days and starts 0 days after [UML - Config]'s end
+[Tests - Editor of files] lasts 2 days and starts 0 days after [Component-view Config]'s end
+
+[Pre release v1.2.0] happens at 0 day after [Tests - Config]'s end
+[Pre release v1.2.0] happens at 0 day after [Tests - Editor of files]'s end
+
+
+
+
+
+
+
+'S+S+M+L+M+M+L+XL => 1+1+2+3+2+2+3+4 = 18 días
+[UML - Manager Registers] lasts 5 days and starts 0 days after [Pre release v1.2.0]'s end
+[Component-view Registers] lasts 10 days and starts 17 days after [UML - Manager Registers]'s end
+[Tests - Manager Registers] lasts 5 days and starts 0 days after [Component-view Registers]'s end
+
+'M+XXL => 2+6 = 8 días
+[UML - Manager Memory] lasts 5 days and starts 0 days after [Pre release v1.2.0]'s end
+[Component-view Memory] lasts 11 days and starts 17 days after [UML - Manager Memory]'s end
+[Tests - Manager Memory] lasts 5 days and starts 0 days after [Component-view Memory]'s end
+
+[Pre release v1.3.0] happens at 0 day after [Tests - Manager Registers]'s end
+[Pre release v1.3.0] happens at 0 day after [Tests - Manager Memory]'s end
+
+
+
+
+
+
+
+'XL+L+L => 4+3+3 = 10 días
+[UML - Component Cycle Clock] lasts 4 days and starts 0 days after [Pre release v1.3.0]'s end
+then [Component-view Cycle Clock] lasts 13 days
+then [Tests - Component Cycle Clock] lasts 3 days
+
+'XL => 4 = 4 días
+[UML - Component Pipeline] lasts 2 days and starts 0 days after [Pre release v1.3.0]'s end
+[Component-view Pipeline] lasts 10 days and starts 0 days before [UML - Component Cycle Clock]'s end
+[Tests - Component Pipeline] lasts 3 days and starts 0 days after [Component-view Cycle Clock]'s end
+
+[Pre release v1.4.0] happens at 0 days after [Tests - Component Cycle Clock]'s end
+[Pre release v1.4.0] happens at 0 days after [Tests - Component Pipeline]'s end
+
+
+
+
+
+
+
+
+' Statistics TODO
+[UML - Component Statistics] lasts 1 days and starts 1 days after [Pre release v1.4.0]'s end
+then [Component-view Statistics] lasts 6 days
+then [Tests - Component Statistics] lasts 2 days
+
+'L => 4 = 4 días
+[UML - Component Código] lasts 2 days and starts 0 days before [Pre release v1.4.0]'s end
+[Component-view Código] lasts 5 days and starts 0 days after [UML - Component Statistics]'s end
+[Tests - Component Código] lasts 2 days and starts 0 days after [Component-view Statistics]'s end
+
+
+[Pre release v1.5.0] happens at 0 days after [Tests - Component Código]'s end
+[Pre release v1.5.0] happens at 0 days after [Tests - Component Statistics]'s end
+
+
+
+
+
+' Multiview TODO
+[UML - Component Multiview] lasts 2 days and starts 0 days before [Pre release v1.5.0]'s end
+[Component-view Multiview] lasts 8 days and starts 0 days after [UML - Component Multiview]'s end
+[Tests - Component Multiview] lasts 3 days and starts 0 days after [Component-view Multiview]'s end
+
+'M => 2 = 2 días
+[UML - Component Calculator] lasts 1 days and starts 0 days before [Pre release v1.5.0]'s end
+[Component-view Calculator] lasts 3 days and starts 0 days after [UML - Component Multiview]'s end
+[Tests - Component Calculator] lasts 1 days and starts 0 days after [Component-view Multiview]'s end
+
+
+[Pre release v1.6.0] happens at 0 days after [Tests - Component Multiview]'s end
+[Pre release v1.6.0] happens at 0 days after [Tests - Component Calculator]'s end
+
+
+
+
+
+
+' About TODO
+[UML - Component Documentation] lasts 3 days and starts 0 days before [Pre release v1.6.0]'s end
+then [Component-view Documentation] lasts 6 days
+then [Tests - Component Documentation] lasts 1 days
+
+' Documentation TODO
+[UML - Component About] lasts 2 days and starts 0 days before [Pre release v1.6.0]'s end
+[Component-view About] lasts 5 days and starts 0 days after [UML - Component Documentation]'s end
+[Tests - Component About] lasts 1 days and starts 0 days after [Component-view Documentation]'s end
+
+
+[Pre release v1.7.0] happens at 0 days after [Tests - Component Documentation]'s end
+[Pre release v1.7.0] happens at 0 days after [Tests - Component About]'s end
-[Pre release v1 prototype] starts 2021-08-06 and lasts 1 days
-note bottom
- Generar la versión de prueba
- de los diseños y prototipos
-end note
+'L+M+L+L+L+XL+L => 3+2+3+3+3+4+3 = 21 días
+[UML - THUMDER Server] lasts 5 days and starts 0 days before [Pre release v1.0.0]'s end
+[THUMDER Server] starts 0 day before [UML - THUMDER Server]'s start and ends 0 day after [Pre release v1.5.0]'s end
+[Tests - THUMDER Server] lasts 13 days and starts 0 days after [THUMDER Server]'s end
+'-- Pruebas --
+'XL+XL+M+M+M+L+L => 4+4+2+2+2+3+3 = 20 días
+'[UML - Simulación] lasts 4 days and starts 0 days before [Pre release v1.0.0]'s end
+'then [Servicio Simulación] happens at [Release v2.0.0]'s end
+'then [Tests - Simulación] lasts 4 days
+-- Entregas --
-2021-08-01 to 2021-08-05 are named [Holidays]
-2021-08-01 to 2021-08-05 are colored in salmon
+[Release] happens at 0 days after [Pre release v1.7.0]'s end
+'[Pre release v1.0.0] starts 2021-07-30 and lasts 1 days
-- Reuniones --
-'[Reunión 1] starts 2021-06-10
-[Reunión 2] starts 2021-07-20
+[1ª Reunión] starts 2021-09-01
+[2ª Reunión] starts 2021-10-01
+[3ª Reunión] happens 0 days after [Pre release v1.0.0]'s end
+[4ª Reunión] happens 0 days after [Pre release v1.1.0]'s end
+[5ª Reunión] happens 0 days after [Pre release v1.2.0]'s end
+[6ª Reunión] happens 0 days after [Pre release v1.3.0]'s end
+[7ª Reunión] happens 0 days after [Pre release v1.4.0]'s end
+[8ª Reunión] happens 0 days after [Pre release v1.5.0]'s end
+[9ª Reunión] happens 0 days after [Pre release v1.6.0]'s end
+[10ª Reunión] happens 0 days after [Pre release v1.7.0]'s end
+
+
+'2021/09/21 to 2021/09/22 and colored in lightgreen and are named [Sprint 11]
+2021/10/01 to 2021/10/31 are colored in orange and are named [Sprint Init]
+
+'2021/10/15 to 2021/10/31 are colored in lightgreen and are named [Sprint 1]
+2021/11/01 to 2021/11/14 are colored in lightblue and are named [Sprint 1]
+2021/11/15 to 2021/11/30 are colored in lightgreen and are named [Sprint 2]
+2021/12/01 to 2021/12/14 are colored in lightblue and are named [Sprint 3]
+'2021/12/15 to 2021/12/31 are colored in lightgreen and are named [Sprint 5]
+2021/12/15 to 2021/12/31 are closed
+2021/12/15 to 2021/12/31 are named [Holidays]
+2021/12/15 to 2022/01/01 are colored salmon
+2022/01/01 to 2022/01/14 are colored in lightblue and are named [Sprint 4]
+2022/01/15 to 2022/01/31 are colored in lightgreen and are named [Sprint 5]
+2022/02/01 to 2022/02/14 are colored in lightblue and are named [Sprint 6]
+2022/02/15 to 2022/02/28 are colored in lightgreen and are named [Sprint 7]
+2022/03/01 to 2022/03/14 are colored in lightblue and are named [Sprint 8]
+2022/03/15 to 2022/03/31 are colored in lightgreen and are named [Sprint 9]
+2022/04/01 to 2022/04/14 are colored in lightblue and are named [Sprint 10]
+2022/04/15 to 2022/04/30 are colored in lightgreen and are named [Sprint 11]
+'2022/10/15 to 2022/10/31 are colored in lightblue and are named [Sprint 12]
+'2022/10/15 to 2022/10/31 are colored in lightgreen and are named [Sprint 13]
@endgantt
diff --git a/UML/0.Project/0.0.Gantt.svg b/UML/0.Project/0.0.Gantt.svg
new file mode 100644
index 0000000..566563a
--- /dev/null
+++ b/UML/0.Project/0.0.Gantt.svg
@@ -0,0 +1,592 @@
+
\ No newline at end of file
diff --git a/UML/THUMDER-core-Services.puml b/UML/THUMDER-core-Services.puml
index 88713da..8d5fee8 100644
--- a/UML/THUMDER-core-Services.puml
+++ b/UML/THUMDER-core-Services.puml
@@ -18,7 +18,7 @@ package Services #DDDDDD {
-_electron: any
-electron: any
+isElectronApp: boolean
- +nativeImage: Electron.NativeImage
+ '+nativeImage: Electron.NativeImage
+screen: Electron.Screen
+shell: Electron.Shell
+{static} serviceElectron(): "" | "browser" | "renderer" | "worker"
@@ -50,40 +50,54 @@ package Services #DDDDDD {
+thumbnail: string
+dataItem: any
}
- class FileItem extends FileSystemItem implements InterfaceFileItem {
+ class THUMDER_FileItem extends FileSystemItem implements InterfaceFileItem {
+ +$key: string
+ +content: string
+ +description: string
+ +e1_uid: string
+ +f_id: string
}
class FileSystemService {
- +items: FileItem[]
- +ITEMS: InterfaceFileItem[]
- -UID: string
- -updateUI$: Subject
- -fileSystemStorageService: FileSystemStorageService
- +initialize(): Promise
- +getUpdateUIObservable(): Observable
- +getItems(_path: FileSystemItem): Promise
- +createDirectory(parentDirectory: FileSystemItem, name: string): Promise
- +createFile(item: FileSystemItem, extension: string): Promise
- +updateCategory(directory: FileSystemItem, selectedItems: FileSystemItem[], newCategory: any, viewArea: "navPane" | "itemView"): Promise
- +editFileItem(updateFileItem: InterfaceFileItem, $key: string): Promise
- +renameItem(item: FileSystemItem, newName: string): Promise
- +deleteItem(item: FileSystemItem): Promise
- +moveItem(item: FileSystemItem, destinationDirectory: FileSystemItem): any
- +uploadFileChunk(fileData: File, uploadInfo: UploadInfo, destinationDirectory: FileSystemItem): any
- +downloadItem(items: FileSystemItem[]): void
- +generateDefaultFiles(): Promise
+ +items: THUMDER_FileItem[]
+ -updateUI$: Subject
+ -subscription: Subscription
+ +fileSystemStorageService: FileSystemStorageService
+ +init(): Promise
+ +getUpdateUIObservable(): Observable
+ +getItems(path: FileSystemItem): Promise
+ +createDirectory(parentDirectory: FileSystemItem, name: string): Promise
+ +createFile(item: FileSystemItem, extension: string): Promise
+ +updateCategory(directory: FileSystemItem, selectedItems: FileSystemItem[], newCategory: any, viewArea: "navPane" | "itemView"): Promise
+ +editFileItem(updateFileItem: THUMDER_FileItem, $key: string): Promise
+ +renameItem(item: FileSystemItem, newName: string): Promise
+ +deleteItem(item: FileSystemItem): Promise
+ +moveItem(item: FileSystemItem, destinationDirectory: FileSystemItem): Promise
+ +uploadFileChunk(fileData: File, uploadInfo: UploadInfo, destinationDirectory: FileSystemItem): Promise
+ +downloadItem(items: FileSystemItem[]): Promise
+ -setList_FileItems(items: THUMDER_FileItem[]): Promise
+ -updateLocalItems(): Promise
+ -{static} transform_InterfaceFileItem_to_THUMDER_FileItem(interfaceFileItem: InterfaceFileItem): THUMDER_FileItem
}
class FileSystemStorageService {
- -fileItems_Collections: AngularFirestoreCollection
- -UID: string
- -httpClient: HttpClient
- -afs: AngularFirestore
- +generateDefaultFiles(): Promise
- +getAllFilesFromFirestore(): Observable
- +getFileItemsAsObservable(): Observable
- +addFileItem(interfaceFileItem: InterfaceFileItem): Promise
- +deleteFileItem(id: string): Promise
- +editFileItem(fileItem: InterfaceFileItem, $key: string): Promise
- -isInitialize(): Promise
+ -dbFileItemsPath: "/fileitems"
+ -httpClient: HttpClient
+ -afs: Firestore
+ +isInitialize(): Promise
+ +queryFileFromUser(filename: string): Promise>
+ -queryAllFilesFromUser(): Query
+ -collectionFileItems(): Promise>
+ +generateDefaultFiles(): Promise
+ +getAllFilesFromFirestoreAsObservable(): Observable
+ +createFileItem(fileItem: THUMDER_FileItem): Promise
+ +deleteFileItem($key: string): Promise
+ +updateFileItem($key: string, fileItem: THUMDER_FileItem): Promise
+ +FileItem_Documents_valueChanges(id: any): Observable
+ +FileItem_Documents_snapShotChanges(id: any): Observable>
+ +FileItems_Collections_valueChanges(): Observable
+ +FileItems_Collections_snapShotChanges(): Observable[]>
+ +createNewDocument(): { ref: DocumentReference; id: string; }
+ +getAllFilesFromFirestore(): Promise>
+ +getFiles(): Promise
}
class Globals {
diff --git a/_0_generate_pdf.sh b/_0_generate_pdf.sh
new file mode 100644
index 0000000..c1243cd
--- /dev/null
+++ b/_0_generate_pdf.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+echo 'Running Script'
+
+PATH_UML_INPUT="/Users/nonodev96/WebstormProjects/THUMDER/UML/"
+PATH_UML_OUTPUT="/Users/nonodev96/"
+
+FILES="
+THUMDER-core-Services
+"
+for filename in $FILES ; do
+ echo $filename
+ # Generamos un svg a partir del uml
+ java -jar /Users/nonodev96/Applications/plantuml/plantuml.jar -tsvg "${PATH_UML_INPUT}${filename}.puml"
+ # Generamos un pdf optimizado mediante el svg anterior
+ inkscape --export-filename="${PATH_UML_OUTPUT}${filename}.pdf" "${PATH_UML_INPUT}${filename}.svg" &> /dev/null
+done
diff --git a/_1_generate_uml.sh b/_1_generate_uml.sh
new file mode 100644
index 0000000..ca4e00d
--- /dev/null
+++ b/_1_generate_uml.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+#tplant --input ../src/**/*.ts --output ../UML/THUMDER.puml
+#tplant --input ../src/app/__core/**/*.ts --output ../UML/CORE.puml
+#tplant --input ../src/app/__shared/**/*.ts --output ../UML/SHARED.puml
+#tplant --input ../src/app/_layouts/**/*.ts --output ../UML/LAYOUT.puml
+#tplant --input ../src/app/components/**/*.ts --output ../UML/COMPONENTS.puml
+#tplant --input ../src/app/views/**/*.ts --output ../UML/VIEWS.puml
+
+#tplant --input ./src/**/*.ts --output ./UML/SERVICES.puml
+tplant -p tsconfig.json -i ./src/app/__core/services/**/**/*.ts --output ./UML/SERVICES.puml
+
+
+
diff --git a/assets/favicon.256x256.png b/assets/favicon.256x256.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b399ac15cf9f98d3264e92bb088253c2600485f
GIT binary patch
literal 10654
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 g_Sm(SoGc_xDpKOVtwHeU3IX
zPIi70gBs=O=cjUWeFf?)%SB#J4owv1e{p-oSk{ggXL~#s$=BRt<<5`Bj#D&{5geJcjKhXG=U89Fx?dxTSb`Lae_>52OBJtNRjJHAwq+Th5`k
z&XC7RJQ#u#48h68rS>s=d+MEz9IH{)v}uQLg$fuVmJI$zO28)ibgda9~8CUsVPbJrkrq72J*0edN-
z2M2!OGKE@ul9Jjzx3|C7{Q5zI4)`!rw_FKSfm?ccCfC^5DCjmTxaBK_&&H-%f&+PY
zcxbC$*OWLg47Yy7xA?7r0T3RH6z78V#em##?ge^x2$^`IT6W@d$~77!g?e}6pSebz${=&D`-K=)W;rkJ9lB3>9t(6+A>`m`=W1tggq8mUA;
zC#Eep@^fb9RzVhpUsRYGz9BzGU0i(r`SVH3Squ?F!tAUmNMhW-zelsb_Z~pu=tDIE
zCOP^V^JYb5Wvs}ksGF^Yh~qyx8yg$Ue0<5lmy&pZ7V?@kV!1qcpUm2_K2u{c+u_Fp
z_!zfEeoR(TwyP-jQ9V$xQ#uN^vOo_5j!k&GIvr0949LJ~2_Rc?S=k7UespJ;_E~sz
zzq(7!zbX*%@2;h#rE;rr)pT5Zd@qSOW$^F|PuQqEM
z+<4Fr&aZcxWUaR9p5Nl4>X!lFj$Tar_wOHIYkh#>Oq8k-e{`Bu%z_HT&dk6Es#z^@
zq01o$vgqTYn~zRRV6yvxFcWnAMju~d(DM1SA{x-t#*fBURw+qI1hxTx|mULbrD{Le_GP{}ptCnw6z&J_SRy)q$+_n=Ay
zZoUZ+bQq%nnp@tVy6eLSyvy^0q3mbj@gUmb^)rd9YHM+Zydnd3fzPe-%;Q5(N5}l`
zY@9>~mL48(5HsoC(nY*x>+zDjM*ICaVLWt^f@ce2h_1QBiX0
zv-xe{+Z$;iU=-eRC`=pz1fYM(lsqPJJ?<+#VFoc8jE~MC8jDVUzK(zc_er^r=6wFU
zvoGuG1t};f)G2bE)6>(D+vPF;yb4RY6AcL&h|Rl(hm#{&TCGMx#~Ll!gHUW
zUo3>FUjocmd_n?QjeH=ISv8sVbfN$ah?+7;P#{yVGZX+hnG>ggg=-=OKB37XE*Dk^
zh-RF>fb>TGN))gK^*-=oyIdzcOhW@7T(8nZHX6+jquHLR$+v!^Ti&-*_i1?}lKxr5
zl_+3JZq02VZv=ymo+l2L-=L4jZ{t{=#b^FeK}7}o==j*{Y}d@l*jQtV
zN{9h)oPL~Enhr^)4_0>!#`_I{OS-%3_T14?tK*sNy$&qv4G=Sw)jP}G(m2G7i_hOA
zCf7{QmA|XkbT7Y
zp)($}fYSVxRZE)s6cGVX5`#1qx6;qd
z{tggBLLSR9iRlU^CRA2IzbSvr%xKcwYY1RuWYnAVF*~~je(eH@$?DOUdkd|02so@Q
z*A*On_dww|ET_1=N&B+S*B5T^G?J
z?@CHAfLp`zV3|>DD!jxDJ&8A(mdV=b#Q;c9qUPsS@DJ*zV3YAkWW-K)y|acfrEK
zLJRQ)K6(VxEs%J5i`}xaZ~WSnS%KV0UnZb3G&H=W2R8eQ?Ze-`{kepJFrcF^-`vnw9`bDtCkSiNbvP`Sa&8qCJ+F
znAwDy7_I8j3B9wtJld)jCMv3!pH?9{zWIN?=Gy`Kt5@}kxEZu5fsWTWf_Zvp1LHxL
zh&Fk!L_$ePN#(pKC+GgGy4Ri;CGiz@o;il8m|kS!afU21|9}Q$ATt2(h=^z3|tI%z1CVdGy!$
z)0BsBAbA{Ct|5u{sj&0ixu{!PfQ80>y3)8>iJ7zU)wvrub+*-mX-9DO4eYJlDBzbC
ze0`c;I1n7zO0TDF*{7sDSK-f#bX+wwG}3mPoNa9KA;=Rrn~PmR$87*CM~RMgS)NL
zpS5M0wE#+QX=78&?nSyyNk!%Tw8J-T_bQ7U1~QUgTs+(2qZ8@o!NE9M!qu|iFS&yB
zeeFalzSX@wzBXTzD2)tG8vx>wr@*NK7I^x=H1JDrYq{s4?&m>(Xt#FZZTV?=oUF>$
z5j>U7p@poAxYF`v`acdQ=uKzvf|h}Q5E3MIsY7RX*kudBq>P@aX&fLM)>{+BIl!z3
zXvMn_oUmad^@a%W3fUg?k=E|Yr)Otpfc<~%B2Rrskq>3M14z9!EkNbNz{E_JvS69|
zP*tS_8Wo_=!6Dn}qnrux05l15+ATW6W$iyf`{Pb)%#(iF1iW*>dq(30D^^o%W%YI9a*bUiD
zhzH8N!Ttc{+r0pWFOKn7Z}GO~V7e+>JB=jdJLt(z23yd)a8lrV`?e7NhvGlYfm;Xr
z?6XwFwahV1#jL}~$OtLga;e=X*093pe;w@le-EKT}AL2x4e8mNJoahg)0S@Xxn5Jmz)LHeF;Nu;Gc;5!|-=L4PaC+y4G_
z>HXde@~svK;j#5HTRQt&M<6N$G-@P44*&7e)blom_CF6Ubp??FHj7B8XCsdOG(;_Zd+Mk9(MGqi;b`qI?O0u!~t0i
z`bZ;E1SNX(Lu-iwJqUp5`oLb6qIYeth>7Ban3$M882L|<=c(@k&npmguJ#V|ZuG^C
zp>VaZB5O5oK$+j~G?M?G+&R5<-){XRH3<~#tva>>@v790`o{b3+qY_D#)bs@LuI8R
z5Iex6j0EAx02a!cA>A^8)&aW*1Dl`7_Qmn$xSG8^hr_o5d>{#D)=2Jwpk$SmWdO_*
zsHv*%lRa@24)~7l=?#h&u|p7L^96XMpzNuElC`$Jju{XT;3Se4+j4kx^m#1zA@+Gg
z(6Iw>y$9!u$sk}P3{=(iaGQR5K0=n6nJIJ91i~;gE2{($^!E1lHt*jF-OF?0CPeVp
zF%e_9msT1H{4f}-M0S8vI|m`7s`dcHK6RKtA#kSt2+b?}BMKDc3zWlSN!g%YeT4DW
z=ZPY{mKc&5wgLb2KmpH-AQusZrAN5R+i8l&BFv3(vvE-Tu2(oWS`oD8w_`qu=tA;>
zc+n)RpML!BKP!E(PAu|Y@avrKU0xV%xU13VhS`{T^TWm25|z84ALQ=tUUC|<%!3<1
zi?A>L5&;jx#a5vb7Z>j}ib>nI2RZfQ
z6YpS!7n4jygJvNp+juiTA(gbX%`#>s8L2so1fg+{jWu*_C>SB$JmsnJ9eq@F4^RQX*O#qwVa#
zfmqP5!ZxqT^1EM#57+=`2Pi*!sr1duF6jn$wP{e^$wjju45D{;D-)`xycP(4u;
zo@u=`i~;?*66PlEzpi2((WLnQHUp3{B&%+;0yob5TBpk`5+4mSy3g#SLY1uAS7X)`
zbLv?518`f0@=2$h2!0C7zYtcRay|t~Tgj-FKzF~ry?w(qTDp2{Oq*X=IQ`!y0_Te^
zp3`4W>nKmijP7gj*g0^JQKbNuJiW;-n~y-xf+^qcLoYCxyns_w(T4>otEdzM
z6w;Zwy1qP^ZE{RCp5L3UqE=K=%C82>ZV(Vg!u_aq39!kD39N_uGjQf6zy(P_R}ojHurk8fE$_BEP=*GumAU{sp^^iM*C5$1wKAL`|I#oFVZ*5vlIQO
zn`le{2GzLaDjdNlZkS+GhZNjC{dQ-_cUmaOmX4-LL>J>P7cq16Y?3W>7$YXk30uTO
z#tf{HC~k<5qbr}4Bt4}+z=OY|y1i(W2-*SLNiwH}Hv15#SS-=)`Oxx1e>+1mge+7C
z-G3;`su;)X0@H?*mR}QUKV_1}MaO}UjzaOmUF1u1^FTj@2dWwiWMJtJoiFG2YE*P!Bd{I>*%`x82k6iub?T4RlMi95PuK&Z~-C}!cl`z-yH;V=@|
z-HsiLbO`FHLcYCFz+*XTC$OgBE$AMd!h(=X(UUPjlq~ZubrTqbkCyb*SIqf>LKdVBmK273_`yd)_~qa6B=C}iuA^O
zs9sqQrC)_@23&BQD#Qx)Tgg29hA|za_+_;)&A2%}1bu_>Fi&aO`z@srOiG-72coY;
z$sxoFeF27Cl!o{BND^Ej-4)Ik#CtR0an80WIrvGMUE9|AJgGFtRKA8H!O!W9E=
z4)CBZH&{q6NM20bMOxGVnCXt-9EGeb53S=n5D}6zqNume!+7Mwayy)`>SyZ$qR;UAe
z|MK(5B0Vk$JtiyZ)(87hjpc$s@C*PP0J|a06Kdq
zUlm4$J`JO%2t+P$M<5+>51|$q>Yjq+Y+bK|0X{MDrmxhJ-OdIB*m(o!f{E+Tg@t^c
z`}YH@mw;gK1}fXc^~pN}FJMBZHd|O(eFF_sp$K_xUQw`9uM87~gHD=b>x~e5k+5d(
z_99jQD!Mo_x+-D>o4rILHpXK}+%kEaWfNdG^ {
- console.log("initSynchronousFactory");
+
};
}
@@ -83,7 +83,7 @@ export namespace Utils {
export function initWithDependencyFactory(service: any) {
return () => {
- console.log("initWithDependencyFactory - started");
+
return service;
};
}
diff --git a/src/app/__core/auth/auth.service.ts b/src/app/__core/auth/auth.service.ts
index 146e456..7495dbf 100644
--- a/src/app/__core/auth/auth.service.ts
+++ b/src/app/__core/auth/auth.service.ts
@@ -193,7 +193,7 @@ export class AuthService {
if (!this.electronService.isElectronApp) {
const userCredential = await getRedirectResult(this.afAuth);
if (userCredential.user !== null) {
- console.log("getRedirectResult", userCredential);
+ // console.debug("getRedirectResult", userCredential);
await this.SetUserData(userCredential);
this.ngZone.run(() => {
this.router.navigate(["/"]);
diff --git a/src/app/__core/machine/machine.service.ts b/src/app/__core/machine/machine.service.ts
index 45947c5..614b8b1 100644
--- a/src/app/__core/machine/machine.service.ts
+++ b/src/app/__core/machine/machine.service.ts
@@ -138,35 +138,35 @@ export class MachineService {
// this.socketProviderConnect.socket.on("SimulationInitResponse", (response) => {
// const simulationInit = JSON.parse(response) as TypeSimulationInitResponse;
- // console.log("Simulation Init", simulationInit);
+ // console.debug("Simulation Init", simulationInit);
// });
// this.socketProviderConnect.socket.on("SimulationNextStepResponse", (response) => {
// const simulationStep = JSON.parse(response) as TypeSimulationStep;
- // console.log("Simulation Step", simulationStep);
+ // console.debug("Simulation Step", simulationStep);
// });
// TODO CHECK
this.socketProviderConnect.socketIO.on("UpdateRegisterResponse", (response) => {
const registers = JSON.parse(response) as TypeRegisterToUpdate[];
this.registers.processRegisterToUpdateArray(registers);
- console.log("Registers update", registers);
+ console.debug("Registers update", registers);
});
// TODO CHECK
this.socketProviderConnect.socketIO.on("UpdateMemoryResponse", (response) => {
const memory = JSON.parse(response) as TypeMemoryToUpdate[];
this.memory.processMemoryToUpdateArray(memory);
- console.log("Memory update", memory);
+ console.debug("Memory update", memory);
});
this.socketProviderConnect.socketIO.on("GetAllRegistersResponse", (response) => {
const allRegisters = JSON.parse(response) as TypeAllRegisters;
- console.log("GetAllRegisters", allRegisters);
+ console.debug("GetAllRegisters", allRegisters);
});
this.socketProviderConnect.socketIO.on("GetAllMemoryResponse", (response) => {
const allMemory = JSON.parse(response) as TypeAllMemory;
- console.log("GetAllMemory", allMemory);
+ console.debug("GetAllMemory", allMemory);
});
this.socketProviderConnect.socketIO.on("UpdateConfigurationMachineResponse", (response) => {
const configurationMachine = JSON.parse(response) as TypeConfigurationMachine;
- console.log("Configuration machine", configurationMachine);
+ console.debug("Configuration machine", configurationMachine);
});
const timeSimulation = this.store.getItem("time_simulation_configuration");
diff --git a/src/app/__core/services/file-system/file-system.service.ts b/src/app/__core/services/file-system/file-system.service.ts
index 4e037ab..352c684 100644
--- a/src/app/__core/services/file-system/file-system.service.ts
+++ b/src/app/__core/services/file-system/file-system.service.ts
@@ -125,7 +125,6 @@ export class FileSystemService {
}
public async deleteItem(item: FileSystemItem): Promise {
- console.log({ item });
const indexToDelete = this.items.findIndex(value => value.key === item.key);
if (indexToDelete > -1) {
const element = this.items.find(value => value.key === item.key);
@@ -138,18 +137,21 @@ export class FileSystemService {
}
}
+ // TODO
public moveItem(item: FileSystemItem, destinationDirectory: FileSystemItem): Promise {
- console.log("TODO", item, destinationDirectory);
+ console.debug("TODO", item, destinationDirectory);
return Promise.resolve()
}
+ // TODO
public async uploadFileChunk(fileData: File, uploadInfo: UploadInfo, destinationDirectory: FileSystemItem): Promise {
- console.log("TODO", fileData, uploadInfo, destinationDirectory);
+ console.debug("TODO", fileData, uploadInfo, destinationDirectory);
return Promise.resolve()
}
+ // TODO
public async downloadItem(items: Array): Promise {
- console.log("TODO", items);
+ console.debug("TODO", items);
return Promise.resolve()
}
diff --git a/src/app/__shared/components/page-not-found/page-not-found.component.html b/src/app/__shared/components/page-not-found/page-not-found.component.html
index 3bcb4b2..99a5cf0 100644
--- a/src/app/__shared/components/page-not-found/page-not-found.component.html
+++ b/src/app/__shared/components/page-not-found/page-not-found.component.html
@@ -32,6 +32,7 @@
Oops! Page not foun
Meanwhile, you may return to dashboard or try using the search form.
+
diff --git a/src/app/views/debug/debug-view.ts b/src/app/views/debug/debug-view.ts
index ac9c30e..00d9d55 100644
--- a/src/app/views/debug/debug-view.ts
+++ b/src/app/views/debug/debug-view.ts
@@ -18,7 +18,7 @@ import { ElectronService } from "../../__core/services";
@Component({
selector: "app-debug",
templateUrl: "./debug-view.html",
- styleUrls: [ "./debug-view.scss" ]
+ styleUrls: ["./debug-view.scss"]
})
export class DebugView implements OnInit, AfterViewInit {
@@ -113,6 +113,12 @@ export class DebugView implements OnInit, AfterViewInit {
ngAfterViewInit(): void {
}
+ public async wait_resolve() {
+ return new Promise((resolve, reject) => {
+ setTimeout(resolve, 2000);
+ });
+ }
+
public async notification() {
this.electronService.ipcRenderer.send("thumder-notification");
}
@@ -136,7 +142,7 @@ export class DebugView implements OnInit, AfterViewInit {
pepe.key = Utils.uuidv4();
const value = JSON.stringify({
- items: [ documents, pepe ]
+ items: [documents, pepe]
});
localStorage.setItem("FileSystem", value);
}
@@ -154,11 +160,11 @@ export class DebugView implements OnInit, AfterViewInit {
async updateRegisterServer(typeRegister: TypeRegister, register: string, value: string): Promise {
try {
- const payload = JSON.stringify([ {
+ const payload = JSON.stringify([{
typeRegister: typeRegister,
register: register,
hexadecimalValue: value
- } ] as TypeRegisterToUpdate[]);
+ }] as TypeRegisterToUpdate[]);
this.socketProviderConnect.emitMessage("UpdateRegisterRequest", payload);
} catch (error) {
console.error(error);
@@ -169,11 +175,11 @@ export class DebugView implements OnInit, AfterViewInit {
async updateMemoryServer(memoryTypeData: TypeData, memoryAddress: TypeAddress, memoryValue: string): Promise {
try {
- const payload = JSON.stringify([ {
+ const payload = JSON.stringify([{
typeData: memoryTypeData,
address: memoryAddress,
value: memoryValue
- } ] as TypeMemoryToUpdate[]);
+ }] as TypeMemoryToUpdate[]);
this.socketProviderConnect.emitMessage("UpdateMemoryRequest", payload);
} catch (error) {
console.error(error);
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 307fbca..f2648e6 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -195,6 +195,13 @@
"TITLE_BREAKPOINT_SIMULATION": "Breakpoint",
"MESSAGE_BREAKPOINT_SIMULATION": "Stop simulation"
},
+ "TABLE": {
+ "NAME": "Name",
+ "VERSION": "Version",
+ "LICENSE": "License",
+ "AUTHOR": "Author",
+ "DESCRIPTION": "Description"
+ },
"MODAL": {
"TEXT": "Text",
"INFO": "Info",
@@ -221,6 +228,12 @@
"SEND_ME_A_NEW_PASSWORD": "Send me a new password"
},
"ABOUT": {
+ "TITLE_ABOUT": "About",
+ "TITLE_README": "Readme",
+ "TITLE_LICENSE": "License",
+ "TITLE_COOKIES": "Cookies",
+ "TITLE_CHANGELOG": "Changelog",
+ "TITLE_DEPENDENCIES": "Dependencies",
"LICENSE": "Copyright 2022 - Antonio Mudarra Machuca - \n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
}
}
diff --git a/src/assets/i18n/sp.json b/src/assets/i18n/sp.json
index 85874e3..3dd63d8 100644
--- a/src/assets/i18n/sp.json
+++ b/src/assets/i18n/sp.json
@@ -195,6 +195,13 @@
"TITLE_BREAKPOINT_SIMULATION": "Breakpoint",
"MESSAGE_BREAKPOINT_SIMULATION": "Pausa la simulación"
},
+ "TABLE": {
+ "NAME": "Nombre",
+ "VERSION": "Versión",
+ "LICENSE": "Licencia",
+ "AUTHOR": "Autor",
+ "DESCRIPTION": "Descripción"
+ },
"MODAL": {
"TEXT": "Texto",
"INFO": "Información",
@@ -221,6 +228,12 @@
"SEND_ME_A_NEW_PASSWORD": "Enviar una nueva contraseña"
},
"ABOUT": {
+ "TITLE_ABOUT": "Sobre nosotros",
+ "TITLE_README": "Leeme",
+ "TITLE_LICENSE": "Licencia",
+ "TITLE_COOKIES": "Cookies",
+ "TITLE_CHANGELOG": "Cambios",
+ "TITLE_DEPENDENCIES": "Dependencias",
"LICENSE": "Copyright 2022 - Antonio Mudarra Machuca - \n\nPor la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el \"Software\"), a utilizar el Software sin restricción, incluyendo sin limitación los derechos a usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y a permitir a las personas a las que se les proporcione el Software a hacer lo mismo, sujeto a las siguientes condiciones:\n\n\nEl aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.\n\n\nEL SOFTWARE SE PROPORCIONA \"COMO ESTA\", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIALIZACIÓN, IDONEIDAD PARA UN PROPÓSITO PARTICULAR E INCUMPLIMIENTO. EN NINGÚN CASO LOS AUTORES O PROPIETARIOS DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O CUALQUIER OTRO MOTIVO, DERIVADAS DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O SU USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE."
}
}
diff --git a/src/styles.scss b/src/styles.scss
index 731cf63..fa19fb6 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -402,3 +402,38 @@ markdown img {
justify-items: center;
align-items: center;
}
+
+:root {
+ --slider-width: 400px;
+}
+
+body {
+ background-color: gray;
+}
+
+.slider {
+ width: var(--slider-width);
+ height: 1.1em;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.text {
+ font-size: 1em;
+ display: inline-block;
+ animation: slide 20s linear infinite;
+}
+
+@keyframes slide {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 50% {
+ transform: translateX(calc(-100% + 400px));
+ }
+
+ 100% {
+ transform: translateX(0%);
+ }
+}