@propbinder/mobile-design 0.2.92 → 0.2.98
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/fesm2022/propbinder-mobile-design.mjs +699 -465
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +59 -18
- package/package.json +1 -1
|
@@ -1467,10 +1467,15 @@ class DsMobileListItemComponent {
|
|
|
1467
1467
|
}
|
|
1468
1468
|
|
|
1469
1469
|
<div class="content-main">
|
|
1470
|
-
@if (title()) {
|
|
1471
|
-
<
|
|
1472
|
-
|
|
1473
|
-
|
|
1470
|
+
@if (title() || subtitle()) {
|
|
1471
|
+
<div class="structured-text">
|
|
1472
|
+
@if (title()) {
|
|
1473
|
+
<h3 class="structured-title">{{ title() }}</h3>
|
|
1474
|
+
}
|
|
1475
|
+
@if (subtitle()) {
|
|
1476
|
+
<p class="structured-subtitle">{{ subtitle() }}</p>
|
|
1477
|
+
}
|
|
1478
|
+
</div>
|
|
1474
1479
|
}
|
|
1475
1480
|
|
|
1476
1481
|
<ng-content select="[content-main]" />
|
|
@@ -1492,7 +1497,7 @@ class DsMobileListItemComponent {
|
|
|
1492
1497
|
<ng-content select="[content-trailing]" />
|
|
1493
1498
|
</div>
|
|
1494
1499
|
</div>
|
|
1495
|
-
`, isInline: true, styles: [":host{display:block;position:relative;padding:var(--item-padding-top, 12px) 0 var(--item-padding-bottom, 12px) 0;box-sizing:border-box;--leading-size: 32px;--content-gap: 12px;--interactive-offset: 8px}:host(.flush-top){padding-top:0}:host:after{content:\"\";position:absolute;bottom:0;left:calc(var(--leading-size) + var(--content-gap));right:0;height:1px;background:var(--border-color-default, #e5e5e5);z-index:1;display:var(--divider-display, block)}:host(.no-divider):after{display:none}:host(.no-leading-content):after{left:0}.list-item-inner{display:flex;flex-direction:row;align-items:flex-start;gap:var(--content-gap);position:relative}:host(.align-center) .list-item-inner{align-items:center}:host(.align-bottom) .list-item-inner{align-items:flex-end}:host(.interactive) .list-item-inner:before{content:\"\";position:absolute;top:calc(-1 * var(--interactive-offset));left:calc(-1 * var(--interactive-offset));right:calc(-1 * var(--interactive-offset));bottom:calc(-1 * var(--interactive-offset));background:transparent;border-radius:16px;z-index:0;pointer-events:none}:host(.interactive){cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){:host(.interactive):hover .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}}:host(.interactive):active .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}:host(.interactive):focus-visible{outline:none}:host(.interactive):focus-visible .list-item-inner:before{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}:host(.disabled){opacity:.5;pointer-events:none}:host(.loading){pointer-events:none}:host(.variant-compact) .list-item-inner{gap:8px}.content-leading{flex-shrink:0;width:var(--leading-size);height:var(--leading-size);display:flex;align-items:flex-start;justify-content:center;position:relative;z-index:1}:host(.align-center) .content-leading{align-items:center}:host(.align-bottom) .content-leading{align-items:flex-end}.content-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;position:relative;z-index:1;justify-content:flex-start}:host(.align-center) .content-main{justify-content:center}:host(.align-bottom) .content-main{justify-content:flex-end}.content-trailing{flex-shrink:0;display:flex;align-items:flex-start;position:relative;z-index:1}.structured-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-subtitle{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545b66);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-more-button::ng-deep button{border-radius:50%!important;box-sizing:border-box!important;width:32px!important;height:32px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }] });
|
|
1500
|
+
`, isInline: true, styles: [":host{display:block;position:relative;padding:var(--item-padding-top, 12px) 0 var(--item-padding-bottom, 12px) 0;box-sizing:border-box;--leading-size: 32px;--content-gap: 12px;--interactive-offset: 8px}:host(.flush-top){padding-top:0}:host:after{content:\"\";position:absolute;bottom:0;left:calc(var(--leading-size) + var(--content-gap));right:0;height:1px;background:var(--border-color-default, #e5e5e5);z-index:1;display:var(--divider-display, block)}:host(.no-divider):after{display:none}:host(.no-leading-content):after{left:0}.list-item-inner{display:flex;flex-direction:row;align-items:flex-start;gap:var(--content-gap);position:relative}:host(.align-center) .list-item-inner{align-items:center}:host(.align-bottom) .list-item-inner{align-items:flex-end}:host(.interactive) .list-item-inner:before{content:\"\";position:absolute;top:calc(-1 * var(--interactive-offset));left:calc(-1 * var(--interactive-offset));right:calc(-1 * var(--interactive-offset));bottom:calc(-1 * var(--interactive-offset));background:transparent;border-radius:16px;z-index:0;pointer-events:none}:host(.interactive){cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){:host(.interactive):hover .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}}:host(.interactive):active .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}:host(.interactive):focus-visible{outline:none}:host(.interactive):focus-visible .list-item-inner:before{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}:host(.disabled){opacity:.5;pointer-events:none}:host(.loading){pointer-events:none}:host(.variant-compact) .list-item-inner{gap:8px}.content-leading{flex-shrink:0;width:var(--leading-size);height:var(--leading-size);display:flex;align-items:flex-start;justify-content:center;position:relative;z-index:1}:host(.align-center) .content-leading{align-items:center}:host(.align-bottom) .content-leading{align-items:flex-end}.content-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;position:relative;z-index:1;justify-content:flex-start}:host(.align-center) .content-main{justify-content:center}:host(.align-bottom) .content-main{justify-content:flex-end}.content-trailing{flex-shrink:0;display:flex;align-items:flex-start;position:relative;z-index:1}.structured-text{display:flex;flex-direction:column;gap:2px}.structured-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-subtitle{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545b66);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-more-button::ng-deep button{border-radius:50%!important;box-sizing:border-box!important;width:32px!important;height:32px!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }] });
|
|
1496
1501
|
}
|
|
1497
1502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileListItemComponent, decorators: [{
|
|
1498
1503
|
type: Component,
|
|
@@ -1531,10 +1536,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1531
1536
|
}
|
|
1532
1537
|
|
|
1533
1538
|
<div class="content-main">
|
|
1534
|
-
@if (title()) {
|
|
1535
|
-
<
|
|
1536
|
-
|
|
1537
|
-
|
|
1539
|
+
@if (title() || subtitle()) {
|
|
1540
|
+
<div class="structured-text">
|
|
1541
|
+
@if (title()) {
|
|
1542
|
+
<h3 class="structured-title">{{ title() }}</h3>
|
|
1543
|
+
}
|
|
1544
|
+
@if (subtitle()) {
|
|
1545
|
+
<p class="structured-subtitle">{{ subtitle() }}</p>
|
|
1546
|
+
}
|
|
1547
|
+
</div>
|
|
1538
1548
|
}
|
|
1539
1549
|
|
|
1540
1550
|
<ng-content select="[content-main]" />
|
|
@@ -1556,7 +1566,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1556
1566
|
<ng-content select="[content-trailing]" />
|
|
1557
1567
|
</div>
|
|
1558
1568
|
</div>
|
|
1559
|
-
`, styles: [":host{display:block;position:relative;padding:var(--item-padding-top, 12px) 0 var(--item-padding-bottom, 12px) 0;box-sizing:border-box;--leading-size: 32px;--content-gap: 12px;--interactive-offset: 8px}:host(.flush-top){padding-top:0}:host:after{content:\"\";position:absolute;bottom:0;left:calc(var(--leading-size) + var(--content-gap));right:0;height:1px;background:var(--border-color-default, #e5e5e5);z-index:1;display:var(--divider-display, block)}:host(.no-divider):after{display:none}:host(.no-leading-content):after{left:0}.list-item-inner{display:flex;flex-direction:row;align-items:flex-start;gap:var(--content-gap);position:relative}:host(.align-center) .list-item-inner{align-items:center}:host(.align-bottom) .list-item-inner{align-items:flex-end}:host(.interactive) .list-item-inner:before{content:\"\";position:absolute;top:calc(-1 * var(--interactive-offset));left:calc(-1 * var(--interactive-offset));right:calc(-1 * var(--interactive-offset));bottom:calc(-1 * var(--interactive-offset));background:transparent;border-radius:16px;z-index:0;pointer-events:none}:host(.interactive){cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){:host(.interactive):hover .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}}:host(.interactive):active .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}:host(.interactive):focus-visible{outline:none}:host(.interactive):focus-visible .list-item-inner:before{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}:host(.disabled){opacity:.5;pointer-events:none}:host(.loading){pointer-events:none}:host(.variant-compact) .list-item-inner{gap:8px}.content-leading{flex-shrink:0;width:var(--leading-size);height:var(--leading-size);display:flex;align-items:flex-start;justify-content:center;position:relative;z-index:1}:host(.align-center) .content-leading{align-items:center}:host(.align-bottom) .content-leading{align-items:flex-end}.content-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;position:relative;z-index:1;justify-content:flex-start}:host(.align-center) .content-main{justify-content:center}:host(.align-bottom) .content-main{justify-content:flex-end}.content-trailing{flex-shrink:0;display:flex;align-items:flex-start;position:relative;z-index:1}.structured-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-subtitle{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545b66);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-more-button::ng-deep button{border-radius:50%!important;box-sizing:border-box!important;width:32px!important;height:32px!important}\n"] }]
|
|
1569
|
+
`, styles: [":host{display:block;position:relative;padding:var(--item-padding-top, 12px) 0 var(--item-padding-bottom, 12px) 0;box-sizing:border-box;--leading-size: 32px;--content-gap: 12px;--interactive-offset: 8px}:host(.flush-top){padding-top:0}:host:after{content:\"\";position:absolute;bottom:0;left:calc(var(--leading-size) + var(--content-gap));right:0;height:1px;background:var(--border-color-default, #e5e5e5);z-index:1;display:var(--divider-display, block)}:host(.no-divider):after{display:none}:host(.no-leading-content):after{left:0}.list-item-inner{display:flex;flex-direction:row;align-items:flex-start;gap:var(--content-gap);position:relative}:host(.align-center) .list-item-inner{align-items:center}:host(.align-bottom) .list-item-inner{align-items:flex-end}:host(.interactive) .list-item-inner:before{content:\"\";position:absolute;top:calc(-1 * var(--interactive-offset));left:calc(-1 * var(--interactive-offset));right:calc(-1 * var(--interactive-offset));bottom:calc(-1 * var(--interactive-offset));background:transparent;border-radius:16px;z-index:0;pointer-events:none}:host(.interactive){cursor:pointer;-webkit-tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){:host(.interactive):hover .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}}:host(.interactive):active .list-item-inner:before{background:var(--color-background-neutral-primary-hover, #f5f5f5)}:host(.interactive):focus-visible{outline:none}:host(.interactive):focus-visible .list-item-inner:before{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}:host(.disabled){opacity:.5;pointer-events:none}:host(.loading){pointer-events:none}:host(.variant-compact) .list-item-inner{gap:8px}.content-leading{flex-shrink:0;width:var(--leading-size);height:var(--leading-size);display:flex;align-items:flex-start;justify-content:center;position:relative;z-index:1}:host(.align-center) .content-leading{align-items:center}:host(.align-bottom) .content-leading{align-items:flex-end}.content-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;position:relative;z-index:1;justify-content:flex-start}:host(.align-center) .content-main{justify-content:center}:host(.align-bottom) .content-main{justify-content:flex-end}.content-trailing{flex-shrink:0;display:flex;align-items:flex-start;position:relative;z-index:1}.structured-text{display:flex;flex-direction:column;gap:2px}.structured-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-subtitle{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545b66);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-more-button::ng-deep button{border-radius:50%!important;box-sizing:border-box!important;width:32px!important;height:32px!important}\n"] }]
|
|
1560
1570
|
}], ctorParameters: () => [], propDecorators: { leadingSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "leadingSize", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], flushTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "flushTop", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], showDesktopMoreButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDesktopMoreButton", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], moreButtonAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreButtonAriaLabel", required: false }] }], interactiveOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactiveOffset", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], showDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDivider", required: false }] }], dividerSpacing: [{ type: i0.Input, args: [{ isSignal: true, alias: "dividerSpacing", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], moreButtonClick: [{ type: i0.Output, args: ["moreButtonClick"] }] } });
|
|
1561
1571
|
|
|
1562
1572
|
/**
|
|
@@ -5888,6 +5898,7 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
5888
5898
|
avatarSrc = input('', ...(ngDevMode ? [{ debugName: "avatarSrc" }] : []));
|
|
5889
5899
|
avatarIconName = input('remixUser3Line', ...(ngDevMode ? [{ debugName: "avatarIconName" }] : []));
|
|
5890
5900
|
// Inputs - Notifications
|
|
5901
|
+
showNotification = input(true, ...(ngDevMode ? [{ debugName: "showNotification" }] : []));
|
|
5891
5902
|
notificationCount = input(0, ...(ngDevMode ? [{ debugName: "notificationCount" }] : []));
|
|
5892
5903
|
// Inputs - Features
|
|
5893
5904
|
showRefresh = input(true, ...(ngDevMode ? [{ debugName: "showRefresh" }] : []));
|
|
@@ -5926,7 +5937,7 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
5926
5937
|
* {
|
|
5927
5938
|
* actions: [
|
|
5928
5939
|
* { action: 'profile', title: 'Min profil', icon: 'remixUser3Line' },
|
|
5929
|
-
* { action: 'settings', title: '
|
|
5940
|
+
* { action: 'settings', title: 'Notifikationer', icon: 'remixNotificationLine' }
|
|
5930
5941
|
* ]
|
|
5931
5942
|
* },
|
|
5932
5943
|
* {
|
|
@@ -5975,8 +5986,8 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
5975
5986
|
},
|
|
5976
5987
|
{
|
|
5977
5988
|
action: 'settings',
|
|
5978
|
-
title: '
|
|
5979
|
-
icon: '
|
|
5989
|
+
title: 'Notifikationer',
|
|
5990
|
+
icon: 'remixNotificationLine',
|
|
5980
5991
|
destructive: false,
|
|
5981
5992
|
},
|
|
5982
5993
|
{
|
|
@@ -6129,7 +6140,7 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
6129
6140
|
this.refresh.emit(event);
|
|
6130
6141
|
}
|
|
6131
6142
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePageMainComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
6132
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobilePageMainComponent, isStandalone: true, selector: "ds-mobile-page-main", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, headerSubtitle: { classPropertyName: "headerSubtitle", publicName: "headerSubtitle", isSignal: true, isRequired: false, transformFunction: null }, firstEntry: { classPropertyName: "firstEntry", publicName: "firstEntry", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, avatarIconName: { classPropertyName: "avatarIconName", publicName: "avatarIconName", isSignal: true, isRequired: false, transformFunction: null }, notificationCount: { classPropertyName: "notificationCount", publicName: "notificationCount", isSignal: true, isRequired: false, transformFunction: null }, showRefresh: { classPropertyName: "showRefresh", publicName: "showRefresh", isSignal: true, isRequired: false, transformFunction: null }, showCondensedHeader: { classPropertyName: "showCondensedHeader", publicName: "showCondensedHeader", isSignal: true, isRequired: false, transformFunction: null }, scrollThreshold: { classPropertyName: "scrollThreshold", publicName: "scrollThreshold", isSignal: true, isRequired: false, transformFunction: null }, headerFadeDistance: { classPropertyName: "headerFadeDistance", publicName: "headerFadeDistance", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: "contentPadding", publicName: "contentPadding", isSignal: true, isRequired: false, transformFunction: null }, profileMenuItems: { classPropertyName: "profileMenuItems", publicName: "profileMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { notificationClick: "notificationClick", avatarClick: "avatarClick", profileActionSelected: "profileActionSelected", refresh: "refresh", scroll: "scroll" }, host: { properties: { "style.--content-wrapper-padding": "contentPadding()" } }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
6143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobilePageMainComponent, isStandalone: true, selector: "ds-mobile-page-main", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, headerSubtitle: { classPropertyName: "headerSubtitle", publicName: "headerSubtitle", isSignal: true, isRequired: false, transformFunction: null }, firstEntry: { classPropertyName: "firstEntry", publicName: "firstEntry", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarSrc: { classPropertyName: "avatarSrc", publicName: "avatarSrc", isSignal: true, isRequired: false, transformFunction: null }, avatarIconName: { classPropertyName: "avatarIconName", publicName: "avatarIconName", isSignal: true, isRequired: false, transformFunction: null }, showNotification: { classPropertyName: "showNotification", publicName: "showNotification", isSignal: true, isRequired: false, transformFunction: null }, notificationCount: { classPropertyName: "notificationCount", publicName: "notificationCount", isSignal: true, isRequired: false, transformFunction: null }, showRefresh: { classPropertyName: "showRefresh", publicName: "showRefresh", isSignal: true, isRequired: false, transformFunction: null }, showCondensedHeader: { classPropertyName: "showCondensedHeader", publicName: "showCondensedHeader", isSignal: true, isRequired: false, transformFunction: null }, scrollThreshold: { classPropertyName: "scrollThreshold", publicName: "scrollThreshold", isSignal: true, isRequired: false, transformFunction: null }, headerFadeDistance: { classPropertyName: "headerFadeDistance", publicName: "headerFadeDistance", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: "contentPadding", publicName: "contentPadding", isSignal: true, isRequired: false, transformFunction: null }, profileMenuItems: { classPropertyName: "profileMenuItems", publicName: "profileMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { notificationClick: "notificationClick", avatarClick: "avatarClick", profileActionSelected: "profileActionSelected", refresh: "refresh", scroll: "scroll" }, host: { properties: { "style.--content-wrapper-padding": "contentPadding()" } }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
6133
6144
|
<!-- Fixed header at top -->
|
|
6134
6145
|
<ion-header>
|
|
6135
6146
|
<ion-toolbar>
|
|
@@ -6142,10 +6153,12 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
6142
6153
|
|
|
6143
6154
|
<!-- Notification + Avatar -->
|
|
6144
6155
|
<div class="header-main__actions">
|
|
6145
|
-
|
|
6146
|
-
|
|
6147
|
-
|
|
6148
|
-
|
|
6156
|
+
@if (showNotification()) {
|
|
6157
|
+
<ds-mobile-notification-button
|
|
6158
|
+
[count]="notificationCount()"
|
|
6159
|
+
(clicked)="notificationClick.emit()"
|
|
6160
|
+
/>
|
|
6161
|
+
}
|
|
6149
6162
|
<ds-avatar
|
|
6150
6163
|
[size]="'md'"
|
|
6151
6164
|
[type]="avatarType()"
|
|
@@ -6229,10 +6242,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6229
6242
|
|
|
6230
6243
|
<!-- Notification + Avatar -->
|
|
6231
6244
|
<div class="header-main__actions">
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6245
|
+
@if (showNotification()) {
|
|
6246
|
+
<ds-mobile-notification-button
|
|
6247
|
+
[count]="notificationCount()"
|
|
6248
|
+
(clicked)="notificationClick.emit()"
|
|
6249
|
+
/>
|
|
6250
|
+
}
|
|
6236
6251
|
<ds-avatar
|
|
6237
6252
|
[size]="'md'"
|
|
6238
6253
|
[type]="avatarType()"
|
|
@@ -6301,7 +6316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6301
6316
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ionContent: [{
|
|
6302
6317
|
type: ViewChild,
|
|
6303
6318
|
args: [IonContent]
|
|
6304
|
-
}], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], headerTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTitle", required: false }] }], headerSubtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerSubtitle", required: false }] }], firstEntry: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstEntry", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], notificationCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "notificationCount", required: false }] }], showRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRefresh", required: false }] }], showCondensedHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCondensedHeader", required: false }] }], scrollThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollThreshold", required: false }] }], headerFadeDistance: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerFadeDistance", required: false }] }], contentPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentPadding", required: false }] }], profileMenuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileMenuItems", required: false }] }], notificationClick: [{ type: i0.Output, args: ["notificationClick"] }], avatarClick: [{ type: i0.Output, args: ["avatarClick"] }], profileActionSelected: [{ type: i0.Output, args: ["profileActionSelected"] }], refresh: [{ type: i0.Output, args: ["refresh"] }], scroll: [{ type: i0.Output, args: ["scroll"] }] } });
|
|
6319
|
+
}], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], headerTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTitle", required: false }] }], headerSubtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerSubtitle", required: false }] }], firstEntry: [{ type: i0.Input, args: [{ isSignal: true, alias: "firstEntry", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], showNotification: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNotification", required: false }] }], notificationCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "notificationCount", required: false }] }], showRefresh: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRefresh", required: false }] }], showCondensedHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCondensedHeader", required: false }] }], scrollThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollThreshold", required: false }] }], headerFadeDistance: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerFadeDistance", required: false }] }], contentPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentPadding", required: false }] }], profileMenuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "profileMenuItems", required: false }] }], notificationClick: [{ type: i0.Output, args: ["notificationClick"] }], avatarClick: [{ type: i0.Output, args: ["avatarClick"] }], profileActionSelected: [{ type: i0.Output, args: ["profileActionSelected"] }], refresh: [{ type: i0.Output, args: ["refresh"] }], scroll: [{ type: i0.Output, args: ["scroll"] }] } });
|
|
6305
6320
|
|
|
6306
6321
|
/**
|
|
6307
6322
|
* DsMobileInlineTabsComponent
|
|
@@ -22865,6 +22880,10 @@ class DsMobileCardInlineContactComponent {
|
|
|
22865
22880
|
* Phone number (optional)
|
|
22866
22881
|
*/
|
|
22867
22882
|
phoneNumber = input('', ...(ngDevMode ? [{ debugName: "phoneNumber" }] : []));
|
|
22883
|
+
/**
|
|
22884
|
+
* Email address (optional)
|
|
22885
|
+
*/
|
|
22886
|
+
email = input('', ...(ngDevMode ? [{ debugName: "email" }] : []));
|
|
22868
22887
|
/**
|
|
22869
22888
|
* Layout variant
|
|
22870
22889
|
* - 'default' - Standard padding and column layout
|
|
@@ -22895,7 +22914,7 @@ class DsMobileCardInlineContactComponent {
|
|
|
22895
22914
|
this.contactClick.emit();
|
|
22896
22915
|
}
|
|
22897
22916
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileCardInlineContactComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22898
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileCardInlineContactComponent, isStandalone: true, selector: "ds-mobile-card-inline-contact", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, contactPerson: { classPropertyName: "contactPerson", publicName: "contactPerson", isSignal: true, isRequired: false, transformFunction: null }, phoneNumber: { classPropertyName: "phoneNumber", publicName: "phoneNumber", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, showEditButton: { classPropertyName: "showEditButton", publicName: "showEditButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contactClick: "contactClick", editClick: "editClick" }, ngImport: i0, template: `
|
|
22917
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileCardInlineContactComponent, isStandalone: true, selector: "ds-mobile-card-inline-contact", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, contactPerson: { classPropertyName: "contactPerson", publicName: "contactPerson", isSignal: true, isRequired: false, transformFunction: null }, phoneNumber: { classPropertyName: "phoneNumber", publicName: "phoneNumber", isSignal: true, isRequired: false, transformFunction: null }, email: { classPropertyName: "email", publicName: "email", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, showChevron: { classPropertyName: "showChevron", publicName: "showChevron", isSignal: true, isRequired: false, transformFunction: null }, showEditButton: { classPropertyName: "showEditButton", publicName: "showEditButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contactClick: "contactClick", editClick: "editClick" }, ngImport: i0, template: `
|
|
22899
22918
|
<ds-mobile-card-inline
|
|
22900
22919
|
[variant]="layout()"
|
|
22901
22920
|
[disabled]="!clickable()"
|
|
@@ -22916,17 +22935,23 @@ class DsMobileCardInlineContactComponent {
|
|
|
22916
22935
|
<div content-main class="item-content">
|
|
22917
22936
|
<div class="item-name">{{ name() }}</div>
|
|
22918
22937
|
|
|
22919
|
-
@if (contactPerson() || phoneNumber()) {
|
|
22938
|
+
@if (contactPerson() || phoneNumber() || email()) {
|
|
22920
22939
|
<div class="item-meta">
|
|
22921
22940
|
@if (contactPerson()) {
|
|
22922
22941
|
<span>{{ contactPerson() }}</span>
|
|
22923
22942
|
}
|
|
22924
|
-
@if (contactPerson() && phoneNumber()) {
|
|
22943
|
+
@if (contactPerson() && (phoneNumber() || email())) {
|
|
22925
22944
|
<span>·</span>
|
|
22926
22945
|
}
|
|
22927
22946
|
@if (phoneNumber()) {
|
|
22928
22947
|
<span>{{ phoneNumber() }}</span>
|
|
22929
22948
|
}
|
|
22949
|
+
@if (phoneNumber() && email()) {
|
|
22950
|
+
<span>·</span>
|
|
22951
|
+
}
|
|
22952
|
+
@if (email()) {
|
|
22953
|
+
<span>{{ email() }}</span>
|
|
22954
|
+
}
|
|
22930
22955
|
</div>
|
|
22931
22956
|
}
|
|
22932
22957
|
</div>
|
|
@@ -22966,17 +22991,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22966
22991
|
<div content-main class="item-content">
|
|
22967
22992
|
<div class="item-name">{{ name() }}</div>
|
|
22968
22993
|
|
|
22969
|
-
@if (contactPerson() || phoneNumber()) {
|
|
22994
|
+
@if (contactPerson() || phoneNumber() || email()) {
|
|
22970
22995
|
<div class="item-meta">
|
|
22971
22996
|
@if (contactPerson()) {
|
|
22972
22997
|
<span>{{ contactPerson() }}</span>
|
|
22973
22998
|
}
|
|
22974
|
-
@if (contactPerson() && phoneNumber()) {
|
|
22999
|
+
@if (contactPerson() && (phoneNumber() || email())) {
|
|
22975
23000
|
<span>·</span>
|
|
22976
23001
|
}
|
|
22977
23002
|
@if (phoneNumber()) {
|
|
22978
23003
|
<span>{{ phoneNumber() }}</span>
|
|
22979
23004
|
}
|
|
23005
|
+
@if (phoneNumber() && email()) {
|
|
23006
|
+
<span>·</span>
|
|
23007
|
+
}
|
|
23008
|
+
@if (email()) {
|
|
23009
|
+
<span>{{ email() }}</span>
|
|
23010
|
+
}
|
|
22980
23011
|
</div>
|
|
22981
23012
|
}
|
|
22982
23013
|
</div>
|
|
@@ -22992,7 +23023,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22992
23023
|
}
|
|
22993
23024
|
</ds-mobile-card-inline>
|
|
22994
23025
|
`, styles: [".item-image{width:36px;height:36px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--color-background-neutral-tertiary, #E5E7EB)}:host ::ng-deep .item-trailing ds-icon-button .btn{border-radius:50%}\n"] }]
|
|
22995
|
-
}], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], initials: [{ type: i0.Input, args: [{ isSignal: true, alias: "initials", required: false }] }], imageUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageUrl", required: false }] }], contactPerson: [{ type: i0.Input, args: [{ isSignal: true, alias: "contactPerson", required: false }] }], phoneNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "phoneNumber", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], showEditButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEditButton", required: false }] }], contactClick: [{ type: i0.Output, args: ["contactClick"] }], editClick: [{ type: i0.Output, args: ["editClick"] }] } });
|
|
23026
|
+
}], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], initials: [{ type: i0.Input, args: [{ isSignal: true, alias: "initials", required: false }] }], imageUrl: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageUrl", required: false }] }], contactPerson: [{ type: i0.Input, args: [{ isSignal: true, alias: "contactPerson", required: false }] }], phoneNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "phoneNumber", required: false }] }], email: [{ type: i0.Input, args: [{ isSignal: true, alias: "email", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], showEditButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showEditButton", required: false }] }], contactClick: [{ type: i0.Output, args: ["contactClick"] }], editClick: [{ type: i0.Output, args: ["editClick"] }] } });
|
|
22996
23027
|
|
|
22997
23028
|
/**
|
|
22998
23029
|
* DsMobileNewInquiryModalComponent
|
|
@@ -27737,6 +27768,15 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27737
27768
|
* Error state - when set, shows error message
|
|
27738
27769
|
*/
|
|
27739
27770
|
error;
|
|
27771
|
+
// Translations
|
|
27772
|
+
textItems = 'emner';
|
|
27773
|
+
textClose = 'Luk';
|
|
27774
|
+
textEmptyTitle = 'Ingen emner endnu';
|
|
27775
|
+
textEmptyDescription = 'Denne mappe er tom';
|
|
27776
|
+
textCall = 'Ring';
|
|
27777
|
+
textCopyPhone = 'Kopier nummer';
|
|
27778
|
+
textEmail = 'Skriv e-mail';
|
|
27779
|
+
textCopyEmail = 'Kopier e-mail';
|
|
27740
27780
|
// Signal for reactive handbook data
|
|
27741
27781
|
handbook = signal({
|
|
27742
27782
|
title: '',
|
|
@@ -27805,26 +27845,27 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27805
27845
|
* Handle contact click - shows bottom sheet with call and copy actions
|
|
27806
27846
|
*/
|
|
27807
27847
|
async handleContactClick(contact) {
|
|
27808
|
-
// Only show actions if there's a phone number
|
|
27809
|
-
if (!contact.phoneNumber) {
|
|
27848
|
+
// Only show actions if there's a phone number or email
|
|
27849
|
+
if (!contact.phoneNumber && !contact.email) {
|
|
27810
27850
|
return;
|
|
27811
27851
|
}
|
|
27812
|
-
const actionGroups = [
|
|
27813
|
-
|
|
27852
|
+
const actionGroups = [];
|
|
27853
|
+
if (contact.phoneNumber) {
|
|
27854
|
+
actionGroups.push({
|
|
27814
27855
|
actions: [
|
|
27815
|
-
{
|
|
27816
|
-
|
|
27817
|
-
title: 'Ring',
|
|
27818
|
-
icon: 'remixPhoneLine',
|
|
27819
|
-
},
|
|
27820
|
-
{
|
|
27821
|
-
action: 'copy',
|
|
27822
|
-
title: 'Kopier nummer',
|
|
27823
|
-
icon: 'remixFileCopyLine',
|
|
27824
|
-
},
|
|
27856
|
+
{ action: 'call', title: this.textCall, icon: 'remixPhoneLine' },
|
|
27857
|
+
{ action: 'copy_phone', title: this.textCopyPhone, icon: 'remixFileCopyLine' },
|
|
27825
27858
|
],
|
|
27826
|
-
}
|
|
27827
|
-
|
|
27859
|
+
});
|
|
27860
|
+
}
|
|
27861
|
+
if (contact.email) {
|
|
27862
|
+
actionGroups.push({
|
|
27863
|
+
actions: [
|
|
27864
|
+
{ action: 'email', title: this.textEmail, icon: 'remixMailLine' },
|
|
27865
|
+
{ action: 'copy_email', title: this.textCopyEmail, icon: 'remixFileCopyLine' },
|
|
27866
|
+
],
|
|
27867
|
+
});
|
|
27868
|
+
}
|
|
27828
27869
|
const sheet = await this.modalController.create({
|
|
27829
27870
|
component: DsMobileActionsBottomSheetComponent,
|
|
27830
27871
|
componentProps: {
|
|
@@ -27848,27 +27889,34 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27848
27889
|
async handleContactAction(action, contact) {
|
|
27849
27890
|
switch (action) {
|
|
27850
27891
|
case 'call':
|
|
27851
|
-
|
|
27852
|
-
if (contact.phoneNumber) {
|
|
27892
|
+
if (contact.phoneNumber)
|
|
27853
27893
|
window.location.href = `tel:${contact.phoneNumber}`;
|
|
27854
|
-
}
|
|
27855
27894
|
break;
|
|
27895
|
+
case 'copy_phone':
|
|
27856
27896
|
case 'copy':
|
|
27857
|
-
// Copy phone number to clipboard
|
|
27858
27897
|
if (contact.phoneNumber) {
|
|
27859
27898
|
try {
|
|
27860
|
-
// Try modern Clipboard API first
|
|
27861
27899
|
await navigator.clipboard.writeText(contact.phoneNumber);
|
|
27862
|
-
console.log('Phone number copied to clipboard:', contact.phoneNumber);
|
|
27863
|
-
// TODO: Show toast notification if you have a toast service
|
|
27864
27900
|
}
|
|
27865
27901
|
catch (err) {
|
|
27866
|
-
console.error('Failed to copy phone number:', err);
|
|
27867
|
-
// Fallback: Try older execCommand method
|
|
27868
27902
|
this.fallbackCopyToClipboard(contact.phoneNumber);
|
|
27869
27903
|
}
|
|
27870
27904
|
}
|
|
27871
27905
|
break;
|
|
27906
|
+
case 'email':
|
|
27907
|
+
if (contact.email)
|
|
27908
|
+
window.location.href = `mailto:${contact.email}`;
|
|
27909
|
+
break;
|
|
27910
|
+
case 'copy_email':
|
|
27911
|
+
if (contact.email) {
|
|
27912
|
+
try {
|
|
27913
|
+
await navigator.clipboard.writeText(contact.email);
|
|
27914
|
+
}
|
|
27915
|
+
catch (err) {
|
|
27916
|
+
this.fallbackCopyToClipboard(contact.email);
|
|
27917
|
+
}
|
|
27918
|
+
}
|
|
27919
|
+
break;
|
|
27872
27920
|
}
|
|
27873
27921
|
}
|
|
27874
27922
|
/**
|
|
@@ -27905,8 +27953,8 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27905
27953
|
// Attachment action is now handled by DsMobileCardInlineFileComponent via fileUrl input
|
|
27906
27954
|
}
|
|
27907
27955
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileHandbookDetailModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
|
|
27908
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileHandbookDetailModalComponent, isStandalone: true, selector: "ds-mobile-handbook-detail-modal", inputs: { handbookData: "handbookData", loading: "loading", error: "error" }, ngImport: i0, template: `
|
|
27909
|
-
<ds-mobile-modal-base [loading]="loading" [error]="error" [headerTitle]="handbook().title" [headerMeta]="handbook().itemCount + '
|
|
27956
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileHandbookDetailModalComponent, isStandalone: true, selector: "ds-mobile-handbook-detail-modal", inputs: { handbookData: "handbookData", loading: "loading", error: "error", textItems: "textItems", textClose: "textClose", textEmptyTitle: "textEmptyTitle", textEmptyDescription: "textEmptyDescription", textCall: "textCall", textCopyPhone: "textCopyPhone", textEmail: "textEmail", textCopyEmail: "textCopyEmail" }, ngImport: i0, template: `
|
|
27957
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [headerTitle]="handbook().title" [headerMeta]="handbook().itemCount + ' ' + textItems" [closeButtonLabel]="textClose">
|
|
27910
27958
|
<!-- Header Folder Icon -->
|
|
27911
27959
|
<ds-mobile-handbook-folder-mini header-leading [variant]="handbook().variant" [customColor]="handbook().customColor" [iconName]="handbook().iconName">
|
|
27912
27960
|
</ds-mobile-handbook-folder-mini>
|
|
@@ -27940,6 +27988,7 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27940
27988
|
[initials]="contact.initials"
|
|
27941
27989
|
[contactPerson]="contact.contactPerson || ''"
|
|
27942
27990
|
[phoneNumber]="contact.phoneNumber || ''"
|
|
27991
|
+
[email]="contact.email || ''"
|
|
27943
27992
|
[clickable]="true"
|
|
27944
27993
|
(contactClick)="handleContactClick(contact)"
|
|
27945
27994
|
>
|
|
@@ -27967,13 +28016,13 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
27967
28016
|
<ds-mobile-section>
|
|
27968
28017
|
<div class="handbook-empty-state">
|
|
27969
28018
|
<img src="/Assets/Empty%20state-chat.png" alt="No items yet" class="empty-state-image" />
|
|
27970
|
-
<h3 class="empty-state-title">
|
|
27971
|
-
<p class="empty-state-description">
|
|
28019
|
+
<h3 class="empty-state-title">{{ textEmptyTitle }}</h3>
|
|
28020
|
+
<p class="empty-state-description">{{ textEmptyDescription }}</p>
|
|
27972
28021
|
</div>
|
|
27973
28022
|
</ds-mobile-section>
|
|
27974
28023
|
}
|
|
27975
28024
|
</ds-mobile-modal-base>
|
|
27976
|
-
`, isInline: true, styles: [".handbook-detail-container{display:flex;flex-direction:column;width:100%;flex:1}.handbook-item{width:100%;display:flex;flex-direction:column;gap:24px;padding:0;border-bottom:none}.handbook-item.last-item{border-bottom:none}.item-text-group{display:flex;flex-direction:column;gap:8px}.item-title{font-family:Brockmann,sans-serif;font-size:16px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:22px;color:var(--color-text-primary, #1a1a1a);margin:0}::ng-deep .item-description p{margin:0 0 12px}::ng-deep .item-description p:last-child{margin-bottom:0}::ng-deep .item-description strong,::ng-deep .item-description b{font-weight:600}::ng-deep .item-description em,::ng-deep .item-description i{font-style:italic}::ng-deep .item-description u{text-decoration:underline;text-underline-offset:2px}::ng-deep .item-description h1,::ng-deep .item-description h2,::ng-deep .item-description h3,::ng-deep .item-description h4{font-family:Brockmann,sans-serif;font-weight:600;line-height:1.4;color:var(--color-text-primary, #1a1a1a);margin:0;padding-top:16px;padding-bottom:4px}::ng-deep .item-description h1:first-child,::ng-deep .item-description h2:first-child,::ng-deep .item-description h3:first-child,::ng-deep .item-description h4:first-child{padding-top:0}::ng-deep .item-description h1{font-size:var(--font-size-xl, 20px)}::ng-deep .item-description h2{font-size:var(--font-size-lg, 18px)}::ng-deep .item-description h3,::ng-deep .item-description h4{font-size:var(--font-size-base, 16px)}::ng-deep .item-description ul,::ng-deep .item-description ol{padding-left:20px;margin:0 0 12px}::ng-deep .item-description ul:last-child,::ng-deep .item-description ol:last-child{margin-bottom:0}::ng-deep .item-description li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:22px;color:var(--color-text-primary, #1a1a1a);margin-bottom:4px}::ng-deep .item-description li:last-child{margin-bottom:0}.item-image{width:100%;max-width:100%;height:280px;-o-object-fit:cover;object-fit:cover;border-radius:12px;display:block}.contacts-attachments-group{display:flex;flex-direction:column;gap:8px}.handbook-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373)}@supports (padding: env(safe-area-inset-bottom)){.handbook-detail-container{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsMobileHandbookFolderMiniComponent, selector: "ds-mobile-handbook-folder-mini", inputs: ["variant", "customColor", "iconName"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["headerTitleInteractive", "showHeader"], outputs: ["titleClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
28025
|
+
`, isInline: true, styles: [".handbook-detail-container{display:flex;flex-direction:column;width:100%;flex:1}.handbook-item{width:100%;display:flex;flex-direction:column;gap:24px;padding:0;border-bottom:none}.handbook-item.last-item{border-bottom:none}.item-text-group{display:flex;flex-direction:column;gap:8px}.item-title{font-family:Brockmann,sans-serif;font-size:16px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0}.item-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:22px;color:var(--color-text-primary, #1a1a1a);margin:0}::ng-deep .item-description p{margin:0 0 12px}::ng-deep .item-description p:last-child{margin-bottom:0}::ng-deep .item-description strong,::ng-deep .item-description b{font-weight:600}::ng-deep .item-description em,::ng-deep .item-description i{font-style:italic}::ng-deep .item-description u{text-decoration:underline;text-underline-offset:2px}::ng-deep .item-description h1,::ng-deep .item-description h2,::ng-deep .item-description h3,::ng-deep .item-description h4{font-family:Brockmann,sans-serif;font-weight:600;line-height:1.4;color:var(--color-text-primary, #1a1a1a);margin:0;padding-top:16px;padding-bottom:4px}::ng-deep .item-description h1:first-child,::ng-deep .item-description h2:first-child,::ng-deep .item-description h3:first-child,::ng-deep .item-description h4:first-child{padding-top:0}::ng-deep .item-description h1{font-size:var(--font-size-xl, 20px)}::ng-deep .item-description h2{font-size:var(--font-size-lg, 18px)}::ng-deep .item-description h3,::ng-deep .item-description h4{font-size:var(--font-size-base, 16px)}::ng-deep .item-description ul,::ng-deep .item-description ol{padding-left:20px;margin:0 0 12px}::ng-deep .item-description ul:last-child,::ng-deep .item-description ol:last-child{margin-bottom:0}::ng-deep .item-description li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:22px;color:var(--color-text-primary, #1a1a1a);margin-bottom:4px}::ng-deep .item-description li:last-child{margin-bottom:0}.item-image{width:100%;max-width:100%;height:280px;-o-object-fit:cover;object-fit:cover;border-radius:12px;display:block}.contacts-attachments-group{display:flex;flex-direction:column;gap:8px}.handbook-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--color-text-primary, #1a1a1a)}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373)}@supports (padding: env(safe-area-inset-bottom)){.handbook-detail-container{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsMobileHandbookFolderMiniComponent, selector: "ds-mobile-handbook-folder-mini", inputs: ["variant", "customColor", "iconName"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "email", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["headerTitleInteractive", "showHeader"], outputs: ["titleClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
27977
28026
|
}
|
|
27978
28027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileHandbookDetailModalComponent, decorators: [{
|
|
27979
28028
|
type: Component,
|
|
@@ -27986,7 +28035,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
27986
28035
|
DsMobileModalBaseComponent,
|
|
27987
28036
|
DsMobileSectionComponent,
|
|
27988
28037
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
|
|
27989
|
-
<ds-mobile-modal-base [loading]="loading" [error]="error" [headerTitle]="handbook().title" [headerMeta]="handbook().itemCount + '
|
|
28038
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [headerTitle]="handbook().title" [headerMeta]="handbook().itemCount + ' ' + textItems" [closeButtonLabel]="textClose">
|
|
27990
28039
|
<!-- Header Folder Icon -->
|
|
27991
28040
|
<ds-mobile-handbook-folder-mini header-leading [variant]="handbook().variant" [customColor]="handbook().customColor" [iconName]="handbook().iconName">
|
|
27992
28041
|
</ds-mobile-handbook-folder-mini>
|
|
@@ -28020,6 +28069,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
28020
28069
|
[initials]="contact.initials"
|
|
28021
28070
|
[contactPerson]="contact.contactPerson || ''"
|
|
28022
28071
|
[phoneNumber]="contact.phoneNumber || ''"
|
|
28072
|
+
[email]="contact.email || ''"
|
|
28023
28073
|
[clickable]="true"
|
|
28024
28074
|
(contactClick)="handleContactClick(contact)"
|
|
28025
28075
|
>
|
|
@@ -28047,8 +28097,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
28047
28097
|
<ds-mobile-section>
|
|
28048
28098
|
<div class="handbook-empty-state">
|
|
28049
28099
|
<img src="/Assets/Empty%20state-chat.png" alt="No items yet" class="empty-state-image" />
|
|
28050
|
-
<h3 class="empty-state-title">
|
|
28051
|
-
<p class="empty-state-description">
|
|
28100
|
+
<h3 class="empty-state-title">{{ textEmptyTitle }}</h3>
|
|
28101
|
+
<p class="empty-state-description">{{ textEmptyDescription }}</p>
|
|
28052
28102
|
</div>
|
|
28053
28103
|
</ds-mobile-section>
|
|
28054
28104
|
}
|
|
@@ -28060,6 +28110,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
28060
28110
|
type: Input
|
|
28061
28111
|
}], error: [{
|
|
28062
28112
|
type: Input
|
|
28113
|
+
}], textItems: [{
|
|
28114
|
+
type: Input
|
|
28115
|
+
}], textClose: [{
|
|
28116
|
+
type: Input
|
|
28117
|
+
}], textEmptyTitle: [{
|
|
28118
|
+
type: Input
|
|
28119
|
+
}], textEmptyDescription: [{
|
|
28120
|
+
type: Input
|
|
28121
|
+
}], textCall: [{
|
|
28122
|
+
type: Input
|
|
28123
|
+
}], textCopyPhone: [{
|
|
28124
|
+
type: Input
|
|
28125
|
+
}], textEmail: [{
|
|
28126
|
+
type: Input
|
|
28127
|
+
}], textCopyEmail: [{
|
|
28128
|
+
type: Input
|
|
28063
28129
|
}] } });
|
|
28064
28130
|
|
|
28065
28131
|
/**
|
|
@@ -29014,9 +29080,51 @@ const SAMPLE_NOTIFICATIONS = [
|
|
|
29014
29080
|
{ id: '19', type: 'system_welcome', leading: 'logo', title: 'Velkommen!', message: 'Velkommen til Propbinder – vi glæder os til at hjælpe dig.', createdAt: daysAgo(11), read: true },
|
|
29015
29081
|
];
|
|
29016
29082
|
|
|
29083
|
+
const TYPE_TO_CATEGORY = {
|
|
29084
|
+
inquiry_update: 'inquiries',
|
|
29085
|
+
inquiry_assigned: 'inquiries',
|
|
29086
|
+
inquiry_resolved: 'inquiries',
|
|
29087
|
+
community_post: 'community',
|
|
29088
|
+
community_comment: 'community',
|
|
29089
|
+
community_like: 'community',
|
|
29090
|
+
community_mention: 'community',
|
|
29091
|
+
booking_confirmed: 'bookings',
|
|
29092
|
+
booking_cancelled: 'bookings',
|
|
29093
|
+
booking_reminder: 'bookings',
|
|
29094
|
+
facility_available: 'bookings',
|
|
29095
|
+
message_new: 'messages',
|
|
29096
|
+
message_group: 'messages',
|
|
29097
|
+
service_update: 'services',
|
|
29098
|
+
handbook_update: 'handbook',
|
|
29099
|
+
system_announcement: 'system',
|
|
29100
|
+
system_welcome: 'system',
|
|
29101
|
+
invite_received: 'system',
|
|
29102
|
+
family_access: 'system',
|
|
29103
|
+
};
|
|
29017
29104
|
class NotificationService {
|
|
29018
29105
|
notifications = signal(SAMPLE_NOTIFICATIONS, ...(ngDevMode ? [{ debugName: "notifications" }] : []));
|
|
29019
29106
|
unreadCount = computed(() => this.notifications().filter(n => !n.read).length, ...(ngDevMode ? [{ debugName: "unreadCount" }] : []));
|
|
29107
|
+
/**
|
|
29108
|
+
* Push notification delivery preferences per category.
|
|
29109
|
+
* Controls which types of push notifications the device receives —
|
|
29110
|
+
* does NOT filter the in-app notification list.
|
|
29111
|
+
*/
|
|
29112
|
+
disabledPushCategories = signal(new Set(), ...(ngDevMode ? [{ debugName: "disabledPushCategories" }] : []));
|
|
29113
|
+
isPushEnabled(category) {
|
|
29114
|
+
return !this.disabledPushCategories().has(category);
|
|
29115
|
+
}
|
|
29116
|
+
setPushEnabled(category, enabled) {
|
|
29117
|
+
this.disabledPushCategories.update(set => {
|
|
29118
|
+
const next = new Set(set);
|
|
29119
|
+
if (enabled) {
|
|
29120
|
+
next.delete(category);
|
|
29121
|
+
}
|
|
29122
|
+
else {
|
|
29123
|
+
next.add(category);
|
|
29124
|
+
}
|
|
29125
|
+
return next;
|
|
29126
|
+
});
|
|
29127
|
+
}
|
|
29020
29128
|
/**
|
|
29021
29129
|
* Add a new notification to the top of the list.
|
|
29022
29130
|
* Intended for downstream push integration — call this when a
|
|
@@ -30544,6 +30652,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
30544
30652
|
}]
|
|
30545
30653
|
}], ctorParameters: () => [{ type: i1.ModalController }] });
|
|
30546
30654
|
|
|
30655
|
+
class DsMobileToggleComponent {
|
|
30656
|
+
checked = model(false, ...(ngDevMode ? [{ debugName: "checked" }] : []));
|
|
30657
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
30658
|
+
changed = output();
|
|
30659
|
+
handleClick(event) {
|
|
30660
|
+
event.stopPropagation();
|
|
30661
|
+
this.toggle();
|
|
30662
|
+
}
|
|
30663
|
+
toggle() {
|
|
30664
|
+
if (this.disabled())
|
|
30665
|
+
return;
|
|
30666
|
+
const next = !this.checked();
|
|
30667
|
+
this.checked.set(next);
|
|
30668
|
+
this.changed.emit(next);
|
|
30669
|
+
}
|
|
30670
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30671
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: DsMobileToggleComponent, isStandalone: true, selector: "ds-mobile-toggle", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", changed: "changed" }, host: { listeners: { "click": "handleClick($event)", "keydown.enter": "toggle()", "keydown.space": "$event.preventDefault(); toggle()" }, properties: { "class.disabled": "disabled()", "attr.role": "\"switch\"", "attr.aria-checked": "checked()", "attr.aria-disabled": "disabled() || null", "attr.tabindex": "disabled() ? -1 : 0" } }, ngImport: i0, template: `
|
|
30672
|
+
<div class="track" [class.active]="checked()">
|
|
30673
|
+
<div class="knob"></div>
|
|
30674
|
+
</div>
|
|
30675
|
+
`, isInline: true, styles: [":host{display:inline-flex;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;outline:none}:host(.disabled){opacity:.4;pointer-events:none}:host:focus-visible .track{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}.track{width:40px;height:24px;background:var(--color-background-neutral-tertiary, #e3e6eb);border-radius:var(--border-radius-round, 1000px);padding:4px;box-sizing:border-box;transition:background .2s ease}.track.active{background:var(--color-accent, #6b5ff5)}.knob{width:16px;height:16px;background:var(--color-background-neutral-primary, white);border-radius:var(--border-radius-round, 1000px);transition:transform .2s ease}.track.active .knob{transform:translate(16px)}\n"] });
|
|
30676
|
+
}
|
|
30677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileToggleComponent, decorators: [{
|
|
30678
|
+
type: Component,
|
|
30679
|
+
args: [{ selector: 'ds-mobile-toggle', standalone: true, host: {
|
|
30680
|
+
'(click)': 'handleClick($event)',
|
|
30681
|
+
'[class.disabled]': 'disabled()',
|
|
30682
|
+
'[attr.role]': '"switch"',
|
|
30683
|
+
'[attr.aria-checked]': 'checked()',
|
|
30684
|
+
'[attr.aria-disabled]': 'disabled() || null',
|
|
30685
|
+
'[attr.tabindex]': 'disabled() ? -1 : 0',
|
|
30686
|
+
'(keydown.enter)': 'toggle()',
|
|
30687
|
+
'(keydown.space)': '$event.preventDefault(); toggle()',
|
|
30688
|
+
}, template: `
|
|
30689
|
+
<div class="track" [class.active]="checked()">
|
|
30690
|
+
<div class="knob"></div>
|
|
30691
|
+
</div>
|
|
30692
|
+
`, styles: [":host{display:inline-flex;cursor:pointer;-webkit-tap-highlight-color:transparent;flex-shrink:0;outline:none}:host(.disabled){opacity:.4;pointer-events:none}:host:focus-visible .track{outline:2px solid var(--color-brand-primary, #5d5fef);outline-offset:2px}.track{width:40px;height:24px;background:var(--color-background-neutral-tertiary, #e3e6eb);border-radius:var(--border-radius-round, 1000px);padding:4px;box-sizing:border-box;transition:background .2s ease}.track.active{background:var(--color-accent, #6b5ff5)}.knob{width:16px;height:16px;background:var(--color-background-neutral-primary, white);border-radius:var(--border-radius-round, 1000px);transition:transform .2s ease}.track.active .knob{transform:translate(16px)}\n"] }]
|
|
30693
|
+
}], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }, { type: i0.Output, args: ["checkedChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], changed: [{ type: i0.Output, args: ["changed"] }] } });
|
|
30694
|
+
|
|
30547
30695
|
// Mobile Page Components
|
|
30548
30696
|
|
|
30549
30697
|
class MobileCommunityPageComponent {
|
|
@@ -31102,7 +31250,7 @@ class MobileCommunityPageComponent {
|
|
|
31102
31250
|
}
|
|
31103
31251
|
</ds-mobile-section>
|
|
31104
31252
|
</ds-mobile-page-main>
|
|
31105
|
-
`, isInline: true, styles: [".pinned-posts-swiper-wrapper{padding:0;position:relative}.swiper-nav-buttons{display:contents}.swiper-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10}.swiper-nav-button:first-child{left:-48px}.swiper-nav-button:last-child{right:-48px}::ng-deep .swiper-nav-button button{border-radius:50%!important;width:48px!important;height:48px!important;padding:0!important}@media (max-width: 767px){.swiper-nav-buttons{display:none}}::ng-deep .pinned-posts-swiper .swiper-slide{width:100%;max-width:600px;height:auto}@media (min-width: 768px){::ng-deep .pinned-posts-swiper .swiper-slide{max-width:100%}}.swiper-post-item{width:100%;height:auto}::ng-deep .pinned-posts-swiper .swiper-slide ds-mobile-interactive-list-item-post{height:auto}::ng-deep .pinned-posts-swiper .swiper-wrapper{height:auto;align-items:flex-start}.post-list-wrapper{display:flex;flex-direction:column}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "align", "clickable", "enableLongPress", "moreActions"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobilePostComposerComponent, selector: "ds-mobile-post-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "placeholder", "buttonText"], outputs: ["composerClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostAttachmentsComponent, selector: "post-attachments" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "loadingStates", "author", "maxVisible", "useGrid"], outputs: ["photoClick"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] });
|
|
31253
|
+
`, isInline: true, styles: [".pinned-posts-swiper-wrapper{padding:0;position:relative}.swiper-nav-buttons{display:contents}.swiper-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10}.swiper-nav-button:first-child{left:-48px}.swiper-nav-button:last-child{right:-48px}::ng-deep .swiper-nav-button button{border-radius:50%!important;width:48px!important;height:48px!important;padding:0!important}@media (max-width: 767px){.swiper-nav-buttons{display:none}}::ng-deep .pinned-posts-swiper .swiper-slide{width:100%;max-width:600px;height:auto}@media (min-width: 768px){::ng-deep .pinned-posts-swiper .swiper-slide{max-width:100%}}.swiper-post-item{width:100%;height:auto}::ng-deep .pinned-posts-swiper .swiper-slide ds-mobile-interactive-list-item-post{height:auto}::ng-deep .pinned-posts-swiper .swiper-wrapper{height:auto;align-items:flex-start}.post-list-wrapper{display:flex;flex-direction:column}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.community-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}ion-infinite-scroll{--color: var(--color-primary-surface)}ion-infinite-scroll-content{--color: var(--color-primary-surface)}ion-infinite-scroll-content::part(spinner){color:var(--color-primary-surface)}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "align", "clickable", "enableLongPress", "moreActions"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobilePostComposerComponent, selector: "ds-mobile-post-composer", inputs: ["avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "placeholder", "buttonText"], outputs: ["composerClick"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { kind: "component", type: PostAttachmentsComponent, selector: "post-attachments" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }, { kind: "component", type: DsMobileCardInlineFileComponent, selector: "ds-mobile-card-inline-file", inputs: ["fileName", "fileSize", "variant", "layout", "fileUrl"], outputs: ["fileClick"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "loadingStates", "author", "maxVisible", "useGrid"], outputs: ["photoClick"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }] });
|
|
31106
31254
|
}
|
|
31107
31255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileCommunityPageComponent, decorators: [{
|
|
31108
31256
|
type: Component,
|
|
@@ -31682,7 +31830,7 @@ class MobileHandbookPageComponent {
|
|
|
31682
31830
|
</div>
|
|
31683
31831
|
</ds-mobile-section>
|
|
31684
31832
|
</ds-mobile-page-main>
|
|
31685
|
-
`, isInline: true, styles: [".folders-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;justify-items:center}@media (min-width: 768px){.folders-grid{grid-template-columns:repeat(3,1fr)}}ds-mobile-handbook-folder{width:100%;min-width:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileHandbookFolderComponent, selector: "ds-mobile-handbook-folder", inputs: ["variant", "customColor", "iconName", "itemCount", "label", "items", "loading", "error"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }] });
|
|
31833
|
+
`, isInline: true, styles: [".folders-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;justify-items:center}@media (min-width: 768px){.folders-grid{grid-template-columns:repeat(3,1fr)}}ds-mobile-handbook-folder{width:100%;min-width:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileHandbookFolderComponent, selector: "ds-mobile-handbook-folder", inputs: ["variant", "customColor", "iconName", "itemCount", "label", "items", "loading", "error"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }] });
|
|
31686
31834
|
}
|
|
31687
31835
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHandbookPageComponent, decorators: [{
|
|
31688
31836
|
type: Component,
|
|
@@ -32264,16 +32412,44 @@ class MobileHomePageComponent {
|
|
|
32264
32412
|
// (hides tab bar + renders loading screen at the correct DOM level)
|
|
32265
32413
|
pageLoading = inject(PageLoadingService);
|
|
32266
32414
|
// Get recent posts from PostsService - exclude pinned post (post-4) and limit to 3
|
|
32267
|
-
recentPosts = computed(() => this.postsService
|
|
32268
|
-
.
|
|
32415
|
+
recentPosts = computed(() => this.postsService
|
|
32416
|
+
.posts()
|
|
32417
|
+
.filter((post) => post.id !== 'post-4') // Exclude pinned post
|
|
32269
32418
|
.slice(0, 3), ...(ngDevMode ? [{ debugName: "recentPosts" }] : []));
|
|
32270
32419
|
inquiriesService = inject(InquiriesService);
|
|
32271
32420
|
openInquiries = computed(() => this.inquiriesService.openInquiries().slice(0, 3), ...(ngDevMode ? [{ debugName: "openInquiries" }] : []));
|
|
32272
32421
|
recentPeerMessages = computed(() => this.peerMessaging.conversations().slice(0, 3), ...(ngDevMode ? [{ debugName: "recentPeerMessages" }] : []));
|
|
32273
32422
|
allVendors = signal([
|
|
32274
|
-
{
|
|
32275
|
-
|
|
32276
|
-
|
|
32423
|
+
{
|
|
32424
|
+
id: 'v-1',
|
|
32425
|
+
name: 'CleanTeam ApS',
|
|
32426
|
+
category: 'Rengøring',
|
|
32427
|
+
description: 'Trappevask og vinduespolering',
|
|
32428
|
+
phone: '+45 70 20 30 40',
|
|
32429
|
+
logo: '/Assets/dummy-logos/cleanteam-logo.svg',
|
|
32430
|
+
thumbnail: '/Assets/Dummy-photos/clean-team.jpg',
|
|
32431
|
+
fullDescription: '<h3>Rengøring</h3><p>CleanTeam ApS tilbyder professionel trappevask og vinduespolering for ejendommen. Servicen udføres ugentligt og kan tilpasses jeres behov.</p><h3>Pris</h3><p>350 kr. per besøg</p>',
|
|
32432
|
+
},
|
|
32433
|
+
{
|
|
32434
|
+
id: 'v-3',
|
|
32435
|
+
name: 'Blik Partner A/S',
|
|
32436
|
+
category: 'VVS',
|
|
32437
|
+
description: 'VVS-service og akut udkald',
|
|
32438
|
+
phone: '+45 33 44 55 66',
|
|
32439
|
+
thumbnail: '/Assets/Dummy-photos/plumbing.jpg',
|
|
32440
|
+
fullDescription: '<h3>VVS</h3><p>BlikPartner A/S er jeres VVS-partner til alt fra løbende vedligeholdelse til akutte udkald. Vi dækker reparation af vandrør, afløb, radiatorer og blandingsbatterier.</p><h3>Pris</h3><p>450 kr. per udkald + tid</p>',
|
|
32441
|
+
},
|
|
32442
|
+
{
|
|
32443
|
+
id: 'v-4',
|
|
32444
|
+
name: 'ElektroTek ApS',
|
|
32445
|
+
category: 'Elektriker',
|
|
32446
|
+
description: 'El-installationer og fejlsøgning',
|
|
32447
|
+
phone: '+45 23 45 67 89',
|
|
32448
|
+
logo: '/Assets/dummy-logos/electrician-logo.svg',
|
|
32449
|
+
thumbnail: '/Assets/Dummy-photos/electrician.jpg',
|
|
32450
|
+
heroImage: '/Assets/Dummy-photos/electrician.jpg',
|
|
32451
|
+
fullDescription: '<h3>Elektriker</h3><p>ElektroTek ApS varetager el-installationer, fejlsøgning og lovpligtige eftersyn for ejendommen. Vi udfører også småopgaver som udskiftning af kontakter og lampeudtag.</p><h3>Pris</h3><p>395 kr. per time</p>',
|
|
32452
|
+
},
|
|
32277
32453
|
], ...(ngDevMode ? [{ debugName: "allVendors" }] : []));
|
|
32278
32454
|
previewVendors = computed(() => this.allVendors().slice(0, 3), ...(ngDevMode ? [{ debugName: "previewVendors" }] : []));
|
|
32279
32455
|
modalCtrl = inject(ModalController);
|
|
@@ -32329,11 +32505,11 @@ class MobileHomePageComponent {
|
|
|
32329
32505
|
...post,
|
|
32330
32506
|
postId: post.id,
|
|
32331
32507
|
avatarType: post.avatarType === 'icon' ? undefined : post.avatarType,
|
|
32332
|
-
focusComment
|
|
32508
|
+
focusComment,
|
|
32333
32509
|
};
|
|
32334
32510
|
await this.postModal.open(postData, {
|
|
32335
32511
|
currentUserName: 'Lars Mikkelsen',
|
|
32336
|
-
currentUserInitials: this.userService.avatarInitials()
|
|
32512
|
+
currentUserInitials: this.userService.avatarInitials(),
|
|
32337
32513
|
});
|
|
32338
32514
|
}
|
|
32339
32515
|
}
|
|
@@ -32421,7 +32597,7 @@ class MobileHomePageComponent {
|
|
|
32421
32597
|
initialBreakpoint: 1,
|
|
32422
32598
|
handle: true,
|
|
32423
32599
|
backdropDismiss: true,
|
|
32424
|
-
cssClass: 'auto-height'
|
|
32600
|
+
cssClass: 'auto-height',
|
|
32425
32601
|
});
|
|
32426
32602
|
const result = await sheet.onWillDismiss();
|
|
32427
32603
|
if (result.role === 'select' && result.data) {
|
|
@@ -32432,7 +32608,7 @@ class MobileHomePageComponent {
|
|
|
32432
32608
|
if (post) {
|
|
32433
32609
|
this.postsService.updatePost(postId, {
|
|
32434
32610
|
isLiked: !post.isLiked,
|
|
32435
|
-
likeCount: post.isLiked ? post.likeCount - 1 : post.likeCount + 1
|
|
32611
|
+
likeCount: post.isLiked ? post.likeCount - 1 : post.likeCount + 1,
|
|
32436
32612
|
});
|
|
32437
32613
|
}
|
|
32438
32614
|
break;
|
|
@@ -32452,6 +32628,7 @@ class MobileHomePageComponent {
|
|
|
32452
32628
|
@if (!pageLoading.isCoveringScreen()) {
|
|
32453
32629
|
<ds-mobile-page-main
|
|
32454
32630
|
class="home-content"
|
|
32631
|
+
[showNotification]="true"
|
|
32455
32632
|
[class.home-content--animating]="pageLoading.isRevealAnimation()"
|
|
32456
32633
|
[firstEntry]="pageLoading.isRevealAnimation()"
|
|
32457
32634
|
#pageComponent
|
|
@@ -32462,208 +32639,178 @@ class MobileHomePageComponent {
|
|
|
32462
32639
|
[avatarType]="userService.avatarType()"
|
|
32463
32640
|
(notificationClick)="handleNotificationClick()"
|
|
32464
32641
|
(refresh)="handleRefresh($event)"
|
|
32642
|
+
>
|
|
32643
|
+
<!-- Offline indicator -->
|
|
32644
|
+
@if (pageComponent.isOffline()) {
|
|
32645
|
+
<ds-mobile-offline-banner offline-indicator title="Ingen internetforbindelse" message="Nogle funktioner kan være utilgængelige"> </ds-mobile-offline-banner>
|
|
32646
|
+
}
|
|
32647
|
+
|
|
32648
|
+
<!-- Property banner → beboere (prototype IA) -->
|
|
32649
|
+
<div
|
|
32650
|
+
header-content
|
|
32651
|
+
class="property-banner-nav"
|
|
32652
|
+
role="button"
|
|
32653
|
+
tabindex="0"
|
|
32654
|
+
(click)="navigateToTenants()"
|
|
32655
|
+
(keydown.enter)="navigateToTenants()"
|
|
32656
|
+
(keydown.space)="$event.preventDefault(); navigateToTenants()"
|
|
32657
|
+
aria-label="Se beboere på ejendommen"
|
|
32465
32658
|
>
|
|
32466
|
-
|
|
32467
|
-
|
|
32468
|
-
@if (pageComponent.isOffline()) {
|
|
32469
|
-
<ds-mobile-offline-banner
|
|
32470
|
-
offline-indicator
|
|
32471
|
-
title="Ingen internetforbindelse"
|
|
32472
|
-
message="Nogle funktioner kan være utilgængelige">
|
|
32473
|
-
</ds-mobile-offline-banner>
|
|
32474
|
-
}
|
|
32475
|
-
|
|
32476
|
-
<!-- Property banner → beboere (prototype IA) -->
|
|
32477
|
-
<div
|
|
32478
|
-
header-content
|
|
32479
|
-
class="property-banner-nav"
|
|
32480
|
-
role="button"
|
|
32481
|
-
tabindex="0"
|
|
32482
|
-
(click)="navigateToTenants()"
|
|
32483
|
-
(keydown.enter)="navigateToTenants()"
|
|
32484
|
-
(keydown.space)="$event.preventDefault(); navigateToTenants()"
|
|
32485
|
-
aria-label="Se beboere på ejendommen">
|
|
32486
|
-
<ds-mobile-property-banner
|
|
32487
|
-
address="Toftegårds Allé 5A, 2. tv."
|
|
32488
|
-
photoUrl="/Assets/Dummy-photos/building.jpg"
|
|
32489
|
-
[tenantCount]="24">
|
|
32490
|
-
</ds-mobile-property-banner>
|
|
32491
|
-
</div>
|
|
32659
|
+
<ds-mobile-property-banner address="Toftegårds Allé 5A, 2. tv." photoUrl="/Assets/Dummy-photos/building.jpg" [tenantCount]="24"> </ds-mobile-property-banner>
|
|
32660
|
+
</div>
|
|
32492
32661
|
|
|
32493
|
-
|
|
32494
|
-
|
|
32495
|
-
|
|
32496
|
-
|
|
32497
|
-
|
|
32498
|
-
|
|
32499
|
-
|
|
32500
|
-
|
|
32501
|
-
|
|
32502
|
-
|
|
32503
|
-
|
|
32662
|
+
@if (familyAccessService.acceptedInviteContext(); as invite) {
|
|
32663
|
+
<ds-mobile-section [showBorder]="false" padding="20px 20px 0">
|
|
32664
|
+
<div class="welcome-toast">
|
|
32665
|
+
<div class="toast-icon">
|
|
32666
|
+
<ds-icon name="remixUserSmileLine" size="12px" />
|
|
32667
|
+
</div>
|
|
32668
|
+
<div class="welcome-toast-content">
|
|
32669
|
+
<p class="welcome-toast-heading">Du er nu familiemedlem!</p>
|
|
32670
|
+
<p class="welcome-toast-text">
|
|
32671
|
+
Tilknyttet <strong>{{ invite.propertyAddress }}</strong> via <strong>{{ invite.inviterName }}</strong>
|
|
32672
|
+
</p>
|
|
32673
|
+
</div>
|
|
32674
|
+
<button class="toast-dismiss" (click)="familyAccessService.clearAcceptedInviteContext()" aria-label="Luk">
|
|
32675
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
32676
|
+
<path d="M4 4l8 8M12 4l-8 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
|
|
32677
|
+
</svg>
|
|
32678
|
+
</button>
|
|
32504
32679
|
</div>
|
|
32505
|
-
|
|
32506
|
-
|
|
32507
|
-
|
|
32508
|
-
|
|
32509
|
-
|
|
32680
|
+
</ds-mobile-section>
|
|
32681
|
+
}
|
|
32682
|
+
|
|
32683
|
+
<!-- Recent Community Posts Section (with content) -->
|
|
32684
|
+
<ds-mobile-section headline="Seneste opslag" linkText="Se alle" (linkClick)="navigateToCommunity()">
|
|
32685
|
+
<div class="posts-list">
|
|
32686
|
+
@for (post of recentPosts(); track post.id) {
|
|
32687
|
+
<ds-mobile-interactive-list-item-post
|
|
32688
|
+
[authorName]="post.authorName"
|
|
32689
|
+
[authorRole]="post.authorRole"
|
|
32690
|
+
[timestamp]="post.timestamp"
|
|
32691
|
+
[avatarType]="post.avatarType"
|
|
32692
|
+
[avatarSrc]="post.avatarSrc || ''"
|
|
32693
|
+
[avatarInitials]="post.avatarInitials || ''"
|
|
32694
|
+
[showBadge]="post.showBadge || false"
|
|
32695
|
+
[clickable]="true"
|
|
32696
|
+
[moreActions]="true"
|
|
32697
|
+
(postClick)="openPost(post.id)"
|
|
32698
|
+
(commentClick)="openPost(post.id, true)"
|
|
32699
|
+
(longPress)="handlePostLongPress(post.id)"
|
|
32700
|
+
>
|
|
32701
|
+
<post-content>
|
|
32702
|
+
@if (post.content) {
|
|
32703
|
+
<post-text>{{ post.content }}</post-text>
|
|
32704
|
+
}
|
|
32705
|
+
</post-content>
|
|
32706
|
+
|
|
32707
|
+
<post-actions>
|
|
32708
|
+
<action-like [count]="post.likeCount" [active]="post.isLiked" />
|
|
32709
|
+
<action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
|
|
32710
|
+
</post-actions>
|
|
32711
|
+
</ds-mobile-interactive-list-item-post>
|
|
32712
|
+
}
|
|
32510
32713
|
</div>
|
|
32511
32714
|
</ds-mobile-section>
|
|
32512
|
-
}
|
|
32513
|
-
|
|
32514
|
-
<!-- Recent Community Posts Section (with content) -->
|
|
32515
|
-
<ds-mobile-section
|
|
32516
|
-
headline="Seneste opslag"
|
|
32517
|
-
linkText="Se alle"
|
|
32518
|
-
(linkClick)="navigateToCommunity()">
|
|
32519
|
-
|
|
32520
|
-
<div class="posts-list">
|
|
32521
|
-
@for (post of recentPosts(); track post.id) {
|
|
32522
|
-
<ds-mobile-interactive-list-item-post
|
|
32523
|
-
[authorName]="post.authorName"
|
|
32524
|
-
[authorRole]="post.authorRole"
|
|
32525
|
-
[timestamp]="post.timestamp"
|
|
32526
|
-
[avatarType]="post.avatarType"
|
|
32527
|
-
[avatarSrc]="post.avatarSrc || ''"
|
|
32528
|
-
[avatarInitials]="post.avatarInitials || ''"
|
|
32529
|
-
[showBadge]="post.showBadge || false"
|
|
32530
|
-
[clickable]="true"
|
|
32531
|
-
[moreActions]="true"
|
|
32532
|
-
(postClick)="openPost(post.id)"
|
|
32533
|
-
(commentClick)="openPost(post.id, true)"
|
|
32534
|
-
(longPress)="handlePostLongPress(post.id)">
|
|
32535
|
-
|
|
32536
|
-
<post-content>
|
|
32537
|
-
@if (post.content) {
|
|
32538
|
-
<post-text>{{ post.content }}</post-text>
|
|
32539
|
-
}
|
|
32540
|
-
</post-content>
|
|
32541
|
-
|
|
32542
|
-
<post-actions>
|
|
32543
|
-
<action-like [count]="post.likeCount" [active]="post.isLiked" />
|
|
32544
|
-
<action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
|
|
32545
|
-
</post-actions>
|
|
32546
|
-
</ds-mobile-interactive-list-item-post>
|
|
32547
|
-
}
|
|
32548
|
-
</div>
|
|
32549
|
-
</ds-mobile-section>
|
|
32550
32715
|
|
|
32551
|
-
|
|
32552
|
-
|
|
32553
|
-
|
|
32554
|
-
|
|
32555
|
-
|
|
32556
|
-
|
|
32557
|
-
|
|
32558
|
-
|
|
32559
|
-
|
|
32560
|
-
|
|
32561
|
-
|
|
32562
|
-
|
|
32563
|
-
|
|
32564
|
-
|
|
32565
|
-
|
|
32566
|
-
|
|
32567
|
-
|
|
32568
|
-
|
|
32569
|
-
|
|
32570
|
-
|
|
32571
|
-
|
|
32572
|
-
|
|
32573
|
-
|
|
32574
|
-
|
|
32575
|
-
|
|
32576
|
-
|
|
32577
|
-
|
|
32578
|
-
|
|
32579
|
-
|
|
32580
|
-
|
|
32581
|
-
|
|
32582
|
-
|
|
32716
|
+
<ds-mobile-section headline="Seneste beskeder" linkText="Se alle" (linkClick)="navigateToMessages()">
|
|
32717
|
+
<div class="messages-preview-list">
|
|
32718
|
+
@for (conv of recentPeerMessages(); track conv.id) {
|
|
32719
|
+
@if (isPeerGroupConversation(conv)) {
|
|
32720
|
+
<ds-mobile-interactive-list-item-message
|
|
32721
|
+
[senderName]="conv.title"
|
|
32722
|
+
[senderRole]="conv.memberIds.length + ' medlemmer'"
|
|
32723
|
+
[timestamp]="conv.timestamp"
|
|
32724
|
+
[message]="conv.lastMessage"
|
|
32725
|
+
[avatarInitials]="''"
|
|
32726
|
+
[avatarType]="'initials'"
|
|
32727
|
+
[groupStackMembers]="peerChat.resolveGroupMembers(conv)"
|
|
32728
|
+
[groupCustomAvatarUrl]="conv.customAvatarUrl ?? ''"
|
|
32729
|
+
groupStackExcludeParticipantId="me"
|
|
32730
|
+
[showAvatarBadge]="false"
|
|
32731
|
+
[unread]="conv.unread"
|
|
32732
|
+
[clickable]="true"
|
|
32733
|
+
(messageClick)="openPeerMessagePreview(conv)"
|
|
32734
|
+
>
|
|
32735
|
+
</ds-mobile-interactive-list-item-message>
|
|
32736
|
+
} @else {
|
|
32737
|
+
<ds-mobile-interactive-list-item-message
|
|
32738
|
+
[senderName]="conv.participant.name"
|
|
32739
|
+
[senderRole]="conv.participant.role ?? ''"
|
|
32740
|
+
[timestamp]="conv.timestamp"
|
|
32741
|
+
[message]="conv.lastMessage"
|
|
32742
|
+
[avatarInitials]="conv.participant.avatarInitials ?? ''"
|
|
32743
|
+
[avatarType]="conv.participant.avatarType ?? 'initials'"
|
|
32744
|
+
[showAvatarBadge]="false"
|
|
32745
|
+
[unread]="conv.unread"
|
|
32746
|
+
[clickable]="true"
|
|
32747
|
+
(messageClick)="openPeerMessagePreview(conv)"
|
|
32748
|
+
>
|
|
32749
|
+
</ds-mobile-interactive-list-item-message>
|
|
32750
|
+
}
|
|
32751
|
+
}
|
|
32752
|
+
</div>
|
|
32753
|
+
</ds-mobile-section>
|
|
32754
|
+
|
|
32755
|
+
<!-- Services preview -->
|
|
32756
|
+
@if (previewVendors().length > 0) {
|
|
32757
|
+
<ds-mobile-section headline="Services" linkText="Se alle" contentGap="0px" (linkClick)="navigateToServices()">
|
|
32758
|
+
@for (vendor of previewVendors(); track vendor.id) {
|
|
32759
|
+
<ds-mobile-interactive-list-item-service
|
|
32760
|
+
[title]="vendor.name"
|
|
32761
|
+
[description]="vendor.description || ''"
|
|
32762
|
+
[logo]="vendor.logo || ''"
|
|
32763
|
+
(serviceClick)="openVendorSheet(vendor)"
|
|
32764
|
+
/>
|
|
32765
|
+
}
|
|
32766
|
+
</ds-mobile-section>
|
|
32767
|
+
}
|
|
32768
|
+
|
|
32769
|
+
<!-- Recent Community Posts Section (empty state) -->
|
|
32770
|
+
<ds-mobile-section>
|
|
32771
|
+
<div class="empty-state">
|
|
32772
|
+
<ds-mobile-illustration variant="post" alt="No posts" />
|
|
32773
|
+
<h3 class="empty-state-title">Ingen opslag endnu</h3>
|
|
32774
|
+
<p class="empty-state-description">Der er ingen opslag i fællesområdet i øjeblikket</p>
|
|
32775
|
+
|
|
32776
|
+
<ds-button variant="secondary" trailingIcon="remixArrowRightSLine" (click)="navigateToCommunity()"> Gå til fællesområdet </ds-button>
|
|
32777
|
+
</div>
|
|
32778
|
+
</ds-mobile-section>
|
|
32779
|
+
|
|
32780
|
+
<!-- Open Inquiries Section (with content) -->
|
|
32781
|
+
<ds-mobile-section headline="Åbne henvendelser" linkText="Se alle" (linkClick)="navigateToInquiries()">
|
|
32782
|
+
<div class="inquiries-list">
|
|
32783
|
+
@for (inquiry of openInquiries(); track inquiry.id) {
|
|
32784
|
+
<ds-mobile-interactive-list-item-inquiry
|
|
32785
|
+
[title]="inquiry.title"
|
|
32786
|
+
[description]="inquiry.description"
|
|
32787
|
+
[status]="inquiry.status"
|
|
32788
|
+
[timestamp]="inquiry.timestamp"
|
|
32789
|
+
[iconName]="'remixTodoLine'"
|
|
32583
32790
|
[clickable]="true"
|
|
32584
|
-
|
|
32585
|
-
|
|
32791
|
+
[showChevron]="false"
|
|
32792
|
+
[enableLongPress]="false"
|
|
32793
|
+
(inquiryClick)="openInquiryDetail(inquiry.id)"
|
|
32794
|
+
>
|
|
32795
|
+
</ds-mobile-interactive-list-item-inquiry>
|
|
32586
32796
|
}
|
|
32587
|
-
|
|
32588
|
-
</div>
|
|
32589
|
-
</ds-mobile-section>
|
|
32590
|
-
|
|
32591
|
-
<!-- Services preview -->
|
|
32592
|
-
@if (previewVendors().length > 0) {
|
|
32593
|
-
<ds-mobile-section
|
|
32594
|
-
headline="Services"
|
|
32595
|
-
linkText="Se alle"
|
|
32596
|
-
contentGap="0px"
|
|
32597
|
-
(linkClick)="navigateToServices()">
|
|
32598
|
-
@for (vendor of previewVendors(); track vendor.id) {
|
|
32599
|
-
<ds-mobile-interactive-list-item-service
|
|
32600
|
-
[title]="vendor.name"
|
|
32601
|
-
[description]="vendor.description || ''"
|
|
32602
|
-
[logo]="vendor.logo || ''"
|
|
32603
|
-
(serviceClick)="openVendorSheet(vendor)"
|
|
32604
|
-
/>
|
|
32605
|
-
}
|
|
32797
|
+
</div>
|
|
32606
32798
|
</ds-mobile-section>
|
|
32607
|
-
}
|
|
32608
32799
|
|
|
32609
|
-
|
|
32610
|
-
|
|
32611
|
-
|
|
32612
|
-
|
|
32613
|
-
|
|
32614
|
-
|
|
32615
|
-
|
|
32616
|
-
<ds-button
|
|
32617
|
-
variant="secondary"
|
|
32618
|
-
trailingIcon="remixArrowRightSLine"
|
|
32619
|
-
(click)="navigateToCommunity()">
|
|
32620
|
-
Gå til fællesområdet
|
|
32621
|
-
</ds-button>
|
|
32622
|
-
</div>
|
|
32623
|
-
</ds-mobile-section>
|
|
32624
|
-
|
|
32625
|
-
<!-- Open Inquiries Section (with content) -->
|
|
32626
|
-
<ds-mobile-section
|
|
32627
|
-
headline="Åbne henvendelser"
|
|
32628
|
-
linkText="Se alle"
|
|
32629
|
-
(linkClick)="navigateToInquiries()">
|
|
32630
|
-
|
|
32631
|
-
<div class="inquiries-list">
|
|
32632
|
-
@for (inquiry of openInquiries(); track inquiry.id) {
|
|
32633
|
-
<ds-mobile-interactive-list-item-inquiry
|
|
32634
|
-
[title]="inquiry.title"
|
|
32635
|
-
[description]="inquiry.description"
|
|
32636
|
-
[status]="inquiry.status"
|
|
32637
|
-
[timestamp]="inquiry.timestamp"
|
|
32638
|
-
[iconName]="'remixTodoLine'"
|
|
32639
|
-
[clickable]="true"
|
|
32640
|
-
[showChevron]="false"
|
|
32641
|
-
[enableLongPress]="false"
|
|
32642
|
-
(inquiryClick)="openInquiryDetail(inquiry.id)">
|
|
32643
|
-
</ds-mobile-interactive-list-item-inquiry>
|
|
32644
|
-
}
|
|
32645
|
-
</div>
|
|
32646
|
-
</ds-mobile-section>
|
|
32647
|
-
|
|
32648
|
-
<!-- Open Inquiries Section (empty state) -->
|
|
32649
|
-
<ds-mobile-section>
|
|
32650
|
-
<div class="empty-state">
|
|
32651
|
-
<ds-mobile-illustration variant="inquiry" alt="No inquiries" />
|
|
32652
|
-
<h3 class="empty-state-title">Ingen åbne henvendelser</h3>
|
|
32653
|
-
<p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
|
|
32654
|
-
|
|
32655
|
-
<ds-button
|
|
32656
|
-
variant="secondary"
|
|
32657
|
-
trailingIcon="remixArrowRightSLine"
|
|
32658
|
-
(click)="navigateToInquiries()">
|
|
32659
|
-
Gå til henvendelser
|
|
32660
|
-
</ds-button>
|
|
32661
|
-
</div>
|
|
32662
|
-
</ds-mobile-section>
|
|
32663
|
-
</ds-mobile-page-main>
|
|
32664
|
-
} <!-- end @if (!isCoveringScreen()) -->
|
|
32800
|
+
<!-- Open Inquiries Section (empty state) -->
|
|
32801
|
+
<ds-mobile-section>
|
|
32802
|
+
<div class="empty-state">
|
|
32803
|
+
<ds-mobile-illustration variant="inquiry" alt="No inquiries" />
|
|
32804
|
+
<h3 class="empty-state-title">Ingen åbne henvendelser</h3>
|
|
32805
|
+
<p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
|
|
32665
32806
|
|
|
32666
|
-
|
|
32807
|
+
<ds-button variant="secondary" trailingIcon="remixArrowRightSLine" (click)="navigateToInquiries()"> Gå til henvendelser </ds-button>
|
|
32808
|
+
</div>
|
|
32809
|
+
</ds-mobile-section>
|
|
32810
|
+
</ds-mobile-page-main>
|
|
32811
|
+
}
|
|
32812
|
+
<!-- end @if (!isCoveringScreen()) -->
|
|
32813
|
+
`, isInline: true, styles: [".posts-list,.messages-preview-list{display:flex;flex-direction:column}.property-banner-nav{display:block;width:100%;border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.property-banner-nav:focus-visible{outline:2px solid var(--color-accent, #6b5ff5);outline-offset:2px}.inquiries-list,.services-preview-list{display:flex;flex-direction:column}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.empty-state ds-button{display:block;margin-top:16px}.empty-state ds-button::ng-deep .btn{width:100%;border-radius:9999px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.welcome-toast{padding:10px 14px;border-radius:12px;background:var(--color-background-brand-secondary, #eef0ff);display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:500;color:var(--color-accent, #6b5ff5);animation:slideDown .2s ease-out}.toast-icon{width:20px;height:20px;border-radius:50%;background:var(--color-accent, #6b5ff5);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;margin-top:1px}.welcome-toast-content{flex:1;display:flex;flex-direction:column;gap:2px}.welcome-toast-heading{font-family:Brockmann,sans-serif;font-size:14px;font-weight:600;color:var(--color-brand-content, #3b3691);margin:0}.welcome-toast-text{font-family:Brockmann,sans-serif;font-size:13px;line-height:1.4;color:var(--color-brand-content, #3b3691);margin:0;opacity:.8}.welcome-toast-text strong{font-weight:600;opacity:1}.toast-dismiss{margin-left:auto;background:none;border:none;cursor:pointer;flex-shrink:0;color:var(--color-accent, #6b5ff5);display:flex;align-items:center;justify-content:center}.home-content--animating{animation:homeReveal .3s var(--spring-curve-smooth) both}@keyframes homeReveal{0%{opacity:0;transform:translateY(128px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileIllustrationComponent, selector: "ds-mobile-illustration", inputs: ["variant", "size", "alt"] }, { kind: "component", type: DsMobilePropertyBannerComponent, selector: "ds-mobile-property-banner", inputs: ["address", "photoUrl", "tenantCount"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "align", "clickable", "enableLongPress", "moreActions"], outputs: ["postClick", "commentClick", "longPress"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "align", "clickable", "showChevron", "enableLongPress", "moreActions"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: DsMobileInteractiveListItemMessageComponent, selector: "ds-mobile-interactive-list-item-message", inputs: ["senderName", "senderRole", "timestamp", "message", "avatarInitials", "avatarType", "avatarSrc", "unread", "unreadStyle", "clickable", "align", "showAvatarBadge", "groupStackMembers", "groupCustomAvatarUrl", "groupStackExcludeParticipantId"], outputs: ["messageClick", "longPress"] }, { kind: "component", type: DsMobileInteractiveListItemServiceComponent, selector: "ds-mobile-interactive-list-item-service", inputs: ["title", "description", "logo", "showChevron"], outputs: ["serviceClick"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostActionsComponent, selector: "post-actions" }, { kind: "component", type: ActionLikeComponent, selector: "action-like", inputs: ["active", "count"], outputs: ["activeChange", "countChange", "likeClick"] }, { kind: "component", type: ActionCommentComponent, selector: "action-comment", inputs: ["count"], outputs: ["commentClick"] }] });
|
|
32667
32814
|
}
|
|
32668
32815
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHomePageComponent, decorators: [{
|
|
32669
32816
|
type: Component,
|
|
@@ -32683,7 +32830,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
32683
32830
|
PostTextComponent,
|
|
32684
32831
|
PostActionsComponent,
|
|
32685
32832
|
ActionLikeComponent,
|
|
32686
|
-
ActionCommentComponent
|
|
32833
|
+
ActionCommentComponent,
|
|
32687
32834
|
], template: `
|
|
32688
32835
|
<!-- Full-screen loading state (first entry) — rendered by layout, not here -->
|
|
32689
32836
|
|
|
@@ -32693,6 +32840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
32693
32840
|
@if (!pageLoading.isCoveringScreen()) {
|
|
32694
32841
|
<ds-mobile-page-main
|
|
32695
32842
|
class="home-content"
|
|
32843
|
+
[showNotification]="true"
|
|
32696
32844
|
[class.home-content--animating]="pageLoading.isRevealAnimation()"
|
|
32697
32845
|
[firstEntry]="pageLoading.isRevealAnimation()"
|
|
32698
32846
|
#pageComponent
|
|
@@ -32703,208 +32851,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
32703
32851
|
[avatarType]="userService.avatarType()"
|
|
32704
32852
|
(notificationClick)="handleNotificationClick()"
|
|
32705
32853
|
(refresh)="handleRefresh($event)"
|
|
32854
|
+
>
|
|
32855
|
+
<!-- Offline indicator -->
|
|
32856
|
+
@if (pageComponent.isOffline()) {
|
|
32857
|
+
<ds-mobile-offline-banner offline-indicator title="Ingen internetforbindelse" message="Nogle funktioner kan være utilgængelige"> </ds-mobile-offline-banner>
|
|
32858
|
+
}
|
|
32859
|
+
|
|
32860
|
+
<!-- Property banner → beboere (prototype IA) -->
|
|
32861
|
+
<div
|
|
32862
|
+
header-content
|
|
32863
|
+
class="property-banner-nav"
|
|
32864
|
+
role="button"
|
|
32865
|
+
tabindex="0"
|
|
32866
|
+
(click)="navigateToTenants()"
|
|
32867
|
+
(keydown.enter)="navigateToTenants()"
|
|
32868
|
+
(keydown.space)="$event.preventDefault(); navigateToTenants()"
|
|
32869
|
+
aria-label="Se beboere på ejendommen"
|
|
32706
32870
|
>
|
|
32707
|
-
|
|
32708
|
-
|
|
32709
|
-
@if (pageComponent.isOffline()) {
|
|
32710
|
-
<ds-mobile-offline-banner
|
|
32711
|
-
offline-indicator
|
|
32712
|
-
title="Ingen internetforbindelse"
|
|
32713
|
-
message="Nogle funktioner kan være utilgængelige">
|
|
32714
|
-
</ds-mobile-offline-banner>
|
|
32715
|
-
}
|
|
32716
|
-
|
|
32717
|
-
<!-- Property banner → beboere (prototype IA) -->
|
|
32718
|
-
<div
|
|
32719
|
-
header-content
|
|
32720
|
-
class="property-banner-nav"
|
|
32721
|
-
role="button"
|
|
32722
|
-
tabindex="0"
|
|
32723
|
-
(click)="navigateToTenants()"
|
|
32724
|
-
(keydown.enter)="navigateToTenants()"
|
|
32725
|
-
(keydown.space)="$event.preventDefault(); navigateToTenants()"
|
|
32726
|
-
aria-label="Se beboere på ejendommen">
|
|
32727
|
-
<ds-mobile-property-banner
|
|
32728
|
-
address="Toftegårds Allé 5A, 2. tv."
|
|
32729
|
-
photoUrl="/Assets/Dummy-photos/building.jpg"
|
|
32730
|
-
[tenantCount]="24">
|
|
32731
|
-
</ds-mobile-property-banner>
|
|
32732
|
-
</div>
|
|
32871
|
+
<ds-mobile-property-banner address="Toftegårds Allé 5A, 2. tv." photoUrl="/Assets/Dummy-photos/building.jpg" [tenantCount]="24"> </ds-mobile-property-banner>
|
|
32872
|
+
</div>
|
|
32733
32873
|
|
|
32734
|
-
|
|
32735
|
-
|
|
32736
|
-
|
|
32737
|
-
|
|
32738
|
-
|
|
32739
|
-
|
|
32740
|
-
|
|
32741
|
-
|
|
32742
|
-
|
|
32743
|
-
|
|
32744
|
-
|
|
32874
|
+
@if (familyAccessService.acceptedInviteContext(); as invite) {
|
|
32875
|
+
<ds-mobile-section [showBorder]="false" padding="20px 20px 0">
|
|
32876
|
+
<div class="welcome-toast">
|
|
32877
|
+
<div class="toast-icon">
|
|
32878
|
+
<ds-icon name="remixUserSmileLine" size="12px" />
|
|
32879
|
+
</div>
|
|
32880
|
+
<div class="welcome-toast-content">
|
|
32881
|
+
<p class="welcome-toast-heading">Du er nu familiemedlem!</p>
|
|
32882
|
+
<p class="welcome-toast-text">
|
|
32883
|
+
Tilknyttet <strong>{{ invite.propertyAddress }}</strong> via <strong>{{ invite.inviterName }}</strong>
|
|
32884
|
+
</p>
|
|
32885
|
+
</div>
|
|
32886
|
+
<button class="toast-dismiss" (click)="familyAccessService.clearAcceptedInviteContext()" aria-label="Luk">
|
|
32887
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
32888
|
+
<path d="M4 4l8 8M12 4l-8 8" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" />
|
|
32889
|
+
</svg>
|
|
32890
|
+
</button>
|
|
32745
32891
|
</div>
|
|
32746
|
-
|
|
32747
|
-
|
|
32748
|
-
|
|
32749
|
-
|
|
32750
|
-
|
|
32892
|
+
</ds-mobile-section>
|
|
32893
|
+
}
|
|
32894
|
+
|
|
32895
|
+
<!-- Recent Community Posts Section (with content) -->
|
|
32896
|
+
<ds-mobile-section headline="Seneste opslag" linkText="Se alle" (linkClick)="navigateToCommunity()">
|
|
32897
|
+
<div class="posts-list">
|
|
32898
|
+
@for (post of recentPosts(); track post.id) {
|
|
32899
|
+
<ds-mobile-interactive-list-item-post
|
|
32900
|
+
[authorName]="post.authorName"
|
|
32901
|
+
[authorRole]="post.authorRole"
|
|
32902
|
+
[timestamp]="post.timestamp"
|
|
32903
|
+
[avatarType]="post.avatarType"
|
|
32904
|
+
[avatarSrc]="post.avatarSrc || ''"
|
|
32905
|
+
[avatarInitials]="post.avatarInitials || ''"
|
|
32906
|
+
[showBadge]="post.showBadge || false"
|
|
32907
|
+
[clickable]="true"
|
|
32908
|
+
[moreActions]="true"
|
|
32909
|
+
(postClick)="openPost(post.id)"
|
|
32910
|
+
(commentClick)="openPost(post.id, true)"
|
|
32911
|
+
(longPress)="handlePostLongPress(post.id)"
|
|
32912
|
+
>
|
|
32913
|
+
<post-content>
|
|
32914
|
+
@if (post.content) {
|
|
32915
|
+
<post-text>{{ post.content }}</post-text>
|
|
32916
|
+
}
|
|
32917
|
+
</post-content>
|
|
32918
|
+
|
|
32919
|
+
<post-actions>
|
|
32920
|
+
<action-like [count]="post.likeCount" [active]="post.isLiked" />
|
|
32921
|
+
<action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
|
|
32922
|
+
</post-actions>
|
|
32923
|
+
</ds-mobile-interactive-list-item-post>
|
|
32924
|
+
}
|
|
32751
32925
|
</div>
|
|
32752
32926
|
</ds-mobile-section>
|
|
32753
|
-
}
|
|
32754
|
-
|
|
32755
|
-
<!-- Recent Community Posts Section (with content) -->
|
|
32756
|
-
<ds-mobile-section
|
|
32757
|
-
headline="Seneste opslag"
|
|
32758
|
-
linkText="Se alle"
|
|
32759
|
-
(linkClick)="navigateToCommunity()">
|
|
32760
|
-
|
|
32761
|
-
<div class="posts-list">
|
|
32762
|
-
@for (post of recentPosts(); track post.id) {
|
|
32763
|
-
<ds-mobile-interactive-list-item-post
|
|
32764
|
-
[authorName]="post.authorName"
|
|
32765
|
-
[authorRole]="post.authorRole"
|
|
32766
|
-
[timestamp]="post.timestamp"
|
|
32767
|
-
[avatarType]="post.avatarType"
|
|
32768
|
-
[avatarSrc]="post.avatarSrc || ''"
|
|
32769
|
-
[avatarInitials]="post.avatarInitials || ''"
|
|
32770
|
-
[showBadge]="post.showBadge || false"
|
|
32771
|
-
[clickable]="true"
|
|
32772
|
-
[moreActions]="true"
|
|
32773
|
-
(postClick)="openPost(post.id)"
|
|
32774
|
-
(commentClick)="openPost(post.id, true)"
|
|
32775
|
-
(longPress)="handlePostLongPress(post.id)">
|
|
32776
|
-
|
|
32777
|
-
<post-content>
|
|
32778
|
-
@if (post.content) {
|
|
32779
|
-
<post-text>{{ post.content }}</post-text>
|
|
32780
|
-
}
|
|
32781
|
-
</post-content>
|
|
32782
|
-
|
|
32783
|
-
<post-actions>
|
|
32784
|
-
<action-like [count]="post.likeCount" [active]="post.isLiked" />
|
|
32785
|
-
<action-comment [count]="post.commentCount" (commentClick)="openPost(post.id, true)" />
|
|
32786
|
-
</post-actions>
|
|
32787
|
-
</ds-mobile-interactive-list-item-post>
|
|
32788
|
-
}
|
|
32789
|
-
</div>
|
|
32790
|
-
</ds-mobile-section>
|
|
32791
32927
|
|
|
32792
|
-
|
|
32793
|
-
|
|
32794
|
-
|
|
32795
|
-
|
|
32796
|
-
|
|
32797
|
-
|
|
32798
|
-
|
|
32799
|
-
|
|
32800
|
-
|
|
32801
|
-
|
|
32802
|
-
|
|
32803
|
-
|
|
32804
|
-
|
|
32805
|
-
|
|
32806
|
-
|
|
32807
|
-
|
|
32808
|
-
|
|
32809
|
-
|
|
32810
|
-
|
|
32811
|
-
|
|
32812
|
-
|
|
32813
|
-
|
|
32814
|
-
|
|
32815
|
-
|
|
32816
|
-
|
|
32817
|
-
|
|
32818
|
-
|
|
32819
|
-
|
|
32820
|
-
|
|
32821
|
-
|
|
32822
|
-
|
|
32823
|
-
|
|
32928
|
+
<ds-mobile-section headline="Seneste beskeder" linkText="Se alle" (linkClick)="navigateToMessages()">
|
|
32929
|
+
<div class="messages-preview-list">
|
|
32930
|
+
@for (conv of recentPeerMessages(); track conv.id) {
|
|
32931
|
+
@if (isPeerGroupConversation(conv)) {
|
|
32932
|
+
<ds-mobile-interactive-list-item-message
|
|
32933
|
+
[senderName]="conv.title"
|
|
32934
|
+
[senderRole]="conv.memberIds.length + ' medlemmer'"
|
|
32935
|
+
[timestamp]="conv.timestamp"
|
|
32936
|
+
[message]="conv.lastMessage"
|
|
32937
|
+
[avatarInitials]="''"
|
|
32938
|
+
[avatarType]="'initials'"
|
|
32939
|
+
[groupStackMembers]="peerChat.resolveGroupMembers(conv)"
|
|
32940
|
+
[groupCustomAvatarUrl]="conv.customAvatarUrl ?? ''"
|
|
32941
|
+
groupStackExcludeParticipantId="me"
|
|
32942
|
+
[showAvatarBadge]="false"
|
|
32943
|
+
[unread]="conv.unread"
|
|
32944
|
+
[clickable]="true"
|
|
32945
|
+
(messageClick)="openPeerMessagePreview(conv)"
|
|
32946
|
+
>
|
|
32947
|
+
</ds-mobile-interactive-list-item-message>
|
|
32948
|
+
} @else {
|
|
32949
|
+
<ds-mobile-interactive-list-item-message
|
|
32950
|
+
[senderName]="conv.participant.name"
|
|
32951
|
+
[senderRole]="conv.participant.role ?? ''"
|
|
32952
|
+
[timestamp]="conv.timestamp"
|
|
32953
|
+
[message]="conv.lastMessage"
|
|
32954
|
+
[avatarInitials]="conv.participant.avatarInitials ?? ''"
|
|
32955
|
+
[avatarType]="conv.participant.avatarType ?? 'initials'"
|
|
32956
|
+
[showAvatarBadge]="false"
|
|
32957
|
+
[unread]="conv.unread"
|
|
32958
|
+
[clickable]="true"
|
|
32959
|
+
(messageClick)="openPeerMessagePreview(conv)"
|
|
32960
|
+
>
|
|
32961
|
+
</ds-mobile-interactive-list-item-message>
|
|
32962
|
+
}
|
|
32963
|
+
}
|
|
32964
|
+
</div>
|
|
32965
|
+
</ds-mobile-section>
|
|
32966
|
+
|
|
32967
|
+
<!-- Services preview -->
|
|
32968
|
+
@if (previewVendors().length > 0) {
|
|
32969
|
+
<ds-mobile-section headline="Services" linkText="Se alle" contentGap="0px" (linkClick)="navigateToServices()">
|
|
32970
|
+
@for (vendor of previewVendors(); track vendor.id) {
|
|
32971
|
+
<ds-mobile-interactive-list-item-service
|
|
32972
|
+
[title]="vendor.name"
|
|
32973
|
+
[description]="vendor.description || ''"
|
|
32974
|
+
[logo]="vendor.logo || ''"
|
|
32975
|
+
(serviceClick)="openVendorSheet(vendor)"
|
|
32976
|
+
/>
|
|
32977
|
+
}
|
|
32978
|
+
</ds-mobile-section>
|
|
32979
|
+
}
|
|
32980
|
+
|
|
32981
|
+
<!-- Recent Community Posts Section (empty state) -->
|
|
32982
|
+
<ds-mobile-section>
|
|
32983
|
+
<div class="empty-state">
|
|
32984
|
+
<ds-mobile-illustration variant="post" alt="No posts" />
|
|
32985
|
+
<h3 class="empty-state-title">Ingen opslag endnu</h3>
|
|
32986
|
+
<p class="empty-state-description">Der er ingen opslag i fællesområdet i øjeblikket</p>
|
|
32987
|
+
|
|
32988
|
+
<ds-button variant="secondary" trailingIcon="remixArrowRightSLine" (click)="navigateToCommunity()"> Gå til fællesområdet </ds-button>
|
|
32989
|
+
</div>
|
|
32990
|
+
</ds-mobile-section>
|
|
32991
|
+
|
|
32992
|
+
<!-- Open Inquiries Section (with content) -->
|
|
32993
|
+
<ds-mobile-section headline="Åbne henvendelser" linkText="Se alle" (linkClick)="navigateToInquiries()">
|
|
32994
|
+
<div class="inquiries-list">
|
|
32995
|
+
@for (inquiry of openInquiries(); track inquiry.id) {
|
|
32996
|
+
<ds-mobile-interactive-list-item-inquiry
|
|
32997
|
+
[title]="inquiry.title"
|
|
32998
|
+
[description]="inquiry.description"
|
|
32999
|
+
[status]="inquiry.status"
|
|
33000
|
+
[timestamp]="inquiry.timestamp"
|
|
33001
|
+
[iconName]="'remixTodoLine'"
|
|
32824
33002
|
[clickable]="true"
|
|
32825
|
-
|
|
32826
|
-
|
|
33003
|
+
[showChevron]="false"
|
|
33004
|
+
[enableLongPress]="false"
|
|
33005
|
+
(inquiryClick)="openInquiryDetail(inquiry.id)"
|
|
33006
|
+
>
|
|
33007
|
+
</ds-mobile-interactive-list-item-inquiry>
|
|
32827
33008
|
}
|
|
32828
|
-
|
|
32829
|
-
</div>
|
|
32830
|
-
</ds-mobile-section>
|
|
32831
|
-
|
|
32832
|
-
<!-- Services preview -->
|
|
32833
|
-
@if (previewVendors().length > 0) {
|
|
32834
|
-
<ds-mobile-section
|
|
32835
|
-
headline="Services"
|
|
32836
|
-
linkText="Se alle"
|
|
32837
|
-
contentGap="0px"
|
|
32838
|
-
(linkClick)="navigateToServices()">
|
|
32839
|
-
@for (vendor of previewVendors(); track vendor.id) {
|
|
32840
|
-
<ds-mobile-interactive-list-item-service
|
|
32841
|
-
[title]="vendor.name"
|
|
32842
|
-
[description]="vendor.description || ''"
|
|
32843
|
-
[logo]="vendor.logo || ''"
|
|
32844
|
-
(serviceClick)="openVendorSheet(vendor)"
|
|
32845
|
-
/>
|
|
32846
|
-
}
|
|
33009
|
+
</div>
|
|
32847
33010
|
</ds-mobile-section>
|
|
32848
|
-
}
|
|
32849
33011
|
|
|
32850
|
-
|
|
32851
|
-
|
|
32852
|
-
|
|
32853
|
-
|
|
32854
|
-
|
|
32855
|
-
|
|
32856
|
-
|
|
32857
|
-
<ds-button
|
|
32858
|
-
variant="secondary"
|
|
32859
|
-
trailingIcon="remixArrowRightSLine"
|
|
32860
|
-
(click)="navigateToCommunity()">
|
|
32861
|
-
Gå til fællesområdet
|
|
32862
|
-
</ds-button>
|
|
32863
|
-
</div>
|
|
32864
|
-
</ds-mobile-section>
|
|
32865
|
-
|
|
32866
|
-
<!-- Open Inquiries Section (with content) -->
|
|
32867
|
-
<ds-mobile-section
|
|
32868
|
-
headline="Åbne henvendelser"
|
|
32869
|
-
linkText="Se alle"
|
|
32870
|
-
(linkClick)="navigateToInquiries()">
|
|
32871
|
-
|
|
32872
|
-
<div class="inquiries-list">
|
|
32873
|
-
@for (inquiry of openInquiries(); track inquiry.id) {
|
|
32874
|
-
<ds-mobile-interactive-list-item-inquiry
|
|
32875
|
-
[title]="inquiry.title"
|
|
32876
|
-
[description]="inquiry.description"
|
|
32877
|
-
[status]="inquiry.status"
|
|
32878
|
-
[timestamp]="inquiry.timestamp"
|
|
32879
|
-
[iconName]="'remixTodoLine'"
|
|
32880
|
-
[clickable]="true"
|
|
32881
|
-
[showChevron]="false"
|
|
32882
|
-
[enableLongPress]="false"
|
|
32883
|
-
(inquiryClick)="openInquiryDetail(inquiry.id)">
|
|
32884
|
-
</ds-mobile-interactive-list-item-inquiry>
|
|
32885
|
-
}
|
|
32886
|
-
</div>
|
|
32887
|
-
</ds-mobile-section>
|
|
32888
|
-
|
|
32889
|
-
<!-- Open Inquiries Section (empty state) -->
|
|
32890
|
-
<ds-mobile-section>
|
|
32891
|
-
<div class="empty-state">
|
|
32892
|
-
<ds-mobile-illustration variant="inquiry" alt="No inquiries" />
|
|
32893
|
-
<h3 class="empty-state-title">Ingen åbne henvendelser</h3>
|
|
32894
|
-
<p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
|
|
32895
|
-
|
|
32896
|
-
<ds-button
|
|
32897
|
-
variant="secondary"
|
|
32898
|
-
trailingIcon="remixArrowRightSLine"
|
|
32899
|
-
(click)="navigateToInquiries()">
|
|
32900
|
-
Gå til henvendelser
|
|
32901
|
-
</ds-button>
|
|
32902
|
-
</div>
|
|
32903
|
-
</ds-mobile-section>
|
|
32904
|
-
</ds-mobile-page-main>
|
|
32905
|
-
} <!-- end @if (!isCoveringScreen()) -->
|
|
33012
|
+
<!-- Open Inquiries Section (empty state) -->
|
|
33013
|
+
<ds-mobile-section>
|
|
33014
|
+
<div class="empty-state">
|
|
33015
|
+
<ds-mobile-illustration variant="inquiry" alt="No inquiries" />
|
|
33016
|
+
<h3 class="empty-state-title">Ingen åbne henvendelser</h3>
|
|
33017
|
+
<p class="empty-state-description">Du har ingen åbne henvendelser i øjeblikket</p>
|
|
32906
33018
|
|
|
32907
|
-
|
|
33019
|
+
<ds-button variant="secondary" trailingIcon="remixArrowRightSLine" (click)="navigateToInquiries()"> Gå til henvendelser </ds-button>
|
|
33020
|
+
</div>
|
|
33021
|
+
</ds-mobile-section>
|
|
33022
|
+
</ds-mobile-page-main>
|
|
33023
|
+
}
|
|
33024
|
+
<!-- end @if (!isCoveringScreen()) -->
|
|
33025
|
+
`, styles: [".posts-list,.messages-preview-list{display:flex;flex-direction:column}.property-banner-nav{display:block;width:100%;border-radius:12px;cursor:pointer;-webkit-tap-highlight-color:transparent}.property-banner-nav:focus-visible{outline:2px solid var(--color-accent, #6b5ff5);outline-offset:2px}.inquiries-list,.services-preview-list{display:flex;flex-direction:column}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}.empty-state ds-button{display:block;margin-top:16px}.empty-state ds-button::ng-deep .btn{width:100%;border-radius:9999px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.welcome-toast{padding:10px 14px;border-radius:12px;background:var(--color-background-brand-secondary, #eef0ff);display:flex;align-items:flex-start;gap:10px;font-size:14px;font-weight:500;color:var(--color-accent, #6b5ff5);animation:slideDown .2s ease-out}.toast-icon{width:20px;height:20px;border-radius:50%;background:var(--color-accent, #6b5ff5);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;margin-top:1px}.welcome-toast-content{flex:1;display:flex;flex-direction:column;gap:2px}.welcome-toast-heading{font-family:Brockmann,sans-serif;font-size:14px;font-weight:600;color:var(--color-brand-content, #3b3691);margin:0}.welcome-toast-text{font-family:Brockmann,sans-serif;font-size:13px;line-height:1.4;color:var(--color-brand-content, #3b3691);margin:0;opacity:.8}.welcome-toast-text strong{font-weight:600;opacity:1}.toast-dismiss{margin-left:auto;background:none;border:none;cursor:pointer;flex-shrink:0;color:var(--color-accent, #6b5ff5);display:flex;align-items:center;justify-content:center}.home-content--animating{animation:homeReveal .3s var(--spring-curve-smooth) both}@keyframes homeReveal{0%{opacity:0;transform:translateY(128px)}to{opacity:1;transform:translateY(0)}}\n"] }]
|
|
32908
33026
|
}], ctorParameters: () => [{ type: i1$3.Router }, { type: i1.NavController }, { type: UserService }, { type: PostsService }, { type: DsMobilePostDetailModalService }, { type: TrackingPermissionService }, { type: DsMobileBottomSheetService }, { type: FamilyAccessService }, { type: PeerMessagingService }, { type: PeerChatLauncherService }, { type: DsMobileLightboxService }], propDecorators: { pageComponent: [{
|
|
32909
33027
|
type: ViewChild,
|
|
32910
33028
|
args: ['pageComponent']
|
|
@@ -33064,7 +33182,7 @@ class MobileInquiriesPageComponent {
|
|
|
33064
33182
|
ariaLabel="Create new inquiry"
|
|
33065
33183
|
(clicked)="createNewInquiry()">
|
|
33066
33184
|
</ds-mobile-fab>
|
|
33067
|
-
`, isInline: true, styles: [".inquiry-list-wrapper{display:flex;flex-direction:column;margin-top:-12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileIllustrationComponent, selector: "ds-mobile-illustration", inputs: ["variant", "size", "alt"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "align", "clickable", "showChevron", "enableLongPress", "moreActions"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: DsMobileInlineTabsComponent, selector: "ds-mobile-inline-tabs", inputs: ["tabs", "activeTab"], outputs: ["tabChange"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }] });
|
|
33185
|
+
`, isInline: true, styles: [".inquiry-list-wrapper{display:flex;flex-direction:column;margin-top:-12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileIllustrationComponent, selector: "ds-mobile-illustration", inputs: ["variant", "size", "alt"] }, { kind: "component", type: DsMobileInteractiveListItemInquiryComponent, selector: "ds-mobile-interactive-list-item-inquiry", inputs: ["title", "description", "status", "statusLabel", "timestamp", "iconName", "iconColor", "variant", "align", "clickable", "showChevron", "enableLongPress", "moreActions"], outputs: ["inquiryClick", "longPress"] }, { kind: "component", type: DsMobileInlineTabsComponent, selector: "ds-mobile-inline-tabs", inputs: ["tabs", "activeTab"], outputs: ["tabChange"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }] });
|
|
33068
33186
|
}
|
|
33069
33187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileInquiriesPageComponent, decorators: [{
|
|
33070
33188
|
type: Component,
|
|
@@ -34992,8 +35110,8 @@ class MobileTabsExampleComponent {
|
|
|
34992
35110
|
},
|
|
34993
35111
|
{
|
|
34994
35112
|
action: 'settings',
|
|
34995
|
-
title: '
|
|
34996
|
-
icon: '
|
|
35113
|
+
title: 'Notifikationer',
|
|
35114
|
+
icon: 'remixNotificationLine',
|
|
34997
35115
|
destructive: false,
|
|
34998
35116
|
},
|
|
34999
35117
|
{
|
|
@@ -36005,7 +36123,7 @@ class MobileBookingPageComponent {
|
|
|
36005
36123
|
ariaLabel="Opret facilitet"
|
|
36006
36124
|
(clicked)="openFacilityCreationModal()">
|
|
36007
36125
|
</ds-mobile-fab>
|
|
36008
|
-
`, isInline: true, styles: [".bookings-swiper-wrapper{padding:0;position:relative}.swiper-nav-buttons{display:contents}.swiper-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10}.swiper-nav-button:first-child{left:-48px}.swiper-nav-button:last-child{right:-48px}::ng-deep .swiper-nav-button button{border-radius:50%!important;width:48px!important;height:48px!important;padding:0!important}@media (max-width: 767px){.swiper-nav-buttons{display:none}}::ng-deep .bookings-swiper .swiper-slide{width:100%;max-width:600px;height:auto;pointer-events:auto}@media (min-width: 768px){::ng-deep .bookings-swiper .swiper-slide{max-width:100%}}::ng-deep .bookings-swiper .swiper-slide ds-mobile-interactive-list-item-booking{width:100%;pointer-events:auto}.booking-slide-content{position:relative;width:100%}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemBookingComponent, selector: "ds-mobile-interactive-list-item-booking", inputs: ["thumbnail", "facilityTitle", "description", "bookingDate", "bookingTime", "availabilityStatus", "statusLabel", "variant", "align", "clickable", "showChevron", "enableLongPress", "moreActions"], outputs: ["bookingClick", "longPress"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }, { kind: "component", type: DsMobileLoaderOverlayComponent, selector: "ds-mobile-loader-overlay", inputs: ["spinnerSize", "borderRadius"] }] });
|
|
36126
|
+
`, isInline: true, styles: [".bookings-swiper-wrapper{padding:0;position:relative}.swiper-nav-buttons{display:contents}.swiper-nav-button{position:absolute;top:50%;transform:translateY(-50%);z-index:10}.swiper-nav-button:first-child{left:-48px}.swiper-nav-button:last-child{right:-48px}::ng-deep .swiper-nav-button button{border-radius:50%!important;width:48px!important;height:48px!important;padding:0!important}@media (max-width: 767px){.swiper-nav-buttons{display:none}}::ng-deep .bookings-swiper .swiper-slide{width:100%;max-width:600px;height:auto;pointer-events:auto}@media (min-width: 768px){::ng-deep .bookings-swiper .swiper-slide{max-width:100%}}::ng-deep .bookings-swiper .swiper-slide ds-mobile-interactive-list-item-booking{width:100%;pointer-events:auto}.booking-slide-content{position:relative;width:100%}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemBookingComponent, selector: "ds-mobile-interactive-list-item-booking", inputs: ["thumbnail", "facilityTitle", "description", "bookingDate", "bookingTime", "availabilityStatus", "statusLabel", "variant", "align", "clickable", "showChevron", "enableLongPress", "moreActions"], outputs: ["bookingClick", "longPress"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }, { kind: "component", type: DsIconButtonComponent, selector: "ds-icon-button", inputs: ["variant", "size", "icon", "disabled", "loading", "pressed", "expanded", "ariaLabel", "tooltip", "tooltipDisabled", "tooltipPlacement"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }, { kind: "component", type: DsMobileLoaderOverlayComponent, selector: "ds-mobile-loader-overlay", inputs: ["spinnerSize", "borderRadius"] }] });
|
|
36009
36127
|
}
|
|
36010
36128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileBookingPageComponent, decorators: [{
|
|
36011
36129
|
type: Component,
|
|
@@ -37257,7 +37375,7 @@ class DsMobileInviteMemberSheetComponent {
|
|
|
37257
37375
|
</div>
|
|
37258
37376
|
</div>
|
|
37259
37377
|
</div>
|
|
37260
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.sheet-content{overflow:hidden;width:100%;flex:1;background:var(--color-background-neutral-primary, #ffffff)}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-step2{transform:translate(-50%)}.view{width:100%;display:flex;flex-direction:column}.view-container:not(.is-animating) .view:not(.active){height:0!important;overflow:hidden!important}.step-content{flex:1;overflow-y:auto;background:var(--color-background-neutral-primary, #ffffff)}.info-card{background:var(--color-background-neutral-secondary, #F5F6F8);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.info-row{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text-color-default-secondary, #545B66)}.info-row svg{flex-shrink:0;margin-top:1px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsMobileBottomSheetHeaderComponent, selector: "ds-mobile-bottom-sheet-header", inputs: ["title", "leftButtonLabel", "rightButtonLabel", "rightButtonDisabled", "rightButtonLoading", "showLeftButton", "showRightButton"], outputs: ["leftButtonClick", "rightButtonClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsTextInputComponent, selector: "ds-text-input", inputs: ["type", "label", "placeholder", "disabled", "readonly", "required", "hasError", "errorMessage", "autocomplete", "inputmode", "autoClearError", "validator"], outputs: ["valueChange", "blur", "focus", "errorCleared"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }] });
|
|
37378
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;height:100%}.sheet-content{overflow:hidden;width:100%;flex:1;background:var(--color-background-neutral-primary, #ffffff)}.view-container{display:grid;grid-template-columns:50% 50%;width:200%;transform:translate(0);transition:transform .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),opacity .15s ease-in-out;overflow:hidden}.view-container.show-step2{transform:translate(-50%)}.view{width:100%;display:flex;flex-direction:column}.view-container:not(.is-animating) .view:not(.active){height:0!important;overflow:hidden!important}.step-content{flex:1;overflow-y:auto;background:var(--color-background-neutral-primary, #ffffff)}.info-card{background:var(--color-background-neutral-secondary, #F5F6F8);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.info-row{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text-color-default-secondary, #545B66)}.info-row svg{flex-shrink:0;margin-top:1px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsMobileBottomSheetHeaderComponent, selector: "ds-mobile-bottom-sheet-header", inputs: ["title", "leftButtonLabel", "rightButtonLabel", "rightButtonDisabled", "rightButtonLoading", "showLeftButton", "showRightButton"], outputs: ["leftButtonClick", "rightButtonClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsTextInputComponent, selector: "ds-text-input", inputs: ["type", "label", "placeholder", "disabled", "readonly", "required", "hasError", "errorMessage", "autocomplete", "inputmode", "autoClearError", "validator"], outputs: ["valueChange", "blur", "focus", "errorCleared"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "email", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }] });
|
|
37261
37379
|
}
|
|
37262
37380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInviteMemberSheetComponent, decorators: [{
|
|
37263
37381
|
type: Component,
|
|
@@ -37779,7 +37897,7 @@ class AcceptInvitePageComponent {
|
|
|
37779
37897
|
</ds-mobile-section>
|
|
37780
37898
|
}
|
|
37781
37899
|
</ds-mobile-page-details>
|
|
37782
|
-
`, isInline: true, styles: [".field-group{display:flex;flex-direction:column;gap:8px}.section-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;line-height:1.4}.accept-cta{padding:8px 0 4px}.accept-cta ds-button{display:block;width:100%}.accept-cta ::ng-deep ds-button>button{width:100%;border-radius:9999px}.accept-hint{margin:10px 0 0;font-size:13px;color:var(--text-color-default-tertiary, #7C8694);text-align:center}.expired-banner{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:var(--color-background-warning-secondary, #FEF3C7)}.expired-banner__icon{width:20px;height:20px;flex-shrink:0;color:var(--color-warning-base, #D97706)}.expired-banner__text{font-family:Brockmann,sans-serif;font-size:14px;font-weight:500;line-height:1.4;color:var(--color-warning-content, #92400E);margin:0}.resend-cta{padding:8px 0 4px}.resend-cta ds-button{display:block;width:100%}.resend-cta ::ng-deep ds-button>button{width:100%;border-radius:9999px}.resend-hint{margin:10px 0 0;font-size:13px;color:var(--text-color-default-tertiary, #7C8694);text-align:center}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.success-notice{padding:14px 16px;border-radius:12px;background:var(--color-background-success-secondary, #DCFCE7);display:flex;align-items:center;gap:10px;font-family:Brockmann,sans-serif;font-size:14px;font-weight:500;color:var(--color-success-base, #158452);animation:slideDown .2s ease-out}.success-check{width:20px;height:20px;border-radius:50%;background:var(--color-success-base, #158452);display:flex;align-items:center;justify-content:center;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "editableTitle", "backRoute", "contentPadding", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll", "titleClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }] });
|
|
37900
|
+
`, isInline: true, styles: [".field-group{display:flex;flex-direction:column;gap:8px}.section-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-default-primary);margin:0;letter-spacing:-.2px;line-height:1.4}.accept-cta{padding:8px 0 4px}.accept-cta ds-button{display:block;width:100%}.accept-cta ::ng-deep ds-button>button{width:100%;border-radius:9999px}.accept-hint{margin:10px 0 0;font-size:13px;color:var(--text-color-default-tertiary, #7C8694);text-align:center}.expired-banner{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:var(--color-background-warning-secondary, #FEF3C7)}.expired-banner__icon{width:20px;height:20px;flex-shrink:0;color:var(--color-warning-base, #D97706)}.expired-banner__text{font-family:Brockmann,sans-serif;font-size:14px;font-weight:500;line-height:1.4;color:var(--color-warning-content, #92400E);margin:0}.resend-cta{padding:8px 0 4px}.resend-cta ds-button{display:block;width:100%}.resend-cta ::ng-deep ds-button>button{width:100%;border-radius:9999px}.resend-hint{margin:10px 0 0;font-size:13px;color:var(--text-color-default-tertiary, #7C8694);text-align:center}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.success-notice{padding:14px 16px;border-radius:12px;background:var(--color-background-success-secondary, #DCFCE7);display:flex;align-items:center;gap:10px;font-family:Brockmann,sans-serif;font-size:14px;font-weight:500;color:var(--color-success-base, #158452);animation:slideDown .2s ease-out}.success-check{width:20px;height:20px;border-radius:50%;background:var(--color-success-base, #158452);display:flex;align-items:center;justify-content:center;flex-shrink:0}\n"], dependencies: [{ kind: "component", type: DsButtonComponent, selector: "ds-button", inputs: ["variant", "size", "disabled", "loading", "pressed", "expanded", "leadingIcon", "trailingIcon", "ariaLabel", "iconOnly"], outputs: ["clicked", "focused", "blurred"] }, { kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "editableTitle", "backRoute", "contentPadding", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll", "titleClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileCardInlineContactComponent, selector: "ds-mobile-card-inline-contact", inputs: ["name", "initials", "imageUrl", "contactPerson", "phoneNumber", "email", "layout", "clickable", "showChevron", "showEditButton"], outputs: ["contactClick", "editClick"] }] });
|
|
37783
37901
|
}
|
|
37784
37902
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AcceptInvitePageComponent, decorators: [{
|
|
37785
37903
|
type: Component,
|
|
@@ -38013,7 +38131,7 @@ class TenantChatPageComponent {
|
|
|
38013
38131
|
ariaLabel="Vælg beboer at skrive med"
|
|
38014
38132
|
(clicked)="goToTenants()">
|
|
38015
38133
|
</ds-mobile-fab>
|
|
38016
|
-
`, isInline: true, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px;opacity:.4}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemMessageComponent, selector: "ds-mobile-interactive-list-item-message", inputs: ["senderName", "senderRole", "timestamp", "message", "avatarInitials", "avatarType", "avatarSrc", "unread", "unreadStyle", "clickable", "align", "showAvatarBadge", "groupStackMembers", "groupCustomAvatarUrl", "groupStackExcludeParticipantId"], outputs: ["messageClick", "longPress"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }] });
|
|
38134
|
+
`, isInline: true, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 20px;text-align:center}.empty-state-image{width:96px;height:96px;margin-bottom:24px;opacity:.4}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInteractiveListItemMessageComponent, selector: "ds-mobile-interactive-list-item-message", inputs: ["senderName", "senderRole", "timestamp", "message", "avatarInitials", "avatarType", "avatarSrc", "unread", "unreadStyle", "clickable", "align", "showAvatarBadge", "groupStackMembers", "groupCustomAvatarUrl", "groupStackExcludeParticipantId"], outputs: ["messageClick", "longPress"] }, { kind: "component", type: DsMobileFabComponent, selector: "ds-mobile-fab", inputs: ["icon", "position", "size", "ariaLabel", "disabled"], outputs: ["clicked"] }] });
|
|
38017
38135
|
}
|
|
38018
38136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: TenantChatPageComponent, decorators: [{
|
|
38019
38137
|
type: Component,
|
|
@@ -38270,7 +38388,7 @@ class ServicesPageComponent {
|
|
|
38270
38388
|
</ds-mobile-section>
|
|
38271
38389
|
}
|
|
38272
38390
|
</ds-mobile-page-main>
|
|
38273
|
-
`, isInline: true, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileIllustrationComponent, selector: "ds-mobile-illustration", inputs: ["variant", "size", "alt"] }, { kind: "component", type: DsMobileInteractiveListItemServiceComponent, selector: "ds-mobile-interactive-list-item-service", inputs: ["title", "description", "logo", "showChevron"], outputs: ["serviceClick"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }] });
|
|
38391
|
+
`, isInline: true, styles: [".empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary);margin-top:-16px;z-index:4}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "firstEntry", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showNotification", "notificationCount", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["notificationClick", "avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "paddingDesktop", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileIllustrationComponent, selector: "ds-mobile-illustration", inputs: ["variant", "size", "alt"] }, { kind: "component", type: DsMobileInteractiveListItemServiceComponent, selector: "ds-mobile-interactive-list-item-service", inputs: ["title", "description", "logo", "showChevron"], outputs: ["serviceClick"] }, { kind: "component", type: DsMobileOfflineBannerComponent, selector: "ds-mobile-offline-banner", inputs: ["icon", "title", "message"] }] });
|
|
38274
38392
|
}
|
|
38275
38393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ServicesPageComponent, decorators: [{
|
|
38276
38394
|
type: Component,
|
|
@@ -38325,6 +38443,122 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
38325
38443
|
args: ['pageComponent']
|
|
38326
38444
|
}] } });
|
|
38327
38445
|
|
|
38446
|
+
const PREFS = [
|
|
38447
|
+
{ key: 'messages', label: 'Beskeder', description: 'Nye beskeder fra beboere og administration' },
|
|
38448
|
+
{ key: 'bookings', label: 'Bookinger', description: 'Bekræftelser, aflysninger og påmindelser' },
|
|
38449
|
+
{ key: 'community', label: 'Fællesskab', description: 'Opslag, kommentarer og omtaler' },
|
|
38450
|
+
{ key: 'inquiries', label: 'Henvendelser', description: 'Opdateringer på dine henvendelser' },
|
|
38451
|
+
{ key: 'services', label: 'Service', description: 'Opdateringer fra serviceleverandører' },
|
|
38452
|
+
{ key: 'handbook', label: 'Håndbog', description: 'Ændringer i beboerhåndbogen' },
|
|
38453
|
+
{ key: 'system', label: 'System', description: 'Meddelelser, invitationer og familieadgang' },
|
|
38454
|
+
];
|
|
38455
|
+
class SettingsModalComponent {
|
|
38456
|
+
notificationService = inject(NotificationService);
|
|
38457
|
+
prefs = PREFS;
|
|
38458
|
+
enabledSignals = new Map(PREFS.map(p => [p.key, computed(() => this.notificationService.isPushEnabled(p.key))]));
|
|
38459
|
+
isEnabled(key) {
|
|
38460
|
+
return this.enabledSignals.get(key);
|
|
38461
|
+
}
|
|
38462
|
+
toggle(key) {
|
|
38463
|
+
const current = this.notificationService.isPushEnabled(key);
|
|
38464
|
+
this.notificationService.setPushEnabled(key, !current);
|
|
38465
|
+
Haptics.impact({ style: ImpactStyle.Light }).catch(() => {
|
|
38466
|
+
if ('vibrate' in navigator)
|
|
38467
|
+
navigator.vibrate(10);
|
|
38468
|
+
});
|
|
38469
|
+
}
|
|
38470
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
38471
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: SettingsModalComponent, isStandalone: true, selector: "app-settings-modal", ngImport: i0, template: `
|
|
38472
|
+
<ds-mobile-modal-base headerTitle="Notifikationer" [showHeader]="true">
|
|
38473
|
+
|
|
38474
|
+
<div class="settings-content">
|
|
38475
|
+
@for (pref of prefs; track pref.key; let isFirst = $first; let isLast = $last) {
|
|
38476
|
+
<ds-mobile-list-item
|
|
38477
|
+
[showDivider]="!isLast"
|
|
38478
|
+
[flushTop]="isFirst"
|
|
38479
|
+
[interactive]="true"
|
|
38480
|
+
[enableLongPress]="false"
|
|
38481
|
+
[moreActions]="false"
|
|
38482
|
+
[title]="pref.label"
|
|
38483
|
+
[subtitle]="pref.description"
|
|
38484
|
+
(itemClick)="toggle(pref.key)"
|
|
38485
|
+
>
|
|
38486
|
+
<ds-mobile-toggle
|
|
38487
|
+
content-trailing
|
|
38488
|
+
[checked]="isEnabled(pref.key)()"
|
|
38489
|
+
(changed)="toggle(pref.key)"
|
|
38490
|
+
/>
|
|
38491
|
+
</ds-mobile-list-item>
|
|
38492
|
+
}
|
|
38493
|
+
</div>
|
|
38494
|
+
|
|
38495
|
+
</ds-mobile-modal-base>
|
|
38496
|
+
`, isInline: true, styles: [".settings-content{padding:20px}\n"], dependencies: [{ kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["headerTitleInteractive", "showHeader"], outputs: ["titleClick"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "flushTop", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "moreButtonAriaLabel", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }, { kind: "component", type: DsMobileToggleComponent, selector: "ds-mobile-toggle", inputs: ["checked", "disabled"], outputs: ["checkedChange", "changed"] }] });
|
|
38497
|
+
}
|
|
38498
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsModalComponent, decorators: [{
|
|
38499
|
+
type: Component,
|
|
38500
|
+
args: [{ selector: 'app-settings-modal', standalone: true, imports: [
|
|
38501
|
+
DsMobileModalBaseComponent,
|
|
38502
|
+
DsMobileListItemComponent,
|
|
38503
|
+
DsMobileToggleComponent,
|
|
38504
|
+
], template: `
|
|
38505
|
+
<ds-mobile-modal-base headerTitle="Notifikationer" [showHeader]="true">
|
|
38506
|
+
|
|
38507
|
+
<div class="settings-content">
|
|
38508
|
+
@for (pref of prefs; track pref.key; let isFirst = $first; let isLast = $last) {
|
|
38509
|
+
<ds-mobile-list-item
|
|
38510
|
+
[showDivider]="!isLast"
|
|
38511
|
+
[flushTop]="isFirst"
|
|
38512
|
+
[interactive]="true"
|
|
38513
|
+
[enableLongPress]="false"
|
|
38514
|
+
[moreActions]="false"
|
|
38515
|
+
[title]="pref.label"
|
|
38516
|
+
[subtitle]="pref.description"
|
|
38517
|
+
(itemClick)="toggle(pref.key)"
|
|
38518
|
+
>
|
|
38519
|
+
<ds-mobile-toggle
|
|
38520
|
+
content-trailing
|
|
38521
|
+
[checked]="isEnabled(pref.key)()"
|
|
38522
|
+
(changed)="toggle(pref.key)"
|
|
38523
|
+
/>
|
|
38524
|
+
</ds-mobile-list-item>
|
|
38525
|
+
}
|
|
38526
|
+
</div>
|
|
38527
|
+
|
|
38528
|
+
</ds-mobile-modal-base>
|
|
38529
|
+
`, styles: [".settings-content{padding:20px}\n"] }]
|
|
38530
|
+
}] });
|
|
38531
|
+
|
|
38532
|
+
class SettingsModalService {
|
|
38533
|
+
modalController;
|
|
38534
|
+
constructor(modalController) {
|
|
38535
|
+
this.modalController = modalController;
|
|
38536
|
+
}
|
|
38537
|
+
async open() {
|
|
38538
|
+
const modal = await this.modalController.create({
|
|
38539
|
+
component: SettingsModalComponent,
|
|
38540
|
+
cssClass: 'ds-modal-base',
|
|
38541
|
+
mode: 'ios',
|
|
38542
|
+
presentingElement: document.querySelector('ion-router-outlet') || undefined,
|
|
38543
|
+
backdropDismiss: true,
|
|
38544
|
+
showBackdrop: true,
|
|
38545
|
+
animated: true,
|
|
38546
|
+
});
|
|
38547
|
+
await modal.present();
|
|
38548
|
+
}
|
|
38549
|
+
async close(data) {
|
|
38550
|
+
return this.modalController.dismiss(data);
|
|
38551
|
+
}
|
|
38552
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsModalService, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38553
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsModalService, providedIn: 'root' });
|
|
38554
|
+
}
|
|
38555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: SettingsModalService, decorators: [{
|
|
38556
|
+
type: Injectable,
|
|
38557
|
+
args: [{
|
|
38558
|
+
providedIn: 'root',
|
|
38559
|
+
}]
|
|
38560
|
+
}], ctorParameters: () => [{ type: i1.ModalController }] });
|
|
38561
|
+
|
|
38328
38562
|
/**
|
|
38329
38563
|
* Services Barrel File
|
|
38330
38564
|
*
|
|
@@ -38348,5 +38582,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
38348
38582
|
* Generated bundle index. Do not edit.
|
|
38349
38583
|
*/
|
|
38350
38584
|
|
|
38351
|
-
export { AcceptInvitePageComponent, ActionCommentComponent, ActionLikeComponent, AvatarUploadPageComponent, BaseModalService, ContentRowComponent, CreateAccountPageComponent, DEFAULT_SERVICE_PAGE_LABELS, DsAppIconComponent, DsAvatarWithBadgeComponent, DsLogoComponent, DsMobileAccessSheetComponent, DsMobileActionListItemComponent, DsMobileActionsBottomSheetComponent, DsMobileAddGroupTenantsModalComponent, DsMobileAppLoadingComponent, DsMobileAttachmentPreviewComponent, DsMobileBookingConfirmationWrapperComponent, DsMobileBookingModalComponent, DsMobileBookingModalService, DsMobileBookingSummaryComponent, DsMobileBottomSheetHeaderComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileCapacitySheetComponent, DsMobileCardInlineBannerComponent, DsMobileCardInlineComponent, DsMobileCardInlineContactComponent, DsMobileCardInlineFileComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileCommunityAdminPickerComponent, DsMobileCommunityAdminsModalComponent, DsMobileConfirmationSheetComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileCountBadgeComponent, DsMobileCreateGroupModalComponent, DsMobileDropdownComponent, DsMobileEditGroupModalComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileFacilityArchiveConfirmationComponent, DsMobileFacilityCreationConfirmationWrapperComponent, DsMobileFacilityCreationModalComponent, DsMobileFacilityCreationModalService, DsMobileFacilityDeleteConfirmationComponent, DsMobileFacilityDetailModalComponent, DsMobileFacilityDetailModalService, DsMobileFileAttachmentComponent, DsMobileGlassSpinnerComponent, DsMobileGroupAvatarStackComponent, DsMobileGroupMembersModalComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileIllustrationComponent, DsMobileImagePlaceholderComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemBookingComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxImageWithDescriptionComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileListSearchComponent, DsMobileLoaderOverlayComponent, DsMobileLongPressDirective, DsMobileMediaActionsPanelComponent, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobileNotificationButtonComponent, DsMobileNotificationModalComponent, DsMobileNotificationModalService, DsMobileNotificationPromptComponent, DsMobileOfflineBannerComponent, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobilePillComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobilePriceSheetComponent, DsMobileProfileActionsSheetComponent, DsMobilePromptBottomSheetComponent, DsMobilePropertyBannerComponent, DsMobileRichTextEditorComponent, DsMobileSectionComponent, DsMobileServiceVendorModalService, DsMobileServiceVendorSheetComponent, DsMobileSwiperComponent, DsMobileSwiperWithNavComponent, DsMobileSystemMessageBannerComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsMobileTenantPickerModalComponent, DsMobileWhenCanBookSheetComponent, DsMobileWhoCanBookSheetComponent, DsTextInputComponent, FamilyAccessPageComponent, FamilyAccessService, InquiriesService, InviteSuccessPageComponent, MediaPickerService, MobileBookingPageComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, NOTIFICATION_ICON_MAP, NotificationPromptService, NotificationService, PageLoadingService, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, PostsService, RelativeTimePipe, SAMPLE_NOTIFICATIONS, SectionHeaderComponent, ServicesPageComponent, SignInPageComponent, SignInToAcceptPageComponent, TenantChatPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, TrackingPermissionService, UserService, VENDOR_MODAL_SERVICE, WhitelabelDemoModalComponent, WhitelabelDemoModalService, WhitelabelService, customBackTransition, customPageTransition, dateBucket };
|
|
38585
|
+
export { AcceptInvitePageComponent, ActionCommentComponent, ActionLikeComponent, AvatarUploadPageComponent, BaseModalService, ContentRowComponent, CreateAccountPageComponent, DEFAULT_SERVICE_PAGE_LABELS, DsAppIconComponent, DsAvatarWithBadgeComponent, DsLogoComponent, DsMobileAccessSheetComponent, DsMobileActionListItemComponent, DsMobileActionsBottomSheetComponent, DsMobileAddGroupTenantsModalComponent, DsMobileAppLoadingComponent, DsMobileAttachmentPreviewComponent, DsMobileBookingConfirmationWrapperComponent, DsMobileBookingModalComponent, DsMobileBookingModalService, DsMobileBookingSummaryComponent, DsMobileBottomSheetHeaderComponent, DsMobileBottomSheetService, DsMobileBottomSheetWrapperComponent, DsMobileCapacitySheetComponent, DsMobileCardInlineBannerComponent, DsMobileCardInlineComponent, DsMobileCardInlineContactComponent, DsMobileCardInlineFileComponent, DsMobileChatModalComponent, DsMobileChatModalService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileCommunityAdminPickerComponent, DsMobileCommunityAdminsModalComponent, DsMobileConfirmationSheetComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileCountBadgeComponent, DsMobileCreateGroupModalComponent, DsMobileDropdownComponent, DsMobileEditGroupModalComponent, DsMobileEmptyStateComponent, DsMobileFabComponent, DsMobileFacilityArchiveConfirmationComponent, DsMobileFacilityCreationConfirmationWrapperComponent, DsMobileFacilityCreationModalComponent, DsMobileFacilityCreationModalService, DsMobileFacilityDeleteConfirmationComponent, DsMobileFacilityDetailModalComponent, DsMobileFacilityDetailModalService, DsMobileFileAttachmentComponent, DsMobileGlassSpinnerComponent, DsMobileGroupAvatarStackComponent, DsMobileGroupMembersModalComponent, DsMobileHandbookDetailModalComponent, DsMobileHandbookDetailModalService, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileIllustrationComponent, DsMobileImagePlaceholderComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemBookingComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxImageWithDescriptionComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileListItemStaticComponent, DsMobileListSearchComponent, DsMobileLoaderOverlayComponent, DsMobileLongPressDirective, DsMobileMediaActionsPanelComponent, DsMobileMessageBubbleComponent, DsMobileMessageComposerComponent, DsMobileModalBaseComponent, DsMobileModalService, DsMobileNewInquiryModalComponent, DsMobileNewInquiryModalService, DsMobileNotificationButtonComponent, DsMobileNotificationModalComponent, DsMobileNotificationModalService, DsMobileNotificationPromptComponent, DsMobileOfflineBannerComponent, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobilePillComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobilePriceSheetComponent, DsMobileProfileActionsSheetComponent, DsMobilePromptBottomSheetComponent, DsMobilePropertyBannerComponent, DsMobileRichTextEditorComponent, DsMobileSectionComponent, DsMobileServiceVendorModalService, DsMobileServiceVendorSheetComponent, DsMobileSwiperComponent, DsMobileSwiperWithNavComponent, DsMobileSystemMessageBannerComponent, DsMobileTabBarComponent, DsMobileTabsComponent, DsMobileTenantPickerModalComponent, DsMobileToggleComponent, DsMobileWhenCanBookSheetComponent, DsMobileWhoCanBookSheetComponent, DsTextInputComponent, FamilyAccessPageComponent, FamilyAccessService, InquiriesService, InviteSuccessPageComponent, MediaPickerService, MobileBookingPageComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobileModalBase, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, NOTIFICATION_ICON_MAP, NotificationPromptService, NotificationService, PageLoadingService, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, PostsService, RelativeTimePipe, SAMPLE_NOTIFICATIONS, SectionHeaderComponent, ServicesPageComponent, SettingsModalService, SignInPageComponent, SignInToAcceptPageComponent, TenantChatPageComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, TrackingPermissionService, UserService, VENDOR_MODAL_SERVICE, WhitelabelDemoModalComponent, WhitelabelDemoModalService, WhitelabelService, customBackTransition, customPageTransition, dateBucket };
|
|
38352
38586
|
//# sourceMappingURL=propbinder-mobile-design.mjs.map
|