@sumaris-net/ngx-components 2.7.3-rc4 → 2.7.3-rc41

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 (40) hide show
  1. package/esm2022/src/app/admin/users/users.mjs +2 -2
  2. package/esm2022/src/app/core/account/account.page.mjs +1 -1
  3. package/esm2022/src/app/core/form/properties/properties.form.mjs +1 -1
  4. package/esm2022/src/app/core/form/properties/properties.table.mjs +1 -1
  5. package/esm2022/src/app/core/register/register.form.mjs +1 -1
  6. package/esm2022/src/app/core/services/config/core.config.mjs +7 -1
  7. package/esm2022/src/app/core/settings/settings.page.mjs +1 -1
  8. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +4 -1
  9. package/esm2022/src/app/core/table/testing/table.testing.mjs +39 -20
  10. package/esm2022/src/app/shared/form/field.component.mjs +10 -7
  11. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -5
  12. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  13. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  14. package/esm2022/src/app/shared/material/datetime/material.date.mjs +10 -3
  15. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +71 -41
  16. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +6 -6
  17. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +16 -11
  18. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +7 -3
  19. package/esm2022/src/app/shared/material/material.config.mjs +2 -1
  20. package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
  21. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +37 -16
  22. package/fesm2022/sumaris-net.ngx-components.mjs +238 -139
  23. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/src/app/core/services/config/core.config.d.ts +1 -0
  26. package/src/app/shared/form/field.component.d.ts +5 -3
  27. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
  28. package/src/app/shared/material/datetime/material.date.d.ts +1 -0
  29. package/src/app/shared/material/datetime/material.datetime.d.ts +25 -22
  30. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +2 -2
  31. package/src/app/shared/material/latlong/material.latlong.d.ts +5 -3
  32. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +4 -0
  33. package/src/app/shared/material/material.config.d.ts +2 -1
  34. package/src/assets/manifest.json +1 -1
  35. package/src/theme/_material.scss +26 -8
  36. package/src/theme/_mixins.scss +6 -4
  37. package/src/theme/_ngx-components.globals.scss +7 -4
  38. package/src/theme/_ngx-components.scss +65 -46
  39. package/src/theme/_ngx-components.table.scss +88 -129
  40. package/src/theme/_ngx-components.tabs.scss +0 -324
@@ -12,21 +12,22 @@
12
12
  .mat-mdc-table {
13
13
  min-width: calc(100% - 1px);
14
14
  border-collapse: separate;
15
+ --mat-table-row-item-label-text-size: 14px;
16
+ --mat-table-row-item-label-text-tracking: normal;
15
17
  --mat-row-height: #{$app-table-row-height};
16
18
  --mat-row-max-height: #{$app-table-row-max-height};
17
19
  --mat-cell-horizontal-padding: #{$app-table-cell-horizontal-padding};
18
20
  --mat-cell-padding-top: calc(var(--mat-row-height) * 0.5 - 14px);
19
21
 
20
- --mdc-checkbox-state-layer-size: 20px;
21
22
  --mdc-typography-body1-font-size: 14px;
22
- --mat-table-row-item-label-text-tracking: 0.0178571429em;
23
- --mat-form-field-container-text-tracking: 0.0178571429em;
24
- --mdc-typography-body1-letter-spacing: 0.0178571429em;
25
- --mat-table-row-item-label-text-size: 14px;
23
+ --mdc-typography-body1-letter-spacing: normal;
26
24
 
27
- --mdc-filled-text-field-container-color: #{$app-form-field-background-color};
28
- --mdc-filled-text-field-disabled-container-color: #{$app-form-field-background-color};
29
- --mat-form-field-state-layer-color: #{$app-form-field-focus-background-color};
25
+ --mat-form-field-container-text-tracking: normal;
26
+ --mat-form-field-state-layer-color: transparent;
27
+ --mat-form-field-subscript-text-size: 10px;
28
+ --mdc-checkbox-state-layer-size: 20px;
29
+ --mdc-filled-text-field-container-color: transparent;
30
+ --mdc-filled-text-field-disabled-container-color: transparent;
30
31
 
31
32
  .mat-mdc-header-cell {
32
33
  color: var(--ion-color-primary);
@@ -107,7 +108,7 @@
107
108
  }
108
109
 
109
110
  /* Add a start padding to content (but not the cell itself) (e.g. tables with odd/event style - like BatchGroupsTable) */
110
- &.mat-cell-content-start-padding {
111
+ &.mat-mdc-cell-content-start-padding {
111
112
 
112
113
  // Reset start padding here (only apply cell's content)
113
114
  padding-inline-start: 0;
@@ -156,6 +157,7 @@
156
157
  }
157
158
  }
158
159
 
160
+ .mat-mdc-cell-date,
159
161
  .mat-cell-date {
160
162
  min-width: 128px;
161
163
  max-width: 128px;
@@ -166,8 +168,9 @@
166
168
  }
167
169
  }
