ui-soxo-bootstrap-core 2.6.1-dev.1 → 2.6.1-dev.11

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 (51) hide show
  1. package/core/components/extra-info/extra-info-details.js +2 -2
  2. package/core/lib/Store.js +3 -3
  3. package/core/lib/components/global-header/global-header.js +2 -2
  4. package/core/lib/components/sidemenu/sidemenu.js +19 -13
  5. package/core/lib/elements/basic/country-phone-input/country-phone-input.js +14 -8
  6. package/core/lib/elements/basic/dragabble-wrapper/draggable-wrapper.js +1 -1
  7. package/core/lib/elements/basic/menu-tree/menu-tree.js +26 -13
  8. package/core/lib/models/forms/components/form-creator/form-creator.scss +5 -4
  9. package/core/lib/models/menus/components/menu-list/menu-list.js +424 -467
  10. package/core/lib/pages/change-password/change-password.js +17 -24
  11. package/core/lib/pages/change-password/change-password.scss +45 -48
  12. package/core/lib/pages/login/commnication-mode-selection.js +46 -0
  13. package/core/lib/pages/login/communication-mode-selection.scss +60 -0
  14. package/core/lib/pages/login/login.js +126 -22
  15. package/core/lib/pages/login/login.scss +229 -334
  16. package/core/lib/pages/login/reset-password.js +124 -0
  17. package/core/lib/pages/login/reset-password.scss +31 -0
  18. package/core/lib/pages/profile/themes.json +4 -4
  19. package/core/lib/utils/api/api.utils.js +30 -18
  20. package/core/lib/utils/common/common.utils.js +85 -0
  21. package/core/lib/utils/http/http.utils.js +1 -0
  22. package/core/lib/utils/index.js +4 -1
  23. package/core/models/base/base.js +7 -3
  24. package/core/models/core-scripts/core-scripts.js +9 -0
  25. package/core/models/doctor/components/doctor-add/doctor-add.js +9 -4
  26. package/core/models/menus/components/menu-add/menu-add.js +1 -1
  27. package/core/models/menus/components/menu-lists/menu-lists.js +5 -9
  28. package/core/models/menus/menus.js +21 -2
  29. package/core/models/roles/components/role-add/role-add.js +92 -59
  30. package/core/models/roles/components/role-list/role-list.js +1 -1
  31. package/core/models/staff/components/staff-add/staff-add.js +20 -32
  32. package/core/models/users/components/assign-role/assign-role.js +145 -50
  33. package/core/models/users/components/assign-role/assign-role.scss +209 -45
  34. package/core/models/users/components/assign-role/avatar-props.js +45 -0
  35. package/core/models/users/components/user-add/user-add.js +46 -55
  36. package/core/models/users/components/user-add/user-edit.js +25 -4
  37. package/core/models/users/users.js +16 -1
  38. package/core/modules/dashboard/components/dashboard-card/menu-dashboard-card.js +1 -1
  39. package/core/modules/reporting/components/reporting-dashboard/README.md +316 -0
  40. package/core/modules/reporting/components/reporting-dashboard/adavance-search/advance-search.js +266 -0
  41. package/core/modules/reporting/components/reporting-dashboard/display-columns/build-display-columns.js +75 -0
  42. package/core/modules/reporting/components/reporting-dashboard/display-columns/build-display-columns.test.js +74 -0
  43. package/core/modules/reporting/components/reporting-dashboard/display-columns/display-cell-renderer.js +252 -0
  44. package/core/modules/reporting/components/reporting-dashboard/display-columns/display-cell-renderer.test.js +126 -0
  45. package/core/modules/reporting/components/reporting-dashboard/reporting-dashboard.js +285 -399
  46. package/core/modules/steps/action-buttons.js +42 -44
  47. package/core/modules/steps/action-buttons.scss +35 -6
  48. package/core/modules/steps/steps.js +12 -10
  49. package/core/modules/steps/steps.scss +229 -31
  50. package/core/modules/steps/timeline.js +21 -19
  51. package/package.json +2 -1
