gentera-rdnd 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/fesm2022/gentera-rdnd.mjs +794 -0
  2. package/fesm2022/gentera-rdnd.mjs.map +1 -0
  3. package/index.d.ts +552 -0
  4. package/package.json +17 -9
  5. package/ng-package.json +0 -7
  6. package/src/lib/components/button/button.component.html +0 -21
  7. package/src/lib/components/button/button.component.scss +0 -41
  8. package/src/lib/components/button/button.component.ts +0 -82
  9. package/src/lib/components/input/Readme.md +0 -33
  10. package/src/lib/components/input/input.component.html +0 -50
  11. package/src/lib/components/input/input.component.scss +0 -86
  12. package/src/lib/components/input/input.component.ts +0 -133
  13. package/src/lib/components/modal/modal.component.html +0 -51
  14. package/src/lib/components/modal/modal.component.scss +0 -50
  15. package/src/lib/components/modal/modal.component.ts +0 -41
  16. package/src/lib/components/rdnd-active-indicator/rdnd-active-indicator.component.css +0 -24
  17. package/src/lib/components/rdnd-active-indicator/rdnd-active-indicator.component.html +0 -12
  18. package/src/lib/components/rdnd-active-indicator/rdnd-active-indicator.component.ts +0 -18
  19. package/src/lib/components/rdnd-loader/rdnd-loader.component.html +0 -129
  20. package/src/lib/components/rdnd-loader/rdnd-loader.component.scss +0 -33
  21. package/src/lib/components/rdnd-loader/rdnd-loader.component.ts +0 -27
  22. package/src/lib/components/rdnd-navbar/rdnd-navbar.component.html +0 -19
  23. package/src/lib/components/rdnd-navbar/rdnd-navbar.component.scss +0 -40
  24. package/src/lib/components/rdnd-navbar/rdnd-navbar.component.ts +0 -59
  25. package/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.html +0 -144
  26. package/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.scss +0 -221
  27. package/src/lib/components/rdnd-sidebar/rdnd-sidebar.component.ts +0 -65
  28. package/src/lib/components/screen-title/screen-title.component.html +0 -5
  29. package/src/lib/components/screen-title/screen-title.component.scss +0 -15
  30. package/src/lib/components/screen-title/screen-title.component.ts +0 -20
  31. package/src/lib/config/rdnd-config.token.ts +0 -6
  32. package/src/lib/gentera-rdnd.component.ts +0 -16
  33. package/src/lib/gentera-rdnd.service.ts +0 -9
  34. package/src/lib/hooks/button.service.ts +0 -31
  35. package/src/lib/hooks/input.service.ts +0 -73
  36. package/src/lib/hooks/modal.service.ts +0 -112
  37. package/src/lib/services/storage.service.ts +0 -31
  38. package/src/lib/styles/colors.scss +0 -63
  39. package/src/lib/styles/colors.ts +0 -55
  40. package/src/lib/styles/fonts.scss +0 -93
  41. package/src/lib/styles/sizes.scss +0 -10
  42. package/src/lib/styles/themes.ts +0 -114
  43. package/src/lib/styles/z_indexes.scss +0 -3
  44. package/src/lib/types/Loader-config.types.ts +0 -8
  45. package/src/lib/types/Sidebar.types.ts +0 -6
  46. package/src/public-api.ts +0 -31
  47. package/tsconfig.lib.json +0 -25
  48. package/tsconfig.lib.prod.json +0 -11
  49. package/tsconfig.spec.json +0 -15
