feat:extended BZO information
This commit is contained in:
parent
b142b93666
commit
1f87e00339
3 changed files with 1480 additions and 245 deletions
|
|
@ -125,6 +125,24 @@
|
|||
color: var(--color-text-secondary, #6b7280);
|
||||
}
|
||||
|
||||
.documentsSection {
|
||||
margin-top: 1.5rem;
|
||||
padding-top: 1.5rem;
|
||||
border-top: 2px solid var(--color-primary, #3b82f6);
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
margin-left: -1.5rem;
|
||||
margin-right: -1.5rem;
|
||||
}
|
||||
|
||||
.documentsSectionTitle {
|
||||
margin: 0 0 1rem 0;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.infoGrid {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
@ -241,6 +259,670 @@
|
|||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.documentsList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.documentLink {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
padding: 1rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border: 2px solid var(--color-primary, #3b82f6);
|
||||
border-radius: 8px;
|
||||
cursor: pointer;
|
||||
text-align: left;
|
||||
transition: all 0.2s ease;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.documentLink:hover {
|
||||
background-color: var(--color-primary-light, #eff6ff);
|
||||
border-color: var(--color-primary-dark, #2563eb);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 4px 6px rgba(59, 130, 246, 0.2);
|
||||
}
|
||||
|
||||
.documentLink:active {
|
||||
transform: translateY(0);
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.documentLabel {
|
||||
font-weight: 600;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
font-size: 1rem;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.documentLink:hover .documentLabel {
|
||||
color: var(--color-primary-dark, #2563eb);
|
||||
}
|
||||
|
||||
.documentType {
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* BZO Information Styles */
|
||||
.bzoButtonContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoButton {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.75rem 1rem;
|
||||
background-color: var(--color-primary, #3b82f6);
|
||||
color: white;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
transition: all 0.2s ease;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.bzoButton:hover:not(:disabled) {
|
||||
background-color: var(--color-primary-dark, #2563eb);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 2px 4px rgba(59, 130, 246, 0.3);
|
||||
}
|
||||
|
||||
.bzoButton:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.spinner {
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.errorMessage {
|
||||
color: var(--color-error, #ef4444);
|
||||
font-size: 0.875rem;
|
||||
padding: 0.5rem;
|
||||
background-color: var(--color-error-light, #fee2e2);
|
||||
border-radius: 4px;
|
||||
border: 1px solid var(--color-error, #ef4444);
|
||||
}
|
||||
|
||||
.bzoSection {
|
||||
margin-top: 1.5rem;
|
||||
padding-top: 1.5rem;
|
||||
border-top: 2px solid var(--color-primary, #3b82f6);
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
margin-left: -1.5rem;
|
||||
margin-right: -1.5rem;
|
||||
}
|
||||
|
||||
.bzoHeader {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.bzoSectionTitle {
|
||||
margin: 0;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.toggleButton {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
font-size: 1rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.2s;
|
||||
}
|
||||
|
||||
.toggleButton:hover {
|
||||
background-color: var(--color-hover, #f3f4f6);
|
||||
}
|
||||
|
||||
.bzoContent {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.5rem;
|
||||
}
|
||||
|
||||
.bzoSubSection {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.bzoSubTitle {
|
||||
margin: 0;
|
||||
font-size: 1rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoSummary {
|
||||
padding: 1rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border-left: 4px solid var(--color-primary, #3b82f6);
|
||||
border-radius: 4px;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
/* Markdown Styles for BZO Content */
|
||||
.bzoMarkdown {
|
||||
line-height: 1.6;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoMarkdownH1,
|
||||
.bzoMarkdownH2,
|
||||
.bzoMarkdownH3,
|
||||
.bzoMarkdownH4,
|
||||
.bzoMarkdownH5,
|
||||
.bzoMarkdownH6 {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.bzoMarkdownH1 {
|
||||
font-size: 1.5rem;
|
||||
border-bottom: 2px solid var(--color-border, #e5e7eb);
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownH2 {
|
||||
font-size: 1.25rem;
|
||||
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
||||
padding-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownH3 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownH4 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownH5 {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownH6 {
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownP {
|
||||
margin: 0.75rem 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.bzoMarkdownP:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.bzoMarkdownP:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.bzoMarkdownUl,
|
||||
.bzoMarkdownOl {
|
||||
margin: 0.75rem 0;
|
||||
padding-left: 1.5rem;
|
||||
}
|
||||
|
||||
.bzoMarkdownLi {
|
||||
margin: 0.5rem 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.bzoMarkdownUl .bzoMarkdownLi {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.bzoMarkdownOl .bzoMarkdownLi {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
.bzoMarkdownTableWrapper {
|
||||
overflow-x: auto;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.bzoMarkdownTable {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.bzoMarkdownThead {
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
}
|
||||
|
||||
.bzoMarkdownTh {
|
||||
padding: 0.75rem;
|
||||
text-align: left;
|
||||
font-weight: 600;
|
||||
border-bottom: 2px solid var(--color-border, #e5e7eb);
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoMarkdownTd {
|
||||
padding: 0.75rem;
|
||||
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoMarkdownTr:last-child .bzoMarkdownTd {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.bzoMarkdownTr:hover {
|
||||
background-color: var(--color-hover, #f3f4f6);
|
||||
}
|
||||
|
||||
.bzoMarkdownCodeInline {
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
padding: 0.2rem 0.4rem;
|
||||
border-radius: 3px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.9em;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoMarkdownPre {
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
padding: 1rem;
|
||||
border-radius: 4px;
|
||||
overflow-x: auto;
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
.bzoMarkdownCodeBlock {
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.9em;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoMarkdownBlockquote {
|
||||
margin: 1rem 0;
|
||||
padding: 0.75rem 1rem;
|
||||
border-left: 4px solid var(--color-primary, #3b82f6);
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
border-radius: 4px;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.bzoMarkdownStrong {
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoMarkdownEm {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.bzoMarkdownLink {
|
||||
color: var(--color-primary, #3b82f6);
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: color 0.2s;
|
||||
}
|
||||
|
||||
.bzoMarkdownLink:hover {
|
||||
color: var(--color-primary-dark, #2563eb);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.bzoMarkdownHr {
|
||||
margin: 1.5rem 0;
|
||||
border: none;
|
||||
border-top: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoInfoGrid {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoInfoItem {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoLabel {
|
||||
font-weight: 500;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
.bzoValue {
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoZonesList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.bzoZoneCard {
|
||||
padding: 1rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
border-radius: 6px;
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.bzoZoneCard:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.bzoZoneHeader {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoZoneCode {
|
||||
font-weight: 700;
|
||||
font-size: 1.1rem;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
}
|
||||
|
||||
.bzoZoneName {
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoZoneDetails {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoZoneDetailItem {
|
||||
display: flex;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoDetailLabel {
|
||||
font-weight: 500;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
min-width: 140px;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.bzoDetailValue {
|
||||
color: var(--color-text, #111827);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.bzoRulesList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.bzoRuleCard {
|
||||
padding: 1rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
border-left: 4px solid var(--color-primary, #3b82f6);
|
||||
border-radius: 6px;
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.bzoRuleCard:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.bzoRuleHeader {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoRuleType {
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
text-transform: capitalize;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.bzoConfidence {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.bzoRuleValue {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoRuleNumeric {
|
||||
font-size: 1.1rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
}
|
||||
|
||||
.bzoRuleText {
|
||||
color: var(--color-text, #111827);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.bzoRuleSnippet {
|
||||
margin-top: 0.5rem;
|
||||
padding: 0.5rem;
|
||||
background-color: var(--color-bg-secondary, #f9fafb);
|
||||
border-radius: 4px;
|
||||
font-style: italic;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
|
||||
.bzoRuleZone,
|
||||
.bzoRulePage {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
margin-top: 0.25rem;
|
||||
}
|
||||
|
||||
.bzoRuleMeta {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
margin-top: 0.5rem;
|
||||
padding-top: 0.5rem;
|
||||
border-top: 1px solid var(--color-border, #e5e7eb);
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
}
|
||||
|
||||
.bzoArticlesList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.bzoArticleCard {
|
||||
padding: 1rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
border-radius: 6px;
|
||||
transition: box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.bzoArticleCard:hover {
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.bzoArticleHeader {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
padding-bottom: 0.5rem;
|
||||
border-bottom: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoArticleLabel {
|
||||
font-weight: 700;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.bzoArticleTitle {
|
||||
font-weight: 600;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoArticleText {
|
||||
margin-bottom: 0.75rem;
|
||||
line-height: 1.6;
|
||||
color: var(--color-text, #111827);
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.bzoArticleMeta {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
padding-top: 0.5rem;
|
||||
border-top: 1px solid var(--color-border, #e5e7eb);
|
||||
}
|
||||
|
||||
.bzoDocumentsList {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
.bzoDocumentItem {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0.75rem;
|
||||
background-color: var(--color-bg, #ffffff);
|
||||
border: 1px solid var(--color-border, #e5e7eb);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.bzoDocumentLabel {
|
||||
font-weight: 500;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoDocumentType {
|
||||
font-size: 0.75rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
.bzoErrors,
|
||||
.bzoWarnings {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.bzoErrorTitle {
|
||||
margin: 0 0 0.5rem 0;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-error, #ef4444);
|
||||
}
|
||||
|
||||
.bzoWarningTitle {
|
||||
margin: 0 0 0.5rem 0;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
color: #f59e0b;
|
||||
}
|
||||
|
||||
.bzoErrorList,
|
||||
.bzoWarningList {
|
||||
margin: 0;
|
||||
padding-left: 1.5rem;
|
||||
color: var(--color-text, #111827);
|
||||
}
|
||||
|
||||
.bzoErrorList li {
|
||||
color: var(--color-error, #ef4444);
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.bzoWarningList li {
|
||||
color: #f59e0b;
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.bzoStats {
|
||||
display: flex;
|
||||
gap: 2rem;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.bzoStatItem {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
|
||||
.bzoStatLabel {
|
||||
font-size: 0.875rem;
|
||||
color: var(--color-text-secondary, #6b7280);
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.bzoStatValue {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 700;
|
||||
color: var(--color-primary, #3b82f6);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.panel {
|
||||
width: 100vw;
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -78,6 +78,19 @@ export interface ParcelSearchResponse {
|
|||
};
|
||||
};
|
||||
}>;
|
||||
gemeinde?: {
|
||||
id: string;
|
||||
label: string;
|
||||
plz: string;
|
||||
};
|
||||
documents?: Array<{
|
||||
id: string;
|
||||
label: string;
|
||||
dokumentTyp: string;
|
||||
dokumentReferenz: string;
|
||||
quelle: string;
|
||||
mimeType: string;
|
||||
}>;
|
||||
}
|
||||
|
||||
// Command response interface
|
||||
|
|
|
|||
Loading…
Reference in a new issue