ngx-edu-sharing-ui 10.0.6 → 10.0.8
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/README.md +3 -0
- package/assets/scss/branding.scss +10 -0
- package/assets/scss/material-theme.scss +619 -0
- package/assets/scss/mixins.scss +123 -0
- package/assets/scss/variables-root.scss +2 -0
- package/assets/scss/variables-scss.scss +117 -0
- package/esm2022/lib/dropdown/dropdown.component.mjs +2 -2
- package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +2 -2
- package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +2 -2
- package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +2 -2
- package/esm2022/lib/node-url/node-url.component.mjs +2 -2
- package/esm2022/lib/services/node-helper.service.mjs +39 -1
- package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +3 -3
- package/esm2022/lib/translations/translation-loader.mjs +1 -3
- package/esm2022/lib/translations/translations.module.mjs +4 -2
- package/esm2022/lib/translations/translations.service.mjs +58 -25
- package/esm2022/lib/types/injection-tokens.mjs +14 -1
- package/fesm2022/ngx-edu-sharing-ui.mjs +310 -229
- package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
- package/lib/services/node-helper.service.d.ts +9 -1
- package/lib/translations/translations.service.d.ts +7 -6
- package/lib/types/injection-tokens.d.ts +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -38,3 +38,6 @@ async ngOnInit() {
|
|
|
38
38
|
|
|
39
39
|
In your scss, make sure to include the global variables via
|
|
40
40
|
`@import "node-modules/ngx-edu-sharing-ui/assets/scss/variables";`
|
|
41
|
+
|
|
42
|
+
and in your `angular.json`, add it to the `"styles"`
|
|
43
|
+
`"node_modules/ngx-edu-sharing-ui/assets/scss/material_theme.scss",`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
$primary: var(--primary);
|
|
2
|
+
$primaryMediumLight: var(--palette-primary-200);
|
|
3
|
+
$primaryLight: var(--palette-primary-100);
|
|
4
|
+
$primaryComplementary: var(--accent);
|
|
5
|
+
$primaryDark: var(--palette-primary-900);
|
|
6
|
+
$textOnPrimary: var(--light-primary-text);
|
|
7
|
+
$textOnPrimaryLight: rgba(var(--light-primary-text), 0.75);
|
|
8
|
+
$textPrimary: var(--palette-foreground-text);
|
|
9
|
+
$workspaceTopBarBackground: #383838;
|
|
10
|
+
$workspaceTopBarFontColor: #fff;
|
|
@@ -0,0 +1,619 @@
|
|
|
1
|
+
@use '@angular/material' as mat;
|
|
2
|
+
@use 'angular-material-css-vars' as mat-css-vars;
|
|
3
|
+
|
|
4
|
+
@import 'variables';
|
|
5
|
+
@import 'variables-scss';
|
|
6
|
+
@import 'branding';
|
|
7
|
+
|
|
8
|
+
// optional
|
|
9
|
+
$mat-css-dark-theme-selector: '.isDarkTheme';
|
|
10
|
+
$mat-css-light-theme-selector: '.isLightTheme';
|
|
11
|
+
|
|
12
|
+
// init theme
|
|
13
|
+
|
|
14
|
+
// Define the palettes for your theme using the Material Design palettes available in palette.scss
|
|
15
|
+
// (impomatrted above). For each palette, you can optionally specify a default, lighter, and darker
|
|
16
|
+
// hue. Available color palettes: https://material.io/design/color/
|
|
17
|
+
|
|
18
|
+
$custom-typography: mat.m2-define-typography-config(
|
|
19
|
+
$font-family: $primaryFontFamily,
|
|
20
|
+
$body-1: mat.m2-define-typography-level(100%, normal, 400),
|
|
21
|
+
$body-2: mat.m2-define-typography-level(100%, normal, 400),
|
|
22
|
+
// mat-optgroups labels, input placeholder
|
|
23
|
+
$subtitle-1: mat.m2-define-typography-level(90%, normal, 400),
|
|
24
|
+
// mat-table cells
|
|
25
|
+
$subtitle-2: mat.m2-define-typography-level(90%, normal, 600),
|
|
26
|
+
// mat-table header
|
|
27
|
+
$button: mat.m2-define-typography-level(100%, normal, 400),
|
|
28
|
+
$headline-1: mat.m2-define-typography-level(150%, normal, 400),
|
|
29
|
+
$headline-2: mat.m2-define-typography-level(140%, normal, 400),
|
|
30
|
+
) !default;
|
|
31
|
+
// Override typography for all Angular Material, including mat-base-typography and all components.
|
|
32
|
+
|
|
33
|
+
@mixin app-theme($theme) {
|
|
34
|
+
// Your app theme
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@include mat-css-vars.init-material-css-vars($typography-config: $custom-typography)
|
|
38
|
+
using($mat-css-theme) {
|
|
39
|
+
@include app-theme($mat-css-theme);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
$dark-dividers: rgba(black, 0.12);
|
|
43
|
+
$dark-disabled-text: rgba(black, 0.54); // increased contrast
|
|
44
|
+
$dark-secondary-text: rgba(black, 0.54);
|
|
45
|
+
|
|
46
|
+
:root {
|
|
47
|
+
--mdc-fab-container-color: #{$backgroundColor};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.mdc-button {
|
|
51
|
+
span {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
gap: 10px;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** custom project specifics */
|
|
59
|
+
[matripplecolor='primary'] {
|
|
60
|
+
> .mat-ripple-element {
|
|
61
|
+
background-color: $primary;
|
|
62
|
+
opacity: 0.1;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/*
|
|
66
|
+
material toggle buttons
|
|
67
|
+
*/
|
|
68
|
+
mat-button-toggle-group {
|
|
69
|
+
.mat-button-toggle-checked.mat-button-toggle-appearance-standard {
|
|
70
|
+
color: $textOnPrimary;
|
|
71
|
+
background-color: $primary;
|
|
72
|
+
}
|
|
73
|
+
.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay {
|
|
74
|
+
background-color: $primary;
|
|
75
|
+
}
|
|
76
|
+
/*
|
|
77
|
+
bugfix: overlay is not big enough
|
|
78
|
+
*/
|
|
79
|
+
.mat-button-toggle-checked .mat-button-toggle-focus-overlay {
|
|
80
|
+
border-bottom-width: 100px;
|
|
81
|
+
}
|
|
82
|
+
&.toggle-full-size {
|
|
83
|
+
width: 100%;
|
|
84
|
+
mat-button-toggle {
|
|
85
|
+
flex-grow: 1;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
.mat-tooltip {
|
|
90
|
+
background-color: $primaryVeryLight !important;
|
|
91
|
+
color: $textMain !important;
|
|
92
|
+
font-weight: bold;
|
|
93
|
+
}
|
|
94
|
+
.mdc-tab__content {
|
|
95
|
+
.mdc-tab__text-label {
|
|
96
|
+
display: flex;
|
|
97
|
+
gap: 10px; // padding for icons
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
mat-tab-group {
|
|
101
|
+
mat-tab-header {
|
|
102
|
+
background-color: $backgroundColor;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
.mat-tab-group.mat-dark {
|
|
106
|
+
.mat-tab-header {
|
|
107
|
+
background-color: $workspaceTopBarBackground;
|
|
108
|
+
}
|
|
109
|
+
.mat-tab-header-pagination .mat-tab-header-pagination-chevron {
|
|
110
|
+
border-color: $workspaceTopBarFontColor;
|
|
111
|
+
}
|
|
112
|
+
.mat-tab-labels {
|
|
113
|
+
background-color: $workspaceTopBarBackground;
|
|
114
|
+
.mat-tab-label {
|
|
115
|
+
color: $workspaceTopBarFontColor;
|
|
116
|
+
&.cdk-keyboard-focused:not(.mat-tab-disabled) {
|
|
117
|
+
background-color: rgba(255, 255, 255, 0.2);
|
|
118
|
+
}
|
|
119
|
+
.mat-ripple-element {
|
|
120
|
+
background-color: rgba(255, 255, 255, 0.1);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
.mat-ink-bar {
|
|
125
|
+
background-color: $primaryLight;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// a mat table with clickable columns
|
|
129
|
+
.mat-table-clickable {
|
|
130
|
+
.mat-row {
|
|
131
|
+
@include clickable();
|
|
132
|
+
transition: all $transitionNormal;
|
|
133
|
+
&:hover {
|
|
134
|
+
background-color: $itemSelectedBackground;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
.mat-mdc-fab.mat-white,
|
|
139
|
+
.mat-mini-fab.mat-white {
|
|
140
|
+
// white background, primary as content color
|
|
141
|
+
color: $primary;
|
|
142
|
+
}
|
|
143
|
+
.mat-mdc-unelevated-button:not(:disabled),
|
|
144
|
+
.mat-mdc-raised-button:not(:disabled),
|
|
145
|
+
.mat-mdc-fab:not(:disabled),
|
|
146
|
+
.mat-mdc-mini-fab:not(:disabled) {
|
|
147
|
+
// `color="warn"`
|
|
148
|
+
&.mat-warn {
|
|
149
|
+
// Red background, same as negative
|
|
150
|
+
background-color: $warning;
|
|
151
|
+
color: white;
|
|
152
|
+
}
|
|
153
|
+
&.status-negative {
|
|
154
|
+
background-color: $colorStatusNegative;
|
|
155
|
+
color: white;
|
|
156
|
+
}
|
|
157
|
+
&.status-warning {
|
|
158
|
+
background-color: $colorStatusWarning;
|
|
159
|
+
color: white;
|
|
160
|
+
}
|
|
161
|
+
&.status-positive {
|
|
162
|
+
background-color: $colorStatusPositive;
|
|
163
|
+
color: white;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
.mat-form-field .mat-button-select-arrow {
|
|
167
|
+
width: 25px;
|
|
168
|
+
height: 25px;
|
|
169
|
+
margin-right: 2px;
|
|
170
|
+
background-color: #fff;
|
|
171
|
+
}
|
|
172
|
+
// align prefix in input fields
|
|
173
|
+
.mat-form-field-appearance-outline .mat-form-field-prefix {
|
|
174
|
+
top: 0.4em !important;
|
|
175
|
+
left: -0.1em;
|
|
176
|
+
}
|
|
177
|
+
// align subscript/bottom hint to complete left/right
|
|
178
|
+
.mat-form-field-appearance-outline .mat-form-field-subscript-wrapper {
|
|
179
|
+
padding: 0 !important;
|
|
180
|
+
}
|
|
181
|
+
.mat-form-field.mat-form-field-no-padding {
|
|
182
|
+
.mat-form-field-wrapper {
|
|
183
|
+
padding-bottom: 0;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
.mat-form-field.mat-form-field-max-width {
|
|
187
|
+
.mat-form-field-wrapper {
|
|
188
|
+
width: 100%;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// form border on hover
|
|
192
|
+
.mat-form-field-appearance-outline {
|
|
193
|
+
--mdc-outlined-text-field-hover-outline-color: #{mat-css-vars.mat-css-color-primary(300)};
|
|
194
|
+
}
|
|
195
|
+
.mat-form-field-dark {
|
|
196
|
+
input,
|
|
197
|
+
textarea {
|
|
198
|
+
caret-color: $primaryDark;
|
|
199
|
+
}
|
|
200
|
+
.mat-form-field-outline,
|
|
201
|
+
.mat-form-field-label {
|
|
202
|
+
color: rgba(0, 0, 0, 0.6);
|
|
203
|
+
}
|
|
204
|
+
&.mat-focused {
|
|
205
|
+
.mat-form-field-outline,
|
|
206
|
+
.mat-form-field-label {
|
|
207
|
+
color: rgba(0, 0, 0, 0.7);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
.mat-mdc-form-field.mat-form-field-bright {
|
|
212
|
+
input,
|
|
213
|
+
textarea {
|
|
214
|
+
--mdc-outlined-text-field-caret-color: #{$primaryLight};
|
|
215
|
+
}
|
|
216
|
+
--mdc-outlined-text-field-label-text-color: rgba(255, 255, 255, 0.87);
|
|
217
|
+
--mdc-outlined-text-field-outline-color: rgba(255, 255, 255, 0.6);
|
|
218
|
+
--mdc-outlined-text-field-hover-outline-color: rgba(255, 255, 255, 0.87);
|
|
219
|
+
--mdc-outlined-text-field-focus-outline-color: #{mat-css-vars.mat-css-color-primary(100)};
|
|
220
|
+
.mdc-text-field--focused:not(.mdc-text-field--disabled) .mdc-floating-label {
|
|
221
|
+
color: mat-css-vars.mat-css-color-primary(50);
|
|
222
|
+
}
|
|
223
|
+
--mdc-outlined-text-field-input-text-color: rgba(255, 255, 255);
|
|
224
|
+
}
|
|
225
|
+
mat-slide-toggle.mat-mdc-slide-toggle.mat-primary-bright {
|
|
226
|
+
--mdc-switch-unselected-handle-color: #fff;
|
|
227
|
+
--mdc-switch-unselected-hover-handle-color: #{$primaryVeryLight};
|
|
228
|
+
--mdc-switch-unselected-focus-handle-color: #{$primaryVeryLight};
|
|
229
|
+
--mdc-switch-unselected-pressed-handle-color: #{$primaryVeryLight};
|
|
230
|
+
--mdc-switch-unselected-icon-color: #{$textLight};
|
|
231
|
+
--mdc-switch-selected-handle-color: #fff;
|
|
232
|
+
--mdc-switch-selected-hover-handle-color: #{$primaryVeryLight};
|
|
233
|
+
--mdc-switch-selected-focus-handle-color: #{$primaryVeryLight};
|
|
234
|
+
--mdc-switch-selected-pressed-handle-color: #{$primaryVeryLight};
|
|
235
|
+
--mdc-switch-selected-icon-color: #{$primary};
|
|
236
|
+
.mdc-form-field label {
|
|
237
|
+
color: #fff;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
.mat-slide-toggle.cdk-keyboard-focused .mat-slide-toggle-thumb-container .mat-focus-indicator {
|
|
241
|
+
@include setGlobalKeyboardFocus();
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// will fix g and y to cut off with custom font
|
|
245
|
+
input.mat-input-element,
|
|
246
|
+
mat-label,
|
|
247
|
+
.mat-select-value {
|
|
248
|
+
line-height: normal;
|
|
249
|
+
}
|
|
250
|
+
.mat-input-element::placeholder {
|
|
251
|
+
color: $placeholderColor;
|
|
252
|
+
}
|
|
253
|
+
// will better align the border label for the outlined input
|
|
254
|
+
.mat-form-field-appearance-outline {
|
|
255
|
+
$mat-form-field-floating-label-offset: 0.3em;
|
|
256
|
+
// Add the offset value defined above to all relevant default values
|
|
257
|
+
.mat-form-field-label-wrapper {
|
|
258
|
+
top: calc(-0.9375em - #{$mat-form-field-floating-label-offset});
|
|
259
|
+
padding-top: calc(0.9375em + #{$mat-form-field-floating-label-offset});
|
|
260
|
+
}
|
|
261
|
+
.mat-form-field-label {
|
|
262
|
+
top: calc(1.9375em + #{$mat-form-field-floating-label-offset});
|
|
263
|
+
}
|
|
264
|
+
&.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,
|
|
265
|
+
&.mat-form-field-can-float
|
|
266
|
+
.mat-input-server:focus
|
|
267
|
+
+ .mat-form-field-label-wrapper
|
|
268
|
+
.mat-form-field-label {
|
|
269
|
+
transform: translateY(calc(-1.68748em - #{$mat-form-field-floating-label-offset}))
|
|
270
|
+
scale(0.75);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
.mat-autocomplete-high {
|
|
274
|
+
max-height: 350px;
|
|
275
|
+
}
|
|
276
|
+
.mdc-button__label {
|
|
277
|
+
display: inline-flex;
|
|
278
|
+
}
|
|
279
|
+
.mat-flat-button {
|
|
280
|
+
padding: 0 15px !important;
|
|
281
|
+
.mdc-button__label {
|
|
282
|
+
color: $textOnPrimary !important;
|
|
283
|
+
}
|
|
284
|
+
background-color: $primary !important;
|
|
285
|
+
}
|
|
286
|
+
body {
|
|
287
|
+
// Background for raised button
|
|
288
|
+
--mdc-protected-button-container-color: white;
|
|
289
|
+
}
|
|
290
|
+
// improve default positioning of outlined fields with label
|
|
291
|
+
.mat-mdc-text-field-wrapper.mdc-text-field--outlined {
|
|
292
|
+
.mat-mdc-form-field-infix {
|
|
293
|
+
padding-top: 20px;
|
|
294
|
+
min-height: unset;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
.mat-mdc-checkbox {
|
|
298
|
+
.mdc-checkbox__background {
|
|
299
|
+
border-color: $primary !important;
|
|
300
|
+
|
|
301
|
+
background-color: #fff !important;
|
|
302
|
+
|
|
303
|
+
.mdc-checkbox__checkmark {
|
|
304
|
+
color: #fff !important;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
&.mdc-checkbox--disabled {
|
|
308
|
+
.mdc-checkbox__background {
|
|
309
|
+
border-color: $primaryLight !important;
|
|
310
|
+
}
|
|
311
|
+
&.mat-mdc-checkbox-checked,
|
|
312
|
+
&.mat-mdc-checkbox-indeterminate {
|
|
313
|
+
.mdc-checkbox__background {
|
|
314
|
+
background-color: $primaryLight !important;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
&.mat-mdc-checkbox-checked,
|
|
319
|
+
&.mat-mdc-checkbox-indeterminate {
|
|
320
|
+
.mdc-checkbox__background {
|
|
321
|
+
background-color: $primary !important;
|
|
322
|
+
.mdc-checkbox__checkmark,
|
|
323
|
+
.mdc-checkbox__mixedmark {
|
|
324
|
+
color: #fff !important;
|
|
325
|
+
border-color: #fff !important;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
.mat-radio-container {
|
|
331
|
+
.mat-radio-outer-circle {
|
|
332
|
+
border-color: $primary;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
.mat-mdc-checkbox-label {
|
|
336
|
+
line-height: 17pt !important;
|
|
337
|
+
font-size: 1rem;
|
|
338
|
+
color: $textMain;
|
|
339
|
+
> .label-secondary {
|
|
340
|
+
line-height: normal !important;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
.mat-mdc-checkbox-disabled {
|
|
344
|
+
$disabled-color: #919191; // 3:1 on #fafafa (fill-color of checkmark)
|
|
345
|
+
&.mat-checkbox-checked,
|
|
346
|
+
&.mat-checkbox-indeterminate {
|
|
347
|
+
.mat-checkbox-background {
|
|
348
|
+
background-color: $disabled-color;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
&:not(.mat-checkbox-checked) {
|
|
352
|
+
.mat-checkbox-frame {
|
|
353
|
+
border-color: $disabled-color;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
.mat-mdc-checkbox.cdk-keyboard-focused .mat-focus-indicator {
|
|
358
|
+
@include setGlobalKeyboardFocus();
|
|
359
|
+
}
|
|
360
|
+
.mat-mdc-raised-button {
|
|
361
|
+
&:not(.mat-primary) {
|
|
362
|
+
color: $primary !important;
|
|
363
|
+
}
|
|
364
|
+
&.mat-primary {
|
|
365
|
+
color: $textOnPrimary !important;
|
|
366
|
+
}
|
|
367
|
+
&.mat-warn {
|
|
368
|
+
color: $textOnPrimary !important;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
.mat-mdc-button.mat-cancel {
|
|
372
|
+
color: $textMediumLight;
|
|
373
|
+
&:hover {
|
|
374
|
+
color: $primary;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
// Undo default style of mat-icon.
|
|
378
|
+
//
|
|
379
|
+
// We assign icons the class .mat-icon so other Material components will treat them as icons, but we
|
|
380
|
+
// don't use the actual mat-icon component. Some styles rely on setting the elements width and
|
|
381
|
+
// height by changing its font-size.
|
|
382
|
+
//
|
|
383
|
+
// Note that the default style of mat-icon is only loaded when the mat-icon component is used, which
|
|
384
|
+
// is rare but does happen.
|
|
385
|
+
i.mat-icon {
|
|
386
|
+
height: 1em;
|
|
387
|
+
width: 1em;
|
|
388
|
+
> .svg-icons {
|
|
389
|
+
width: 20px;
|
|
390
|
+
height: 20px;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
button {
|
|
394
|
+
&.mat-mdc-button,
|
|
395
|
+
&.mat-mdc-unelevated-button,
|
|
396
|
+
&.mat-mdc-raised-button,
|
|
397
|
+
&.mat-mdc-icon-button,
|
|
398
|
+
&.mat-mdc-fab {
|
|
399
|
+
&.cdk-keyboard-focused {
|
|
400
|
+
@include setGlobalKeyboardFocus();
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
.mat-button-no-uppercase .mat-button-wrapper {
|
|
405
|
+
text-transform: none;
|
|
406
|
+
}
|
|
407
|
+
.mat-calendar-table-header-divider {
|
|
408
|
+
display: none;
|
|
409
|
+
}
|
|
410
|
+
.mat-option {
|
|
411
|
+
font-size: 100%;
|
|
412
|
+
.mat-option-primary {
|
|
413
|
+
line-height: initial;
|
|
414
|
+
font-size: 90%;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.mat-option-secondary {
|
|
418
|
+
font-size: 75%;
|
|
419
|
+
line-height: initial;
|
|
420
|
+
color: $textLight;
|
|
421
|
+
}
|
|
422
|
+
&:hover:not(.mat-option-disabled),
|
|
423
|
+
.mat-option:focus:not(.mat-option-disabled) {
|
|
424
|
+
background-color: $buttonHoverBackground;
|
|
425
|
+
}
|
|
426
|
+
&.mat-focus-indicator.mat-active::before {
|
|
427
|
+
content: '';
|
|
428
|
+
}
|
|
429
|
+
&.mat-focus-indicator::before {
|
|
430
|
+
top: 0;
|
|
431
|
+
left: 0;
|
|
432
|
+
right: 0;
|
|
433
|
+
bottom: 0;
|
|
434
|
+
position: absolute;
|
|
435
|
+
pointer-events: none;
|
|
436
|
+
@include setGlobalKeyboardFocus($mode: 'border');
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
label .label-secondary {
|
|
441
|
+
font-size: 90%;
|
|
442
|
+
color: $textLight;
|
|
443
|
+
}
|
|
444
|
+
/* a badge (usually counter) inside an (icon) button
|
|
445
|
+
*/
|
|
446
|
+
.mat-button-badge {
|
|
447
|
+
position: absolute;
|
|
448
|
+
right: -3px;
|
|
449
|
+
top: -3px;
|
|
450
|
+
color: $textOnPrimary;
|
|
451
|
+
background-color: $colorStatusNegative;
|
|
452
|
+
border-radius: 50%;
|
|
453
|
+
width: 16px;
|
|
454
|
+
height: 16px;
|
|
455
|
+
font-weight: bold;
|
|
456
|
+
font-size: 0.8em;
|
|
457
|
+
display: flex;
|
|
458
|
+
justify-content: center;
|
|
459
|
+
align-items: center;
|
|
460
|
+
}
|
|
461
|
+
.monaco-editor {
|
|
462
|
+
outline: none !important;
|
|
463
|
+
background-color: transparent !important;
|
|
464
|
+
mat-label,
|
|
465
|
+
mat-hint {
|
|
466
|
+
padding: 2px 0;
|
|
467
|
+
font-size: 75%;
|
|
468
|
+
color: $textLight;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
.mat-card-subtitle,
|
|
472
|
+
mat-hint,
|
|
473
|
+
mat-slide-toggle .mdc-form-field label {
|
|
474
|
+
color: $textLight;
|
|
475
|
+
}
|
|
476
|
+
// prevent umlauts from cutting off
|
|
477
|
+
mat-hint,
|
|
478
|
+
mat-error {
|
|
479
|
+
font-size: $fontSizeSmall;
|
|
480
|
+
line-height: 1.5;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// Show toggle on the right place
|
|
484
|
+
.toggle-reverse {
|
|
485
|
+
.mdc-form-field {
|
|
486
|
+
flex-direction: row-reverse;
|
|
487
|
+
gap: 10px;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
.mat-slide-toggle-twoside {
|
|
491
|
+
display: flex;
|
|
492
|
+
align-items: center;
|
|
493
|
+
> mat-label {
|
|
494
|
+
color: $textLight;
|
|
495
|
+
padding: 0 8px;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
mat-label.mat-label-standalone {
|
|
499
|
+
font-size: $fontSizeSmall;
|
|
500
|
+
color: $textLight;
|
|
501
|
+
}
|
|
502
|
+
/* fix for mat select icons */
|
|
503
|
+
.mat-select-icon {
|
|
504
|
+
.mat-option-text {
|
|
505
|
+
display: flex;
|
|
506
|
+
align-items: center;
|
|
507
|
+
> i {
|
|
508
|
+
margin-right: 5px;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
mat-select.mat-select-icon {
|
|
513
|
+
mat-select-trigger {
|
|
514
|
+
max-height: 22px;
|
|
515
|
+
display: flex;
|
|
516
|
+
align-items: center;
|
|
517
|
+
> i {
|
|
518
|
+
color: $textLight;
|
|
519
|
+
margin-right: 5px;
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
.mat-select-arrow-wrapper {
|
|
523
|
+
transform: none;
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
.mat-select-panel,
|
|
528
|
+
.mat-autocomplete-panel {
|
|
529
|
+
.mat-option:not(.mat-option-disabled) {
|
|
530
|
+
color: $primary;
|
|
531
|
+
}
|
|
532
|
+
.mat-option.mat-selected:not(.mat-option-multiple) {
|
|
533
|
+
background-color: $cardLightBackground;
|
|
534
|
+
font-weight: bold;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) {
|
|
538
|
+
background-color: var(--palette-primary-100) !important;
|
|
539
|
+
.mat-mdc-chip-remove {
|
|
540
|
+
color: $primary !important;
|
|
541
|
+
opacity: 1 !important;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
.mat-chip-list {
|
|
545
|
+
.mat-chip.mat-standard-chip {
|
|
546
|
+
height: unset; // Override height: 1px
|
|
547
|
+
background-color: $primaryLight;
|
|
548
|
+
overflow: hidden;
|
|
549
|
+
&.indeterminate {
|
|
550
|
+
background: repeating-linear-gradient(
|
|
551
|
+
-45deg,
|
|
552
|
+
$primaryLight,
|
|
553
|
+
$primaryLight 5px,
|
|
554
|
+
rgba(0, 0, 0, 0.04) 5px,
|
|
555
|
+
rgba(0, 0, 0, 0.04) 10px
|
|
556
|
+
);
|
|
557
|
+
color: $textLight;
|
|
558
|
+
}
|
|
559
|
+
&.cdk-keyboard-focused {
|
|
560
|
+
@include setGlobalKeyboardFocus();
|
|
561
|
+
}
|
|
562
|
+
.mat-chip-remove {
|
|
563
|
+
// align somewhat townwards for better centering
|
|
564
|
+
line-height: 1.05;
|
|
565
|
+
color: $primary;
|
|
566
|
+
opacity: 1;
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
.mat-mdc-menu-panel {
|
|
571
|
+
min-height: initial !important;
|
|
572
|
+
overflow-x: hidden !important; // prevent scrollbars on FF
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
.cdk-drag-preview {
|
|
576
|
+
border-radius: 4px;
|
|
577
|
+
@include materialShadowBottom();
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.cdk-drag-placeholder {
|
|
581
|
+
opacity: 0.5;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
.cdk-drag-animating {
|
|
585
|
+
transition: transform $transitionNormal cubic-bezier(0, 0, 0.2, 1);
|
|
586
|
+
}
|
|
587
|
+
mat-form-field {
|
|
588
|
+
.mat-form-field-suffix {
|
|
589
|
+
> span {
|
|
590
|
+
position: relative;
|
|
591
|
+
top: -0.25em;
|
|
592
|
+
color: $textLight;
|
|
593
|
+
padding-left: 5px;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
&.mat-form-field-disabled {
|
|
597
|
+
.mat-form-field-suffix {
|
|
598
|
+
> span {
|
|
599
|
+
color: $textLight;
|
|
600
|
+
opacity: 0.5;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
@include contrastMode(global) {
|
|
607
|
+
// We cannot archive sufficient contrast through a Material theme since opacities for color
|
|
608
|
+
// values are hardcoded in the Material component's theme files --- independently of opacities
|
|
609
|
+
// given by the theme.
|
|
610
|
+
.mat-form-field-appearance-outline .mat-form-field-outline:not(.mat-form-field-outline-thick) {
|
|
611
|
+
color: rgba(black, 0.42);
|
|
612
|
+
}
|
|
613
|
+
.cdk-overlay-pane .suggestion-card,
|
|
614
|
+
.cdk-overlay-pane .mat-autocomplete-panel,
|
|
615
|
+
.cdk-overlay-pane .mat-mdc-menu-panel,
|
|
616
|
+
.cdk-overlay-pane .mat-tooltip {
|
|
617
|
+
outline: 1px solid rgba(black, 0.42);
|
|
618
|
+
}
|
|
619
|
+
}
|