@@ -1,17 +1,35 @@
1
+ // Variables
2
+ $primary-color: #0c66e4;
3
+ $bg-color-light: #f5f5f5;
4
+ $border-color-light: #e8e8e8;
5
+ $border-color-medium: #e0e0e0;
6
+ $border-color-dark: #d9d9d9;
7
+ $text-color-dark: #071822;
8
+ $white: #ffffff;
9
+ $error-color: red;
10
+
1
11
  body {
2
12
  overflow: hidden;
3
13
  }
4
14
 
15
+ .full-page {
16
+ height: 100vh;
17
+ min-height: 100vh;
18
+ width: 100%;
19
+ background-repeat: no-repeat;
20
+ background-position: bottom center;
21
+ background-size: 100% auto;
22
+ }
23
+
5
24
  .user-authentication-section {
6
25
  min-height: 90vh;
7
26
  display: flex;
8
- // margin: 0px 15%;
9
27
  justify-content: center;
10
- padding: 0px 15%;
11
- // align-items: center;
28
+ padding: 0 15%;
12
29
 
13
30
  @media (max-width: 1200px) {
14
31
  margin: 0 5%;
32
+ padding: 0 5%;
15
33
  }
16
34
 
17
35
  @media (max-width: 768px) {
@@ -21,63 +39,22 @@ body {
21
39
  align-items: center;
22
40
  }
23
41
 
42
+ @media only screen and (min-width: 608px) {
43
+ justify-content: center;
44
+ align-items: center;
45
+ }
46
+
24
47
  .page-background {
25
48
  position: absolute;
26
- left: 0px;
27
- top: 0px;
49
+ left: 0;
50
+ top: 0;
28
51
  height: 40vh;
29
52
  width: 100%;
30
-
31
- // background-image:url("./../../../assets/images/vector.png"); /* Set Image */ ;
32
- // background: url("./../../../assets/images/vector.png"),
33
- // linear-gradient(to right, #D5F1FB, #24AEB8);
34
- // background-size: cover;
35
- // background-position: center;
36
- // background: linear-gradient(to right, #7ddafac2, #24AEB8); /* Gradient */
37
- // url("./../../../assets/images/vector.png"),
38
- // /* Background image */ linear-gradient(to right, #7ddafac2, #10c7ef61); /* Gradient */
39
-
40
- // background: #00b4db; /* fallback for old browsers */
41
- // background: -webkit-linear-gradient(to right, #0083b0, #00b4db); /* Chrome 10-25, Safari 5.1-6 */
42
- // background: linear-gradient(
43
- // to right,
44
- // #0083b0,
45
- // #00b4db
46
- // ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
47
-
48
- // background: rgb(131, 58, 180);
49
- // background: -moz-linear-gradient(
50
- // 90deg,
51
- // rgba(131, 58, 180, 1) 0%,
52
- // rgba(253, 29, 29, 1) 50%,
53
- // rgba(252, 176, 69, 1) 100%
54
- // );
55
- // background: -webkit-linear-gradient(
56
- // 90deg,
57
- // rgba(131, 58, 180, 1) 0%,
58
- // rgba(253, 29, 29, 1) 50%,
59
- // rgba(252, 176, 69, 1) 100%
60
- // );
61
-
62
- // background: linear-gradient(90deg, rgba(131, 58, 180, 1) 0%, rgba(253, 29, 29, 1) 50%, rgba(252, 176, 69, 1) 100%);
63
- // filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#833ab4",endColorstr="#fcb045",GradientType=1);
64
-
65
- // background-image: linear-gradient(to right top, #051937, #384164, #6b6e95, #a09ec9, #d9d1ff);
66
- // background: #BAD7FF;
67
- }
68
-
69
- @media screen and (max-width: 1200px) {
70
- margin: 0px 5%;
71
- }
72
-
73
- @media only screen and (min-width: 608px) {
74
- justify-content: center;
75
- align-items: center;
76
53
  }
77
54
 
78
55
  .homescreen {
79
56
  width: 100%;
80
- margin: 10px 0px;
57
+ margin: 10px 0;
81
58
  border-radius: 4px;
82
59
  background-color: aliceblue;
83
60
  padding: 10px;
@@ -85,222 +62,276 @@ body {
85
62
  overflow: hidden;
86
63
  }
87
64
 
88
- .customers {
65
+ .customers,
66
+ .customers2 {
89
67
  width: 50%;
90
- margin: 20px 0px;
68
+ margin: 20px 0;
91
69
 
92
70
  @media only screen and (min-width: 768px) {
93
71
  width: 50%;
94
- /* margin: 20px 0px; */
95
- /* float: right; */
96
- // position: absolute;
97
- // right: 0px;
98
- // top: 20%;
99
72
  }
73
+ @media only screen and (max-width: 768px) {
74
+ width: 85%;
75
+ }
76
+ }
100
77
 
78
+ .customers {
101
79
  @media only screen and (min-width: 769px) {
102
80
  display: none;
103
81
  }
104
-
105
- @media only screen and (max-width: 768px) {
106
- width: 85%;
107
- }
108
82
  }
109
83
 
110
84
  .customers2 {
111
- width: 50%;
112
- margin: 20px 0px;
113
85
  padding: 0 20px;
114
-
115
86
  @media only screen and (min-width: 768px) {
116
87
  width: 40%;
117
- /* margin: 20px 0px; */
118
- /* float: right; */
119
- // position: absolute;
120
- // right: 0px;
121
- // top: 20%;
122
88
  }
123
-
124
89
  @media only screen and (max-width: 768px) {
125
90
  display: none;
126
91
  }
127
92
  }
128
- .brand-logo {
129
- width: 80px;
130
- box-shadow:
131
- 1px 0 8px 0 rgba(0, 0, 0, 0.05),
132
- 8px 8px 18px 0 rgba(0, 0, 0, 0.05);
133
- border: 1px solid #b7b7b7;
134
- text-align: center;
135
- border-radius: 2px;
136
- margin: 22px 0px;
137
- padding: 4px;
138
-
139
- img {
140
- width: 80px;
141
- }
142
- }
143
-
144
- .footer-logo {
145
- width: 180px;
146
- // box-shadow: 1px 0 8px 0 rgba(0, 0, 0, 0.05), 8px 8px 18px 0 rgba(0, 0, 0, 0.05);
147
- // border: 1px solid #b7b7b7;
148
- padding: 4px;
149
- border-radius: 2px;
150
- margin: 20px 0px 30px;
151
- }
152
93
 
153
94
  .auth-form-wrapper {
154
- // padding: 15px 10px;
155
95
  box-sizing: border-box;
156
- // box-shadow: 0 2px 4px rgba(104, 97, 97, 0.5);
157
- // display: flex;
158
- // align-items: center;
159
96
  border-radius: 16px;
160
- background-color: white;
97
+ background-color: $white;
161
98
  overflow: hidden;
162
- border: 1px solid #e8e8e8;
163
-
164
- width: 42%;
99
+ // border: 1px solid $border-color-light;
100
+ width: 40%;
101
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
165
102
 
166
103
  @media only screen and (max-width: 768px) {
167
104
  width: 100%;
168
105
  padding: 0 16px;
169
-
170
- // display: flex;
171
- // flex-direction: column;
172
- // justify-content: center;
173
- // text-align: center;
174
- // align-items: center;
106
+ flex-direction: column;
175
107
  }
176
108
 
177
109
  .login-form-container {
178
- border: 1px solid #e0e0e0;
110
+ // border: 1px solid $border-color-medium;
179
111
  flex-basis: 50%;
180
- // border: none !important;
181
- // box-shadow: none !important;
182
- // padding: 20px 30px;
183
112
  padding: 20px;
184
- padding-top: 2px;
113
+ // padding-top: 2px;
185
114
 
186
115
  @media only screen and (max-width: 768px) {
187
116
  padding: 16px;
188
- // display: flex;
189
- // flex-direction: column;
190
- // justify-content: center;
191
- // text-align: center;
192
- // align-items: center;
193
117
  }
194
118
 
195
- .branch-switcher {
196
- .branches {
197
- .ant-select {
198
- min-width: auto !important;
199
- width: 100%;
119
+ .branch-switcher .branches .ant-select {
120
+ min-width: auto !important;
121
+ width: 100%;
122
+ }
123
+
124
+ .brand-logo {
125
+ width: 80px;
126
+ box-shadow:
127
+ 1px 0 8px 0 rgba(0, 0, 0, 0.05),
128
+ 8px 8px 18px 0 rgba(0, 0, 0, 0.05);
129
+ border: 1px solid #b7b7b7;
130
+ text-align: center;
131
+ border-radius: 2px;
132
+ // margin: 22px 0;
133
+ padding: 4px;
134
+
135
+ img {
136
+ width: 80px;
137
+ }
138
+ }
139
+
140
+ .otp-form {
141
+ margin-top: 20px;
142
+ .otp-input-container {
143
+ display: flex;
144
+ flex-direction: column;
145
+ gap: 2px;
146
+
147
+ p {
148
+ margin: 12px 0 0 0;
149
+ font-size: 12px;
150
+ }
151
+
152
+ .otp-title {
153
+ @media only screen and (max-width: 768px) {
154
+ text-align: left;
155
+ }
156
+ }
157
+
158
+ .otp-method-section {
159
+ display: flex;
160
+ flex-direction: column;
161
+ gap: 6px;
162
+
163
+ .otp-method-title {
164
+ font-size: 16px;
165
+ font-weight: 600;
166
+ margin-bottom: 8px;
167
+ }
168
+
169
+ .otp-method-group {
170
+ display: flex;
171
+ align-items: center;
172
+ margin-bottom: 10px;
173
+ gap: 30px;
174
+ font-size: 12px;
175
+
176
+ .ant-radio-wrapper {
177
+ display: flex;
178
+ gap: 6px;
179
+
180
+ svg {
181
+ font-size: 18px;
182
+ opacity: 0.8;
183
+ }
184
+ }
185
+
186
+ @media only screen and (max-width: 600px) {
187
+ flex-direction: column !important;
188
+ align-items: flex-start !important;
189
+ gap: 12px !important;
190
+ }
191
+
192
+ @media only screen and (min-width: 601px) and (max-width: 1024px) {
193
+ flex-direction: row !important;
194
+ align-items: center !important;
195
+ justify-content: space-between !important;
196
+ gap: 20px !important;
197
+ width: 100%;
198
+
199
+ .ant-radio-wrapper {
200
+ flex: 1;
201
+ }
202
+ }
203
+ }
204
+
205
+ .otp-mode-error {
206
+ margin: 5px;
207
+ font-size: 13px;
208
+ color: $error-color;
209
+ }
210
+
211
+ .otp-icon {
212
+ position: relative;
213
+ top: 2px;
214
+ }
215
+ }
216
+
217
+ .otp-container {
218
+ display: flex;
219
+ flex-direction: column;
220
+ gap: 7px;
221
+
222
+ input[type='text']:focus {
223
+ border-color: $white !important;
224
+ }
225
+ }
226
+
227
+ .otp-mode-text {
228
+ text-transform: capitalize;
229
+ }
230
+ }
231
+
232
+ .forgot-password {
233
+ margin-top: 8px;
234
+ text-align: center;
235
+
236
+ a {
237
+ color: #204b7e;
200
238
  }
201
239
  }
202
240
  }
203
241
  }
204
242
 
205
- .center-line {
206
- border-left: 2px solid #d9d9d9;
207
- height: 180px;
243
+ .otp-actions {
244
+ background-color: $bg-color-light;
245
+ padding: 12px 16px;
246
+ display: flex;
247
+ justify-content: space-between;
248
+ gap: 6px;
249
+
250
+ .resend-action {
251
+ margin-bottom: 8px;
252
+ display: flex;
253
+ gap: 6px;
254
+
255
+ .resend-otp-link {
256
+ display: flex;
257
+ justify-content: center;
258
+ align-items: center;
259
+ text-align: center;
260
+ color: $primary-color;
261
+ margin-bottom: 10px;
262
+ margin: auto;
263
+ }
264
+ }
208
265
  }
209
266
 
210
267
  .center-line {
268
+ border-left: 2px solid $border-color-dark;
269
+ height: 180px;
270
+
211
271
  @media only screen and (max-width: 768px) {
212
272
  display: none;
213
273
  }
214
274
  }
215
-
216
- @media only screen and (max-width: 768px) {
217
- padding: 0;
218
- // min-width: 275px;
219
- flex-direction: column;
220
- }
221
- .form-title {
222
- // h4 {
223
- // color: #071822;
224
- // font-weight: 600;
225
- // // size: 13px;
226
- // margin: 10px 0px;
227
- // font-size: 20px;
228
-
229
- // @media only screen and (max-width: 1400px) {
230
- // line-height: 30px;
231
- // }
232
- }
233
275
  }
276
+
277
+ // Scoped Ant Design Overrides
234
278
  .ant-form {
235
- // height: 100%;
279
+ .ant-form-item:not(:last-child) {
280
+ margin: 20px 0;
281
+ }
236
282
  .ant-form-item {
237
- margin: 20px 0px;
283
+ margin: 20px 0;
284
+
238
285
  .ant-form-item-label {
239
286
  margin: 0 0 8px 0;
240
287
  line-height: 0;
241
288
  padding: 0;
289
+
290
+ > label {
291
+ color: var(--custom-text-color);
292
+ }
242
293
  }
243
294
  }
244
- .ant-btn-primary {
245
- margin-top: 10px;
295
+
296
+ .ant-form-explain {
297
+ position: absolute;
298
+ font-size: 12px;
299
+ margin-left: 2px;
246
300
  }
247
301
  }
248
- .ant-form-explain {
249
- position: absolute;
250
- font-size: 12px;
251
- margin-left: 2px;
302
+
303
+ .ant-form-vertical .ant-form-item .ant-form-item-control {
304
+ min-width: 100%;
252
305
  }
306
+
253
307
  .ant-btn-primary {
254
- // width: 100%;
255
- background-color: #0c66e4;
256
- // height: 35px;
308
+ margin-top: 10px;
309
+ background-color: $primary-color;
257
310
  border-radius: 4px;
258
311
  width: 100%;
259
- @media only screen and (max-width: 768px) {
260
- width: 100%;
261
- background-color: #0c66e4;
262
- // min-width: 275px;
263
- }
264
312
  }
313
+
265
314
  .ant-btn-secondary {
266
315
  width: 100%;
267
316
  }
268
- }
269
- .otp-container {
270
- display: flex;
271
- }
272
317
 
273
- .otp-input-container p {
274
- margin: 12px 0 0 0;
275
- font-size: 12px;
276
- }
277
-
278
- .otp-input-container .otp-title {
279
- @media only screen and (max-width: 768px) {
280
- text-align: left;
318
+ .ant-divider-horizontal {
319
+ margin-bottom: 16px;
320
+ margin-top: 2px;
281
321
  }
282
- }
283
- .ant-divider-horizontal {
284
- margin-bottom: 16px;
285
- margin-top: 2px;
286
- }
287
322
 
288
- .otp-input-container .resend-otp-link {
289
- display: flex;
290
- justify-content: center;
291
- align-items: center;
292
- text-align: center;
293
- // margin-top: -10px;
294
- color: #0c66e4;
295
- margin-bottom: 10px;
296
- }
323
+ .ant-input {
324
+ background-color: transparent !important;
325
+ }
297
326
 
298
- .ant-form-vertical .ant-form-item .ant-form-item-control {
299
- min-width: 100%;
300
- }
327
+ input {
328
+ border: 1px solid $border-color-dark;
329
+ border-radius: 2px;
301
330
 
302
- .resend-otp-link {
303
- margin: auto;
331
+ &:focus {
332
+ border-color: $white !important;
333
+ }
334
+ }
304
335
  }
305
336
 
306
337
  .footer {
@@ -312,147 +343,11 @@ body {
312
343
  @media only screen and (max-width: 768px) {
313
344
  display: none;
314
345
  }
315
- }
316
-
317
- .otp-input-container {
318
- display: flex;
319
- flex-direction: column;
320
- gap: 2px;
321
- }
322
- .otp-actions {
323
- background-color: #f5f5f5; // light gray
324
- padding: 12px 16px;
325
- display: flex;
326
- justify-content: space-between;
327
- gap: 6px;
328
- // margin-top: 6px;
329
- }
330
- .resend-action {
331
- margin-bottom: 8px;
332
- display: flex;
333
- gap: 6px;
334
- }
335
- .otp-method-section {
336
- // margin-top: 10px;
337
-
338
- display: flex;
339
- flex-direction: column;
340
- gap: 6px;
341
-
342
- .otp-method-title {
343
- font-size: 16px;
344
- font-weight: 600;
345
- margin-bottom: 8px;
346
- }
347
-
348
- .otp-method-group {
349
- display: flex;
350
- align-items: center;
351
- margin-bottom: 10px;
352
- gap: 30px;
353
- font-size: 12px;
354
- }
355
- .otp-icon {
356
- position: relative;
357
- top: 2px;
358
- }
359
-
360
- .ant-radio-wrapper {
361
- display: flex;
362
- // align-items: center;
363
- gap: 6px;
364
-
365
- svg {
366
- font-size: 18px;
367
- opacity: 0.8;
368
- }
369
- }
370
-
371
- .otp-mode-error {
372
- margin: 5px;
373
- font-size: 13px;
374
- color: red;
375
- }
376
- }
377
-
378
- .otp-mode-text {
379
- text-transform: capitalize;
380
- }
381
-
382
- input {
383
- border: 1px solid #d9d9d9;
384
- border-radius: 2px;
385
- // padding: 30px;
386
- }
387
-
388
- input:focus {
389
- border-color: #fff !important;
390
- }
391
- .otp-container {
392
- display: flex;
393
- flex-direction: column;
394
- gap: 7px;
395
- }
396
-
397
- .otp-container input[type='text']:focus {
398
- border-color: #fff !important;
399
- }
400
-
401
- .full-page {
402
- height: 100vh;
403
- background-color: 'cover'; // Ensures full coverage
404
- background-position: 'bottom center'; // Aligns image at the bottom
405
- background-size: '100% auto'; // image spans full width
406
- background-repeat: no-repeat;
407
-
408
- min-height: 100vh; // Ensures full height
409
- width: 100%; // Covers the full width
410
- }
411
- .ant-input {
412
- background-color: transparent !important;
413
- }
414
-
415
- .ant-form-item-label > label {
416
- color: var(--custom-text-color);
417
- }
418
-
419
- // .user-authentication-section .auth-form-wrapper .ant-btn-primary {
420
- // background-color: var(--custom-bg-color);
421
- // color: var(--custom-btn-text-color);
422
- // }
423
- // .ant-input {
424
- // background-color: var(--custom-input-bg-color);
425
- // color: var(--custom-input-color);
426
- // }
427
- /* Mobile: stack OTP radio options in separate rows */
428
- /* Mobile phones (iPhone) – stack in one column */
429
- @media only screen and (max-width: 600px) {
430
- .otp-method-group {
431
- flex-direction: column !important;
432
- align-items: flex-start !important;
433
- gap: 12px !important;
434
- }
435
- }
436
346
 
437
- /* iPad Mini + Tablets (600px to 1024px) – show in row */
438
- @media only screen and (min-width: 601px) and (max-width: 1024px) {
439
- .otp-method-group {
440
- flex-direction: row !important;
441
- align-items: center !important;
442
- justify-content: space-between !important;
443
- gap: 20px !important;
444
- width: 100%;
445
- }
446
-
447
- .otp-method-group .ant-radio-wrapper {
448
- flex: 1; /* evenly spaced columns */
449
- }
450
- }
451
-
452
- /* Desktop – normal layout */
453
- @media only screen and (min-width: 1025px) {
454
- .otp-method-group {
455
- flex-direction: row;
456
- gap: 30px;
347
+ .footer-logo {
348
+ width: 180px;
349
+ padding: 4px;
350
+ border-radius: 2px;
351
+ margin: 20px 0 30px;
457
352
  }
458
353
  }