@@ -1,129 +0,0 @@
1
- @if (show) {
2
- <div class="loader">
3
- @if (loaderType === 'compartamos') {
4
- <div class="svg-wrapper">
5
- <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:cc="http://creativecommons.org/ns#"
6
- xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
7
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
9
- viewBox="0 0 1629.3 720">
10
- <defs>
11
- <style>
12
- .cls-1 {
13
- fill: #fff;
14
- }
15
-
16
- .cls-2 {
17
- fill: #8d104b;
18
- }
19
-
20
- .cls-3 {
21
- fill: #f7961c;
22
- }
23
- </style>
24
- </defs>
25
- <!-- Generator: Adobe Illustrator 28.7.1, SVG Export Plug-In . SVG Version: 1.2.0 Build 142) -->
26
- <g>
27
- <g id="Capa_1">
28
- <path id="path16" class="cls-3"
29
- d="M664.5,84.3c-7,1.3-43.6-10.4-43.6-10.4,0,0,26.2,19.3,28.4,22.7,2.2,3.5-7.9,33-7.9,33,0,0,19.3-22.3,26.6-29,4.4-4,14.6-2.1,19.5-.9,4.9,1.2,53.4,14.5,101.8-14.4,31.6-18.9,31.5-23,31.5-23,0,0-26.5-21.5-69.6-16.6-43.2,5-79.8,37.1-86.8,38.4"/>
30
- <path id="path18" class="cls-2"
31
- d="M507.7,668.9c-8.4,2.3-52.7,1.7-52.7,1.7,0,0,31,14,33.5,17,2.4,2.9-10.4,32.4-10.4,32.4,0,0,20.7-21.3,29.6-28.8,5.4-4.5,17.1-5.9,26.7-6.7,5.9-.5,63.8,5.2,122.8-29.6,38.5-22.7,38.5-26.6,38.5-26.6,0,0-37.8-20.3-89.8-8.8-51.9,11.5-89.7,47.1-98.1,49.5"/>
32
- <path id="path20" class="cls-3"
33
- d="M1368.2,125.5c-11.8,2.3-72.1-3.5-72.1-3.5,0,0,40.7,22.6,43.8,26.9,3,4.2-17.9,43.1-17.9,43.1,0,0,30.6-26.8,43.7-35.9,7.9-5.6,24.1-6.1,37.1-6.1s86.5,14.3,171-26.6c55.2-26.8,55.5-32.1,55.5-32.1,0,0-49.3-32-121.6-22.2-72.2,9.9-127.7,54.2-139.5,56.5"/>
34
- <path id="path22" class="cls-3"
35
- d="M77.2,575.8c-12.3,2.6-77.2-17-77.2-17,0,0,46.9,33.2,50.8,39.3,3.8,6.1-13,58.5-13,58.5,0,0,33.4-39.9,46.1-51.8,7.7-7.3,25.8-4.1,34.4-2.1,8.7,1.9,94.7,24,179.3-28.3,55.2-34.1,54.9-41.4,54.9-41.4,0,0-47.3-37.2-123.3-27.2-76,10-139.7,67.8-152.1,70.3"/>
36
- <path id="path24" class="cls-2"
37
- d="M1194.7,50.2c-7.7,1.5-45.8-10.6-45.8-10.6,0,0,27.1,19.3,28.4,23,1.5,4.1-10.4,31.9-10.4,31.9,0,0,22.4-22,30.8-28.6,5.1-4,16.2-2.5,21.5-1.5,5.4,1,59.2,12.3,113.8-17.2,32.8-17.7,34.9-22.9,34.9-22.9,0,0-27.9-19.8-75.7-13.6-47.7,6.1-89.7,38.1-97.5,39.6"/>
38
- <path id="path26" class="cls-1"
39
- d="M1062.8,620.1c0,38.8-36.7,62.4-79.1,62.4s-31.5-2.1-50.6-2.1l31.5-198.2c20.9,0,26.7-2.6,46.7-2.6,37.1,0,54.7,19.4,54.7,43.5s-19.4,43.2-44.7,49.1c23,5,41.5,26.1,41.5,47.9M1040.8,620.7c0-19.1-13.8-38.3-56.4-38.3s-11.2.3-17.7.9l-11.8,74.1c-.9,5.6,7.4,8,29.7,8s56.2-17.1,56.2-44.8M1044.6,525.4c0-16.8-12.1-29.5-36.8-29.5s-26.2,2.4-27.3,8.2c-4.4,22.1-8.8,48.3-11.2,62.1h11.2c46.7-1.2,64.1-18,64.1-40.9"/>
40
- <path id="path28" class="cls-1"
41
- d="M1171.1,680.4c-2.3-9.4-2.3-17.7-1.5-27.3-9.7,14.1-25,30.2-47.4,30.2s-38.5-20.8-38.5-45.8c0-41.5,32.6-95.6,79.1-95.6s20,4.7,39.4,4.7c-10.3,49.7-16.8,97.6-16.8,118.5s.5,12.4,1.2,15.3h-15.6.1ZM1162,557.4c-31.8,0-58.5,39.7-58.5,78.2s8,31.3,22,31.3c25.3,0,44.1-32.1,49.5-63.3l5.9-34.1c.9-6.7-3.2-12-18.8-12"/>
42
- <path id="path30" class="cls-1"
43
- d="M1247.1,574.5l-16.8,105.8h-17.6l20.9-131.1c25.9,0,32.4-7.4,52.7-7.4s40.5,9.1,40.5,34.4-.3,7-.9,10.9l-14.6,93.2h-17.7l14.1-88.8c.6-3.5.9-6.8.9-9.7,0-17.1-7.3-24.4-26.7-24.4s-33.5,9.4-34.7,17.1"/>
44
- <path id="path32" class="cls-1"
45
- d="M1418.6,557.7c-33.2,0-56.2,28.2-56.2,72.7s15,38.5,37.4,38.5,17-.8,24.1-2.6l-2.3,15.6c-7.6,1.7-15,2.6-21.7,2.6-35,0-57.2-17.9-57.2-53.8s32.1-88.8,78.9-88.8,14.7.5,21.7,1.8l-2.6,17.3c-7.3-2.3-15-3.2-22-3.2"/>
46
- <path id="path34" class="cls-1"
47
- d="M1560.5,593.9c0,46.8-27.1,90.6-68.9,90.6s-45-18.8-45-52.1c0-47.1,27.6-90.6,68.8-90.6s45.1,19.1,45.1,52M1465.7,631.2c0,26.1,9.5,37.9,28.2,37.9s47.3-32.6,47.3-73.5-8.5-38.2-27.6-38.2c-27.1,0-48,33-48,73.8"/>
48
- <path id="path36" class="cls-1"
49
- d="M179.3,400.2c-12.4,5.9-27.1,8.9-41.2,8.9-54.4,0-101.3-28.8-101.3-102.7s48.3-104.9,102.8-104.9,28,1.8,39.8,5.3v34.5c-12-5-25.4-8-40-8-38.3,0-65.7,19.4-65.7,72.2s29.7,71.6,65.9,71.6,27.4-2.4,39.8-7.7v30.9"/>
50
- <path id="path38" class="cls-1"
51
- d="M228.5,335.5c0,29.7,12.9,44.4,29.1,44.4s28-13.5,28-44.4-13-44.2-29.5-44.2-27.6,13.2-27.6,44.2M320.3,335.5c0,43.2-25,73.3-63.6,73.3s-63.3-30.1-63.3-73.3,25.3-72.7,63.3-72.7,63.6,28.8,63.6,72.7"/>
52
- <path id="path40" class="cls-1"
53
- d="M522.5,404.6h-32.5v-88c0-18.2-7-25-21.7-25s-21.2,3.5-21.2,10.2c.3,3.2.9,7.4.9,11.8v91h-32.4v-88c0-18.5-7.4-25-20-25s-21.8,2.9-21.8,12.9v100.1h-32.4v-134.9c28.6,0,37.7-6.5,58.9-6.5s26.8,4.4,33.8,10.6c10.6-6.8,24.1-10.6,41.5-10.6,28,0,46.9,12.7,46.9,48.9v92.5"/>
54
- <path id="path42" class="cls-1"
55
- d="M597.2,290.4c-10.8,0-17.8,4.7-17.8,9.5v70.6c0,5,7.8,9.4,17.8,9.4,20.5,0,32.3-13.5,32.3-44.2s-11.8-45.3-32.3-45.3M546.3,477.9c.6-30.9,1.2-61.5,1.2-100.1v-110.4c20,0,32.7-4.7,52.3-4.7,35.7,0,65.4,25.6,65.4,73.6s-31.8,71.5-61.2,71.5-20-3-24.5-6.2v76.2h-33.2"/>
56
- <path id="path44" class="cls-1"
57
- d="M753,337.8c-26.8.8-40.6,9.1-40.6,24.7s8.3,18,20.9,18,17.4-3.2,18.6-7.4c.9-4.4,1.1-17.6,1.1-35.3M753,313.7v-5.3c0-11.2-7.6-17.9-21.4-17.9s-28.3,2.7-43,9.4v-30.3c15.3-4.4,29.1-6.7,45.6-6.7,31.8,0,51.5,12.9,51.5,45.3s-.9,42.4-.9,64.2.6,24.2,1.5,31.5c-23.6,0-36.2,3.8-56.2,3.8-34.1,0-51.2-15.8-51.2-42.6s22.4-49.8,74.1-51.2"/>
58
- <path id="path46" class="cls-1"
59
- d="M810.8,404.6v-137.8h30.6v13c8.2-13,22.1-17.4,35.6-17.4s10.5.6,15,1.2v34.1c-5.6-2.6-14.5-3.8-22.7-3.8-13.2,0-25,5.3-25.7,16.8-.6,23.2-.6,58.8-.6,93.9h-32.4"/>
60
- <path id="path48" class="cls-1"
61
- d="M937.9,266.8h39.7v28.3h-39.7c0,29.1-.3,49.2-.3,70.7s6.2,14.4,17.1,14.4,15.9-1.5,22.9-5.3v28.5c-9.7,3.6-19.7,5.3-31.5,5.3-23.5,0-40.9-10.9-40.9-36.5v-130.4l32.7-19.4v44.4"/>
62
- <path id="path50" class="cls-1"
63
- d="M1068.6,337.8c-26.8.8-40.6,9.1-40.6,24.7s8.2,18,20.9,18,17.3-3.2,18.5-7.4c.9-4.4,1.2-17.6,1.2-35.3M1068.6,313.7v-5.3c0-11.2-7.7-17.9-21.5-17.9s-28.3,2.7-43,9.4v-30.3c15.3-4.4,29-6.7,45.6-6.7,31.8,0,51.5,12.9,51.5,45.3s-.9,42.4-.9,64.2.6,24.2,1.5,31.5c-23.5,0-36.2,3.8-56.3,3.8-34.1,0-51.2-15.8-51.2-42.6s22.4-49.8,74.2-51.2"/>
64
- <path id="path52" class="cls-1"
65
- d="M1307.8,404.6h-32.4v-88c0-18.2-7.1-25-21.8-25s-21.2,3.5-21.2,10.2c.2,3.2.9,7.4.9,11.8v91h-32.4v-88c0-18.5-7.4-25-20-25s-21.8,2.9-21.8,12.9v100.1h-32.3v-134.9c28.5,0,37.7-6.5,58.8-6.5s26.8,4.4,33.9,10.6c10.6-6.8,24.1-10.6,41.5-10.6,28,0,46.8,12.7,46.8,48.9v92.5"/>
66
- <path id="path54" class="cls-1"
67
- d="M1363,335.5c0,29.7,13,44.4,29.2,44.4s27.9-13.5,27.9-44.4-12.9-44.2-29.4-44.2-27.8,13.2-27.8,44.2M1454.9,335.5c0,43.2-25,73.3-63.6,73.3s-63.3-30.1-63.3-73.3,25.4-72.7,63.3-72.7,63.6,28.8,63.6,72.7"/>
68
- <path id="path56" class="cls-1"
69
- d="M1522.2,262.7c10.9,0,20,.8,31.8,4.1v30.7c-13.8-5.6-23.6-7.1-33-7.1s-18.2,4.7-18.2,11.8c0,21.2,57.6,19.1,57.6,61.5s-16.5,45-54.7,45-24.4-1.2-35.9-4.7v-28.8c11.2,3.8,24.4,5.6,33.8,5.6,15.6,0,23.5-5.9,23.5-15,0-23.3-58-19.7-58-60.1s20.1-43,53-43"/>
70
- </g>
71
- </g>
72
- </svg>
73
- </div>
74
- } @else {
75
- <div class="svg-wrapper">
76
- <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
77
- x="0px" y="0px"
78
- viewBox="0 0 554 481" style="enable-background:new 0 0 554 481;" xml:space="preserve">
79
- <style type="text/css">
80
- .st0 {
81
- fill: none;
82
- }
83
-
84
- .st1 {
85
- fill: #E85E16;
86
- }
87
-
88
- .st2 {
89
- fill: #9D0046;
90
- }
91
-
92
- .st3 {
93
- fill: #592275;
94
- }
95
-
96
- .st4 {
97
- fill: #CD0058;
98
- }
99
-
100
- .st5 {
101
- fill: #00587F;
102
- }
103
-
104
- .st6 {
105
- fill: #229B7D;
106
- }
107
- </style>
108
- <rect class="st0" width="554" height="481"/>
109
- <g>
110
- <path id="naranja" class="st1" d="M277.4,128.4c74.7-40.1,146.4-40,154.5-40c8.1,48,13.7,67-7.9,121.3
111
- c-24.2,43.8-169.9,71.1-169.9,71.1l0,0c2.7-5.3-3.7-67.7-3.7-67.7S248.6,141.8,277.4,128.4"/>
112
- <path id="roja" class="st2" d="M449.8,205.7c-2.6,16-11.6,58-43.6,101.2s-99.9,85.5-138,96s-35.3,8-51.6,8
113
- c-10-28.6-11.3-33.9-4.9-81.3s22.9-61.8,56.5-80c24.4-10.7,48.7-17.3,73.1-25.3C379.4,213.7,417.4,208.3,449.8,205.7"/>
114
- <path id="morada" class="st3" d="M236.8,95.1c18.8-8.3,43.1-16.7,70-25.2c-7.8,18.8-10.1,42.8-15.2,66.9
115
- c-6.6,43.2-12.8,104.4-40.2,136.6C217.9,313,127.3,348.2,127,347.6l-2.5,0c-14.4-50.4-20.6-93-15.7-125
116
- C116,166.4,150.6,131.2,236.8,95.1L236.8,95.1"/>
117
- <path id="fushia" class="st4" d="M425.5,246h13.6c-13.5,37.3-31.4,76.2-72,105.6c-69,48.9-98.8,50.7-98.8,50.7S341.4,254,425.5,246
118
- "/>
119
- <path id="azul" class="st5" d="M122.5,344.1L122.5,344.1c13.6,45.3,48.8,69.3,100.3,66.6c24.4-48,44-108.8,52.1-164.7
120
- C218,272.7,165.9,312.1,122.5,344.1"/>
121
- <path id="verde" class="st6" d="M277,232.3c5.4-37.3,10.8-72,16.2-103.9C206.5,171,144.2,251,122.5,344.3
122
- c43.4-32,95.2-70.3,152.1-97"/>
123
- </g>
124
- </svg>
125
-
126
- </div>
127
- }
128
- </div>
129
- }
@@ -1,33 +0,0 @@
1
- @keyframes bounce {
2
- from {
3
- opacity: 0.1;
4
- }
5
- to {
6
- opacity: 1;
7
- }
8
- }
9
-
10
- .loader {
11
- position: fixed;
12
- z-index: 99999999999999999;
13
- top: 0;
14
- bottom: 0;
15
- left: 0;
16
- right: 0;
17
- background-color: rgba(0, 0, 0, 0.8);
18
- backdrop-filter: blur(5px);
19
- display: flex;
20
- place-items: center;
21
- place-content: center;
22
-
23
- .svg-wrapper {
24
- width: 80px;
25
- animation: bounce 1s ease-in-out infinite alternate;
26
-
27
- svg {
28
- width: 100%;
29
- height: auto;
30
- display: block;
31
- }
32
- }
33
- }
@@ -1,27 +0,0 @@
1
- import {Component, Inject, Input, Optional} from '@angular/core';
2
- import { RDND_CONFIG } from '../../config/rdnd-config.token';
3
- import {LoaderConfig, LoaderType} from "../../types/Loader-config.types";
4
-
5
- @Component({
6
- selector: 'rdnd-loader',
7
- standalone: true,
8
- imports: [],
9
- templateUrl: './rdnd-loader.component.html',
10
- styleUrl: './rdnd-loader.component.scss'
11
- })
12
- export class RdndLoaderComponent {
13
-
14
- @Input() show: boolean = false;
15
-
16
- loaderType: LoaderType = 'gentera';
17
-
18
- constructor(@Optional() @Inject(RDND_CONFIG) config: LoaderConfig | null) {
19
- const type = config?.loader?.loaderType;
20
- if (type === 'gentera' || type === 'compartamos') {
21
- this.loaderType = type;
22
- }
23
- }
24
-
25
-
26
-
27
- }
@@ -1,19 +0,0 @@
1
- <nav [ngStyle]="{'background': 'linear-gradient(to right, ' + backgroundStart + ', ' + backgroundEnd + ')'}">
2
-
3
- <div class="rdnd-nav-container">
4
- <button (click)="toggleMenu()" >
5
- <fa-icon [icon]="showSidebar ? faTimes : faBarsStaggered"></fa-icon>
6
- </button>
7
-
8
- @if (imageUrl) {
9
- <a [routerLink]="['/']">
10
- <img src="{{imageUrl}}" alt="">
11
- </a>
12
- }
13
-
14
- <button (click)="handleSignOut()">
15
- <fa-icon [icon]="faSignOut"></fa-icon>
16
- </button>
17
- </div>
18
-
19
- </nav>
@@ -1,40 +0,0 @@
1
- nav {
2
- width: 100%;
3
- height: 40px;
4
- padding: 0 16px;
5
-
6
- .rdnd-nav-container {
7
- display: flex;
8
- flex-direction: row;
9
- justify-content: space-between;
10
- align-items: center;
11
-
12
-
13
- a {
14
- img {
15
- height: 30px;
16
- }
17
- }
18
-
19
- button {
20
- appearance: none;
21
- cursor: pointer;
22
- background-color: transparent;
23
- border: 0;
24
- outline: none;
25
- height: 40px;
26
- width: 40px;
27
- color: white;
28
- font-size: 18px;
29
- transition: all 0.3s ease;
30
-
31
- &:hover {
32
- opacity: 0.6;
33
- }
34
-
35
- }
36
-
37
- }
38
-
39
-
40
- }
@@ -1,59 +0,0 @@
1
- import {Component, Input, output} from '@angular/core';
2
-
3
- // Icons
4
- import {FaIconComponent} from "@fortawesome/angular-fontawesome";
5
- import {
6
- faBarsStaggered,
7
- faCircle,
8
- faSignOut,
9
- faTimes
10
- } from "@fortawesome/free-solid-svg-icons";
11
- import {NgStyle} from "@angular/common";
12
- import {RouterLink} from "@angular/router";
13
-
14
- @Component({
15
- selector: 'rdnd-navbar',
16
- standalone: true,
17
- imports: [
18
- FaIconComponent,
19
- NgStyle,
20
- RouterLink
21
- ],
22
- templateUrl: './rdnd-navbar.component.html',
23
- styleUrl: './rdnd-navbar.component.scss'
24
- })
25
- export class RdndNavbar {
26
-
27
- // Icons
28
- protected readonly faBarsStaggered = faBarsStaggered;
29
- protected readonly faSignOut = faSignOut;
30
- protected readonly faTimes = faTimes;
31
-
32
- // States
33
- showLoader = false;
34
-
35
- // Inputs & Outputs
36
- @Input() userName: string = "";
37
- @Input() imageUrl: string = "";
38
- @Input() backgroundStart: string = "#C2185B";
39
- @Input() backgroundEnd: string = "#7E0083";
40
- @Input() showSidebar = false;
41
- onSignOut = output();
42
- onToggleSidebar = output();
43
-
44
- // Functions
45
- toggleMenu = () => {
46
- this.showSidebar = !this.showSidebar;
47
- this.onToggleSidebar.emit();
48
- }
49
-
50
- closeMenu = () => {
51
- this.showSidebar = false;
52
- }
53
-
54
- handleSignOut = () => {
55
- this.onSignOut.emit();
56
- }
57
-
58
-
59
- }
@@ -1,144 +0,0 @@
1
- @if (show) {
2
- <div
3
- class="background-overlay"
4
- (click)="handleClick()"
5
- [ngClass]="show ? 'open' : 'closed'">
6
- </div>
7
- }
8
-
9
- <aside
10
- id="sidebar"
11
- class="sidebar"
12
- [ngClass]="show ? 'open' : 'closed'"
13
- [ngStyle]="{
14
- 'background': 'linear-gradient(to bottom, ' + backgroundStart + ', ' + backgroundEnd + ')'
15
- }"
16
- >
17
-
18
- @if (user) {
19
-
20
- <div class="user-details">
21
- @if (user.photo) {
22
- <img src="{{user.photo}}" alt='{{user.name}}' class="user-image">
23
- } @else {
24
- <div class="user-image">
25
- <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
26
- x="0px" y="0px"
27
- viewBox="0 0 554 481" style="enable-background:new 0 0 554 481;" xml:space="preserve">
28
- <style type="text/css">
29
- .st0 {
30
- fill: none;
31
- }
32
-
33
- .st1 {
34
- fill: #E85E16;
35
- }
36
-
37
- .st2 {
38
- fill: #9D0046;
39
- }
40
-
41
- .st3 {
42
- fill: #592275;
43
- }
44
-
45
- .st4 {
46
- fill: #CD0058;
47
- }
48
-
49
- .st5 {
50
- fill: #00587F;
51
- }
52
-
53
- .st6 {
54
- fill: #229B7D;
55
- }
56
- </style>
57
- <rect class="st0" width="554" height="481"/>
58
- <g>
59
- <path id="naranja" class="st1" d="M277.4,128.4c74.7-40.1,146.4-40,154.5-40c8.1,48,13.7,67-7.9,121.3
60
- c-24.2,43.8-169.9,71.1-169.9,71.1l0,0c2.7-5.3-3.7-67.7-3.7-67.7S248.6,141.8,277.4,128.4"/>
61
- <path id="roja" class="st2" d="M449.8,205.7c-2.6,16-11.6,58-43.6,101.2s-99.9,85.5-138,96s-35.3,8-51.6,8
62
- c-10-28.6-11.3-33.9-4.9-81.3s22.9-61.8,56.5-80c24.4-10.7,48.7-17.3,73.1-25.3C379.4,213.7,417.4,208.3,449.8,205.7"/>
63
- <path id="morada" class="st3" d="M236.8,95.1c18.8-8.3,43.1-16.7,70-25.2c-7.8,18.8-10.1,42.8-15.2,66.9
64
- c-6.6,43.2-12.8,104.4-40.2,136.6C217.9,313,127.3,348.2,127,347.6l-2.5,0c-14.4-50.4-20.6-93-15.7-125
65
- C116,166.4,150.6,131.2,236.8,95.1L236.8,95.1"/>
66
- <path id="fushia" class="st4" d="M425.5,246h13.6c-13.5,37.3-31.4,76.2-72,105.6c-69,48.9-98.8,50.7-98.8,50.7S341.4,254,425.5,246
67
- "/>
68
- <path id="azul" class="st5" d="M122.5,344.1L122.5,344.1c13.6,45.3,48.8,69.3,100.3,66.6c24.4-48,44-108.8,52.1-164.7
69
- C218,272.7,165.9,312.1,122.5,344.1"/>
70
- <path id="verde" class="st6" d="M277,232.3c5.4-37.3,10.8-72,16.2-103.9C206.5,171,144.2,251,122.5,344.3
71
- c43.4-32,95.2-70.3,152.1-97"/>
72
- </g>
73
- </svg>
74
- </div>
75
- }
76
-
77
- <div class="data">
78
- <span>
79
- <fa-icon [icon]="faCircle" class="icon"></fa-icon>
80
- {{ user.name }}
81
- </span>
82
- <span class="email">
83
- {{ user.email }}
84
- </span>
85
- </div>
86
-
87
- </div>
88
-
89
- }
90
-
91
- <ul class="entries">
92
- @for (item of entries; track item.name) {
93
-
94
- @if (item.type === 'ENTRY') {
95
- <li>
96
- <a
97
- [routerLink]="[item.url]"
98
- class="entry"
99
- (click)="handleClick()"
100
- [ngClass]="{
101
- activeRoute: activeRoute === item.url
102
- }"
103
- >
104
- <fa-icon [icon]="faArrowRight"/>
105
- {{ item.name }}
106
- </a>
107
- </li>
108
- } @else if (item.type === 'SECTION') {
109
- <li class="section">
110
-
111
- <div class="section-title" (click)="toggleSection(item.name)">
112
- <fa-icon
113
- [icon]="isSectionOpen(item) ? faChevronUp : faChevronDown"
114
- class="chevron"
115
- />
116
- <span>{{ item.name }}</span>
117
- </div>
118
-
119
- @if (isSectionOpen(item)) {
120
- <ul class="section-entries">
121
- @for (entry of item.entries; track entry.name) {
122
- <li>
123
- <a
124
- [routerLink]="[item.url + entry.url]"
125
- (click)="handleClick()"
126
- class="entry"
127
- [ngClass]="{
128
- activeRoute: isActiveRoute('/' + item.url + entry.url)
129
- }"
130
- >
131
- <fa-icon [icon]="faArrowRight" class="icon"/>
132
- {{ entry.name }}
133
- </a>
134
- </li>
135
- }
136
- <hr/>
137
- </ul>
138
- }
139
- </li>
140
- }
141
- }
142
-
143
- </ul>
144
- </aside>
@@ -1,221 +0,0 @@
1
- @keyframes fadeIn {
2
- from {
3
- opacity: 0;
4
- }
5
- to {
6
- opacity: 1;
7
- }
8
- }
9
-
10
- @keyframes fadeOut {
11
- from {
12
- opacity: 1;
13
- display: flex;
14
- }
15
- to {
16
- opacity: 0;
17
- display: none;
18
- }
19
- }
20
-
21
- div.background-overlay {
22
- position: fixed;
23
- top: 40px;
24
- left: 0;
25
- width: 100%;
26
- height: calc(100% - 40px);
27
- background-color: rgba(0, 0, 0, 0.8);
28
- transition: all 0.3s ease-in-out;
29
- backdrop-filter: blur(5px);
30
- z-index: calc(90 - 1);
31
-
32
- &.closed {
33
- opacity: 0;
34
- visibility: hidden;
35
- animation: fadeOut 0.3s ease-in-out;
36
- }
37
-
38
- &.open {
39
- opacity: 1;
40
- visibility: visible;
41
- animation: fadeIn 0.3s ease-in-out;
42
- }
43
-
44
- }
45
-
46
-
47
- aside.sidebar {
48
- border-top: 1px solid white;
49
- position: fixed;
50
- top: 40px;
51
- height: calc(100% - 40px);
52
- overflow-y: auto;
53
- width: 100%;
54
- max-width: 400px;
55
- padding: 0 0 16px 0;
56
- display: grid;
57
- grid-template-rows: auto 1fr auto;
58
- gap: 10px;
59
- box-sizing: border-box;
60
- transition: left 0.3s ease-in-out;
61
- box-shadow: -2px 0 55px rgba(0, 0, 0, 0.3);
62
- z-index: 90;
63
-
64
-
65
- &.open {
66
- left: 0;
67
- }
68
-
69
- &.closed {
70
- left: -100%;
71
- }
72
-
73
- .user-details {
74
- border-top: 1px solid rgba(242, 242, 242, 0.22);
75
- border-bottom: 1px solid rgba(242, 242, 242, 0.22);
76
- margin: 0 20px;
77
- padding: 10px 0;
78
- display: grid;
79
- grid-template-columns: 70px 1fr;
80
- grid-template-rows: 70px;
81
- column-gap: 20px;
82
- place-items: start;
83
- place-content: center;
84
- box-sizing: border-box;
85
-
86
- .user-image {
87
- background-color: white;
88
- border: 2px solid white;
89
- width: 70px;
90
- height: 70px;
91
- grid-column: 1;
92
- grid-row: 1/3;
93
- border-radius: 50%;
94
- display: flex;
95
- place-items: center;
96
- place-content: center;
97
- }
98
-
99
- .data {
100
- grid-row: 1;
101
- grid-column: 2;
102
- height: 100%;
103
- display: flex;
104
- flex-direction: column;
105
- justify-content: center;
106
- margin: auto 0;
107
- gap: 8px;
108
-
109
- span {
110
- height: fit-content;
111
- margin: 0;
112
- padding: 0;
113
- grid-column: 2;
114
- display: flex;
115
- align-items: center;
116
- color: white;
117
- font-size: 16px;
118
-
119
- .icon {
120
- font-size: 8px;
121
- color: #65A518;
122
- margin-right: 4px;
123
- }
124
- }
125
-
126
- span.email {
127
- font-size: 12px;
128
- }
129
- }
130
- }
131
-
132
- .entries {
133
- width: 100%;
134
- box-sizing: border-box;
135
- display: flex;
136
- flex-direction: column;
137
- align-items: flex-start;
138
- justify-content: flex-start;
139
-
140
- li {
141
- width: 100%;
142
- box-sizing: border-box;
143
-
144
- .entry {
145
- width: 100%;
146
- margin: 0;
147
- padding: 14px 20px;
148
- box-sizing: border-box;
149
- background-color: transparent;
150
- transition: all 0.3s ease;
151
- color: white;
152
- text-decoration: none;
153
- display: flex;
154
- flex-direction: row;
155
- align-items: center;
156
- justify-content: flex-start;
157
- gap: 10px;
158
- font-size: 14px;
159
-
160
- &:hover {
161
- background-color: rgba(0, 0, 0, 0.3);
162
- }
163
-
164
- &.activeRoute {
165
- background-color: rgba(0, 0, 0, 0.1);
166
- }
167
- }
168
- }
169
-
170
- li.section {
171
- width: 100%;
172
- box-sizing: border-box;
173
-
174
- .section-title {
175
- width: 100%;
176
- margin: 0;
177
- padding: 14px 20px;
178
- color: white;
179
- display: flex;
180
- flex-direction: row;
181
- align-items: center;
182
- justify-content: flex-start;
183
- gap: 14px;
184
- user-select: none;
185
- cursor: pointer;
186
- font-size: 14px;
187
-
188
- .chevron {
189
- font-size: 12px;
190
- }
191
-
192
- &:hover {
193
- background-color: rgba(255, 255, 255, 0.05);
194
- }
195
- }
196
-
197
- .section-entries {
198
- animation: fadeIn 0.3s ease-in-out;
199
-
200
- .entry {
201
- padding: 14px 30px 14px 30px;
202
-
203
- .icon {
204
- font-size: 10px;
205
- }
206
- }
207
-
208
- hr {
209
- width: calc(100% - 40px);
210
- margin: auto;
211
- padding: 0 20px 0 30px;
212
- color: rgba(255, 255, 255, 0.2);
213
- box-sizing: border-box;
214
- }
215
- }
216
-
217
- }
218
-
219
- }
220
-
221
- }