@sumaris-net/ngx-components 2.7.3-rc1 → 2.7.3-rc3

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,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "2.7.3-rc1",
4
+ "version": "2.7.3-rc3",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -2,7 +2,7 @@
2
2
  "name": "ngx-sumaris-components",
3
3
  "short_name": "ngx-sumaris-components",
4
4
  "manifest_version": 1,
5
- "version": "2.7.3-rc1",
5
+ "version": "2.7.3-rc3",
6
6
  "default_locale": "fr",
7
7
  "description": "Angular components for building beautiful and responsive Apps",
8
8
  "icons": [{
@@ -838,30 +838,6 @@ mat-button-toggle.mat-button-toggle-checked.mat-button-toggle-disabled {
838
838
  color: white;
839
839
  }
840
840
 
841
- // --------------------------------------------------
842
- // Material tab group
843
- // --------------------------------------------------
844
-
845
- // --- Allow to hide headers
846
- mat-tab-group.mat-tab-group-header-hidden .mat-mdc-tab-header {
847
- display: none;
848
- }
849
-
850
- // --- Allow to hide header's pagination
851
- mat-tab-group.mat-tab-group-header-pagination-hidden .mat-tab-header-pagination {
852
- display: none;
853
- }
854
-
855
- // --- Allow to hide disabled headers
856
- mat-tab-group.mat-tab-disabled-hidden .mat-tab-disabled {
857
- display: none;
858
- }
859
-
860
- // --- Allow to show disabled headers
861
- mat-tab-group.mat-tab-disabled-visible .mat-tab-disabled {
862
- display: inherit;
863
- }
864
-
865
841
  // --------------------------------------------------
866
842
  // Material menu
867
843
  // --------------------------------------------------
@@ -0,0 +1,362 @@
1
+ // --------------------------------------------------
2
+ // Material tab group/link
3
+ // --------------------------------------------------
4
+
5
+ // -- Keep Angular 14 tab style
6
+ .mat-mdc-tab-label-container, .mat-mdc-tab-link-container {
7
+ --mat-tab-header-divider-color: rgba(0,0,0,.12) !important;
8
+ --mat-tab-header-divider-height: 1px !important;
9
+ }
10
+ .mat-mdc-tab-group, .mat-mdc-tab-nav-bar {
11
+ --mat-tab-header-active-label-text-color: #000000de !important;
12
+ --mat-tab-header-active-focus-label-text-color: #000000de !important;
13
+ --mat-tab-header-active-hover-label-text-color: #000000de !important;
14
+ }
15
+ .mat-mdc-tab-header {
16
+ --mat-tab-header-label-text-tracking: 0.0178571429em !important;
17
+ }
18
+
19
+ // --- Allow to hide headers
20
+ .mat-mdc-tab-group.mat-mdc-tab-group-header-hidden .mat-mdc-tab-header {
21
+ display: none;
22
+ }
23
+
24
+ // --- Allow to hide header's pagination
25
+ .mat-mdc-tab-group.mat-mdc-tab-group-header-pagination-hidden .mat-mdc-tab-header-pagination {
26
+ display: none;
27
+ }
28
+
29
+ // --- Allow to hide disabled headers
30
+ .mat-mdc-tab-group.mat-mdc-tab-disabled-hidden .mat-mdc-tab-disabled {
31
+ display: none;
32
+ }
33
+
34
+ // --- Allow to show disabled headers
35
+ .mat-mdc-tab-group.mat-mdc-tab-disabled-visible .mat-mdc-tab-disabled {
36
+ display: inherit;
37
+ }
38
+
39
+ // --------------------------------------------------
40
+ // Material menu
41
+ // --------------------------------------------------
42
+
43
+
44
+ .mat-menu-panel {
45
+
46
+ // Max width = 400px
47
+ &.mat-menu-size-400 {
48
+ min-width: unset;
49
+ width: 400px;
50
+ max-width: calc(90vw);
51
+ }
52
+ // Max width = 75vw
53
+ &.mat-menu-size-75vw {
54
+ min-width: unset;
55
+ width: calc(75vw);
56
+ max-width: calc(90vw);
57
+ }
58
+
59
+ // No padding
60
+ &.ion-no-padding {
61
+ .mat-menu-content {
62
+ padding: 0 !important;
63
+ }
64
+ }
65
+
66
+ // Small menu item (e.g. for actions on a table row)
67
+ &.mat-menu-small-item-height .mat-menu-item,
68
+ .mat-menu-item.mat-menu-item-small-height
69
+ {
70
+ padding: 0 8px;
71
+ height: 35px;
72
+ line-height: 35px;
73
+ }
74
+ // Reduce the font size, on label just inside a mat-menu (e.g. see trips.page.html)
75
+ .mat-menu-content > ion-label {
76
+ @include font-size(12px);
77
+ }
78
+
79
+ .mat-menu-content ion-item > ion-icon[slot="start"] {
80
+ margin-right: 16px;
81
+ vertical-align: middle;
82
+ }
83
+
84
+ // Menu title (e.g. see extraction map)
85
+ .mat-menu-item.mat-menu-title {
86
+ padding: 0 8px;
87
+ height: 27px;
88
+ line-height: 27px;
89
+ @include font-size(12px);
90
+ pointer-events: none;
91
+ color: var(--ion-color-medium, rgba(0, 0, 0, 0.38));
92
+ }
93
+ }
94
+
95
+ // --------------------------------------------------
96
+ // Alert
97
+ // --------------------------------------------------
98
+
99
+ ion-alert button.alert-button {
100
+ cursor: pointer;
101
+ }
102
+
103
+ // --------------------------------------------------
104
+ // Date and time picker
105
+ // --------------------------------------------------
106
+
107
+ mat-calendar {
108
+ .mat-calendar-header {
109
+ background-color: var(--ion-color-secondary) !important;
110
+ color: var(--ion-color-secondary-contrast) !important;
111
+
112
+ button {
113
+ color: var(--ion-color-secondary-contrast) !important;
114
+ }
115
+ }
116
+
117
+ .mat-calendar-body-selected {
118
+ background-color: var(--ion-color-accent) !important;
119
+ color: var(--ion-color-accent-contrast) !important;
120
+ font-weight: bold;
121
+ }
122
+
123
+ .mat-calendar-arrow {
124
+ border-top-color: var(--ion-color-secondary-contrast) !important;
125
+ }
126
+ }
127
+
128
+
129
+ .timepicker-backdrop-overlay {
130
+ background-color: rgba(0, 0, 0, 0.32);
131
+ z-index: 1000;
132
+ opacity: 1;
133
+ -webkit-tap-highlight-color: transparent;
134
+ transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
135
+ }
136
+
137
+ ngx-material-timepicker-content {
138
+ --clock-hand-color: var(--ion-color-accent) !important;
139
+ --clock-face-time-active-color: var(--ion-color-accent-contrast) !important;
140
+ // TODO review !
141
+ //@extend .mat-dialog-container !optional;
142
+
143
+ .timepicker {
144
+ box-shadow: unset !important;
145
+ border-radius: 4px;
146
+
147
+ header {
148
+ --dial-background-color: var(--ion-color-secondary) !important;
149
+ color: var(--ion-color-secondary-contrast) !important;
150
+ }
151
+ }
152
+
153
+ ngx-material-timepicker-dial-control {
154
+ outline-color: var(--ion-color-accent) !important;
155
+ input {
156
+ outline-color: inherit !important;
157
+ }
158
+ }
159
+ }
160
+
161
+ .mat-mdc-form-field-type-mat-chip-grid {
162
+ .mat-mdc-form-field-infix {
163
+ padding-bottom: 5px !important;
164
+ --mdc-chip-container-height: 24px !important;
165
+ }
166
+ }
167
+
168
+
169
+ // --------------------------------------------------
170
+ // Pages
171
+ // --------------------------------------------------
172
+ ion-item {
173
+ ion-label.error {
174
+ line-height: 16px;
175
+ line-break: normal;
176
+ overflow: visible;
177
+ white-space: normal;
178
+ }
179
+ }
180
+
181
+ // --------------------------------------------------
182
+ // Modal
183
+ // --------------------------------------------------
184
+
185
+ ion-modal.stack-modal {
186
+ --box-shadow: 0 28px 48px rgba(0, 0, 0, 0.4);
187
+ --backdrop-opacity: var(--ion-backdrop-opacity, 0.32);
188
+ }
189
+
190
+ ion-modal.modal-large{
191
+ --min-height: calc(100% - 50px) !important;
192
+ --min-width: calc(100% - 100px) !important;
193
+ }
194
+ ion-modal.modal-fullscreen {
195
+ --min-height: calc(100%) !important;
196
+ --min-width: calc(100%) !important;
197
+ }
198
+
199
+
200
+ // --------------------------------------------------
201
+ // Popover
202
+ // --------------------------------------------------
203
+
204
+ .popover-large {
205
+ --min-width: calc(min(500px, 80%));
206
+ }
207
+
208
+ .popover-notifications {
209
+ --popover-top: 0;
210
+ --max-height: calc(90vh - 40px /* header + footer height */ - var(--popover-top, 0px) - var(--offset-y, 0px));
211
+
212
+ ion-item {
213
+ --ion-item-background-color-hover: var(--ion-color-light);
214
+ &.unread {
215
+ --ion-item-background: rgba(var(--ion-color-secondary100-rgb), 0.2);
216
+ --ion-item-background-color-hover: rgba(var(--ion-color-secondary100-rgb), 0.3);
217
+ }
218
+ }
219
+ }
220
+
221
+ // --------------------------------------------------
222
+ // Large button with icon floating on right
223
+ // --------------------------------------------------
224
+ .flex-margin ion-icon,
225
+ .flex-margin span {
226
+ margin-left: auto;
227
+ }
228
+
229
+ // --------------------------------------------------
230
+ // Icon tooltip, and title
231
+ // --------------------------------------------------
232
+ // Fix Button icon name overrides button's own title on mouse over
233
+ /*ion-icon[name='chatbox'] {
234
+ pointer-events: none !important;
235
+ }*/
236
+ .mat-cell {
237
+ /* smaller size, for the comment icon */
238
+ mat-icon.comment {
239
+ @include font-size(16pt);
240
+ height: 100%;
241
+ vertical-align: center;
242
+ color: var(--ion-color-tertiary, grey);
243
+
244
+ &.disabled {
245
+ color: var(--ion-color-medium, grey);
246
+ }
247
+ }
248
+ }
249
+
250
+ // --------------------------------------------------
251
+ // Icon inside text
252
+ // --------------------------------------------------
253
+ mat-icon,
254
+ ion-icon {
255
+ &.text-size {
256
+ font-size: 1em;
257
+ width: 1em;
258
+ height: 1em;
259
+ }
260
+ }
261
+ ion-button[expand="block"],
262
+ ion-button[expand="full"],
263
+ .mat-button,
264
+ .mat-raised-button {
265
+ mat-icon,
266
+ ion-icon {
267
+ &[slot] {
268
+ pointer-events: none;
269
+ width: 24px;
270
+ height: 24px;
271
+ }
272
+ &[slot='start'],
273
+ &[slot='end'] {
274
+ margin-left: unset;
275
+ margin-right: unset;
276
+ margin-top: 0;
277
+ margin-bottom: 0;
278
+ }
279
+ &t[slot='start'] {
280
+ margin-inline-start: -0.3em;
281
+ margin-inline-end: 0.3em;
282
+ }
283
+ &[slot='end'] {
284
+ margin-inline-start: 0.3em;
285
+ margin-inline-end: -0.3em;
286
+ }
287
+ &.ion-float-start[slot='start'] {
288
+ position: absolute;
289
+ left: 0;
290
+ }
291
+ &.ion-float-end[slot='end'] {
292
+ position: absolute;
293
+ right: 0;
294
+ }
295
+ }
296
+ }
297
+
298
+ // --------------------------------------------------
299
+ // Icon multiple
300
+ // --------------------------------------------------
301
+ ion-icon.icon-secondary,
302
+ mat-icon.icon-secondary {
303
+ position: absolute;
304
+ left: 0;
305
+ }
306
+
307
+ // --------------------------------------------------
308
+ // Toast
309
+ // --------------------------------------------------
310
+ ion-toast {
311
+ --background: var(--ion-color-dark);
312
+ --color: var(--ion-color-dark-contrast);
313
+ --button-color: var(--ion-color-secondary);
314
+
315
+ &.secondary {
316
+ --background: var(--ion-color-secondary);
317
+ --color: var(--ion-color-secondary-contrast);
318
+ --button-color: var(--ion-color-tertiary);
319
+ }
320
+ &.accent {
321
+ --background: var(--ion-color-accent);
322
+ --color: var(--ion-color-accent-contrast);
323
+ --button-color: var(--ion-color-primary);
324
+ }
325
+ &.danger {
326
+ --background: var(--ion-color-danger);
327
+ --color: var(--ion-color-danger-contrast);
328
+ --button-color: var(--ion-color-primary);
329
+ }
330
+
331
+ /* -- workaround because toast animation failed */
332
+ --toast-max-height: 75px;
333
+
334
+ &.toast-stack-offset-1 {
335
+ --toast-stack-offset: 1;
336
+ }
337
+ &.toast-stack-offset-2 {
338
+ --toast-stack-offset: 2;
339
+ }
340
+ &.toast-stack-offset-3 {
341
+ --toast-stack-offset: 3;
342
+ }
343
+ &.toast-stack-offset-4 {
344
+ --toast-stack-offset: 4;
345
+ }
346
+
347
+ &.toast-stacked-top {
348
+ --toast-top: calc(var(--toast-stack-offset, 0) * var(--toast-max-height, 0));
349
+ transform: translateY(var(--toast-top));
350
+ }
351
+ &.toast-stacked-bottom {
352
+ --toast-bottom: calc(-1 * var(--toast-stack-offset, 0) * var(--toast-max-height, 0)) !important;
353
+ transform: translateY(var(--toast-bottom));
354
+ }
355
+ }
356
+
357
+ // --------------------------------------------------
358
+ // Refresher
359
+ // --------------------------------------------------
360
+ ion-refresher.refresher-native {
361
+ z-index: 1000;
362
+ }
@@ -32,4 +32,5 @@ $roboto-font-path: '~roboto-fontface/fonts/roboto';
32
32
  // Import SUMARiS style
33
33
  // --------------------------------------------------
34
34
  @import "ngx-components";
35
+ @import "ngx-components.tabs";
35
36
  @import "ngx-components.table";