otimus-library 0.2.45 → 0.2.47

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 (202) hide show
  1. package/README.md +26 -26
  2. package/ng-package.json +12 -0
  3. package/package.json +4 -13
  4. package/src/assets/images/loading.svg +0 -0
  5. package/src/assets/images/not-found-bg.jpg +0 -0
  6. package/src/lib/components/oc-accordion/oc-accordion.component.html +3 -0
  7. package/src/lib/components/oc-accordion/oc-accordion.component.scss +4 -0
  8. package/src/lib/components/oc-accordion/oc-accordion.component.ts +44 -0
  9. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.html +19 -0
  10. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.scss +86 -0
  11. package/src/lib/components/oc-accordion-item/oc-accordion-item.component.ts +27 -0
  12. package/src/lib/components/oc-accordion-item/styles/oc-accordion-item.shui-component.scss +41 -0
  13. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.html +66 -0
  14. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.scss +157 -0
  15. package/src/lib/components/oc-autocomplete/oc-autocomplete.component.ts +277 -0
  16. package/src/lib/components/oc-badge/oc-badge.component.html +7 -0
  17. package/src/lib/components/oc-badge/oc-badge.component.scss +125 -0
  18. package/src/lib/components/oc-badge/oc-badge.component.ts +22 -0
  19. package/src/lib/components/oc-checkbox/oc-checkbox.component.html +30 -0
  20. package/src/lib/components/oc-checkbox/oc-checkbox.component.scss +103 -0
  21. package/src/lib/components/oc-checkbox/oc-checkbox.component.ts +132 -0
  22. package/src/lib/components/oc-checkbox/styles/oc-checkbox.shui-component.scss +21 -0
  23. package/src/lib/components/oc-chip/oc-chip.component.html +20 -0
  24. package/src/lib/components/oc-chip/oc-chip.component.scss +102 -0
  25. package/src/lib/components/oc-chip/oc-chip.component.ts +32 -0
  26. package/src/lib/components/oc-filter/oc-filter.component.html +22 -0
  27. package/src/lib/components/oc-filter/oc-filter.component.scss +78 -0
  28. package/src/lib/components/oc-filter/oc-filter.component.spec.ts +23 -0
  29. package/src/lib/components/oc-filter/oc-filter.component.ts +30 -0
  30. package/src/lib/components/oc-input/oc-input.component.html +21 -0
  31. package/src/lib/components/oc-input/oc-input.component.scss +3 -0
  32. package/src/lib/components/oc-input/oc-input.component.ts +100 -0
  33. package/src/lib/components/oc-key-value/oc-key-value.component.html +12 -0
  34. package/src/lib/components/oc-key-value/oc-key-value.component.scss +26 -0
  35. package/src/lib/components/oc-key-value/oc-key-value.component.ts +23 -0
  36. package/src/lib/components/oc-key-value/styles/oc-key-value.shui-component.scss +26 -0
  37. package/src/lib/components/oc-log/oc-log.component.html +18 -0
  38. package/src/lib/components/oc-log/oc-log.component.scss +61 -0
  39. package/src/lib/components/oc-log/oc-log.component.ts +15 -0
  40. package/src/lib/components/oc-menu/oc-menu.component.html +31 -0
  41. package/src/lib/components/oc-menu/oc-menu.component.scss +101 -0
  42. package/src/lib/components/oc-menu/oc-menu.component.ts +84 -0
  43. package/src/lib/components/oc-modal/oc-modal.component.html +54 -0
  44. package/src/lib/components/oc-modal/oc-modal.component.scss +204 -0
  45. package/src/lib/components/oc-modal/oc-modal.component.ts +82 -0
  46. package/src/lib/components/oc-modal/styles/oc-modal.shui-component.scss +3 -0
  47. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.html +11 -0
  48. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.scss +27 -0
  49. package/src/lib/components/oc-modal-footer/oc-modal-footer.component.ts +15 -0
  50. package/src/lib/components/oc-not-found/oc-not-found.component.html +14 -0
  51. package/src/lib/components/oc-not-found/oc-not-found.component.scss +153 -0
  52. package/src/lib/components/oc-not-found/oc-not-found.component.spec.ts +23 -0
  53. package/src/lib/components/oc-not-found/oc-not-found.component.ts +12 -0
  54. package/src/lib/components/oc-pagination/oc-pagination.component.html +32 -0
  55. package/src/lib/components/oc-pagination/oc-pagination.component.scss +80 -0
  56. package/src/lib/components/oc-pagination/oc-pagination.component.ts +46 -0
  57. package/src/lib/components/oc-profile/oc-profile.component.html +17 -0
  58. package/src/lib/components/oc-profile/oc-profile.component.scss +80 -0
  59. package/src/lib/components/oc-profile/oc-profile.component.ts +38 -0
  60. package/src/lib/components/oc-step/oc-step.component.html +32 -0
  61. package/src/lib/components/oc-step/oc-step.component.scss +106 -0
  62. package/src/lib/components/oc-step/oc-step.component.ts +39 -0
  63. package/src/lib/components/oc-step/styles/oc-step.shui-component.scss +52 -0
  64. package/src/lib/components/oc-stepper/oc-stepper.component.html +3 -0
  65. package/src/lib/components/oc-stepper/oc-stepper.component.scss +9 -0
  66. package/src/lib/components/oc-stepper/oc-stepper.component.ts +86 -0
  67. package/src/lib/components/oc-tab/oc-tab.component.html +3 -0
  68. package/src/lib/components/oc-tab/oc-tab.component.scss +0 -0
  69. package/src/lib/components/oc-tab/oc-tab.component.ts +15 -0
  70. package/src/lib/components/oc-table/oc-table.component.html +62 -0
  71. package/src/lib/components/oc-table/oc-table.component.scss +2 -0
  72. package/src/lib/components/oc-table/oc-table.component.ts +51 -0
  73. package/src/lib/components/oc-tabs/oc-tabs.component.html +13 -0
  74. package/src/lib/components/oc-tabs/oc-tabs.component.scss +47 -0
  75. package/src/lib/components/oc-tabs/oc-tabs.component.ts +46 -0
  76. package/src/lib/components/oc-tabs/styles/oc-tabs.shui-component.scss +25 -0
  77. package/src/lib/components/oc-toast/oc-toast.component.html +46 -0
  78. package/src/lib/components/oc-toast/oc-toast.component.scss +133 -0
  79. package/src/lib/components/oc-toast/oc-toast.component.ts +15 -0
  80. package/src/lib/components/oc-toggle/oc-toggle.component.html +4 -0
  81. package/src/lib/components/oc-toggle/oc-toggle.component.scss +73 -0
  82. package/src/lib/components/oc-toggle/oc-toggle.component.spec.ts +23 -0
  83. package/src/lib/components/oc-toggle/oc-toggle.component.ts +32 -0
  84. package/src/lib/directives/oc-tooltip/oc-tooltip.directive.ts +108 -0
  85. package/src/lib/interfaces/internal/languages.ts +16 -0
  86. package/src/lib/interfaces/oc-autocomplete.ts +6 -0
  87. package/src/lib/interfaces/oc-menu.ts +10 -0
  88. package/src/lib/interfaces/oc-style-theme.ts +3 -0
  89. package/src/lib/interfaces/oc-table.ts +12 -0
  90. package/src/lib/interfaces/oc-toast.ts +8 -0
  91. package/src/lib/otimus-library.component.ts +16 -0
  92. package/src/lib/otimus-library.service.ts +9 -0
  93. package/src/lib/services/internationalization.service.ts +73 -0
  94. package/src/lib/services/oc-toast.service.ts +107 -0
  95. package/src/lib/services/style-theme.service.ts +19 -0
  96. package/src/public-api.ts +30 -0
  97. package/{styles → src/styles}/colors.scss +70 -70
  98. package/{styles → src/styles}/components/buttons/buttons.scss +225 -225
  99. package/{styles → src/styles}/components/buttons/buttons.shui.scss +61 -61
  100. package/{styles → src/styles}/components/index.scss +2 -2
  101. package/{styles → src/styles}/components/inputs/inputs.scss +249 -247
  102. package/{styles → src/styles}/components/inputs/inputs.shui.scss +212 -212
  103. package/{styles → src/styles}/components/table/table.scss +69 -69
  104. package/{styles → src/styles}/components/table/table.shui.scss +50 -50
  105. package/{styles → src/styles}/components/tooltip.scss +26 -26
  106. package/{styles → src/styles}/grid.scss +1122 -1122
  107. package/{styles → src/styles}/patterns/shui/colors.shui.scss +154 -154
  108. package/{styles → src/styles}/patterns/shui/fonts.shui.scss +65 -65
  109. package/{styles → src/styles}/patterns/shui/index.shui.scss +24 -24
  110. package/{styles → src/styles}/patterns/shui/variables.shui.scss +22 -22
  111. package/{styles → src/styles}/states.scss +5 -5
  112. package/{styles → src/styles}/styles.scss +46 -46
  113. package/{styles → src/styles}/variables.scss +47 -47
  114. package/tsconfig.lib.json +14 -0
  115. package/tsconfig.lib.prod.json +10 -0
  116. package/tsconfig.spec.json +14 -0
  117. package/esm2022/lib/components/oc-accordion/oc-accordion.component.mjs +0 -48
  118. package/esm2022/lib/components/oc-accordion-item/oc-accordion-item.component.mjs +0 -35
  119. package/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +0 -275
  120. package/esm2022/lib/components/oc-badge/oc-badge.component.mjs +0 -30
  121. package/esm2022/lib/components/oc-checkbox/oc-checkbox.component.mjs +0 -133
  122. package/esm2022/lib/components/oc-chip/oc-chip.component.mjs +0 -45
  123. package/esm2022/lib/components/oc-filter/oc-filter.component.mjs +0 -39
  124. package/esm2022/lib/components/oc-input/oc-input.component.mjs +0 -97
  125. package/esm2022/lib/components/oc-key-value/oc-key-value.component.mjs +0 -29
  126. package/esm2022/lib/components/oc-log/oc-log.component.mjs +0 -22
  127. package/esm2022/lib/components/oc-menu/oc-menu.component.mjs +0 -81
  128. package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +0 -85
  129. package/esm2022/lib/components/oc-modal-footer/oc-modal-footer.component.mjs +0 -23
  130. package/esm2022/lib/components/oc-not-found/oc-not-found.component.mjs +0 -11
  131. package/esm2022/lib/components/oc-pagination/oc-pagination.component.mjs +0 -49
  132. package/esm2022/lib/components/oc-profile/oc-profile.component.mjs +0 -38
  133. package/esm2022/lib/components/oc-step/oc-step.component.mjs +0 -49
  134. package/esm2022/lib/components/oc-stepper/oc-stepper.component.mjs +0 -90
  135. package/esm2022/lib/components/oc-tab/oc-tab.component.mjs +0 -20
  136. package/esm2022/lib/components/oc-tabs/oc-tabs.component.mjs +0 -42
  137. package/esm2022/lib/components/oc-toast/oc-toast.component.mjs +0 -17
  138. package/esm2022/lib/components/oc-toggle/oc-toggle.component.mjs +0 -34
  139. package/esm2022/lib/directives/oc-tooltip/oc-tooltip.directive.mjs +0 -117
  140. package/esm2022/lib/interfaces/oc-autocomplete.mjs +0 -2
  141. package/esm2022/lib/interfaces/oc-menu.mjs +0 -2
  142. package/esm2022/lib/interfaces/oc-style-theme.mjs +0 -2
  143. package/esm2022/lib/interfaces/oc-toast.mjs +0 -2
  144. package/esm2022/lib/otimus-library.component.mjs +0 -19
  145. package/esm2022/lib/otimus-library.service.mjs +0 -14
  146. package/esm2022/lib/services/internationalization.service.mjs +0 -68
  147. package/esm2022/lib/services/oc-toast.service.mjs +0 -81
  148. package/esm2022/lib/services/style-theme.service.mjs +0 -21
  149. package/esm2022/otimus-library.mjs +0 -5
  150. package/esm2022/public-api.mjs +0 -30
  151. package/fesm2022/otimus-library.mjs +0 -1513
  152. package/fesm2022/otimus-library.mjs.map +0 -1
  153. package/index.d.ts +0 -5
  154. package/lib/components/oc-accordion/oc-accordion.component.d.ts +0 -18
  155. package/lib/components/oc-accordion-item/oc-accordion-item.component.d.ts +0 -12
  156. package/lib/components/oc-autocomplete/oc-autocomplete.component.d.ts +0 -68
  157. package/lib/components/oc-badge/oc-badge.component.d.ts +0 -11
  158. package/lib/components/oc-checkbox/oc-checkbox.component.d.ts +0 -35
  159. package/lib/components/oc-chip/oc-chip.component.d.ts +0 -14
  160. package/lib/components/oc-filter/oc-filter.component.d.ts +0 -17
  161. package/lib/components/oc-input/oc-input.component.d.ts +0 -31
  162. package/lib/components/oc-key-value/oc-key-value.component.d.ts +0 -14
  163. package/lib/components/oc-log/oc-log.component.d.ts +0 -7
  164. package/lib/components/oc-menu/oc-menu.component.d.ts +0 -20
  165. package/lib/components/oc-modal/oc-modal.component.d.ts +0 -30
  166. package/lib/components/oc-modal-footer/oc-modal-footer.component.d.ts +0 -8
  167. package/lib/components/oc-not-found/oc-not-found.component.d.ts +0 -5
  168. package/lib/components/oc-pagination/oc-pagination.component.d.ts +0 -14
  169. package/lib/components/oc-profile/oc-profile.component.d.ts +0 -12
  170. package/lib/components/oc-step/oc-step.component.d.ts +0 -22
  171. package/lib/components/oc-stepper/oc-stepper.component.d.ts +0 -24
  172. package/lib/components/oc-tab/oc-tab.component.d.ts +0 -8
  173. package/lib/components/oc-tabs/oc-tabs.component.d.ts +0 -18
  174. package/lib/components/oc-toast/oc-toast.component.d.ts +0 -8
  175. package/lib/components/oc-toggle/oc-toggle.component.d.ts +0 -12
  176. package/lib/directives/oc-tooltip/oc-tooltip.directive.d.ts +0 -20
  177. package/lib/interfaces/oc-autocomplete.d.ts +0 -5
  178. package/lib/interfaces/oc-menu.d.ts +0 -9
  179. package/lib/interfaces/oc-style-theme.d.ts +0 -2
  180. package/lib/interfaces/oc-toast.d.ts +0 -8
  181. package/lib/otimus-library.component.d.ts +0 -5
  182. package/lib/otimus-library.service.d.ts +0 -6
  183. package/lib/services/internationalization.service.d.ts +0 -17
  184. package/lib/services/oc-toast.service.d.ts +0 -14
  185. package/lib/services/style-theme.service.d.ts +0 -8
  186. package/public-api.d.ts +0 -26
  187. /package/{assets → src/assets}/fonts/siemens/SH-Bree-Headline-Oblique.woff +0 -0
  188. /package/{assets → src/assets}/fonts/siemens/SH-Bree-Headline-Oblique.woff2 +0 -0
  189. /package/{assets → src/assets}/fonts/siemens/SH-Bree-Headline-Regular.woff +0 -0
  190. /package/{assets → src/assets}/fonts/siemens/SH-Bree-Headline-Regular.woff2 +0 -0
  191. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Black.woff +0 -0
  192. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Black.woff2 +0 -0
  193. /package/{assets → src/assets}/fonts/siemens/SiemensSans-BlackItalic.woff +0 -0
  194. /package/{assets → src/assets}/fonts/siemens/SiemensSans-BlackItalic.woff2 +0 -0
  195. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Bold.woff +0 -0
  196. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Bold.woff2 +0 -0
  197. /package/{assets → src/assets}/fonts/siemens/SiemensSans-BoldItalic.woff +0 -0
  198. /package/{assets → src/assets}/fonts/siemens/SiemensSans-BoldItalic.woff2 +0 -0
  199. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Italic.woff +0 -0
  200. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Italic.woff2 +0 -0
  201. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Roman.woff +0 -0
  202. /package/{assets → src/assets}/fonts/siemens/SiemensSans-Roman.woff2 +0 -0
