@natec/mef-dev-ui-kit 20.1.0 → 20.1.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@natec/mef-dev-ui-kit",
3
- "version": "20.1.0",
3
+ "version": "20.1.2",
4
4
  "description": "MEF.DEV UI Kit Library",
5
5
  "author": {
6
6
  "name": "NATEC"
@@ -31,7 +31,7 @@
31
31
 
32
32
  //Vendor
33
33
  @use 'pg/vendor/typehead.scss' as *;
34
- @use 'pg/vendor/ng-datatable.scss' as *;
34
+ @use 'pg/vendor/md-datatable.scss' as *; // New Material Design theme
35
35
  @use 'pg/vendor/ngx-google-map.scss' as *;
36
36
 
37
37
  @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap&subset=cyrillic');
@@ -319,48 +319,6 @@ a:hover * {
319
319
  color: $Red !important;
320
320
  }
321
321
 
322
- .dropdown-item {
323
- margin-bottom: 0;
324
- }
325
-
326
- .dropdown-item {
327
- display: block;
328
- width: 100%;
329
- padding: 4px 16px;
330
- clear: both;
331
- font-weight: 400;
332
- background: transparent;
333
- }
334
-
335
- .dropdown-item:hover {
336
- color: red;
337
- background: #eaeaea;
338
- }
339
-
340
- .page-sidebar_plg {
341
- display: none;
342
- z-index: auto;
343
- &.visible {
344
- display: block;
345
- }
346
- .page-sidebar-inner {
347
- z-index: 1;
348
- left: 0 !important;
349
- width: 260px;
350
- .sidebar-slide {
351
- .sidebar-menu {
352
- overflow: scroll;
353
- -webkit-overflow-scrolling: touch;
354
- top: 40px;
355
- bottom: 0;
356
- ul > li > a > .badge {
357
- display: inline-block;
358
- }
359
- }
360
- }
361
- }
362
- }
363
-
364
322
  .ql-toolbar.ql-snow {
365
323
  border-top-left-radius: 5px;
366
324
  border-top-right-radius: 5px;
@@ -375,8 +333,7 @@ a:hover * {
375
333
  border-color: #f3f3f3;
376
334
  }
377
335
 
378
- @media only screen and (min-width: 980px) {
379
- body.menu-pin .page-sidebar {
380
- width: 280px;
381
- }
382
- }
336
+ .badge {
337
+ --bs-badge-padding-x: 1.0em;
338
+ --bs-badge-padding-y: 0.5em;
339
+ }
@@ -0,0 +1,403 @@
1
+ @use '../../vars.scss' as *;
2
+ @use 'sass:color' as color;
3
+
4
+ // MD Datatable Theme
5
+ // Clean, minimalist Material Design inspired theme for ngx-datatable
6
+ // Works on white, grey and dark backgrounds
7
+ // --------------------------------------------------
8
+
9
+ .md-datatable-style {
10
+ box-sizing: border-box;
11
+ font-size: 13px;
12
+ font-family: $base-font-family;
13
+
14
+ // Remove default shadows and borders
15
+ box-shadow: none !important;
16
+ border: none;
17
+
18
+ * {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ // Header styling
23
+ .datatable-header {
24
+ background: $Light-Gray-2;
25
+ border: none;
26
+ box-shadow: none;
27
+ overflow: visible;
28
+
29
+ height: 46px !important;
30
+
31
+ .datatable-header-inner {
32
+ padding: 0;
33
+ }
34
+
35
+ .datatable-header-cell {
36
+ padding: 13px 8px 10px 8px;
37
+
38
+ background: transparent;
39
+
40
+ &:not(:first-child) {
41
+ border-left: 2px solid $White;
42
+ }
43
+
44
+ font-family: $font-header;
45
+ font-size: 14px;
46
+ font-weight: 300;
47
+ text-transform: uppercase;
48
+ letter-spacing: 0.5px;
49
+ color: $Dark-Gray-2;
50
+ vertical-align: middle;
51
+
52
+ .datatable-header-cell-template-wrap {
53
+ display: flex;
54
+ align-items: center;
55
+ height: 100%;
56
+ position: relative;
57
+ }
58
+
59
+ .datatable-header-cell-label {
60
+ line-height: 1.2;
61
+ flex: 1;
62
+ }
63
+
64
+ // Sortable columns
65
+ &.sortable {
66
+ cursor: pointer;
67
+ user-select: none;
68
+
69
+ .datatable-header-cell-template-wrap {
70
+ padding-right: 20px;
71
+ }
72
+
73
+ .sort-btn {
74
+ display: inline-block;
75
+ position: absolute;
76
+ right: 0;
77
+ width: 16px;
78
+ height: 16px;
79
+ color: $Light-Gray-1;
80
+
81
+ &::after {
82
+ // content: '▼';
83
+ font-size: 10px;
84
+ position: absolute;
85
+ right: 0;
86
+ top: 50%;
87
+ transform: translateY(-50%);
88
+ transition: transform 0.2s ease;
89
+ }
90
+ }
91
+
92
+ &.sort-active .sort-btn {
93
+ color: $Dark-Gray-2;
94
+ }
95
+
96
+ &.sort-asc .sort-btn::after {
97
+ transform: translateY(-50%) rotate(180deg);
98
+ }
99
+
100
+ &.sort-desc .sort-btn::after {
101
+ transform: translateY(-50%);
102
+ }
103
+
104
+ &:hover .sort-btn {
105
+ color: $Dark-Gray-2;
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
+ // Body styling - NO zebra by default, all rows white
112
+ .datatable-body {
113
+ overflow-x: auto;
114
+ overflow-y: auto;
115
+
116
+ .datatable-row-wrapper {
117
+ border: none;
118
+ }
119
+
120
+ .datatable-body-row {
121
+ border: none;
122
+
123
+ &:last-child {
124
+ border-bottom: none;
125
+ }
126
+
127
+ .datatable-body-cell {
128
+ font-family: 'Open Sans', Arial, sans-serif;
129
+ padding: 8px;
130
+ font-size: 13px;
131
+ line-height: 1;
132
+ color: $Black-Color;
133
+ background: $White;
134
+ vertical-align: middle;
135
+ border: none;
136
+
137
+ .datatable-body-cell-label {
138
+ display: block;
139
+ width: 100%;
140
+ }
141
+ }
142
+
143
+ // Hover effect
144
+ &:hover .datatable-body-cell {
145
+ background: color.mix($Light-Gray-2, $White, 30%) !important;
146
+ }
147
+
148
+ // Active/selected row
149
+ &.active .datatable-body-cell {
150
+ background: color.mix($Link, $White, 10%) !important;
151
+ }
152
+ }
153
+
154
+ // Row detail expansion
155
+ .datatable-row-detail {
156
+ background: $White;
157
+ padding: 16px 20px;
158
+ overflow: visible;
159
+ }
160
+ }
161
+
162
+ // Footer styling
163
+ .datatable-footer {
164
+ background: $Light-Gray-2;
165
+ border-top: 1px solid rgba(0, 0, 0, 0.08);
166
+ padding: 8px 0px 8px 8px;
167
+ font-size: 12px;
168
+ color: $Dark-Gray-2;
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: space-between;
172
+
173
+ .page-count {
174
+ line-height: 1.5;
175
+ padding: 0;
176
+ }
177
+
178
+ .datatable-pager {
179
+ ul {
180
+ li {
181
+ &.disabled a {
182
+ opacity: 0.3;
183
+ cursor: not-allowed;
184
+ pointer-events: none;
185
+ }
186
+
187
+ &.active a {
188
+ background: $Dark-Gray-2;
189
+ color: $White;
190
+ font-weight: 600;
191
+ }
192
+
193
+ a {
194
+ min-width: 24px;
195
+ height: 24px;
196
+ padding: 0 10px;
197
+ border-radius: 4px;
198
+ color: $Dark-Gray-2;
199
+ text-decoration: none;
200
+ font-size: 12px;
201
+ transition: background-color 0.2s ease;
202
+
203
+ &:hover:not(.disabled) {
204
+ // background: color.mix($Light-Gray-1, $White, 20%);
205
+ color: $Red;
206
+ }
207
+ }
208
+ }
209
+ }
210
+
211
+ .datatable-icon-left::before,
212
+ .datatable-icon-right::before,
213
+ .datatable-icon-skip::before,
214
+ .datatable-icon-prev::before {
215
+ font-size: 14px;
216
+ }
217
+ }
218
+ }
219
+
220
+ // Group header styling
221
+ .datatable-group-header {
222
+ background: color.mix($Light-Gray-2, $White, 50%);
223
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
224
+ padding: 12px 20px;
225
+ font-weight: 600;
226
+ font-size: 13px;
227
+ color: $Dark-Gray-1;
228
+ }
229
+
230
+ // Selection checkbox styling
231
+ .datatable-checkbox {
232
+ input[type='checkbox'] {
233
+ width: 16px;
234
+ height: 16px;
235
+ cursor: pointer;
236
+ }
237
+ }
238
+
239
+ // Summary row styling
240
+ .datatable-summary-row {
241
+ background: $Light-Gray-2;
242
+ border-top: 2px solid $Dark-Gray-2;
243
+
244
+ .datatable-body-cell {
245
+ background: $Light-Gray-2;
246
+ font-weight: 600;
247
+ padding: 12px 20px;
248
+ }
249
+ }
250
+
251
+ // Responsive adjustments
252
+ @media (max-width: 768px) {
253
+ font-size: 12px;
254
+
255
+ .datatable-header .datatable-header-cell {
256
+ padding: 10px 12px;
257
+ font-size: 10px;
258
+ }
259
+
260
+ .datatable-body .datatable-body-row .datatable-body-cell {
261
+ padding: 12px;
262
+ font-size: 12px;
263
+ }
264
+
265
+ .datatable-footer {
266
+ flex-direction: column;
267
+ gap: 8px;
268
+ align-items: flex-start;
269
+ padding: 8px 12px;
270
+ }
271
+ }
272
+ }
273
+
274
+ // Modifier: Enable zebra striping with white even rows
275
+ .md-datatable-style.zebra-white {
276
+ .datatable-header {
277
+ background: $White;
278
+ .datatable-header-cell {
279
+ &:not(:first-child) {
280
+ border-left: 2px solid $Light-Gray-3;
281
+ }
282
+ }
283
+ }
284
+ .datatable-body {
285
+ .datatable-body-row {
286
+ // Odd rows transparent (inherit page background)
287
+ &.datatable-row-even .datatable-body-cell {
288
+ background: transparent;
289
+ }
290
+
291
+ // Even rows white
292
+ &.datatable-row-odd .datatable-body-cell {
293
+ background: $White;
294
+ }
295
+ }
296
+
297
+ .datatable-row-detail {
298
+ background: $White;
299
+ }
300
+ }
301
+ .datatable-footer {
302
+ background: $White;
303
+ }
304
+ }
305
+
306
+ // Modifier: Enable zebra striping with grey even rows
307
+ .md-datatable-style.zebra-grey {
308
+ .datatable-body {
309
+ .datatable-body-row {
310
+ // Odd rows transparent (inherit page background)
311
+ &.datatable-row-even .datatable-body-cell {
312
+ background: transparent;
313
+ }
314
+
315
+ // Even rows light grey
316
+ &.datatable-row-odd .datatable-body-cell {
317
+ background: $Light-Gray-2;
318
+ }
319
+ }
320
+
321
+ .datatable-row-detail {
322
+ background: $Light-Gray-2;
323
+ }
324
+ }
325
+ }
326
+
327
+ // Dark background variant
328
+ .bg-dark .md-datatable-style,
329
+ .dark-mode .md-datatable-style,
330
+ .md-datatable-style.dark-theme {
331
+ .datatable-header {
332
+ background: color.mix($Dark-Gray-2, $Black-Color, 90%);
333
+
334
+ .datatable-header-cell {
335
+ background: color.mix($Dark-Gray-2, $Black-Color, 90%);
336
+ color: $White;
337
+ border-bottom-color: rgba(255, 255, 255, 0.1);
338
+ }
339
+ }
340
+
341
+ .datatable-body {
342
+ .datatable-body-row {
343
+ border-bottom-color: rgba(255, 255, 255, 0.08);
344
+
345
+ .datatable-body-cell {
346
+ background: color.mix($Dark-Gray-1, $Black-Color, 85%);
347
+ color: $White;
348
+ }
349
+
350
+ &:hover .datatable-body-cell {
351
+ background: color.mix($Dark-Gray-2, $Black-Color, 75%) !important;
352
+ }
353
+
354
+ &.active .datatable-body-cell {
355
+ background: color.mix($Link-on-dark, $Black-Color, 30%) !important;
356
+ }
357
+ }
358
+
359
+ .datatable-row-detail {
360
+ background: color.mix($Dark-Gray-1, $Black-Color, 85%);
361
+ border-bottom-color: rgba(255, 255, 255, 0.08);
362
+ color: $White;
363
+ }
364
+ }
365
+
366
+ .datatable-footer {
367
+ background: color.mix($Dark-Gray-2, $Black-Color, 90%);
368
+ border-top-color: rgba(255, 255, 255, 0.1);
369
+ color: $White;
370
+ height: 25px !important;
371
+ }
372
+
373
+ .datatable-group-header {
374
+ background: color.mix($Dark-Gray-2, $Black-Color, 80%);
375
+ color: $White;
376
+ border-bottom-color: rgba(255, 255, 255, 0.1);
377
+ }
378
+
379
+ .datatable-summary-row {
380
+ background: color.mix($Dark-Gray-2, $Black-Color, 90%);
381
+
382
+ .datatable-body-cell {
383
+ background: color.mix($Dark-Gray-2, $Black-Color, 90%);
384
+ color: $White;
385
+ }
386
+ }
387
+
388
+ // Zebra for dark theme
389
+ &.zebra-white,
390
+ &.zebra-grey {
391
+ .datatable-body {
392
+ .datatable-body-row {
393
+ &.datatable-row-odd .datatable-body-cell {
394
+ background: transparent; // Uses dark page background
395
+ }
396
+
397
+ &.datatable-row-even .datatable-body-cell {
398
+ background: color.mix($Dark-Gray-1, $Black-Color, 85%);
399
+ }
400
+ }
401
+ }
402
+ }
403
+ }
@@ -1,303 +0,0 @@
1
- @use '../../vars.scss' as *;
2
- @use '../_mixins.scss' as mix;
3
- @use 'sass:color' as color;
4
-
5
- .ngx-datatable {
6
- &.table-stripped{
7
- .datatable-body {
8
- .datatable-body-row.datatable-row-even {
9
- .datatable-body-cell{
10
- background: $body-background
11
- }
12
- }
13
- }
14
- }
15
- &.table-condensed{
16
- .datatable-row-wrapper{
17
- margin-top: 1px;
18
- }
19
- .datatable-body {
20
- .datatable-body-row {
21
- .datatable-body-cell{
22
- padding-top: 12px;
23
- padding-bottom: 12px;
24
- }
25
- }
26
- }
27
- }
28
- &.table-hover{
29
- .datatable-body {
30
- .datatable-body-row {
31
- &:hover{
32
- .datatable-body-cell{
33
- background: $color-complete-lighter !important;
34
- }
35
- }
36
- &.active{
37
- .datatable-body-cell{
38
- background: $color-warning-lighter !important;
39
- }
40
- }
41
- }
42
- }
43
- }
44
- .datatable-body .datatable-row-detail{
45
- overflow-y:initial !important;
46
- }
47
- .datatable-body-cell-label{
48
- width: 100%;
49
- }
50
- font-size: 13px;
51
- .datatable-header {
52
- height: unset !important;
53
- .datatable-header-cell {
54
- padding: .75rem;
55
- text-transform: uppercase;
56
- font-weight: 500;
57
- font-family: Montserrat;
58
- font-size: 10.5px;
59
- letter-spacing: .06em;
60
- padding-top: 9px;
61
- padding-bottom: 9px;
62
- vertical-align: middle;
63
- color:color.scale($color-master-dark, $alpha: -65%);
64
- border-top: 0;
65
- border-bottom: 1px solid rgba(230,230,230,.7);
66
- //Height fix
67
- max-height: 43px;
68
- .datatable-header-cell-template-wrap{
69
- position: relative;
70
- }
71
- &.sort-active{
72
- color:$color-master-dark;
73
- }
74
- &.sortable{
75
- .sort-btn{
76
- display: block;
77
- cursor: pointer;
78
- position: absolute;
79
- left: 0;
80
- right: 0;
81
- top: 0;
82
- bottom: 0;
83
- color:color.scale($color-master-dark, $alpha: -65%);
84
- &:before {
85
- font: normal normal normal 14px/1 pages-icon;
86
- content: "\e62c";
87
- position: absolute;
88
- right: 0;
89
- font-size: 12px;
90
- }
91
- &:after {
92
- font: normal normal normal 14px/1 pages-icon;
93
- content: "\e630";
94
- position: absolute;
95
- right: 0;
96
- top: 7px;
97
- font-size: 12px;
98
- }
99
- &.datatable-icon-up{
100
- &:before {
101
- color:$color-master-dark;
102
- }
103
- &:after{
104
- display: none
105
- }
106
- }
107
- &.datatable-icon-down{
108
- &:before {
109
- display: none;
110
- }
111
- &:after{
112
- color:$color-master-dark;
113
- }
114
- }
115
- }
116
- }
117
- .datatable-header-cell-label {
118
- line-height: 24px;
119
- }
120
- }
121
- overflow: initial;
122
- box-shadow:none;
123
- }
124
- .datatable-body {
125
- .datatable-row-wrapper:first-child .datatable-body-row{
126
- border-top:0;
127
- }
128
- .datatable-body-row {
129
- vertical-align: top;
130
- border-top: 1px solid rgba(230,230,230,.7);
131
- &.active {
132
- background: $color-warning-lighter;
133
- }
134
- .datatable-body-cell {
135
- text-align: left;
136
- vertical-align: top;
137
- padding: 20px;
138
- font-size: 13.5px;
139
- background: #fff;
140
- }
141
- }
142
- .btn-tag {
143
- background: rgba(44,44,44,.07);
144
- display: inline-block;
145
- margin: 5px;
146
- border-radius: 4px;
147
- padding: 5px;
148
- color: #62605a!important;
149
- }
150
- }
151
- .datatable-footer {
152
- color: $color-master;
153
- font-size: 12px;
154
- margin-top: -1px;
155
- .page-count {
156
- line-height: 50px;
157
- height: 50px;
158
- padding: 0 1.2rem;
159
- }
160
- .datatable-pager {
161
- margin: 0 10px;
162
- vertical-align: top;
163
- ul {
164
- padding: 5px 10px;
165
- @include mix.transition(opacity .3s ease);
166
- li {
167
- &:not(.disabled) {
168
- &.active{
169
- a {
170
- opacity: 1;
171
- font-weight: bold;
172
- }
173
- }
174
- &:hover {
175
- a {
176
- opacity: .65;
177
- }
178
- }
179
- }
180
- }
181
- }
182
- a {
183
- height: 22px;
184
- min-width: 26px;
185
- line-height: 22px;
186
- color: $color-master;
187
- opacity: .35;
188
- text-align: center;
189
- font-size: 11px;
190
- }
191
- .datatable-icon-left:before{
192
- content: "\e629";
193
- top: 2px;
194
- position: relative;
195
- }
196
- .datatable-icon-right:before{
197
- content: "\e631";
198
- top: 2px;
199
- position: relative;
200
- }
201
- .datatable-icon-left,
202
- .datatable-icon-skip,
203
- .datatable-icon-right,
204
- .datatable-icon-prev {
205
- font: normal normal normal 14px/1 pages-icon;
206
- font-size: 12px;
207
- line-height: 27px;
208
- padding: 0 3px;
209
-
210
- }
211
- }
212
- }
213
- .table-inline{
214
- margin-top: 13px;
215
- margin-bottom: 13px;
216
- background: transparent;
217
- tr,td{
218
- background: transparent;
219
- font-weight: 600;
220
- }
221
- }
222
- .table-inline {
223
- td {
224
- border: none;
225
- text-align: left;
226
- }
227
- }
228
- }
229
-
230
- .ngx-datatable.fixed-header .datatable-header .datatable-header-inner{
231
- padding: 0;
232
- }
233
-
234
- .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{
235
- background-color: $Light-Gray-2;
236
- border: 2px solid;
237
- border-color: white;
238
- font-family: Montserrat;
239
- font-weight: 300;
240
- font-size: 11px;
241
- line-height: 22px;
242
- color: #000;
243
-
244
- }
245
- .ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{
246
- top: 0;
247
- left: -2px;
248
- overflow-y: auto;
249
- }
250
- .ngx-datatable.material .datatable-header{
251
- border: 0 !important;
252
- }
253
- .ngx-datatable{
254
- overflow: initial !important;
255
- box-shadow:none !important;
256
- }
257
-
258
- .table-responsive{
259
- overflow-x: clip !important;
260
- }
261
-
262
- .ngx-datatable .datatable-header .datatable-header-cell.sortable .sort-btn.datatable-icon-up:after {
263
- display: block;
264
- }
265
-
266
- .ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap {
267
- height: 100%;
268
- display: flex;
269
- column-gap: 25px;
270
- align-items: center;
271
- overflow: hidden;
272
- }
273
-
274
-
275
- .ngx-datatable .datatable-header .datatable-header-cell.sortable.sort-asc .sort-btn:after {
276
- transform: translateY(-50%) rotate(180deg);
277
- }
278
-
279
- .ngx-datatable .datatable-header .datatable-header-cell.sortable.sort-desc .sort-btn:after {
280
- transform: translateY(-50%);
281
- }
282
- // .ngx-pagination .current {
283
- // background: #4D4D4D !important;
284
- // }
285
-
286
- // .ngx-datatable .datatable-header .datatable-header-cell-template-wrap {
287
- // overflow: visible;
288
- // display: flex;
289
- // align-items: center;
290
- // justify-content: center;
291
- // }
292
-
293
- // .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {
294
- // height: 100%;
295
- // }
296
-
297
- datatable-header{
298
- padding: 0 !important;
299
- }
300
-
301
- datatable-body{
302
- padding: 0 !important;
303
- }