@propbinder/mobile-design 0.0.1 → 0.0.2
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/ng-package.json +7 -0
- package/package.json +12 -39
- package/src/animations/page-transitions.ts +86 -0
- package/src/assets/fonts/Brockmann-Bold.otf +0 -0
- package/src/assets/fonts/Brockmann-BoldItalic.otf +0 -0
- package/src/assets/fonts/Brockmann-Medium.otf +0 -0
- package/src/assets/fonts/Brockmann-MediumItalic.otf +0 -0
- package/src/assets/fonts/Brockmann-Regular.otf +0 -0
- package/src/assets/fonts/Brockmann-RegularItalic.otf +0 -0
- package/src/assets/fonts/Brockmann-SemiBold.otf +0 -0
- package/src/assets/fonts/Brockmann-SemiBoldItalic.otf +0 -0
- package/src/assets/fonts/Brockmann_desktop_license.pdf +0 -0
- package/src/assets/fonts/brockmann-medium-webfont.woff2 +0 -0
- package/src/assets/fonts/brockmann-regular-webfont.woff2 +0 -0
- package/src/assets/fonts/brockmann-semibold-webfont.woff2 +0 -0
- package/src/components/action-list-item/ds-mobile-action-list-item.ts +83 -0
- package/src/components/action-list-item/index.ts +2 -0
- package/src/components/app-layout/ds-mobile-app-layout.css +343 -0
- package/src/components/app-layout/ds-mobile-app-layout.ts +271 -0
- package/src/components/app-layout/index.ts +2 -0
- package/src/components/avatar-with-badge/ds-avatar-with-badge.ts +130 -0
- package/src/components/avatar-with-badge/index.ts +2 -0
- package/src/components/bottom-sheet/ds-mobile-actions-bottom-sheet.ts +273 -0
- package/src/components/bottom-sheet/ds-mobile-bottom-sheet.css +110 -0
- package/src/components/bottom-sheet/ds-mobile-bottom-sheet.service.ts +167 -0
- package/src/components/bottom-sheet/ds-mobile-post-create-bottom-sheet.ts +656 -0
- package/src/components/bottom-sheet/index.ts +3 -0
- package/src/components/comment/ds-mobile-comment.ts +516 -0
- package/src/components/comment/index.ts +2 -0
- package/src/components/contact-list-item/ds-mobile-contact-list-item.ts +182 -0
- package/src/components/contact-list-item/index.ts +2 -0
- package/src/components/content/ds-mobile-content.ts +158 -0
- package/src/components/content/index.ts +2 -0
- package/src/components/ds-mobile-tabs.css +372 -0
- package/src/components/ds-mobile-tabs.ts +217 -0
- package/src/components/file-attachment/ds-mobile-file-attachment.ts +164 -0
- package/src/components/file-attachment/index.ts +2 -0
- package/src/components/handbook-detail-modal/ds-mobile-handbook-detail-modal.service.ts +98 -0
- package/src/components/handbook-detail-modal/ds-mobile-handbook-detail-modal.ts +514 -0
- package/src/components/handbook-detail-modal/index.ts +3 -0
- package/src/components/handbook-folder/ds-mobile-handbook-folder-mini.ts +130 -0
- package/src/components/handbook-folder/ds-mobile-handbook-folder.ts +444 -0
- package/src/components/handbook-folder/index.ts +4 -0
- package/src/components/header-content/ds-mobile-header-content.ts +211 -0
- package/src/components/header-content/index.ts +2 -0
- package/src/components/index.ts +45 -0
- package/src/components/inline-photo/ds-mobile-inline-photo.ts +269 -0
- package/src/components/inline-photo/index.ts +1 -0
- package/src/components/interactive-list-item-inquiry/ds-mobile-interactive-list-item-inquiry.css +60 -0
- package/src/components/interactive-list-item-inquiry/ds-mobile-interactive-list-item-inquiry.ts +280 -0
- package/src/components/interactive-list-item-inquiry/index.ts +2 -0
- package/src/components/interactive-list-item-message/ds-mobile-interactive-list-item-message.ts +197 -0
- package/src/components/interactive-list-item-message/index.ts +2 -0
- package/src/components/interactive-list-item-post/ds-mobile-interactive-list-item-post.css +70 -0
- package/src/components/interactive-list-item-post/ds-mobile-interactive-list-item-post.ts +594 -0
- package/src/components/interactive-list-item-post/ds-mobile-post-pdf-attachment.ts +124 -0
- package/src/components/interactive-list-item-post/index.ts +13 -0
- package/src/components/lightbox/ds-mobile-lightbox-footer.ts +331 -0
- package/src/components/lightbox/ds-mobile-lightbox-header.ts +173 -0
- package/src/components/lightbox/ds-mobile-lightbox-image.ts +464 -0
- package/src/components/lightbox/ds-mobile-lightbox-pdf.css +375 -0
- package/src/components/lightbox/ds-mobile-lightbox-pdf.ts +374 -0
- package/src/components/lightbox/ds-mobile-lightbox.css +587 -0
- package/src/components/lightbox/ds-mobile-lightbox.service.ts +293 -0
- package/src/components/lightbox/ds-mobile-lightbox.ts +529 -0
- package/src/components/lightbox/index.ts +22 -0
- package/src/components/list-item/ds-mobile-list-item.ts +499 -0
- package/src/components/list-item/index.ts +2 -0
- package/src/components/list-item-static/ds-mobile-list-item-static.ts +133 -0
- package/src/components/list-item-static/index.ts +2 -0
- package/src/components/logo/ds-logo.ts +85 -0
- package/src/components/logo/index.ts +2 -0
- package/src/components/modal/ds-mobile-modal.css +163 -0
- package/src/components/modal/ds-mobile-modal.service.ts +329 -0
- package/src/components/modal/index.ts +8 -0
- package/src/components/page-details/ds-mobile-page-details.css +285 -0
- package/src/components/page-details/ds-mobile-page-details.ts +128 -0
- package/src/components/page-details/index.ts +2 -0
- package/src/components/page-main/ds-mobile-page-main.css +346 -0
- package/src/components/page-main/ds-mobile-page-main.ts +331 -0
- package/src/components/page-main/index.ts +2 -0
- package/src/components/post-card/ds-mobile-post-card.ts +685 -0
- package/src/components/post-card/ds-mobile-post-pdf-attachment.ts +124 -0
- package/src/components/post-card/index.ts +11 -0
- package/src/components/post-composer/ds-mobile-post-composer.ts +140 -0
- package/src/components/post-composer/index.ts +2 -0
- package/src/components/post-detail-modal/ds-mobile-post-detail-modal.service.ts +104 -0
- package/src/components/post-detail-modal/ds-mobile-post-detail-modal.ts +1273 -0
- package/src/components/post-detail-modal/index.ts +9 -0
- package/src/components/shared/directives/index.ts +2 -0
- package/src/components/shared/directives/long-press.directive.ts +208 -0
- package/src/components/shared/index.ts +3 -0
- package/src/components/shared/mobile-common.css +94 -0
- package/src/components/shared/mobile-page-base.css +315 -0
- package/src/components/shared/mobile-page-base.ts +70 -0
- package/src/components/swiper/ds-mobile-swiper.ts +123 -0
- package/src/components/swiper/index.ts +2 -0
- package/src/components/tab-bar/ds-mobile-tab-bar.ts +132 -0
- package/src/components/tab-bar/index.ts +2 -0
- package/src/components/tabs/ds-mobile-tabs.css +405 -0
- package/src/components/tabs/ds-mobile-tabs.ts +204 -0
- package/src/components/tabs/index.ts +2 -0
- package/src/pages/community.page.ts +768 -0
- package/src/pages/handbook.page.ts +298 -0
- package/src/pages/home.page.ts +192 -0
- package/src/pages/index.ts +9 -0
- package/src/pages/inquiries.example.ts +212 -0
- package/src/pages/inquiry-detail.example.css +434 -0
- package/src/pages/inquiry-detail.example.ts +416 -0
- package/src/pages/mobile-tabs-example.component.ts +146 -0
- package/src/pages/post-create.page.ts +311 -0
- package/src/pages/post-detail.page.ts +295 -0
- package/src/pages/whitelabel-demo.page.ts +548 -0
- package/src/public-api.ts +5 -0
- package/src/services/user.service.ts +35 -0
- package/src/services/whitelabel.service.ts +171 -0
- package/src/styles/ionic.css +673 -0
- package/tsconfig.lib.json +17 -0
- package/tsconfig.lib.prod.json +9 -0
- package/tsconfig.spec.json +13 -0
- package/fesm2022/propbinder-mobile-design.mjs +0 -8294
- package/fesm2022/propbinder-mobile-design.mjs.map +0 -1
- package/index.d.ts +0 -2860
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { DsMobilePageMainComponent } from '../components/page-main';
|
|
3
|
+
import {
|
|
4
|
+
DsMobileContentComponent,
|
|
5
|
+
DsMobileContentSectionComponent,
|
|
6
|
+
SectionHeaderComponent,
|
|
7
|
+
ContentRowComponent
|
|
8
|
+
} from '../components/content';
|
|
9
|
+
import { DsMobileHandbookFolderComponent } from '../components/handbook-folder';
|
|
10
|
+
import { UserService } from '../services/user.service';
|
|
11
|
+
import { HandbookItem } from '../components/handbook-detail-modal/ds-mobile-handbook-detail-modal';
|
|
12
|
+
|
|
13
|
+
@Component({
|
|
14
|
+
selector: 'app-mobile-handbook-page',
|
|
15
|
+
standalone: true,
|
|
16
|
+
imports: [
|
|
17
|
+
DsMobilePageMainComponent,
|
|
18
|
+
DsMobileContentComponent,
|
|
19
|
+
DsMobileContentSectionComponent,
|
|
20
|
+
SectionHeaderComponent,
|
|
21
|
+
ContentRowComponent,
|
|
22
|
+
DsMobileHandbookFolderComponent
|
|
23
|
+
],
|
|
24
|
+
styles: [`
|
|
25
|
+
.folders-grid {
|
|
26
|
+
display: grid;
|
|
27
|
+
grid-template-columns: repeat(2, 1fr);
|
|
28
|
+
gap: 20px;
|
|
29
|
+
justify-items: center;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* 3 columns at tablet breakpoint (md: 768px) and above
|
|
33
|
+
Content area at this breakpoint is ~864px max */
|
|
34
|
+
@media (min-width: 768px) {
|
|
35
|
+
.folders-grid {
|
|
36
|
+
grid-template-columns: repeat(3, 1fr);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
ds-mobile-handbook-folder {
|
|
41
|
+
width: 100%;
|
|
42
|
+
}
|
|
43
|
+
`],
|
|
44
|
+
template: `
|
|
45
|
+
<ds-mobile-page-main
|
|
46
|
+
title="Håndbog"
|
|
47
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
48
|
+
[avatarType]="userService.avatarType()"
|
|
49
|
+
(refresh)="handleRefresh($event)">
|
|
50
|
+
|
|
51
|
+
<ds-mobile-content>
|
|
52
|
+
<ds-mobile-content-section>
|
|
53
|
+
<div class="folders-grid">
|
|
54
|
+
<ds-mobile-handbook-folder
|
|
55
|
+
[variant]="'pink'"
|
|
56
|
+
[iconName]="'remixLightbulbLine'"
|
|
57
|
+
[itemCount]="8"
|
|
58
|
+
[label]="'Forsyninger'"
|
|
59
|
+
[items]="utilitiesItems">
|
|
60
|
+
</ds-mobile-handbook-folder>
|
|
61
|
+
|
|
62
|
+
<ds-mobile-handbook-folder
|
|
63
|
+
[variant]="'success'"
|
|
64
|
+
[iconName]="'remixKey2Line'"
|
|
65
|
+
[itemCount]="4"
|
|
66
|
+
[label]="'Sikkerhedsudstyr'"
|
|
67
|
+
[items]="sikkerhedsudstyrItems">
|
|
68
|
+
</ds-mobile-handbook-folder>
|
|
69
|
+
|
|
70
|
+
<ds-mobile-handbook-folder
|
|
71
|
+
[variant]="'blue'"
|
|
72
|
+
[iconName]="'remixFileList3Line'"
|
|
73
|
+
[itemCount]="8"
|
|
74
|
+
[label]="'Servicekontrakter'"
|
|
75
|
+
[items]="serviceContractsItems">
|
|
76
|
+
</ds-mobile-handbook-folder>
|
|
77
|
+
|
|
78
|
+
<ds-mobile-handbook-folder
|
|
79
|
+
[variant]="'warning'"
|
|
80
|
+
[iconName]="'remixToolsLine'"
|
|
81
|
+
[itemCount]="5"
|
|
82
|
+
[label]="'Udstyr'"
|
|
83
|
+
[items]="equipmentItems">
|
|
84
|
+
</ds-mobile-handbook-folder>
|
|
85
|
+
</div>
|
|
86
|
+
</ds-mobile-content-section>
|
|
87
|
+
</ds-mobile-content>
|
|
88
|
+
</ds-mobile-page-main>
|
|
89
|
+
`
|
|
90
|
+
})
|
|
91
|
+
export class MobileHandbookPageComponent {
|
|
92
|
+
// Utilities folder data
|
|
93
|
+
utilitiesItems: HandbookItem[] = [
|
|
94
|
+
{
|
|
95
|
+
title: 'El',
|
|
96
|
+
description: 'Hovedeltavle placeret i kælderrum B-12. Nødafbryderknap er ved hovedindgangen. Alle kredsløb er mærket.',
|
|
97
|
+
contacts: [
|
|
98
|
+
{ name: 'ElektroTek ApS', initials: 'E', contactPerson: 'Lars Nielsen', phoneNumber: '+45 23 45 67 89' }
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: 'Elektrisk diagram',
|
|
103
|
+
description: 'Komplet diagram over bygningens elektriske installation med alle kredsløb og afbrydere.',
|
|
104
|
+
attachments: [
|
|
105
|
+
{ name: 'Elektrisk_Diagram.pdf', type: 'pdf' }
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Vandforsyning',
|
|
110
|
+
description: 'Hovedvandhane er placeret i kælderens tekniske rum. Individuelle lejlighedsafspærringer er i gangpanelerne. Vandtryk overvåges automatisk.',
|
|
111
|
+
contacts: [
|
|
112
|
+
{ name: 'VVS Hansen', initials: 'V', contactPerson: 'Peter Hansen', phoneNumber: '+45 34 56 78 90' }
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
title: 'Varmesystem',
|
|
117
|
+
description: 'Fjernvarmetilslutning i kælder. Termostater i hver enhed kan justeres individuelt. Systemet vedligeholdes kvartalsvis af certificerede teknikere.',
|
|
118
|
+
contacts: [
|
|
119
|
+
{ name: 'Varme Service A/S', initials: 'V', contactPerson: 'Maria Jensen', phoneNumber: '+45 45 67 89 01' }
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
title: 'Varmeanlæg dokumentation',
|
|
124
|
+
description: 'Teknisk dokumentation og vedligeholdelseshistorik for bygningens varmesystem.',
|
|
125
|
+
attachments: [
|
|
126
|
+
{ name: 'Varmeplan.pdf', type: 'pdf' },
|
|
127
|
+
{ name: 'Vedligeholdelseslog.pdf', type: 'pdf' }
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Internet & TV',
|
|
132
|
+
description: 'Fiberforbindelse i bygningen. Distributionspanel er i stueetageteknisk rum. Hver lejlighed har ethernet-stik i stue og soveværelser.',
|
|
133
|
+
contacts: [
|
|
134
|
+
{ name: 'TeleCom Solutions', initials: 'T', contactPerson: 'Anders Petersen', phoneNumber: '+45 56 78 90 12' }
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
title: 'Netværksopsætning guide',
|
|
139
|
+
attachments: [
|
|
140
|
+
{ name: 'Netværksopsætning.pdf', type: 'pdf' }
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
title: 'Affaldshåndtering',
|
|
145
|
+
description: 'Affaldssorteringsstation placeret i gården. Afhentninger: Dagrenovation (man/tor), Genbrug (ons), Organisk (tir/fre). Storskrald kræver booking.',
|
|
146
|
+
attachments: [
|
|
147
|
+
{ name: 'Affaldsretningslinjer.pdf', type: 'pdf' }
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
// Safety Equipment folder data
|
|
153
|
+
sikkerhedsudstyrItems: HandbookItem[] = [
|
|
154
|
+
{
|
|
155
|
+
title: 'Fælles områder og sikkerhed',
|
|
156
|
+
description: 'Trappeopgange med nødbelysning og brandsikre døre. Postkasser placeret i indgangspartiet. Hold altid flugtveje fri.',
|
|
157
|
+
images: [
|
|
158
|
+
'/Assets/Dummy-photos/staircase.jpg',
|
|
159
|
+
'/Assets/Dummy-photos/mailboxes.jpg'
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
title: 'Hjertestarter (AED)',
|
|
164
|
+
description: 'Automatisk hjertestarter placeret i stueetagen ved hovedindgangen. Tilgængelig 24/7. Ingen særlig uddannelse kræves - enheden guider dig gennem processen.',
|
|
165
|
+
contacts: [
|
|
166
|
+
{ name: 'MediTech Service', initials: 'M', contactPerson: 'John Mortensen', phoneNumber: '+45 12 34 56 78' }
|
|
167
|
+
]
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
title: 'Brandslukningsudstyr',
|
|
171
|
+
description: 'Brandslukkere placeret på hver etage. Eftersyn udføres årligt. Brandalarm aktiveres automatisk ved røg.',
|
|
172
|
+
attachments: [
|
|
173
|
+
{ name: 'Brandplan.pdf', type: 'pdf' }
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
title: 'Alarmsystem',
|
|
178
|
+
description: 'Adgangskontrol med kodesystem ved alle indgange. Kode ændres kvartalsvis. Ved indbrud kontakt straks politiet og ejendomsadministrationen.',
|
|
179
|
+
contacts: [
|
|
180
|
+
{ name: 'SecureHome A/S', initials: 'S', contactPerson: 'Henrik Johansen', phoneNumber: '+45 98 76 54 32' }
|
|
181
|
+
]
|
|
182
|
+
}
|
|
183
|
+
];
|
|
184
|
+
|
|
185
|
+
// Service Contracts folder data
|
|
186
|
+
serviceContractsItems: HandbookItem[] = [
|
|
187
|
+
{
|
|
188
|
+
title: 'Rengøringsservice',
|
|
189
|
+
description: 'Ugentlig rengøring af fællesarealer inklusiv indgangshal, trapper og elevatorer. Hovedrengøring kvartalsvis. Service leveres mandag-fredag, 6:00-9:00.',
|
|
190
|
+
contacts: [
|
|
191
|
+
{ name: 'CleanCo Denmark', initials: 'C', contactPerson: 'Anne Kristensen', phoneNumber: '+45 89 01 23 45' }
|
|
192
|
+
]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
title: 'Rengøringskontrakt',
|
|
196
|
+
attachments: [
|
|
197
|
+
{ name: 'Rengøringskontrakt_2024.pdf', type: 'pdf' },
|
|
198
|
+
{ name: 'Rengøringsplan.pdf', type: 'pdf' }
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
title: 'Udendørs arealer',
|
|
203
|
+
description: 'Fælles grønne områder med bede, siddepladser og terrasse. Beboere må frit benytte området. Respektér planterne og hold området pænt.',
|
|
204
|
+
images: [
|
|
205
|
+
'/Assets/Dummy-photos/park.jpg',
|
|
206
|
+
'/Assets/Dummy-photos/yard.jpg'
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
title: 'Havevedligeholdelse',
|
|
211
|
+
description: 'Professionel havepleje inklusiv plæneklipning, hækklipning og blomsterbedvedligeholdelse. Vintersnefjerning inkluderet.',
|
|
212
|
+
contacts: [
|
|
213
|
+
{ name: 'Green Gardens ApS', initials: 'G', contactPerson: 'Michael Olsen', phoneNumber: '+45 90 12 34 56' }
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
title: 'Haveserviceaftale',
|
|
218
|
+
attachments: [
|
|
219
|
+
{ name: 'Haveserviceaftale.pdf', type: 'pdf' }
|
|
220
|
+
]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
title: 'Vinduespolering',
|
|
224
|
+
description: 'Professionel vinduespoleringsservice for alle udvendige vinduer to gange årligt - forår og efterår.',
|
|
225
|
+
contacts: [
|
|
226
|
+
{ name: 'Crystal Clear Windows', initials: 'C', contactPerson: 'Lene Schmidt', phoneNumber: '+45 01 23 45 67' }
|
|
227
|
+
]
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
title: 'Sikkerhedsservice',
|
|
231
|
+
description: '24/7 overvågningsservice med alarmrespons. Direkte forbindelse til politi og brandvæsen.',
|
|
232
|
+
contacts: [
|
|
233
|
+
{ name: 'SecureHome A/S', initials: 'S', contactPerson: 'Henrik Johansen', phoneNumber: '+45 12 34 56 78' }
|
|
234
|
+
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
title: 'Sikkerhedskontrakt og procedurer',
|
|
238
|
+
attachments: [
|
|
239
|
+
{ name: 'Sikkerhedskontrakt.pdf', type: 'pdf' },
|
|
240
|
+
{ name: 'Nødprocedurer.pdf', type: 'pdf' }
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
];
|
|
244
|
+
|
|
245
|
+
// Equipment folder data
|
|
246
|
+
equipmentItems: HandbookItem[] = [
|
|
247
|
+
{
|
|
248
|
+
title: 'Balkon udsigt',
|
|
249
|
+
description: 'Eksempel på udsigt fra øverste etagers balkoner. Flere lejligheder har privat altan med fantastisk udsyn.',
|
|
250
|
+
images: [
|
|
251
|
+
'/Assets/Dummy-photos/balcony-view.jpg'
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
title: 'Vaskerum',
|
|
256
|
+
description: 'Fælles vaskerum med 4 vaskemaskiner og 4 tørretumblere. Bookingsystem tilgængeligt via beboerportal. Maskiner accepterer betalingskort. Åbningstider: 7:00-22:00.',
|
|
257
|
+
contacts: [
|
|
258
|
+
{ name: 'WashTech Service', initials: 'W', contactPerson: 'Kirsten Berg', phoneNumber: '+45 34 56 78 90' }
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
title: 'Vaskeri instruktioner',
|
|
263
|
+
attachments: [
|
|
264
|
+
{ name: 'Vaskeinstruktioner.pdf', type: 'pdf' },
|
|
265
|
+
{ name: 'Bookingguide.pdf', type: 'pdf' }
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
title: 'Vedligeholdelse og reparationer',
|
|
270
|
+
description: 'Ved behov for reparationer eller vedligeholdelse i din lejlighed, kontakt vores hausmeister. Akutte problemer håndteres samme dag.',
|
|
271
|
+
images: [
|
|
272
|
+
'/Assets/Dummy-photos/handyman.jpg'
|
|
273
|
+
],
|
|
274
|
+
contacts: [
|
|
275
|
+
{ name: 'Hausmeister Service', initials: 'H', contactPerson: 'Erik Sørensen', phoneNumber: '+45 56 78 90 12' }
|
|
276
|
+
]
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
title: 'Værktøjsudlån',
|
|
280
|
+
description: 'Basis håndværktøj tilgængeligt til beboerbrug. Kvittér for værktøj ved receptionen. Returnér inden for 48 timer.',
|
|
281
|
+
attachments: [
|
|
282
|
+
{ name: 'Værktøjsliste.pdf', type: 'pdf' },
|
|
283
|
+
{ name: 'Udlånspolitik.pdf', type: 'pdf' }
|
|
284
|
+
]
|
|
285
|
+
}
|
|
286
|
+
];
|
|
287
|
+
|
|
288
|
+
constructor(public userService: UserService) {}
|
|
289
|
+
|
|
290
|
+
handleRefresh(event: any): void {
|
|
291
|
+
console.log('Pull-to-refresh triggered');
|
|
292
|
+
setTimeout(() => {
|
|
293
|
+
console.log('Refresh complete');
|
|
294
|
+
event.target.complete();
|
|
295
|
+
}, 1000);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { NavController } from '@ionic/angular/standalone';
|
|
3
|
+
import { DsIconComponent } from '@propbinder/design-system';
|
|
4
|
+
import { DsMobilePageMainComponent } from '../components/page-main';
|
|
5
|
+
import {
|
|
6
|
+
DsMobileHeaderContentComponent,
|
|
7
|
+
DsMobileHeaderContentTileComponent,
|
|
8
|
+
TileIconComponent,
|
|
9
|
+
TileContentComponent,
|
|
10
|
+
TileLabelComponent,
|
|
11
|
+
TileValueComponent
|
|
12
|
+
} from '../components/header-content';
|
|
13
|
+
import {
|
|
14
|
+
DsMobileContentComponent,
|
|
15
|
+
DsMobileContentSectionComponent,
|
|
16
|
+
SectionHeaderComponent,
|
|
17
|
+
ContentRowComponent
|
|
18
|
+
} from '../components/content';
|
|
19
|
+
import { UserService } from '../services/user.service';
|
|
20
|
+
|
|
21
|
+
@Component({
|
|
22
|
+
selector: 'app-home-page',
|
|
23
|
+
standalone: true,
|
|
24
|
+
imports: [
|
|
25
|
+
DsIconComponent,
|
|
26
|
+
DsMobilePageMainComponent,
|
|
27
|
+
DsMobileHeaderContentComponent,
|
|
28
|
+
DsMobileHeaderContentTileComponent,
|
|
29
|
+
TileIconComponent,
|
|
30
|
+
TileContentComponent,
|
|
31
|
+
TileLabelComponent,
|
|
32
|
+
TileValueComponent,
|
|
33
|
+
DsMobileContentComponent,
|
|
34
|
+
DsMobileContentSectionComponent,
|
|
35
|
+
SectionHeaderComponent,
|
|
36
|
+
ContentRowComponent
|
|
37
|
+
],
|
|
38
|
+
styles: [`
|
|
39
|
+
/* Placeholder grey boxes for content */
|
|
40
|
+
.grey-box {
|
|
41
|
+
height: 120px;
|
|
42
|
+
border-radius: 12px;
|
|
43
|
+
background: var(--color-background-neutral-tertiary);
|
|
44
|
+
flex: 1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.grey-box.clickable {
|
|
48
|
+
background: var(--color-background-brand);
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
transition: transform var(--transition-duration-fast) var(--ease-smooth);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.grey-box.clickable:active {
|
|
54
|
+
transform: scale(0.98);
|
|
55
|
+
}
|
|
56
|
+
`],
|
|
57
|
+
template: `
|
|
58
|
+
<ds-mobile-page-main
|
|
59
|
+
title="Hjem"
|
|
60
|
+
headerTitle="Velkommen, Lars"
|
|
61
|
+
headerSubtitle="Din lejebolig på et øjeblik."
|
|
62
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
63
|
+
[avatarType]="userService.avatarType()"
|
|
64
|
+
(refresh)="handleRefresh($event)">
|
|
65
|
+
|
|
66
|
+
<!-- Property info tiles in header -->
|
|
67
|
+
<ds-mobile-header-content header-content>
|
|
68
|
+
<ds-mobile-header-content-tile>
|
|
69
|
+
<tile-icon>
|
|
70
|
+
<ds-icon name="remixHome4Line" size="20px" color="#DFE4FF" />
|
|
71
|
+
</tile-icon>
|
|
72
|
+
<tile-content>
|
|
73
|
+
<tile-label>Areal</tile-label>
|
|
74
|
+
<tile-value>120 m²</tile-value>
|
|
75
|
+
</tile-content>
|
|
76
|
+
</ds-mobile-header-content-tile>
|
|
77
|
+
|
|
78
|
+
<ds-mobile-header-content-tile>
|
|
79
|
+
<tile-icon>
|
|
80
|
+
<ds-icon name="remixCollageLine" size="20px" color="#DFE4FF" />
|
|
81
|
+
</tile-icon>
|
|
82
|
+
<tile-content>
|
|
83
|
+
<tile-label>Værelser</tile-label>
|
|
84
|
+
<tile-value>3 værelser</tile-value>
|
|
85
|
+
</tile-content>
|
|
86
|
+
</ds-mobile-header-content-tile>
|
|
87
|
+
</ds-mobile-header-content>
|
|
88
|
+
|
|
89
|
+
<!-- Main page content -->
|
|
90
|
+
<ds-mobile-content>
|
|
91
|
+
<ds-mobile-content-section>
|
|
92
|
+
<section-header width="third"></section-header>
|
|
93
|
+
<content-row>
|
|
94
|
+
<div class="grey-box"></div>
|
|
95
|
+
<div class="grey-box"></div>
|
|
96
|
+
</content-row>
|
|
97
|
+
<content-row>
|
|
98
|
+
<div class="grey-box"></div>
|
|
99
|
+
</content-row>
|
|
100
|
+
</ds-mobile-content-section>
|
|
101
|
+
|
|
102
|
+
<!-- Purple box - clickable with brand background -->
|
|
103
|
+
<content-row>
|
|
104
|
+
<div class="grey-box clickable" (click)="navigateToDetail()"></div>
|
|
105
|
+
</content-row>
|
|
106
|
+
|
|
107
|
+
<ds-mobile-content-section>
|
|
108
|
+
<section-header width="half"></section-header>
|
|
109
|
+
<content-row>
|
|
110
|
+
<div class="grey-box"></div>
|
|
111
|
+
<div class="grey-box"></div>
|
|
112
|
+
<div class="grey-box"></div>
|
|
113
|
+
</content-row>
|
|
114
|
+
<content-row>
|
|
115
|
+
<div class="grey-box"></div>
|
|
116
|
+
<div class="grey-box"></div>
|
|
117
|
+
</content-row>
|
|
118
|
+
</ds-mobile-content-section>
|
|
119
|
+
|
|
120
|
+
<ds-mobile-content-section>
|
|
121
|
+
<section-header width="third"></section-header>
|
|
122
|
+
<content-row>
|
|
123
|
+
<div class="grey-box"></div>
|
|
124
|
+
</content-row>
|
|
125
|
+
</ds-mobile-content-section>
|
|
126
|
+
|
|
127
|
+
<ds-mobile-content-section>
|
|
128
|
+
<section-header width="half"></section-header>
|
|
129
|
+
<content-row>
|
|
130
|
+
<div class="grey-box"></div>
|
|
131
|
+
<div class="grey-box"></div>
|
|
132
|
+
</content-row>
|
|
133
|
+
<content-row>
|
|
134
|
+
<div class="grey-box"></div>
|
|
135
|
+
<div class="grey-box"></div>
|
|
136
|
+
<div class="grey-box"></div>
|
|
137
|
+
</content-row>
|
|
138
|
+
</ds-mobile-content-section>
|
|
139
|
+
|
|
140
|
+
<ds-mobile-content-section>
|
|
141
|
+
<section-header width="third"></section-header>
|
|
142
|
+
<content-row>
|
|
143
|
+
<div class="grey-box"></div>
|
|
144
|
+
<div class="grey-box"></div>
|
|
145
|
+
</content-row>
|
|
146
|
+
</ds-mobile-content-section>
|
|
147
|
+
|
|
148
|
+
<ds-mobile-content-section>
|
|
149
|
+
<section-header width="half"></section-header>
|
|
150
|
+
<content-row>
|
|
151
|
+
<div class="grey-box"></div>
|
|
152
|
+
</content-row>
|
|
153
|
+
<content-row>
|
|
154
|
+
<div class="grey-box"></div>
|
|
155
|
+
<div class="grey-box"></div>
|
|
156
|
+
</content-row>
|
|
157
|
+
</ds-mobile-content-section>
|
|
158
|
+
|
|
159
|
+
<ds-mobile-content-section>
|
|
160
|
+
<section-header width="third"></section-header>
|
|
161
|
+
<content-row>
|
|
162
|
+
<div class="grey-box"></div>
|
|
163
|
+
<div class="grey-box"></div>
|
|
164
|
+
<div class="grey-box"></div>
|
|
165
|
+
</content-row>
|
|
166
|
+
</ds-mobile-content-section>
|
|
167
|
+
</ds-mobile-content>
|
|
168
|
+
</ds-mobile-page-main>
|
|
169
|
+
`
|
|
170
|
+
})
|
|
171
|
+
export class MobileHomePageComponent {
|
|
172
|
+
constructor(
|
|
173
|
+
private navCtrl: NavController,
|
|
174
|
+
public userService: UserService
|
|
175
|
+
) {
|
|
176
|
+
console.log('MobileHomePageComponent constructor');
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
handleRefresh(event: any): void {
|
|
180
|
+
console.log('Pull-to-refresh triggered');
|
|
181
|
+
setTimeout(() => {
|
|
182
|
+
console.log('Refresh complete');
|
|
183
|
+
event.target.complete();
|
|
184
|
+
}, 1000);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
navigateToDetail(): void {
|
|
188
|
+
// Navigation removed - home/detail page was deleted
|
|
189
|
+
console.log('Navigate to detail (page removed)');
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './community.page';
|
|
2
|
+
export * from './handbook.page';
|
|
3
|
+
export * from './home.page';
|
|
4
|
+
export * from './inquiries.example';
|
|
5
|
+
export * from './inquiry-detail.example';
|
|
6
|
+
export * from './mobile-tabs-example.component';
|
|
7
|
+
export * from './post-create.page';
|
|
8
|
+
export * from './post-detail.page';
|
|
9
|
+
export * from './whitelabel-demo.page';
|