@@ -0,0 +1,153 @@
1
+ @use '../../../styles/variables.scss';
2
+
3
+ .oc-not-found{
4
+ width: 100vw;
5
+ height: 100vh;
6
+
7
+ position: fixed;
8
+ top: 0;
9
+ left: 0;
10
+
11
+ margin: 0;
12
+ padding: 0;
13
+
14
+ z-index: 50;
15
+
16
+ background-repeat: no-repeat;
17
+ background-image: url(../../../assets/images/not-found-bg.jpg);
18
+ background-size: cover;
19
+ }
20
+
21
+ .content{
22
+ width: 100%;
23
+ height: 100%;
24
+
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ gap: 1.5rem;
29
+
30
+ padding: 2rem;
31
+
32
+ .not-found-msg{
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: .5rem;
36
+
37
+ h2{
38
+ margin: 0;
39
+ padding: 0;
40
+ font-size: 1.75rem;
41
+ color: variables.$color-brand-dp-1;
42
+ }
43
+
44
+ p{
45
+ color: variables.$color-gray-3;
46
+ margin: 0;
47
+ padding: 0;
48
+ max-width: 275px;
49
+ font-weight: 150%;
50
+
51
+ font-family: 'Ubuntu', sans-serif !important;
52
+ }
53
+ }
54
+
55
+ .main-title {
56
+ position: relative;
57
+
58
+ h1{
59
+ font-family: 'Ubuntu', sans-serif !important;
60
+ font-size: 5.5rem;
61
+ z-index: 5;
62
+
63
+ background: linear-gradient(180deg, #5505A2 0%, #9976BB 100%);
64
+ background-clip: text;
65
+ -webkit-background-clip: text;
66
+ -webkit-text-fill-color: transparent;
67
+
68
+ color: variables.$color-brand-p-1;
69
+ }
70
+
71
+ span{
72
+ position: absolute;
73
+ color: variables.$color-brand-p-1;
74
+ font-weight: 900;
75
+ font-size: 3rem;
76
+ font-family: 'Ubuntu', sans-serif !important;
77
+
78
+ }
79
+ .s-1{
80
+ top: 3rem;
81
+ transform: rotate(-25deg);
82
+ z-index: -1;
83
+
84
+ animation: bouncing 4s ease infinite;
85
+ }
86
+
87
+ .s-2{
88
+ top: 2rem;
89
+ left: 3rem;
90
+ font-size: 4rem;
91
+ transform: rotate(-25deg);
92
+
93
+ animation: bouncing-s-2 6s ease infinite;
94
+ }
95
+
96
+ .s-3{
97
+ top: 4rem;
98
+ right: 0;
99
+ font-size: 2.8rem;
100
+ transform: rotate(-25deg);
101
+ animation: bouncing-s-3 9s ease infinite;
102
+ }
103
+ }
104
+ }
105
+
106
+ @keyframes bouncing {
107
+ 0%{
108
+ transform: translateY(0);
109
+ }
110
+ 50%{
111
+ transform: translateY(10px) rotate(10deg);
112
+ }
113
+ 100%{
114
+ transform: translateY(0) rotate(0);
115
+ }
116
+ }
117
+
118
+ @media (max-width: 720px) {
119
+ .content{
120
+ flex-direction: column;
121
+
122
+ .not-found-msg{
123
+ justify-content: center;
124
+ h4, p {
125
+ text-align: center;
126
+ }
127
+ }
128
+ }
129
+ }
130
+
131
+ @keyframes bouncing-s-2 {
132
+ 0%{
133
+ transform: translateY(0);
134
+ }
135
+ 50%{
136
+ transform: translateY(15px) rotate(-18deg);
137
+ }
138
+ 100%{
139
+ transform: translateY(0) rotate(0);
140
+ }
141
+ }
142
+
143
+ @keyframes bouncing-s-3 {
144
+ 0%{
145
+ transform: translateY(0);
146
+ }
147
+ 50%{
148
+ transform: translateY(15px) rotate(7deg);
149
+ }
150
+ 100%{
151
+ transform: translateY(0) rotate(0);
152
+ }
153
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { OcNotFoundComponent } from './oc-not-found.component';
4
+
5
+ describe('OcNotFoundComponent', () => {
6
+ let component: OcNotFoundComponent;
7
+ let fixture: ComponentFixture<OcNotFoundComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ imports: [OcNotFoundComponent]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(OcNotFoundComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,12 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ selector: 'oc-not-found',
5
+ standalone: true,
6
+ imports: [],
7
+ templateUrl: './oc-not-found.component.html',
8
+ styleUrl: './oc-not-found.component.scss'
9
+ })
10
+ export class OcNotFoundComponent {
11
+
12
+ }
@@ -0,0 +1,32 @@
1
+ <div class="oc-pagination">
2
+ <p class="oc-pagination-text">
3
+ Página
4
+ <span>{{ocPage}}</span>
5
+ de
6
+ <span>{{ocMaxPage}}</span>
7
+ </p>
8
+ <div class="oc-pagination-buttons">
9
+ <button (click)="firstPage()" [ngClass]="{
10
+ disabled: ocPage === 1
11
+ }">
12
+ <span class="material-symbols-outlined">keyboard_double_arrow_left</span>
13
+ </button>
14
+ <button (click)="decrementPage()" [ngClass]="{
15
+ disabled: ocPage === 1
16
+ }">
17
+ <span class="material-symbols-outlined">navigate_before</span>
18
+ </button>
19
+ <button (click)="incrementPage()" [ngClass]="{
20
+ disabled: ocPage === ocMaxPage
21
+ }">
22
+ <span class="material-symbols-outlined">navigate_next</span>
23
+ </button>
24
+ <button (click)="lastPage()" [ngClass]="{
25
+ disabled: ocPage === ocMaxPage
26
+ }">
27
+ <span class="material-symbols-outlined">
28
+ keyboard_double_arrow_right
29
+ </span>
30
+ </button>
31
+ </div>
32
+ </div>
@@ -0,0 +1,80 @@
1
+ @use '../../../styles/variables.scss';
2
+
3
+
4
+ .oc-pagination{
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: flex-end;
8
+ gap: 1rem;
9
+
10
+ border: none;
11
+ overflow: hidden;
12
+
13
+ .oc-pagination-buttons{
14
+ display: flex;
15
+ align-items: center;
16
+ gap: 0;
17
+
18
+ border: 2px solid variables.$color-gray-5;
19
+ border-radius: .5rem;
20
+
21
+ transition: .3s ease;
22
+
23
+ &:hover{
24
+ border-color: variables.$color-gray-4;
25
+ }
26
+
27
+ button{
28
+ margin: 0;
29
+
30
+ transition: .15s ease;
31
+
32
+ border-radius: .5rem;
33
+
34
+ cursor: pointer;
35
+ border: none;
36
+
37
+ height: 3rem;
38
+ padding: 0 1rem;
39
+
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+
44
+ background-color: transparent;
45
+ color: variables.$color-gray-2;
46
+ font-weight: 700;
47
+
48
+ &:hover{
49
+ background-color: variables.$color-gray-5;
50
+ color: variables.$color-brand-p-3;
51
+ }
52
+
53
+ &:active{
54
+ transform: translateY(2px);
55
+ }
56
+ }
57
+ }
58
+
59
+ .oc-pagination-text{
60
+ font-weight: 500;
61
+ font-size: 1rem;
62
+
63
+ margin: 0;
64
+
65
+ color: variables.$color-gray-3;
66
+
67
+ span{
68
+ font-weight: 700;
69
+ color: variables.$color-brand-p-1;
70
+
71
+ }
72
+ }
73
+ }
74
+
75
+ .disabled{
76
+ cursor: not-allowed !important;
77
+ opacity: 0.4;
78
+
79
+ pointer-events: none;
80
+ }
@@ -0,0 +1,46 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
3
+
4
+ @Component({
5
+ selector: 'oc-pagination',
6
+ standalone: true,
7
+ imports: [CommonModule],
8
+ templateUrl: './oc-pagination.component.html',
9
+ styleUrl: './oc-pagination.component.scss'
10
+ })
11
+ export class OcPaginationComponent implements OnInit{
12
+ @Input() ocPage: number = 1
13
+ @Input() ocMaxPage?: number
14
+ @Output() ocGetPage = new EventEmitter<number>()
15
+
16
+ ngOnInit(): void {
17
+ if(!this.ocMaxPage) this.ocMaxPage = this.ocPage
18
+ }
19
+
20
+ firstPage() {
21
+ this.ocPage = 1
22
+
23
+ this.ocGetPage.emit(this.ocPage)
24
+ }
25
+
26
+ decrementPage() {
27
+ if(this.ocPage <= 1) return
28
+ this.ocPage--
29
+
30
+ this.ocGetPage.emit(this.ocPage)
31
+ }
32
+
33
+ incrementPage() {
34
+ if(!this.ocMaxPage || this.ocPage >= this.ocMaxPage) return
35
+ this.ocPage++
36
+
37
+ this.ocGetPage.emit(this.ocPage)
38
+ }
39
+
40
+ lastPage() {
41
+ if(!this.ocMaxPage) return
42
+ this.ocPage = this.ocMaxPage
43
+
44
+ this.ocGetPage.emit(this.ocPage)
45
+ }
46
+ }
@@ -0,0 +1,17 @@
1
+ <div class="oc-profile"
2
+ [ngClass]="{
3
+ small: ocSize === 'small',
4
+ tiny: ocSize === 'tiny',
5
+ large: ocSize === 'large'
6
+ }"
7
+ >
8
+ <div class="content">
9
+ @if(ocProfilePic){
10
+ <img [src]="ocProfilePic" [alt]="ocUserName || 'Foto de perfil do usuário'">
11
+ }@else {
12
+ <span>
13
+ {{nameInitials}}
14
+ </span>
15
+ }
16
+ </div>
17
+ </div>
@@ -0,0 +1,80 @@
1
+ @use '../../../styles/variables.scss';
2
+
3
+ .oc-profile{
4
+ transform: rotate(45deg);
5
+
6
+ width: 50px;
7
+ height: 50px;
8
+
9
+ padding: 0;
10
+ margin: 0;
11
+
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+
16
+ background-color: variables.$color-brand-p-1;
17
+ border-radius: .7rem;
18
+
19
+ overflow: hidden;
20
+
21
+ &.small{
22
+ width: 40px;
23
+ height: 40px;
24
+ border-radius: .55rem;
25
+
26
+ .content{
27
+ font-size: 1.2rem;
28
+ }
29
+ }
30
+
31
+ &.tiny{
32
+ width: 30px;
33
+ height: 30px;
34
+ border-radius: .4rem;
35
+
36
+ .content{
37
+ font-size: 0.9rem;
38
+ }
39
+ }
40
+
41
+ &.large{
42
+ width: 60px;
43
+ height: 60px;
44
+
45
+ .content{
46
+ font-size: 2rem;
47
+ }
48
+ }
49
+
50
+ .content{
51
+ transform: rotate(-45deg);
52
+ color: variables.$color-gray-6;
53
+ font-weight: 500;
54
+ font-size: 1.5rem;
55
+ user-select: none;
56
+
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+
61
+ &:hover{
62
+ img{
63
+ transform: scale(2.1);
64
+ }
65
+ }
66
+ }
67
+
68
+ img{
69
+ max-width: 100%;
70
+ max-height: 100%;
71
+
72
+ // max-height: 64px;
73
+ // max-width: 64px;
74
+
75
+ transform: scale(1.95);
76
+
77
+ transition: .3s ease;
78
+ object-fit: cover;
79
+ }
80
+ }
@@ -0,0 +1,38 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
3
+
4
+ @Component({
5
+ selector: 'oc-profile',
6
+ standalone: true,
7
+ imports: [CommonModule],
8
+ templateUrl: './oc-profile.component.html',
9
+ styleUrl: './oc-profile.component.scss',
10
+ encapsulation: ViewEncapsulation.None
11
+ })
12
+ export class OcProfileComponent implements OnInit {
13
+ @Input() ocUserName?: string
14
+ @Input() ocProfilePic?: string
15
+ @Input() ocSize: 'large' | 'medium' | 'small' | 'tiny' = 'medium'
16
+ nameInitials: string = ''
17
+
18
+ ngOnInit() {
19
+ this.getInitials()
20
+ }
21
+
22
+ getInitials() {
23
+ if(!this.ocUserName) return
24
+
25
+ const splittedName = this.ocUserName?.split(' ')
26
+
27
+ const firstLetter = splittedName[0][0]
28
+ let lastLetter = ''
29
+
30
+ const lastName = splittedName[splittedName.length - 1]
31
+
32
+ if(splittedName.length > 1 && lastName){
33
+ lastLetter = lastName[0]
34
+ }
35
+
36
+ this.nameInitials = (firstLetter + lastLetter).toUpperCase()
37
+ }
38
+ }
@@ -0,0 +1,32 @@
1
+ <div class="oc-step" (click)="
2
+ handleStepClick(stepIndex)
3
+ " [ngClass]="{
4
+ 'oc-not-selected': stepIndex !== selectedIndex,
5
+ 'shui': ocStyle === 'shui',
6
+ 'shui-step': ocStyle === 'shui'
7
+ }">
8
+ <div class="left-side">
9
+ <div class="step-number" [ngClass]="{
10
+ 'oc-selected-p': selectedIndex === stepIndex && ocColor === 'purple',
11
+ 'oc-selected-g': selectedIndex === stepIndex && ocColor === 'green',
12
+ 'oc-purple': (stepIndex! <= selectedIndex || ocCompleted) && ocColor === 'purple',
13
+ 'oc-green': (stepIndex! <= selectedIndex || ocCompleted) && ocColor === 'green'
14
+ }">
15
+ <span>{{stepIndex! + 1}}</span>
16
+ </div>
17
+ <h2 [ngClass]="{
18
+ 'oc-selected-p-title': selectedIndex === stepIndex && ocColor === 'purple',
19
+ 'oc-selected-g-title': selectedIndex === stepIndex && ocColor === 'green',
20
+ }">{{ocTitle}}</h2>
21
+ </div>
22
+ <div class="oc-content" [ngClass]="{
23
+ 'expanded': ocIsActive,
24
+ 'oc-prev-selected-p': (stepIndex! < selectedIndex || ocCompleted) && ocColor === 'purple',
25
+ 'oc-prev-selected-g': (stepIndex! < selectedIndex || ocCompleted) && ocColor === 'green',
26
+ 'oc-left-border': stepIndex !== lastIndex
27
+ }">
28
+ @if (ocIsActive) {
29
+ <ng-content></ng-content>
30
+ }
31
+ </div>
32
+ </div>
@@ -0,0 +1,106 @@
1
+ @use '../../../styles/variables.scss';
2
+ .oc-step {
3
+ border-left: 2px;
4
+ width: 100%;
5
+
6
+ &.oc-not-selected {
7
+ cursor: pointer;
8
+ transition: 0.15s ease;
9
+ border-radius: 1rem;
10
+ &:hover {
11
+ background-color: variables.$color-gray-6;
12
+ }
13
+ }
14
+ }
15
+
16
+ .left-side {
17
+ display: flex;
18
+ align-items: center;
19
+ gap: 1rem;
20
+
21
+ h2 {
22
+ margin: 0;
23
+ font-size: 1.5rem;
24
+ }
25
+
26
+ .step-number {
27
+ padding: 2rem;
28
+
29
+ background-color: variables.$color-gray-4;
30
+
31
+ &.oc-purple {
32
+ background-color: variables.$color-brand-p-1;
33
+ }
34
+
35
+ &.oc-green {
36
+ background-color: variables.$color-brand-g-1;
37
+ }
38
+
39
+ &.oc-selected-p {
40
+ box-shadow: 0 0 16px variables.$color-brand-p-6;
41
+ }
42
+
43
+ &.oc-selected-g {
44
+ box-shadow: 0 0 16px variables.$color-brand-g-6;
45
+ }
46
+
47
+ width: 50px;
48
+ height: 50px;
49
+ display: flex;
50
+ justify-content: center;
51
+ align-items: center;
52
+ border-radius: 16px;
53
+
54
+ transform: rotate(45deg);
55
+
56
+ span {
57
+ transform: rotate(-45deg);
58
+ color: variables.$color-gray-6;
59
+
60
+ font-size: 1.5rem;
61
+ font-weight: 700;
62
+ }
63
+ }
64
+ }
65
+
66
+ .oc-content {
67
+ overflow: hidden;
68
+ transition: padding 0.3s ease, opacity 0.3s ease;
69
+ padding: 1.5rem;
70
+ margin-left: 27px;
71
+ width: 100%;
72
+
73
+ &.expanded {
74
+ padding: 1rem 2.9rem 2rem;
75
+ opacity: 1;
76
+ }
77
+
78
+ &.oc-left-border {
79
+ border-left: 3px solid variables.$color-gray-4;
80
+ }
81
+
82
+ &.oc-prev-selected-p {
83
+ border-left: 3px solid variables.$color-brand-p-2;
84
+ }
85
+
86
+ &.oc-prev-selected-g {
87
+ border-left: 3px solid variables.$color-brand-g-2;
88
+ }
89
+ }
90
+
91
+
92
+ .oc-selected-p-title {
93
+ color: variables.$color-brand-p-1;
94
+ }
95
+
96
+ .oc-selected-g-title {
97
+ color: variables.$color-brand-g-1;
98
+ }
99
+
100
+ @media (max-width: 820px) {
101
+ .expanded {
102
+ padding: 0rem 1rem 2rem !important;
103
+ }
104
+ }
105
+
106
+ @import './styles/oc-step.shui-component.scss';
@@ -0,0 +1,39 @@
1
+ import { CommonModule } from '@angular/common'
2
+ import { AfterViewInit, Component, EventEmitter, Input, Output } from '@angular/core'
3
+ import { StyleThemeService } from '../../services/style-theme.service'
4
+ import { OcStyleThemeType } from '../../interfaces/oc-style-theme'
5
+
6
+ @Component({
7
+ selector: 'oc-step',
8
+ standalone: true,
9
+ imports: [CommonModule],
10
+ templateUrl: './oc-step.component.html',
11
+ styleUrl: './oc-step.component.scss',
12
+ })
13
+ export class OcStepComponent implements AfterViewInit {
14
+ constructor(private styleThemeService: StyleThemeService) {}
15
+
16
+ @Input() ocIsActive: boolean = false
17
+ @Input() ocTitle: string = ''
18
+ @Input() ocColor: 'purple' | 'green' = 'purple'
19
+ @Input() ocCompleted: boolean = false
20
+ @Input() ocStyle: OcStyleThemeType = 'otimus'
21
+
22
+ @Output() ocClick = new EventEmitter()
23
+ stepIndex: number = 0
24
+ selectedIndex: number = 0
25
+ lastIndex: number = 0
26
+
27
+ ngAfterViewInit(): void {
28
+ this.ocStyle = this.styleThemeService.getStyleTheme() || this.ocStyle
29
+ }
30
+
31
+ protected handleStepClick(stepIndex: number): void {
32
+ if (stepIndex !== this.selectedIndex && (stepIndex <= this.selectedIndex || this.ocCompleted)) {
33
+ this.selectStep(stepIndex)
34
+ this.ocClick.emit()
35
+ }
36
+ }
37
+
38
+ @Input() selectStep!: (index: number) => void
39
+ }