@arsedizioni/ars-utils 22.1.4 → 22.5.1
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 +97 -10
- package/clipper.ui/clipper.scss +564 -0
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +7 -3
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs +609 -0
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs +591 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.mjs +270 -1449
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +14 -3080
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs +962 -0
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs +506 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs +763 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs +184 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs +825 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs +708 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs +426 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs +531 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +62 -2222
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs +1049 -0
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs +263 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +4 -3
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs +246 -0
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils.mjs +13 -12
- package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
- package/help/package.json +4 -0
- package/package.json +72 -14
- package/support.ui/package.json +4 -0
- package/tinymce/package.json +4 -0
- package/types/arsedizioni-ars-utils-clipper.common.d.ts +1 -2
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +3 -1
- package/types/arsedizioni-ars-utils-core.d.ts +684 -1004
- package/types/arsedizioni-ars-utils-core.date.d.ts +304 -0
- package/types/arsedizioni-ars-utils-core.markdown.d.ts +159 -0
- package/types/arsedizioni-ars-utils-ui.application.d.ts +10 -1377
- package/types/arsedizioni-ars-utils-ui.controls.d.ts +413 -0
- package/types/arsedizioni-ars-utils-ui.d.ts +198 -1206
- package/types/arsedizioni-ars-utils-ui.dialogs.auth.d.ts +224 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.d.ts +376 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.prompt.d.ts +47 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.select.d.ts +309 -0
- package/types/arsedizioni-ars-utils-ui.files.d.ts +271 -0
- package/types/arsedizioni-ars-utils-ui.filters.d.ts +163 -0
- package/types/arsedizioni-ars-utils-ui.help.d.ts +220 -0
- package/types/arsedizioni-ars-utils-ui.navigation.d.ts +650 -0
- package/types/arsedizioni-ars-utils-ui.notifications.d.ts +73 -0
- package/types/arsedizioni-ars-utils-ui.tinymce.d.ts +63 -0
- package/types/arsedizioni-ars-utils.d.ts +4 -10
- package/ui.tinymce/README.md +12 -0
- package/ui.tinymce/langs/it.js +466 -0
- package/types/arsedizioni-ars-utils-core.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,10 +1,97 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Common tools and components shared among
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
1
|
+
# ARS Utils
|
|
2
|
+
|
|
3
|
+
Common tools and standalone components shared among ARS Edizioni Angular based web applications.
|
|
4
|
+
|
|
5
|
+
Rispetto alla versione monolitica precedente adotta la struttura a entry point
|
|
6
|
+
introdotta con `@fabio.buscaroli/scm-utils`: code splitting e tree shaking sono il criterio di
|
|
7
|
+
ripartizione dei simboli, non un effetto collaterale.
|
|
8
|
+
|
|
9
|
+
## Platform
|
|
10
|
+
|
|
11
|
+
Angular 22 + Material
|
|
12
|
+
|
|
13
|
+
## Entry points
|
|
14
|
+
|
|
15
|
+
La libreria non espone un barrel unico: l'entry point secondario e' l'unica unita' di
|
|
16
|
+
code splitting riconosciuta da ng-packagr, quindi ogni gruppo di simboli che ha un ciclo
|
|
17
|
+
di vita proprio vive nel suo entry point. Importare sempre dal path specifico.
|
|
18
|
+
|
|
19
|
+
### Nucleo condiviso
|
|
20
|
+
|
|
21
|
+
| Livello | Entry point | Contenuto | Note |
|
|
22
|
+
|---|---|---|---|
|
|
23
|
+
| L0 | `core` | `SystemUtils`, models, definitions, pipe, direttive validator, servizi (broadcast, screen, theme, splash, environment), `LoginOAuthType` | nessuna dipendenza da Angular Material |
|
|
24
|
+
| L0 | `core.date` | `provideArsDateFns`, `provideArsLocalDates`, `MAT_DATE_FNS_FORMATS`, `arsLocalDateInterceptor`, `ARS_TIME_ZONE` | isola `@angular/material/core` + `datepicker` |
|
|
25
|
+
| L0 | `core.markdown` | `MarkdownUtils`, `FormatMarkdownPipe` | parser markdown, fuori dal percorso comune |
|
|
26
|
+
| L1 | `ui` | `FlexLayoutModule`, `MediaObserver`, `UIService`, `PaginatorIntl`, tipi dei dialog | kernel: deve restare magro |
|
|
27
|
+
| L1.5 | `ui.dialogs` | `DialogService` + busy, confirm, delete, info, toast | il set sempre usato |
|
|
28
|
+
| L2 | `ui.dialogs.auth` | credentials, reset-password, recover-password, prompt-otp, `OtpInputComponent`, `PasswordStrengthComponent` | solo route di login/account |
|
|
29
|
+
| L2 | `ui.dialogs.prompt` | prompt, prompt-date, prompt-time | porta `@angular/material/datepicker` |
|
|
30
|
+
| L2 | `ui.dialogs.select` | select, select-tree, send-to | porta `mat-tree`, `mat-list`, `mat-chips` |
|
|
31
|
+
| L2 | `ui.files` | file-input, file-preview, select-file, select-picture | |
|
|
32
|
+
| L2 | `ui.controls` | button-selector, button-toggle, chips-selector, tree-picker, calendar-empty-header | |
|
|
33
|
+
| L2 | `ui.filters` | `FilterBarComponent` + modello `Filters` | |
|
|
34
|
+
| L2 | `ui.navigation` | `NavigationBarComponent` + definizioni | shell applicativa |
|
|
35
|
+
| L3 | `ui.application` | `ApplicationDialogService` | facade: carica i dialog pesanti con `import()` |
|
|
36
|
+
|
|
37
|
+
### Specifici ARS
|
|
38
|
+
|
|
39
|
+
| Livello | Entry point | Contenuto | Dipendenze pesanti |
|
|
40
|
+
|---|---|---|---|
|
|
41
|
+
| L0.5 | `support.common` | `SupportService`, notifiche, definitions, messages | - |
|
|
42
|
+
| L0.5 | `evolution.common` | `EvolutionService`, account, compliance, login, interceptor auth | - |
|
|
43
|
+
| L2 | `ui.oauth` | `LoginOAuthComponent`, `LoginOAuthOkMSComponent` | `@azure/msal-angular`, `@azure/msal-browser` |
|
|
44
|
+
| L2 | `ui.help` | `HelpService`, `HelpViewerComponent`, modello dei capitoli | - |
|
|
45
|
+
| L2 | `ui.tinymce` | `TinymceUtils`, `FullScreenEditorComponent`, `langs/it.js` | `tinymce`, `@tinymce/tinymce-angular` |
|
|
46
|
+
| L2 | `ui.notifications` | `NotificationsBrowserComponent` (ex `support.ui`) | - |
|
|
47
|
+
| L2 | `clipper.common` | `ClipperService`, archive, calendar, collaboration, documents, login, note, interceptor auth | - |
|
|
48
|
+
| L4 | `clipper.ui` | browser, document, note, references, search-* e `ClipperDocumentsUtils` | `clipper.scss` |
|
|
49
|
+
|
|
50
|
+
I peer dependency opzionali (`@azure/msal-*`, `tinymce`, `@tinymce/tinymce-angular`) servono
|
|
51
|
+
solo a chi importa rispettivamente `ui.oauth` e `ui.tinymce`: sono dichiarati in
|
|
52
|
+
`peerDependenciesMeta.optional` proprio perche' nessun altro entry point li aggancia.
|
|
53
|
+
|
|
54
|
+
### Grafo delle dipendenze statiche
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
core core.date core.markdown
|
|
58
|
+
|
|
|
59
|
+
ui ------------------------------------------------------------------
|
|
60
|
+
| | | | | |
|
|
61
|
+
| ui.controls ui.filters ui.navigation ui.dialogs.select clipper.common
|
|
62
|
+
|
|
|
63
|
+
ui.dialogs
|
|
64
|
+
| | | | | |
|
|
65
|
+
| ui.dialogs.auth ui.dialogs.prompt ui.files ui.help ui.oauth
|
|
66
|
+
| ui.notifications (+ support.common)
|
|
67
|
+
ui.application --- import() ---> ui.dialogs.{auth,prompt,select}, ui.files
|
|
68
|
+
|
|
|
69
|
+
clipper.ui (+ clipper.common, ui.controls, ui.files, ui.dialogs.select)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`evolution.common` e `support.common` dipendono solo da `core`.
|
|
73
|
+
|
|
74
|
+
### Regole da rispettare
|
|
75
|
+
|
|
76
|
+
1. Il grafo tra entry point deve restare un DAG. Un entry point di livello L2 non puo'
|
|
77
|
+
importare `ui.application`, ne' un entry point puo' importare se stesso per package path
|
|
78
|
+
(ng-packagr lo segnala come `circular dependency on itself`).
|
|
79
|
+
2. I tipi condivisi fra il facade e i dialog pesanti stanno in `ui` (`dialog.definitions.ts`).
|
|
80
|
+
Se un tipo servisse a entrambi e vivesse nel dialog, l'`import()` del facade tornerebbe statico.
|
|
81
|
+
3. Il facade usa `import type` per i tipi dei componenti e `import()` per i valori: e' quello
|
|
82
|
+
che tiene i dialog fuori dal bundle iniziale.
|
|
83
|
+
4. Dopo una modifica, verificare che gli `import()` sopravvivano alla build:
|
|
84
|
+
`grep -o "import('@arsedizioni[^']*')" dist/ars-utils/fesm2022/*ui.application.mjs`
|
|
85
|
+
|
|
86
|
+
## Differenze rispetto alla versione precedente (22.1.x monolitica)
|
|
87
|
+
|
|
88
|
+
- Nessun barrel radice: `@arsedizioni/ars-utils` esporta solo `ARS_UTILS_VERSION`.
|
|
89
|
+
- `ui` non contiene piu' i dialog: `DialogService` sta in `ui.dialogs`.
|
|
90
|
+
- `ui.application` resta il solo facade e non riesporta piu' componenti: i controlli sono in
|
|
91
|
+
`ui.controls`, i file in `ui.files`, i filtri in `ui.filters`, la navigazione in `ui.navigation`.
|
|
92
|
+
- `SystemUtils.markdownToHtml` non esiste piu': usare `MarkdownUtils.toHtml` da `core.markdown`.
|
|
93
|
+
- `SelectableModel` espone `first` e `selectedAny` al posto di `selectedFirst` e `selectedAll`.
|
|
94
|
+
- `support.ui` si chiama `ui.notifications`, `help` si chiama `ui.help`, `tinymce` si chiama `ui.tinymce`.
|
|
95
|
+
|
|
96
|
+
## Authors
|
|
97
|
+
Fabio Buscaroli, Alberto Doria
|
|
@@ -0,0 +1,564 @@
|
|
|
1
|
+
@use '../styles/ui.scss';
|
|
2
|
+
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Shared helpers
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Clamp text to 3 lines (used by item / tile / stripe titles)
|
|
7
|
+
@mixin line-clamp-3 {
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
text-overflow: ellipsis;
|
|
10
|
+
white-space: initial;
|
|
11
|
+
display: -webkit-box;
|
|
12
|
+
-webkit-line-clamp: 3;
|
|
13
|
+
-webkit-box-orient: vertical;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Shared text styling for the .item-content info labels
|
|
17
|
+
@mixin item-info-label {
|
|
18
|
+
font-size: x-small !important;
|
|
19
|
+
font-weight: 700 !important;
|
|
20
|
+
line-height: 18px;
|
|
21
|
+
text-transform: uppercase !important;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.clipper-logo {
|
|
25
|
+
background-size: 110px 48px;
|
|
26
|
+
width: 110px;
|
|
27
|
+
height: 48px;
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.clipper-selection-button {
|
|
32
|
+
width: 150px;
|
|
33
|
+
font-size: small;
|
|
34
|
+
font-weight: 600;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.clipper-selection-icon-button {
|
|
38
|
+
background-color: var(--ars-color-primary, #00a293);
|
|
39
|
+
color: var(--ars-color-text-low, #e0e2e5);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.clipper-selection-icon-button:hover {
|
|
43
|
+
background-color: var(--ars-color-primary-hi, #12c0ae);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
// State color + background utilities (app-color tokens). name -> fallback
|
|
49
|
+
$state-colors: (
|
|
50
|
+
unread: #f7931c,
|
|
51
|
+
expired: #ff5449,
|
|
52
|
+
expiring: #FFC107,
|
|
53
|
+
closed: #388E3C,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
@each $state, $fallback in $state-colors {
|
|
57
|
+
.#{$state} {
|
|
58
|
+
color: var(--app-color-#{$state}, $fallback) !important;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.#{$state}-bg {
|
|
62
|
+
background-color: var(--app-color-#{$state}, $fallback) !important;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Background-only variant (uses the ars-color design token)
|
|
67
|
+
.error-bg {
|
|
68
|
+
background-color: var(--ars-color-error, #ff5449) !important;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// .popular-bg is an alias of .closed-bg
|
|
72
|
+
.popular-bg {
|
|
73
|
+
background-color: var(--app-color-closed, #388E3C) !important;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.very-popular-bg {
|
|
77
|
+
background-color: #4CAF50;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.item-selected {
|
|
81
|
+
background-color: var(--ars-item-selected-background-color, #ced1d2);
|
|
82
|
+
border-radius: 0 !important;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.item-unread {
|
|
86
|
+
font-weight: bolder;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
.items-group-title {
|
|
91
|
+
color: var(--ars-color-secondary, #4a635f);
|
|
92
|
+
font-size: large;
|
|
93
|
+
font-weight: 700;
|
|
94
|
+
padding-left: 25px;
|
|
95
|
+
padding-bottom: 10px;
|
|
96
|
+
padding-top: 10px;
|
|
97
|
+
|
|
98
|
+
.group-spaced {
|
|
99
|
+
padding: 10px 0 0 0 !important;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
.items-footer {
|
|
105
|
+
padding: 10px;
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
.item {
|
|
111
|
+
border-radius: 12px;
|
|
112
|
+
padding: 10px 10px 10px 0px;
|
|
113
|
+
min-height: 68px !important;
|
|
114
|
+
margin-bottom: 2px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.item:hover {
|
|
118
|
+
background-color: var(--ars-item-hover-background-color, #eaecef);
|
|
119
|
+
|
|
120
|
+
.item-content {
|
|
121
|
+
-webkit-mask-image: linear-gradient(to right, black 85%, transparent 100%);
|
|
122
|
+
mask-image: linear-gradient(to right, black 85%, transparent 100%);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@media screen and (min-width: 0px) and (max-width: 430px) {
|
|
128
|
+
.item:hover {
|
|
129
|
+
background-color: var(--ars-item-hover-background-color);
|
|
130
|
+
|
|
131
|
+
.item-content {
|
|
132
|
+
-webkit-mask-image: linear-gradient(to right, black 55%, transparent 100%);
|
|
133
|
+
mask-image: linear-gradient(to right, black 55%, transparent 100%);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.item-content {
|
|
140
|
+
|
|
141
|
+
.item-info-1,
|
|
142
|
+
.info-1 {
|
|
143
|
+
@include item-info-label;
|
|
144
|
+
color: var(--ars-color-accent, #7894ae);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.item-info-2,
|
|
148
|
+
.info-2 {
|
|
149
|
+
@include item-info-label;
|
|
150
|
+
color: var(--ars-color-accent-low, #456179);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.item-info-3,
|
|
154
|
+
.info-3 {
|
|
155
|
+
@include item-info-label;
|
|
156
|
+
color: var(--ars-color-error, #ff5449);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.item-title,
|
|
160
|
+
.title {
|
|
161
|
+
font-size: small !important;
|
|
162
|
+
line-height: 18px;
|
|
163
|
+
text-decoration: none !important;
|
|
164
|
+
font-weight: normal;
|
|
165
|
+
min-height: unset;
|
|
166
|
+
min-width: unset;
|
|
167
|
+
white-space: initial !important;
|
|
168
|
+
|
|
169
|
+
@supports (-webkit-line-clamp: 3) {
|
|
170
|
+
@include line-clamp-3;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
.details {
|
|
176
|
+
margin-top: 4px;
|
|
177
|
+
font-size: x-small !important;
|
|
178
|
+
font-weight: 700;
|
|
179
|
+
line-height: 15px;
|
|
180
|
+
color: var(--ars-color-accent-low, #456179);
|
|
181
|
+
text-transform: uppercase !important;
|
|
182
|
+
border-left: 4px solid var(--ars-color-accent-low, #456179);
|
|
183
|
+
padding-left: 10px;
|
|
184
|
+
|
|
185
|
+
.links {
|
|
186
|
+
text-transform: none;
|
|
187
|
+
text-decoration: none;
|
|
188
|
+
|
|
189
|
+
a,
|
|
190
|
+
span,
|
|
191
|
+
div {
|
|
192
|
+
margin-right: 8px;
|
|
193
|
+
font-weight: 500 !important;
|
|
194
|
+
font-size: 11px !important;
|
|
195
|
+
color: var(--ars-color-text, #191c1b);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
a {
|
|
199
|
+
cursor: pointer !important;
|
|
200
|
+
color: var(--ars-color-link, #03A9F4);
|
|
201
|
+
font-size: 11px !important;
|
|
202
|
+
font-weight: 500 !important;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
a.link {
|
|
208
|
+
color: var(--ars-color-link, #03A9F4);
|
|
209
|
+
cursor: pointer !important;
|
|
210
|
+
text-decoration: none !important;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
.tile:hover {
|
|
216
|
+
background-color: var(--ars-item-hover-background-color, #eaecef);
|
|
217
|
+
border-radius: 12px;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.tile {
|
|
221
|
+
cursor: pointer !important;
|
|
222
|
+
padding: 10px 13px 10px 13px !important;
|
|
223
|
+
margin-bottom: 20px !important;
|
|
224
|
+
|
|
225
|
+
.body {
|
|
226
|
+
padding: 4px 6px;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.image-mark {
|
|
230
|
+
border-top: 6px solid transparent;
|
|
231
|
+
margin: 0 8px;
|
|
232
|
+
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.image-mark-unread {
|
|
236
|
+
border-top-color: var(--app-color-unread, #f7931c);
|
|
237
|
+
margin: 0 8px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.tile-image,
|
|
241
|
+
.image {
|
|
242
|
+
height: 125px;
|
|
243
|
+
position: relative;
|
|
244
|
+
background-color: transparent;
|
|
245
|
+
overflow: hidden;
|
|
246
|
+
display: flex;
|
|
247
|
+
justify-content: center;
|
|
248
|
+
align-items: center;
|
|
249
|
+
border-radius: 8px;
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
img {
|
|
253
|
+
object-fit: cover;
|
|
254
|
+
width: 100%;
|
|
255
|
+
height: 100%;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
.tile-info-1,
|
|
260
|
+
.info-1 {
|
|
261
|
+
position: absolute;
|
|
262
|
+
left: 0;
|
|
263
|
+
bottom: 0;
|
|
264
|
+
padding: 4px 8px;
|
|
265
|
+
background-color: var(--ars-color-overlay, rgba(255, 255, 255, 0.75));
|
|
266
|
+
color: var(--ars-color-text, #191c1b);
|
|
267
|
+
font-size: small !important;
|
|
268
|
+
font-weight: 700 !important;
|
|
269
|
+
text-transform: uppercase !important;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.tile-info-2,
|
|
273
|
+
.info-2 {
|
|
274
|
+
position: absolute;
|
|
275
|
+
right: 0;
|
|
276
|
+
top: 0;
|
|
277
|
+
padding: 4px 8px;
|
|
278
|
+
background-color: var(--ars-color-overlay, rgba(255, 255, 255, 0.75));
|
|
279
|
+
color: var(--ars-color-accent, #7894ae);
|
|
280
|
+
font-size: small !important;
|
|
281
|
+
font-weight: 700 !important;
|
|
282
|
+
text-transform: uppercase !important;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.buttons {
|
|
286
|
+
position: absolute;
|
|
287
|
+
left: 0;
|
|
288
|
+
top: 0;
|
|
289
|
+
height: 42px;
|
|
290
|
+
|
|
291
|
+
.check,
|
|
292
|
+
.read-button {
|
|
293
|
+
background-color: var(--ars-color-primary, #00a293) !important;
|
|
294
|
+
color: var(--ars-color-text-low, #e0e2e5) !important;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.unread-button {
|
|
298
|
+
background-color: var(--app-color-unread, #f7931c) !important;
|
|
299
|
+
color: var(--ars-color-text-low, #e0e2e5) !important;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.check-selected {
|
|
303
|
+
background-color: var(--ars-color-primary-hi, #12c0ae) !important;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.tile-date,
|
|
309
|
+
.date {
|
|
310
|
+
padding: 8px 0 6px 0 !important;
|
|
311
|
+
font-weight: 700 !important;
|
|
312
|
+
text-transform: uppercase !important;
|
|
313
|
+
|
|
314
|
+
.date-day {
|
|
315
|
+
color: var(--ars-color-accent, #7894ae);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.date-divider {
|
|
319
|
+
width: 1px;
|
|
320
|
+
margin: 0 8px;
|
|
321
|
+
border-left: 1px solid var(--ars-color-divider, #757d87);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.tile-time,
|
|
326
|
+
.time {
|
|
327
|
+
font-size: small !important;
|
|
328
|
+
font-weight: 700 !important;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
.tile-title,
|
|
332
|
+
.title {
|
|
333
|
+
text-decoration: none !important;
|
|
334
|
+
font-size: 16px !important;
|
|
335
|
+
font-weight: 600;
|
|
336
|
+
min-height: 50px !important; // 2 lines;
|
|
337
|
+
max-height: 70px !important; // 3 lines;
|
|
338
|
+
min-width: 100%;
|
|
339
|
+
white-space: initial !important;
|
|
340
|
+
overflow: hidden !important;
|
|
341
|
+
|
|
342
|
+
@supports (-webkit-line-clamp: 3) {
|
|
343
|
+
@include line-clamp-3;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
.stripe:hover {
|
|
352
|
+
background-color: var(--ars-item-hover-background-color, #eaecef);
|
|
353
|
+
border-radius: 12px;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
.stripe {
|
|
357
|
+
cursor: pointer !important;
|
|
358
|
+
padding: 5px 10px 5px 10px !important;
|
|
359
|
+
margin-bottom: 10px !important;
|
|
360
|
+
|
|
361
|
+
.body {
|
|
362
|
+
padding: 5px 15px !important;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.image-mark {
|
|
366
|
+
min-height: 100% !important;
|
|
367
|
+
border-left: 6px solid transparent;
|
|
368
|
+
margin: 8px 0;
|
|
369
|
+
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.image-mark-unread {
|
|
373
|
+
min-height: 100% !important;
|
|
374
|
+
border-left-color: var(--ars-color-error, #ff5449) !important;
|
|
375
|
+
margin: 8px 0;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.stripe-image,
|
|
379
|
+
.image {
|
|
380
|
+
width: 150px !important;
|
|
381
|
+
height: 70px !important;
|
|
382
|
+
position: relative;
|
|
383
|
+
background-color: transparent;
|
|
384
|
+
overflow: hidden;
|
|
385
|
+
display: flex;
|
|
386
|
+
justify-content: center;
|
|
387
|
+
align-items: center;
|
|
388
|
+
border-radius: 8px;
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
img {
|
|
392
|
+
object-fit: cover;
|
|
393
|
+
width: 100%;
|
|
394
|
+
height: 100%;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.stripe-info-1,
|
|
399
|
+
.info-1 {
|
|
400
|
+
margin-top: 8px;
|
|
401
|
+
padding: 4px 8px !important;
|
|
402
|
+
background-color: var(--ars-color-overlay, rgba(255, 255, 255, 0.75)) !important;
|
|
403
|
+
color: var(--ars-color-text, #191c1b) !important;
|
|
404
|
+
font-size: small !important;
|
|
405
|
+
font-weight: 700 !important;
|
|
406
|
+
text-transform: uppercase !important;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
.stripe-info-2,
|
|
410
|
+
.info-2 {
|
|
411
|
+
margin-top: 8px;
|
|
412
|
+
padding: 4px 8px !important;
|
|
413
|
+
background-color: var(--ars-color-overlay, rgba(255, 255, 255, 0.75)) !important;
|
|
414
|
+
color: var(--ars-color-accent, #7894ae) !important;
|
|
415
|
+
font-size: small !important;
|
|
416
|
+
font-weight: 700 !important;
|
|
417
|
+
text-transform: uppercase !important;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
.buttons {
|
|
421
|
+
position: absolute;
|
|
422
|
+
left: 0;
|
|
423
|
+
top: 0;
|
|
424
|
+
height: 42px;
|
|
425
|
+
|
|
426
|
+
.check,
|
|
427
|
+
.read {
|
|
428
|
+
background-color: var(--ars-color-primary, #00a293);
|
|
429
|
+
color: var(--ars-color-text-low, #e0e2e5);
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.check-selected {
|
|
433
|
+
background-color: var(--ars-color-primary-hi, #12c0ae);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
|
|
438
|
+
.stripe-date,
|
|
439
|
+
.date {
|
|
440
|
+
padding: 0 !important;
|
|
441
|
+
font-weight: 700 !important;
|
|
442
|
+
text-transform: uppercase !important;
|
|
443
|
+
|
|
444
|
+
.date-day {
|
|
445
|
+
color: var(--ars-color-accent, #7894ae);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.date-divider {
|
|
449
|
+
width: 1px;
|
|
450
|
+
margin: 0 8px;
|
|
451
|
+
border-left: 1px solid var(--ars-color-divider, #757d87);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
.stripe-time,
|
|
456
|
+
.time {
|
|
457
|
+
font-size: small !important;
|
|
458
|
+
font-weight: 700 !important;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.stripe-title,
|
|
462
|
+
.title {
|
|
463
|
+
text-decoration: none !important;
|
|
464
|
+
font-size: 16px !important;
|
|
465
|
+
font-weight: 600;
|
|
466
|
+
min-width: 100%;
|
|
467
|
+
white-space: initial !important;
|
|
468
|
+
overflow: hidden !important;
|
|
469
|
+
|
|
470
|
+
@supports (-webkit-line-clamp: 3) {
|
|
471
|
+
@include line-clamp-3;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
.badge,
|
|
479
|
+
.badge-red {
|
|
480
|
+
margin-left: 10px;
|
|
481
|
+
padding: 1px 4px;
|
|
482
|
+
border-radius: 3px;
|
|
483
|
+
font-size: x-small;
|
|
484
|
+
font-weight: 600;
|
|
485
|
+
text-align: center;
|
|
486
|
+
background-color: #427505;
|
|
487
|
+
text-transform: uppercase;
|
|
488
|
+
white-space: nowrap;
|
|
489
|
+
color: #e0e2e5;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
.badge-red {
|
|
493
|
+
background-color: #a80710;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
.busy-backdrop {
|
|
497
|
+
background-color: rgba(0, 0, 0, 0.42) !important;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
.legend-container {
|
|
502
|
+
display: flex;
|
|
503
|
+
flex-direction: row;
|
|
504
|
+
align-items: center;
|
|
505
|
+
font-size: x-small;
|
|
506
|
+
text-transform: uppercase;
|
|
507
|
+
font-weight: 500;
|
|
508
|
+
margin-left: 10px;
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
.legend {
|
|
512
|
+
display: inline-block;
|
|
513
|
+
height: 8px;
|
|
514
|
+
width: 8px;
|
|
515
|
+
margin-right: 4px;
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
.legend:not(:first-of-type) {
|
|
519
|
+
margin-left: 10px;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
@media screen and (max-width: 431px) {
|
|
525
|
+
.legend-container {
|
|
526
|
+
font-size: 9px !important;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
.special-date,
|
|
531
|
+
.special-date-expired,
|
|
532
|
+
.special-date-expiring {
|
|
533
|
+
border: 2px var(--ars-color-accent, #7894ae) solid !important;
|
|
534
|
+
border-radius: 100% !important;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
.special-date-expired {
|
|
539
|
+
border: 2px var(--ars-color-error, #ff5449) solid !important;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
.special-date-expiring {
|
|
543
|
+
border: 2px var(--ars-color-warning, #FFC107) solid !important;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/*
|
|
547
|
+
* Free text search highlighted item
|
|
548
|
+
*/
|
|
549
|
+
.word-hit-chunk,
|
|
550
|
+
.word-hit {
|
|
551
|
+
display: inline-block;
|
|
552
|
+
font-size: inherit;
|
|
553
|
+
background-color: var(--ars-word-hit-background-color, #FFEB3B);
|
|
554
|
+
color: var(--ars-word-hit-color, #191c1b);
|
|
555
|
+
padding: 0 4px;
|
|
556
|
+
margin: 0 4px;
|
|
557
|
+
border-radius: 4px;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
.word-hit-chunk {
|
|
561
|
+
background-color: var(--ars-word-chunk-hit-background-color, #8AFF59);
|
|
562
|
+
color: var(--ars-word-hit-chunk-color, #191c1b);
|
|
563
|
+
|
|
564
|
+
}
|
|
@@ -3781,7 +3781,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImpor
|
|
|
3781
3781
|
// directly or referenced as types where needed.
|
|
3782
3782
|
|
|
3783
3783
|
/*
|
|
3784
|
-
* Public API Surface of ars-utils
|
|
3784
|
+
* Public API Surface of @arsedizioni/ars-utils/clipper.common
|
|
3785
3785
|
*/
|
|
3786
3786
|
|
|
3787
3787
|
/**
|