168
170
 
171
+ .mat-mdc-cell-date-time,
169
172
  .mat-cell-date-time {
170
- min-width: 145px;
173
+ min-width: 155px;
171
174
  max-width: 180px;
172
175
 
173
176
  input {
@@ -190,9 +193,11 @@
190
193
  }
191
194
 
192
195
  .mat-mdc-cell.computed mat-form-field,
196
+ .mat-mdc-cell-computed,
193
197
  .mat-cell-computed,
194
198
  .mat-mdc-cell ion-text.computed,
195
199
  .mat-mdc-cell.calculated mat-form-field,
200
+ .mat-mdc-cell-calculated,
196
201
  .mat-cell-calculated {
197
202
  color: var(--ion-color-primary-tint);
198
203
  font-style: italic;
@@ -202,6 +207,7 @@
202
207
  .mat-mdc-row {
203
208
 
204
209
  // Disabled row
210
+ &.mat-mdc-row-disabled *,
205
211
  &.mat-row-disabled * {
206
212
  color: inherit;
207
213
  cursor: pointer;
@@ -209,25 +215,28 @@
209
215
  pointer-events: unset !important;
210
216
  }
211
217
 
218
+ &.mat-mdc-row-disabled:hover,
212
219
  &.mat-row-disabled:hover {
213
220
  background-color: var(--ion-color-light);
214
221
 
215
- .mat-cell {
222
+ .mat-mdc-cell {
216
223
  color: var(--ion-color-light-contrast);
217
224
  }
218
225
  }
219
226
 
227
+ &.mat-mdc-row-selected,
220
228
  &.mat-row-selected {
221
229
  background-color: var(--ion-color-secondary100);
222
230
 
223
- &:not(.mat-row-error):hover {
231
+ &:not(.mat-mdc-row-error):not(.mat-row-error):hover {
224
232
  background-color: var(--ion-color-secondary100);
225
233
  }
226
234
 
227
- .mat-cell {
235
+ .mat-mdc-cell {
228
236
  color: var(--ion-color-secondary100-contrast);
229
237
  }
230
238
 
239
+ &.mat-mdc-row-disabled:hover,
231
240
  &.mat-row-disabled:hover {
232
241
  background-color: var(--ion-color-secondary100-shade) !important;
233
242
  }
@@ -235,9 +244,8 @@
235
244
  }
236
245
 
237
246
  // Dirty row
247
+ &.mat-mdc-row-dirty,
238
248
  &.mat-row-dirty {
239
- //border-left: 3px solid var(--ion-color-primary-tint);
240
-
241
249
  // Resize the dirty icon (in the 'actions' column)
242
250
  .mat-column-actions mat-icon.dirty-icon,
243
251
  .mat-column-actions ion-icon.dirty-icon {
@@ -246,10 +254,12 @@
246
254
  }
247
255
 
248
256
  // Error row
257
+ &.mat-mdc-row-error,
249
258
  &.mat-row-error {
250
259
  //border-left: 3px solid var(--ion-color-danger-tint) !important;
251
260
  background-color: var(--ion-color-warning-tint);
252
261
 
262
+ &.mat-mdc-row-disabled:hover,
253
263
  &.mat-row-disabled:hover {
254
264
  background-color: var(--ion-color-warning-shade) !important;
255
265
  }
@@ -267,30 +277,30 @@
267
277
  }
268
278
  }
269
279
 
270
- //.mdc-line-ripple--deactivating {
271
- // display: none;
272
- //}
273
-
274
- mat-mdc-form-field,
275
280
  mat-autocomplete-field,
276
- app-form-field,
281
+ app-form-field {
282
+ width: 100%;
283
+ }
284
+
277
285
  .mat-mdc-form-field {
278
286
  width: 100%;
287
+
279
288
  --mat-form-field-container-text-size: 14px;
280
289
  --mdc-filled-text-field-label-text-size: var(--mat-form-field-container-text-size);
290
+ --mat-select-trigger-text-size: var(--mat-form-field-container-text-size);
281
291
  --mat-mdc-form-field-height: calc(var(--mat-row-height) - 2px);
282
- // TODO
283
- // use -- active- boder : 0;
292
+ --mdc-outlined-text-field-outline-width: 0;
284
293
  height: var(--mat-mdc-form-field-height);
285
- }
286
-
287
- .mat-mdc-form-field {
288
- padding-top: 1px;
289
294
 
290
295
  .mat-mdc-form-field-label {
291
296
  width: 100%;
292
297
  }
293
298
 
299
+ &.mat-form-field-appearance-fill {
300
+ height: var(--mat-mdc-form-field-height);
301
+ padding-top: 1px; // suppress a redundant line in table
302
+ }
303
+
294
304
  .mat-mdc-text-field-wrapper {
295
305
  max-height: var(--mat-mdc-form-field-height);
296
306
  }
@@ -350,11 +360,11 @@
350
360
  // Suffix
351
361
  .mat-mdc-form-field-icon-suffix {
352
362
  white-space: nowrap;
363
+ padding: 0;
353
364
 
354
365
  .mat-mdc-icon-button {
355
- width: 24px;
356
- height: 24px;
357
- padding: 2px 0 0 0;
366
+ --mdc-icon-button-state-layer-size: 24px;
367
+ padding: 0;
358
368
 
359
369
  ion-icon, .mat-icon {
360
370
  $font-size: calculateRem(18px);
@@ -363,7 +373,7 @@
363
373
  }
364
374
 
365
375
  .mat-mdc-button-touch-target {
366
- width: 24px;
376
+ width: var(--mdc-icon-button-state-layer-size);
367
377
  }
368
378
  }
369
379
 
@@ -381,12 +391,6 @@
381
391
  }
382
392
  }
383
393
 
384
- .mat-mdc-form-field-subscript-wrapper {
385
- margin-top: -1.5rem;
386
- text-align: right;
387
- pointer-events: none;
388
- }
389
-
390
394
  // FIXME: in table, required indicator is only inside the float label
391
395
  .mat-mdc-floating-label {
392
396
  display: none;
@@ -398,15 +402,19 @@
398
402
  color: rgba(0, 0, 0, 0.6) !important;
399
403
  -webkit-text-fill-color: rgba(0, 0, 0, 0.6) !important;
400
404
  }
401
-
402
- mat-error {
403
- //font-size: ;
404
- //--mdc-typography-caption-font-size: 10px;
405
- font-size: 10px;
406
- }
407
-
408
405
  } // .mat-mdc-form-field
409
406
 
407
+ .mat-mdc-form-field-subscript-wrapper,
408
+ .mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align {
409
+ margin-top: -1.5rem;
410
+ text-align: right;
411
+ pointer-events: none;
412
+
413
+ mat-error,
414
+ mat-hint {
415
+ font-size: var(--mat-form-field-subscript-text-size);
416
+ }
417
+ }
410
418
 
411
419
  .mat-boolean-field-radio.mat-mdc-form-field-appearance-fill .mat-mdc-form-field-infix,
412
420
  .mat-boolean-field-radio .mat-mdc-form-field-infix {
@@ -426,7 +434,25 @@
426
434
  padding-top: 0.4em;
427
435
  }
428
436
 
429
- .mat-cell > .ion-text-nowrap {
437
+ mat-date-time-field,
438
+ mat-latlong-field {
439
+ height: calc(var(--mat-row-height) - 2px);
440
+ }
441
+
442
+ mat-date-time-field {
443
+ ion-col.hour {
444
+ --max-width: var(--min-width) !important;
445
+ }
446
+ }
447
+
448
+ mat-latlong-field {
449
+ ion-col.sign {
450
+ --min-width: 35px !important;
451
+ --max-width: 45px !important;
452
+ }
453
+ }
454
+
455
+ .mat-mdc-cell > .ion-text-nowrap {
430
456
  width: 100%;
431
457
  overflow: hidden;
432
458
  text-overflow: ellipsis;
@@ -434,17 +460,17 @@
434
460
  }
435
461
 
436
462
  /* Show when hover row */
437
- .mat-cell .visible-hover-row {
463
+ .mat-mdc-cell .visible-hover-row {
438
464
  visibility: hidden;
439
465
  }
440
466
 
441
467
  &:hover {
442
- .mat-cell .visible-hover-row {
468
+ .mat-mdc-cell .visible-hover-row {
443
469
  visibility: visible;
444
470
  }
445
471
  }
446
472
 
447
- .mat-cell .avatar {
473
+ .mat-mdc-cell .avatar {
448
474
  color: #d9d9d9;
449
475
  background-color: #f8f8f8;
450
476
  border: solid 1px #d9d9d9;
@@ -458,103 +484,36 @@
458
484
 
459
485
  /* Special case to have small row */
460
486
  &.compact .mat-mdc-row,
487
+ .mat-mdc-row.mat-mdc-row-small,
461
488
  .mat-mdc-row.mat-row-small {
462
489
  min-height: inherit;
463
490
  --mat-row-height: 33px;
464
491
  --mat-row-max-height: 33px;
465
492
  }
466
493
 
467
- .mat-mdc-row.mat-row-small .mat-cell,
468
- .mat-mdc-row .mat-cell.mat-row-small {
494
+ .mat-mdc-row.mat-mdc-row-small .mat-mdc-cell,
495
+ .mat-mdc-row .mat-mdc-cell.mat-mdc-row-small,
496
+ .mat-mdc-row.mat-row-small .mat-mdc-cell,
497
+ .mat-mdc-row .mat-mdc-cell.mat-row-small {
469
498
  line-height: 15px;
470
499
  @include font-size(12px);
471
500
  }
472
501
 
473
- .mat-row-height-auto { // todo useful ?
502
+ .mat-mdc-row-height-auto,
503
+ .mat-row-height-auto {
474
504
  max-height: unset !important;
475
505
  }
476
506
 
477
- // Make smaller row
478
- // NOTE : useless on angular 15
479
- //&.compact {
480
- // --mat-row-height: 33px;
481
- //
482
- // // TODO test it ! then remove is not need
483
- // .mat-mdc-row {
484
- //
485
- // ion-label {
486
- // display: inline-block;
487
- // margin-top: 5px;
488
- // width: 100%;
489
- // overflow: hidden;
490
- // white-space: nowrap;
491
- // text-overflow: ellipsis;
492
- // }
493
- //
494
- // .mat-badge-content {
495
- // top: -2px;
496
- // }
497
- //
498
- // .mat-icon-button {
499
- // height: 32px;
500
- // width: 32px;
501
- // line-height: 32px;
502
- // }
503
- //
504
- // .mat-mdc-form-field-underline {
505
- // bottom: 6px !important;
506
- // }
507
- //
508
- // .mat-mdc-form-field {
509
- //
510
- // .mat-mdc-form-field-wrapper {
511
- // max-height: 32px;
512
- //
513
- // .mat-mdc-form-field-flex {
514
- //
515
- // .mat-mdc-form-field-infix {
516
- // max-height: 32px;
517
- // padding-top: 0;
518
- // border-top-width: 10px;
519
- //
520
- // .mat-mdc-form-field-label-wrapper {
521
- //
522
- // .mat-mdc-form-field-label {
523
- // top: 12px;
524
- // }
525
- // }
526
- //
527
- // .mat-checkbox {
528
- // display: block;
529
- // position: absolute;
530
- // top: -2px;
531
- //
532
- // .mat-checkbox-ripple {
533
- // height: 32px;
534
- // width: 32px;
535
- // left: calc(50% - 16px);
536
- // top: calc(50% - 16px);
537
- // }
538
- // }
539
- // }
540
- // }
541
- //
542
- // // make click on mat-error transfer to input
543
- // //.mat-mdc-form-field-subscript-wrapper {
544
- // // pointer-events: none;
545
- // //}
546
- //
547
- // mat-error {
548
- // margin-top: 10px;
549
- // }
550
- // }
551
- // }
552
- // }
553
- //}
507
+ // Restore border on last row
508
+ .mdc-data-table__row:last-child .mat-mdc-cell {
509
+ border-bottom-color: var(--mat-table-row-item-outline-color, rgba(0, 0, 0, 0.12)) !important;
510
+ border-bottom-width: var(--mat-table-row-item-outline-width, 1px) !important;
511
+ border-bottom-style: solid !important;
512
+ }
554
513
  }
555
514
 
556
515
  .mat-mdc-paginator {
557
- --mat-paginator-container-size: #{$app-paginator-height};
516
+ --mat-paginator-container-size: var(--app-paginator-height, #{$app-paginator-height});
558
517
  --mat-paginator-container-background-color: whitesmoke;
559
518
  overflow-y: hidden;
560
519