web-mojo 2.4.15 → 2.5.0
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/CHANGELOG.md +1 -0
- package/dist/admin-models.es.js +1 -1
- package/dist/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.css +264 -0
- package/dist/admin.es.js +1 -1
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.es.js +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +1 -1
- package/dist/chunks/{ChatView-BGxrltgS.js → ChatView-BPJGwNB-.js} +2 -2
- package/dist/chunks/{ChatView-BGxrltgS.js.map → ChatView-BPJGwNB-.js.map} +1 -1
- package/dist/chunks/{ChatView-DDuK43lX.js → ChatView-CmYaZjsO.js} +2 -2
- package/dist/chunks/{ChatView-DDuK43lX.js.map → ChatView-CmYaZjsO.js.map} +1 -1
- package/dist/chunks/{ListView-DnxrGclm.js → ListView-CdKbQdEF.js} +2 -2
- package/dist/chunks/ListView-CdKbQdEF.js.map +1 -0
- package/dist/chunks/{ListView-KWvdL4OZ.js → ListView-DbLe2wcm.js} +2 -2
- package/dist/chunks/ListView-DbLe2wcm.js.map +1 -0
- package/dist/chunks/{Passkeys-CAkLWzxp.js → Passkeys-1N9xo02Z.js} +2 -2
- package/dist/chunks/{Passkeys-CAkLWzxp.js.map → Passkeys-1N9xo02Z.js.map} +1 -1
- package/dist/chunks/{Passkeys-Dmq0wWpl.js → Passkeys-BDQrfTmM.js} +2 -2
- package/dist/chunks/{Passkeys-Dmq0wWpl.js.map → Passkeys-BDQrfTmM.js.map} +1 -1
- package/dist/chunks/{UserProfileView-DnP_6G6d.js → UserProfileView-C1N4iFlc.js} +2 -2
- package/dist/chunks/{UserProfileView-DnP_6G6d.js.map → UserProfileView-C1N4iFlc.js.map} +1 -1
- package/dist/chunks/{UserProfileView-DrsRZ-bF.js → UserProfileView-a-V2S8Ni.js} +2 -2
- package/dist/chunks/{UserProfileView-DrsRZ-bF.js.map → UserProfileView-a-V2S8Ni.js.map} +1 -1
- package/dist/chunks/{admin-models-bi4jz-nJ.js → admin-models-D5jSlGb1.js} +2 -2
- package/dist/chunks/{admin-models-bi4jz-nJ.js.map → admin-models-D5jSlGb1.js.map} +1 -1
- package/dist/chunks/{index-CgBfI613.js → index-C413ywKj.js} +2 -2
- package/dist/chunks/{index-CgBfI613.js.map → index-C413ywKj.js.map} +1 -1
- package/dist/chunks/{index-Cq2rbYiD.js → index-CaVoKADD.js} +2 -2
- package/dist/chunks/{index-Cq2rbYiD.js.map → index-CaVoKADD.js.map} +1 -1
- package/dist/chunks/version-CF2xCjqJ.js +2 -0
- package/dist/chunks/version-CF2xCjqJ.js.map +1 -0
- package/dist/chunks/version-Cndfrmgr.js +2 -0
- package/dist/chunks/version-Cndfrmgr.js.map +1 -0
- package/dist/css/web-mojo.css +1 -1
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.es.js +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.es.js +1 -1
- package/dist/timeline.cjs.js +1 -1
- package/dist/timeline.es.js +1 -1
- package/dist/user-profile.cjs.js +1 -1
- package/dist/user-profile.es.js +1 -1
- package/dist/web-mojo.lite.iife.js +2 -0
- package/dist/web-mojo.lite.iife.js.map +1 -1
- package/dist/web-mojo.lite.iife.min.js +18 -18
- package/dist/web-mojo.lite.iife.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunks/ListView-DnxrGclm.js.map +0 -1
- package/dist/chunks/ListView-KWvdL4OZ.js.map +0 -1
- package/dist/chunks/version-BrCGCscn.js +0 -2
- package/dist/chunks/version-BrCGCscn.js.map +0 -1
- package/dist/chunks/version-DrH-7xNr.js +0 -2
- package/dist/chunks/version-DrH-7xNr.js.map +0 -1
package/dist/admin.css
CHANGED
|
@@ -3762,3 +3762,267 @@
|
|
|
3762
3762
|
margin-bottom: 1.5rem;
|
|
3763
3763
|
}
|
|
3764
3764
|
.group-hierarchy-tree-rows { line-height: 1.7; }
|
|
3765
|
+
|
|
3766
|
+
|
|
3767
|
+
/* ========================================================================
|
|
3768
|
+
Incident-domain list items (.ili)
|
|
3769
|
+
========================================================================
|
|
3770
|
+
Reusable ListView card chassis used by EventListItem / TicketListItem /
|
|
3771
|
+
IncidentListItem (in src/extensions/admin/incidents/). All three render
|
|
3772
|
+
into the same `.ili-card` shell so the visual language stays consistent
|
|
3773
|
+
across embedded sub-lists in IncidentView (Events / Tickets / Related)
|
|
3774
|
+
and any future surface that lists these models. Cards layer on top of
|
|
3775
|
+
ListView's `rowStripe` (severity edge) and `clickAction` (whole-card
|
|
3776
|
+
click-to-view); this section owns only the inside-the-row design
|
|
3777
|
+
language — chip pills, priority dots, meta row, id slot.
|
|
3778
|
+
*/
|
|
3779
|
+
/* The list-view-item is a flex child of .list-items (column flex). Without
|
|
3780
|
+
min-width: 0 the child won't shrink below its intrinsic content width —
|
|
3781
|
+
long titles, status pills, and meta lines escape narrow panels (DetailView
|
|
3782
|
+
sections, modal bodies). Constrain at the item level. */
|
|
3783
|
+
.event-list-item,
|
|
3784
|
+
.ticket-list-item,
|
|
3785
|
+
.incident-list-item {
|
|
3786
|
+
display: block;
|
|
3787
|
+
width: 100%;
|
|
3788
|
+
min-width: 0;
|
|
3789
|
+
max-width: 100%;
|
|
3790
|
+
}
|
|
3791
|
+
|
|
3792
|
+
.ili-card {
|
|
3793
|
+
display: flex;
|
|
3794
|
+
flex-direction: column;
|
|
3795
|
+
gap: 4px;
|
|
3796
|
+
padding: 10px 14px;
|
|
3797
|
+
border-bottom: 1px solid var(--bs-border-color-translucent);
|
|
3798
|
+
transition: background 0.1s;
|
|
3799
|
+
min-width: 0;
|
|
3800
|
+
max-width: 100%;
|
|
3801
|
+
}
|
|
3802
|
+
.list-view-item:last-child .ili-card { border-bottom: none; }
|
|
3803
|
+
.list-view-item.clickable .ili-card { cursor: pointer; }
|
|
3804
|
+
.list-view-item.clickable:hover .ili-card { background: var(--bs-tertiary-bg); }
|
|
3805
|
+
|
|
3806
|
+
.ili-row {
|
|
3807
|
+
display: flex;
|
|
3808
|
+
align-items: center;
|
|
3809
|
+
gap: 8px;
|
|
3810
|
+
min-width: 0;
|
|
3811
|
+
max-width: 100%;
|
|
3812
|
+
}
|
|
3813
|
+
.ili-title {
|
|
3814
|
+
flex: 1 1 0;
|
|
3815
|
+
min-width: 0;
|
|
3816
|
+
font-weight: 500;
|
|
3817
|
+
color: var(--bs-body-color);
|
|
3818
|
+
/* Wrap long titles instead of truncating — matches the DetailView
|
|
3819
|
+
header pattern (`word-break: break-word`). Long error strings like
|
|
3820
|
+
stack-trace lines stay readable across two/three lines. */
|
|
3821
|
+
word-break: break-word;
|
|
3822
|
+
overflow-wrap: anywhere;
|
|
3823
|
+
}
|
|
3824
|
+
.ili-eyebrow {
|
|
3825
|
+
flex: 0 0 auto;
|
|
3826
|
+
font-size: 0.78rem;
|
|
3827
|
+
color: var(--bs-secondary-color);
|
|
3828
|
+
white-space: nowrap;
|
|
3829
|
+
}
|
|
3830
|
+
|
|
3831
|
+
.ili-meta {
|
|
3832
|
+
color: var(--bs-secondary-color);
|
|
3833
|
+
font-size: 0.78rem;
|
|
3834
|
+
}
|
|
3835
|
+
.ili-meta > * { white-space: nowrap; }
|
|
3836
|
+
/* Free-text slot in the meta row (category line, hostname). Truncates
|
|
3837
|
+
with ellipsis so the right-aligned #id stays put. Single-line in the
|
|
3838
|
+
meta row keeps the card height predictable. */
|
|
3839
|
+
.ili-meta-text {
|
|
3840
|
+
flex: 1 1 0;
|
|
3841
|
+
min-width: 0;
|
|
3842
|
+
overflow: hidden;
|
|
3843
|
+
text-overflow: ellipsis;
|
|
3844
|
+
white-space: nowrap;
|
|
3845
|
+
}
|
|
3846
|
+
.ili-meta-dim { color: var(--bs-tertiary-color); }
|
|
3847
|
+
|
|
3848
|
+
.ili-id {
|
|
3849
|
+
margin-left: auto;
|
|
3850
|
+
font-family: var(--bs-font-monospace);
|
|
3851
|
+
color: var(--bs-tertiary-color);
|
|
3852
|
+
}
|
|
3853
|
+
|
|
3854
|
+
/* Status / category chip — toned background + matching text colour.
|
|
3855
|
+
`flex-shrink: 0` keeps the pill from being squeezed when its sibling
|
|
3856
|
+
title is long. */
|
|
3857
|
+
.ili-chip {
|
|
3858
|
+
display: inline-flex;
|
|
3859
|
+
align-items: center;
|
|
3860
|
+
padding: 1px 8px;
|
|
3861
|
+
border-radius: 10px;
|
|
3862
|
+
font-size: 0.7rem;
|
|
3863
|
+
font-weight: 500;
|
|
3864
|
+
text-transform: lowercase;
|
|
3865
|
+
letter-spacing: 0.01em;
|
|
3866
|
+
flex-shrink: 0;
|
|
3867
|
+
}
|
|
3868
|
+
.ili-chip-info { background: rgba(var(--bs-info-rgb), 0.10); color: var(--bs-info); }
|
|
3869
|
+
.ili-chip-success { background: rgba(var(--bs-success-rgb), 0.10); color: var(--bs-success); }
|
|
3870
|
+
.ili-chip-warning { background: rgba(var(--bs-warning-rgb), 0.12); color: var(--bs-warning); }
|
|
3871
|
+
.ili-chip-danger { background: rgba(var(--bs-danger-rgb), 0.10); color: var(--bs-danger); }
|
|
3872
|
+
.ili-chip-muted { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
|
|
3873
|
+
.ili-chip-cat { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
|
|
3874
|
+
|
|
3875
|
+
/* Priority chip — boxy, monospace number */
|
|
3876
|
+
.ili-pri {
|
|
3877
|
+
display: inline-flex;
|
|
3878
|
+
align-items: center;
|
|
3879
|
+
justify-content: center;
|
|
3880
|
+
min-width: 22px;
|
|
3881
|
+
height: 18px;
|
|
3882
|
+
padding: 0 6px;
|
|
3883
|
+
border-radius: 4px;
|
|
3884
|
+
font-size: 0.72rem;
|
|
3885
|
+
font-weight: 500;
|
|
3886
|
+
font-family: var(--bs-font-monospace);
|
|
3887
|
+
}
|
|
3888
|
+
.ili-pri-hi { background: rgba(var(--bs-danger-rgb), 0.10); color: var(--bs-danger); }
|
|
3889
|
+
.ili-pri-md { background: rgba(var(--bs-warning-rgb), 0.12); color: var(--bs-warning); }
|
|
3890
|
+
.ili-pri-lo { color: var(--bs-secondary-color); }
|
|
3891
|
+
|
|
3892
|
+
/* Category dot — 6px circle preceding the category label in the meta row */
|
|
3893
|
+
.ili-dot {
|
|
3894
|
+
display: inline-block;
|
|
3895
|
+
width: 6px;
|
|
3896
|
+
height: 6px;
|
|
3897
|
+
border-radius: 50%;
|
|
3898
|
+
margin-right: 4px;
|
|
3899
|
+
vertical-align: middle;
|
|
3900
|
+
}
|
|
3901
|
+
.ili-dot-primary { background: var(--bs-primary); }
|
|
3902
|
+
.ili-dot-success { background: var(--bs-success); }
|
|
3903
|
+
.ili-dot-warning { background: var(--bs-warning); }
|
|
3904
|
+
.ili-dot-danger { background: var(--bs-danger); }
|
|
3905
|
+
.ili-dot-muted { background: var(--bs-secondary-color); }
|
|
3906
|
+
|
|
3907
|
+
|
|
3908
|
+
/* ═══════════════════════════════════════════════════════════
|
|
3909
|
+
TicketView — Lite Modal
|
|
3910
|
+
Compact, clickable-field header. Clicking pills / fields
|
|
3911
|
+
triggers inline edits; description is read-only preview.
|
|
3912
|
+
═══════════════════════════════════════════════════════════ */
|
|
3913
|
+
|
|
3914
|
+
.ticket-view .tv-body { padding: 14px 8px 4px; }
|
|
3915
|
+
|
|
3916
|
+
.ticket-view .tv-header {
|
|
3917
|
+
padding-bottom: 10px;
|
|
3918
|
+
border-bottom: 1px solid var(--bs-border-color-translucent);
|
|
3919
|
+
}
|
|
3920
|
+
.ticket-view .tv-title-row { display: flex; align-items: flex-start; gap: 6px; }
|
|
3921
|
+
.ticket-view .tv-title-block { flex: 1; min-width: 0; }
|
|
3922
|
+
.ticket-view .tv-id-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
|
|
3923
|
+
.ticket-view .tv-id { font-family: var(--bs-font-monospace); font-size: 0.72rem; color: var(--bs-secondary-color); }
|
|
3924
|
+
.ticket-view .tv-time { font-size: 0.7rem; color: var(--bs-secondary-color); display: inline-flex; align-items: center; gap: 3px; }
|
|
3925
|
+
.ticket-view .tv-time i { font-size: 0.64rem; }
|
|
3926
|
+
|
|
3927
|
+
.ticket-view .tv-pill {
|
|
3928
|
+
display: inline-flex; align-items: center; gap: 3px;
|
|
3929
|
+
padding: 1px 8px; border-radius: 10px;
|
|
3930
|
+
font-size: 0.68rem; font-weight: 500;
|
|
3931
|
+
cursor: pointer; transition: filter 0.12s;
|
|
3932
|
+
}
|
|
3933
|
+
.ticket-view .tv-pill:hover { filter: brightness(0.92); }
|
|
3934
|
+
.ticket-view .tv-pill i { font-size: 0.52rem; }
|
|
3935
|
+
.ticket-view .tv-pill-new { background: rgba(var(--bs-info-rgb), 0.1); color: var(--bs-info); }
|
|
3936
|
+
.ticket-view .tv-pill-open { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
|
|
3937
|
+
.ticket-view .tv-pill-prog { background: rgba(var(--bs-warning-rgb), 0.1); color: var(--bs-warning); }
|
|
3938
|
+
.ticket-view .tv-pill-resolved { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
|
|
3939
|
+
.ticket-view .tv-pill-closed { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
|
|
3940
|
+
|
|
3941
|
+
.ticket-view .tv-title { font-size: 1rem; font-weight: 600; color: var(--bs-emphasis-color); line-height: 1.35; margin-bottom: 6px; }
|
|
3942
|
+
|
|
3943
|
+
.ticket-view .tv-fields { display: inline-flex; align-items: center; gap: 2px; flex-wrap: wrap; }
|
|
3944
|
+
.ticket-view .tv-field {
|
|
3945
|
+
display: inline-flex; align-items: center; gap: 4px;
|
|
3946
|
+
font-size: 0.74rem; color: var(--bs-secondary-color);
|
|
3947
|
+
padding: 2px 7px; border-radius: 5px;
|
|
3948
|
+
cursor: pointer; transition: all 0.12s;
|
|
3949
|
+
border: 1px solid transparent;
|
|
3950
|
+
}
|
|
3951
|
+
.ticket-view .tv-field:hover { background: var(--bs-tertiary-bg); border-color: var(--bs-border-color); color: var(--bs-body-color); }
|
|
3952
|
+
.ticket-view .tv-field i.tv-field-icon { font-size: 0.7rem; }
|
|
3953
|
+
.ticket-view .tv-field .caret { font-size: 0.55rem; opacity: 0; transition: opacity 0.12s; margin-left: -1px; }
|
|
3954
|
+
.ticket-view .tv-field:hover .caret { opacity: 0.6; }
|
|
3955
|
+
.ticket-view .tv-sep { color: var(--bs-secondary-color); font-size: 0.6rem; margin: 0 1px; user-select: none; }
|
|
3956
|
+
|
|
3957
|
+
.ticket-view .tv-btns { display: flex; gap: 2px; align-items: center; flex-shrink: 0; }
|
|
3958
|
+
.ticket-view .tv-btn {
|
|
3959
|
+
width: 28px; height: 28px;
|
|
3960
|
+
display: flex; align-items: center; justify-content: center;
|
|
3961
|
+
border: none; background: none;
|
|
3962
|
+
color: var(--bs-secondary-color);
|
|
3963
|
+
border-radius: 6px; cursor: pointer;
|
|
3964
|
+
font-size: 0.9rem; transition: all 0.12s;
|
|
3965
|
+
}
|
|
3966
|
+
.ticket-view .tv-btn:hover { background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
|
|
3967
|
+
|
|
3968
|
+
/* Linked incident — compact one-liner replaces the old yellow-bordered card */
|
|
3969
|
+
.ticket-view .tv-linked {
|
|
3970
|
+
display: flex; align-items: center; gap: 8px;
|
|
3971
|
+
padding: 7px 10px;
|
|
3972
|
+
margin-bottom: 12px;
|
|
3973
|
+
background: var(--bs-tertiary-bg);
|
|
3974
|
+
border-radius: 6px;
|
|
3975
|
+
font-size: 0.75rem;
|
|
3976
|
+
color: var(--bs-secondary-color);
|
|
3977
|
+
cursor: pointer;
|
|
3978
|
+
transition: background 0.12s;
|
|
3979
|
+
}
|
|
3980
|
+
.ticket-view .tv-linked:hover { background: var(--bs-secondary-bg); }
|
|
3981
|
+
.ticket-view .tv-linked .tv-linked-icon { color: var(--bs-warning); font-size: 0.78rem; flex-shrink: 0; }
|
|
3982
|
+
.ticket-view .tv-linked .ltitle { color: var(--bs-body-color); font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
3983
|
+
.ticket-view .tv-linked .lpill { font-size: 0.62rem; padding: 0 5px; border-radius: 3px; background: rgba(var(--bs-warning-rgb), 0.1); color: var(--bs-warning); font-weight: 500; flex-shrink: 0; }
|
|
3984
|
+
.ticket-view .tv-linked .ltrail { color: var(--bs-secondary-color); font-size: 0.7rem; flex-shrink: 0; }
|
|
3985
|
+
|
|
3986
|
+
/* Description — read-only preview, headings scaled to body */
|
|
3987
|
+
.ticket-view .tv-desc { position: relative; margin-bottom: 12px; }
|
|
3988
|
+
.ticket-view .tv-desc-edit {
|
|
3989
|
+
position: absolute; top: -2px; right: 0;
|
|
3990
|
+
font-size: 0.72rem; color: var(--bs-secondary-color);
|
|
3991
|
+
background: none; border: none; padding: 2px 6px;
|
|
3992
|
+
border-radius: 4px; cursor: pointer;
|
|
3993
|
+
opacity: 0; transition: opacity 0.12s, background 0.12s;
|
|
3994
|
+
}
|
|
3995
|
+
.ticket-view .tv-desc:hover .tv-desc-edit { opacity: 0.7; }
|
|
3996
|
+
.ticket-view .tv-desc-edit:hover { opacity: 1; background: var(--bs-tertiary-bg); color: var(--bs-body-color); }
|
|
3997
|
+
.ticket-view .tv-desc-empty { font-size: 0.78rem; color: var(--bs-secondary-color); font-style: italic; }
|
|
3998
|
+
.ticket-view .tv-desc-empty.tv-desc-add { cursor: pointer; font-style: normal; }
|
|
3999
|
+
.ticket-view .tv-desc-empty.tv-desc-add:hover { color: var(--bs-primary); }
|
|
4000
|
+
|
|
4001
|
+
.ticket-view .tv-desc-body { font-size: 0.85rem; line-height: 1.6; color: var(--bs-body-color); }
|
|
4002
|
+
.ticket-view .tv-desc-body p { margin-bottom: 8px; }
|
|
4003
|
+
.ticket-view .tv-desc-body p:last-child { margin-bottom: 0; }
|
|
4004
|
+
.ticket-view .tv-desc-body h1,
|
|
4005
|
+
.ticket-view .tv-desc-body h2,
|
|
4006
|
+
.ticket-view .tv-desc-body h3,
|
|
4007
|
+
.ticket-view .tv-desc-body h4,
|
|
4008
|
+
.ticket-view .tv-desc-body h5,
|
|
4009
|
+
.ticket-view .tv-desc-body h6 {
|
|
4010
|
+
font-size: 0.9rem; font-weight: 600; line-height: 1.35;
|
|
4011
|
+
margin: 14px 0 4px; color: var(--bs-emphasis-color);
|
|
4012
|
+
}
|
|
4013
|
+
.ticket-view .tv-desc-body h1 { font-size: 0.95rem; }
|
|
4014
|
+
.ticket-view .tv-desc-body > h1:first-child,
|
|
4015
|
+
.ticket-view .tv-desc-body > h2:first-child,
|
|
4016
|
+
.ticket-view .tv-desc-body > h3:first-child,
|
|
4017
|
+
.ticket-view .tv-desc-body > h4:first-child { margin-top: 0; }
|
|
4018
|
+
.ticket-view .tv-desc-body hr { margin: 12px 0; opacity: 0.5; }
|
|
4019
|
+
.ticket-view .tv-desc-body pre { background: var(--bs-tertiary-bg); border-radius: 6px; padding: 10px 14px; font-size: 0.8rem; overflow-x: auto; }
|
|
4020
|
+
.ticket-view .tv-desc-body code { font-size: 0.85em; padding: 1px 5px; background: var(--bs-tertiary-bg); border-radius: 4px; }
|
|
4021
|
+
.ticket-view .tv-desc-body pre code { padding: 0; background: none; }
|
|
4022
|
+
.ticket-view .tv-desc-body ul, .ticket-view .tv-desc-body ol { padding-left: 20px; margin-bottom: 8px; }
|
|
4023
|
+
.ticket-view .tv-desc-body blockquote { margin: 6px 0; padding: 4px 12px; border-left: 3px solid var(--bs-border-color); color: var(--bs-secondary-color); }
|
|
4024
|
+
.ticket-view .tv-desc-body table { width: 100%; border-collapse: collapse; font-size: 0.82rem; margin: 8px 0; }
|
|
4025
|
+
.ticket-view .tv-desc-body th, .ticket-view .tv-desc-body td { padding: 5px 8px; border: 1px solid var(--bs-border-color); text-align: left; }
|
|
4026
|
+
.ticket-view .tv-desc-body th { background: var(--bs-tertiary-bg); font-weight: 600; }
|
|
4027
|
+
|
|
4028
|
+
|