@propbinder/mobile-design 0.2.48 → 0.2.52
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/assets/fonts/brockmann-mediumitalic-webfont.woff2 +0 -0
- package/assets/fonts/brockmann-regularitalic-webfont.woff2 +0 -0
- package/assets/fonts/brockmann-semibolditalic-webfont.woff2 +0 -0
- package/fesm2022/propbinder-mobile-design.mjs +91 -53
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +49 -25
- package/package.json +1 -1
- package/styles/ionic.css +25 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6350,6 +6350,14 @@ class DsMobileCommentComponent {
|
|
|
6350
6350
|
return ma;
|
|
6351
6351
|
return this.isDesktop();
|
|
6352
6352
|
}, ...(ngDevMode ? [{ debugName: "shouldShowMoreButton" }] : []));
|
|
6353
|
+
/**
|
|
6354
|
+
* Label for the reply action button
|
|
6355
|
+
*/
|
|
6356
|
+
replyLabel = input('Svar', ...(ngDevMode ? [{ debugName: "replyLabel" }] : []));
|
|
6357
|
+
/**
|
|
6358
|
+
* Label for the edit action button
|
|
6359
|
+
*/
|
|
6360
|
+
editLabel = input('Rediger', ...(ngDevMode ? [{ debugName: "editLabel" }] : []));
|
|
6353
6361
|
/**
|
|
6354
6362
|
* Whether this comment belongs to the current user
|
|
6355
6363
|
*/
|
|
@@ -6523,7 +6531,7 @@ class DsMobileCommentComponent {
|
|
|
6523
6531
|
this.longPress.emit();
|
|
6524
6532
|
}
|
|
6525
6533
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileCommentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6526
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileCommentComponent, isStandalone: true, selector: "ds-mobile-comment", inputs: { authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: true, transformFunction: null }, authorRole: { classPropertyName: "authorRole", publicName: "authorRole", isSignal: true, isRequired: true, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null }, isOwnComment: { classPropertyName: "isOwnComment", publicName: "isOwnComment", isSignal: true, isRequired: false, transformFunction: null }, isLiked: { classPropertyName: "isLiked", publicName: "isLiked", isSignal: true, isRequired: false, transformFunction: null }, likeCount: { classPropertyName: "likeCount", publicName: "likeCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { likeToggled: "likeToggled", commentClick: "commentClick", replyClick: "replyClick", editClick: "editClick", longPress: "longPress" }, host: { listeners: { "click": "handleCommentClick($event)", "touchstart": "handleTouchStart($event)", "touchend": "handleTouchEnd($event)", "touchmove": "handleTouchMove($event)", "contextmenu": "handleContextMenu($event)" }, properties: { "class.clickable": "clickable()" } }, ngImport: i0, template: `
|
|
6534
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileCommentComponent, isStandalone: true, selector: "ds-mobile-comment", inputs: { authorName: { classPropertyName: "authorName", publicName: "authorName", isSignal: true, isRequired: true, transformFunction: null }, authorRole: { classPropertyName: "authorRole", publicName: "authorRole", isSignal: true, isRequired: true, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: true, transformFunction: null }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null }, replyLabel: { classPropertyName: "replyLabel", publicName: "replyLabel", isSignal: true, isRequired: false, transformFunction: null }, editLabel: { classPropertyName: "editLabel", publicName: "editLabel", isSignal: true, isRequired: false, transformFunction: null }, isOwnComment: { classPropertyName: "isOwnComment", publicName: "isOwnComment", isSignal: true, isRequired: false, transformFunction: null }, isLiked: { classPropertyName: "isLiked", publicName: "isLiked", isSignal: true, isRequired: false, transformFunction: null }, likeCount: { classPropertyName: "likeCount", publicName: "likeCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { likeToggled: "likeToggled", commentClick: "commentClick", replyClick: "replyClick", editClick: "editClick", longPress: "longPress" }, host: { listeners: { "click": "handleCommentClick($event)", "touchstart": "handleTouchStart($event)", "touchend": "handleTouchEnd($event)", "touchmove": "handleTouchMove($event)", "contextmenu": "handleContextMenu($event)" }, properties: { "class.clickable": "clickable()" } }, ngImport: i0, template: `
|
|
6527
6535
|
<div class="avatar-wrapper">
|
|
6528
6536
|
<ds-avatar [initials]="avatarInitials()" [type]="avatarType()" size="sm" />
|
|
6529
6537
|
</div>
|
|
@@ -6553,9 +6561,9 @@ class DsMobileCommentComponent {
|
|
|
6553
6561
|
<div class="comment-text" [innerHTML]="formattedContent()"></div>
|
|
6554
6562
|
|
|
6555
6563
|
<div class="comment-actions">
|
|
6556
|
-
<div class="action-reply" (click)="handleReply()">
|
|
6564
|
+
<div class="action-reply" (click)="handleReply()">{{ replyLabel() }}</div>
|
|
6557
6565
|
@if (isOwnComment()) {
|
|
6558
|
-
<div class="action-edit" (click)="handleEdit()">
|
|
6566
|
+
<div class="action-edit" (click)="handleEdit()">{{ editLabel() }}</div>
|
|
6559
6567
|
}
|
|
6560
6568
|
</div>
|
|
6561
6569
|
</div>
|
|
@@ -6600,14 +6608,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6600
6608
|
<div class="comment-text" [innerHTML]="formattedContent()"></div>
|
|
6601
6609
|
|
|
6602
6610
|
<div class="comment-actions">
|
|
6603
|
-
<div class="action-reply" (click)="handleReply()">
|
|
6611
|
+
<div class="action-reply" (click)="handleReply()">{{ replyLabel() }}</div>
|
|
6604
6612
|
@if (isOwnComment()) {
|
|
6605
|
-
<div class="action-edit" (click)="handleEdit()">
|
|
6613
|
+
<div class="action-edit" (click)="handleEdit()">{{ editLabel() }}</div>
|
|
6606
6614
|
}
|
|
6607
6615
|
</div>
|
|
6608
6616
|
</div>
|
|
6609
6617
|
`, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ":host{display:flex;gap:12px;padding:8px;position:relative;border-radius:16px;transition:all .2s ease;background:var(--color-background-primary, #ffffff);margin-bottom:8px;margin-left:-8px;margin-right:-8px}:host:last-child{margin-bottom:0}:host:after{content:\"\";position:absolute;bottom:-4px;left:44px;right:8px;height:1px;background:var(--border-color-default)}:host:last-child:after{display:none}:host.clickable{cursor:pointer}:host.clickable:active{background:var(--color-background-neutral-primary-hover, #f5f5f5)}.avatar-wrapper{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-shrink:0}.comment-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.comment-header{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.desktop-more-button::ng-deep button{border-radius:50%!important}.action-like{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary, #737373);cursor:pointer;transition:color .2s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:18px}.like-count{opacity:1}.like-count.hidden{opacity:0}.action-like.active{color:#f91880}.icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.icon-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.icon-pulse.animating{animation:pulse .4s cubic-bezier(.4,0,.2,1)}@keyframes pulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.8}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.comment-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:22px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:pre-wrap;word-wrap:break-word}.comment-text ::ng-deep .mention{color:var(--color-accent, #6b5ff5)!important;font-weight:600}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.action-reply{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-reply:hover{color:var(--color-text-primary, #1a1a1a)}.action-edit{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-text-secondary, #737373);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color .2s ease}.action-edit:hover{color:var(--color-text-primary, #1a1a1a)}\n"] }]
|
|
6610
|
-
}], ctorParameters: () => [], propDecorators: { authorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorName", required: true }] }], authorRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], isOwnComment: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOwnComment", required: false }] }], isLiked: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLiked", required: false }] }], likeToggled: [{ type: i0.Output, args: ["likeToggled"] }], likeCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "likeCount", required: false }] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], replyClick: [{ type: i0.Output, args: ["replyClick"] }], editClick: [{ type: i0.Output, args: ["editClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
6618
|
+
}], ctorParameters: () => [], propDecorators: { authorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorName", required: true }] }], authorRole: [{ type: i0.Input, args: [{ isSignal: true, alias: "authorRole", required: true }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: true }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], replyLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "replyLabel", required: false }] }], editLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "editLabel", required: false }] }], isOwnComment: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOwnComment", required: false }] }], isLiked: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLiked", required: false }] }], likeToggled: [{ type: i0.Output, args: ["likeToggled"] }], likeCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "likeCount", required: false }] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], replyClick: [{ type: i0.Output, args: ["replyClick"] }], editClick: [{ type: i0.Output, args: ["editClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
6611
6619
|
|
|
6612
6620
|
/**
|
|
6613
6621
|
* DsMobilePostComposerComponent
|
|
@@ -14230,7 +14238,7 @@ class DsMobilePostDetailModalComponent {
|
|
|
14230
14238
|
</div>
|
|
14231
14239
|
</div>
|
|
14232
14240
|
</ds-mobile-modal-base>
|
|
14233
|
-
`, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:0;width:100%;padding:0}.post-section{width:100%;border-bottom:none;padding:0}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-accent, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-accent, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-accent, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-accent, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { 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: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { 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: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "moreActions", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileEmptyStateComponent, selector: "ds-mobile-empty-state", inputs: ["imageSrc", "imageAlt", "title", "description"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
14241
|
+
`, isInline: true, styles: [".author-details{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.author-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.author-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--color-text-tertiary, #737373);display:flex;align-items:center;gap:6px}.author-meta .separator{color:var(--color-text-tertiary, #a0a0a0)}.lightbox-context .author-name,.overlay-context .author-name{color:#fffffff2}.lightbox-context .author-meta,.overlay-context .author-meta{color:#ffffffb3}.lightbox-context .author-meta .separator,.overlay-context .author-meta .separator{color:#ffffff80}.section-headline{font-size:var(--font-size-base);font-weight:600;color:var(--text-color-default-primary);padding:16px 0;margin:0;letter-spacing:-.2px;display:flex;align-items:center;gap:6px}.empty-state-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:1.3;color:var(--text-color-default-primary, #202227);margin:0 0 8px}.empty-state-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--text-color-default-secondary, #545B66);margin:0}.ghost-input-clean ::ng-deep .ds-input,.ghost-input-clean ::ng-deep .ds-textarea,.ghost-input-clean ::ng-deep .textarea-container{outline:none!important;border:none!important}.ghost-input-clean ::ng-deep .ds-input:hover,.ghost-input-clean ::ng-deep .ds-textarea:hover,.ghost-input-clean ::ng-deep .textarea-container:hover,.ghost-input-clean ::ng-deep .ds-input:focus,.ghost-input-clean ::ng-deep .ds-textarea:focus,.ghost-input-clean ::ng-deep .textarea-container:focus,.ghost-input-clean ::ng-deep .ds-input:focus-within,.ghost-input-clean ::ng-deep .ds-textarea:focus-within,.ghost-input-clean ::ng-deep .textarea-container:focus-within{outline:none!important;border:none!important;box-shadow:none!important}.ghost-input-clean ::ng-deep textarea{outline:none!important;border:none!important;box-shadow:none!important;resize:none!important}.ghost-input-clean ::ng-deep textarea:hover,.ghost-input-clean ::ng-deep textarea:focus{outline:none!important;border:none!important;box-shadow:none!important}\n", ".post-detail-container{display:flex;flex-direction:column;gap:0;width:100%;padding:0}.post-section{width:100%;border-bottom:none;padding:0}.post-content-only{font-size:var(--font-size-sm);line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px}.post-content-only post-media{margin-top:16px}.post-actions{display:flex;align-items:center;gap:16px}.clickable-image{cursor:pointer;transition:transform .2s ease,opacity .2s ease;border-radius:8px;display:block;width:100%;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover}.clickable-image:active{transform:scale(.98);opacity:.9}.comments-section{display:flex;flex-direction:column;margin-left:0;margin-right:0;padding:0}.comments-header{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin:0 0 16px;padding-left:0;padding-right:0}.comments-list{display:flex;flex-direction:column}.comment-composer{pointer-events:auto;background:var(--color-background-neutral-primary, #ffffff);border-top:1px solid var(--border-color-default);padding:12px 16px;width:100%;display:flex;flex-direction:column;gap:8px}.edit-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-brand-subtle, #f0edfe);border-radius:8px;animation:slideDown .2s ease-out}.edit-indicator-content{display:flex;align-items:center;gap:8px;color:var(--color-accent, #6b5ff5);flex:1;min-width:0}.edit-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:18px;color:var(--color-accent, #6b5ff5)}.cancel-edit{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-accent, #6b5ff5);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-edit:active{background:var(--color-brand-subtle, #e0dbfe)}.reply-indicator{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:8px;animation:slideDown .2s ease-out}.reply-indicator-content{display:flex;align-items:center;gap:4px;color:var(--color-text-secondary, #737373);flex:1;min-width:0}.reply-to-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-author{color:var(--color-accent, #6b5ff5);font-weight:600}.cancel-reply{background:none;border:none;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #737373);border-radius:4px;transition:background .2s ease;flex-shrink:0}.cancel-reply:active{background:var(--color-background-neutral-secondary, #f5f5f5)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.composer-content{display:flex;align-items:flex-start;gap:12px;width:100%;position:relative}.composer-content ds-avatar{position:relative;top:6px}.composer-input-wrapper{flex:1;display:flex;align-items:flex-start;gap:8px;background:var(--color-background-neutral-secondary, #f5f5f5);border-radius:24px;padding:12px 48px 12px 16px;min-height:44px;position:relative}.mention-menu{position:absolute;bottom:100%;left:0;right:0;background:var(--color-background-neutral-primary, #ffffff);border-radius:12px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-height:200px;overflow-y:auto;z-index:10;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mention-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .2s ease;border-bottom:1px solid var(--border-color-default)}.mention-menu-item:last-child{border-bottom:none}.mention-menu-item:active{background:var(--color-background-neutral-secondary, #f5f5f5)}.mention-user-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.mention-user-name{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;color:var(--color-text-primary, #1a1a1a)}.mention-user-role{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:18px;color:var(--color-text-secondary, #737373)}.composer-input{flex:1;border:none;background:transparent;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);line-height:20px;color:var(--color-text-primary, #1a1a1a);outline:none;resize:none;min-height:20px;max-height:120px;overflow-y:auto;overflow-x:hidden;padding:0;margin:0}.composer-input::-moz-placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.composer-input::placeholder{color:var(--color-text-tertiary, #a0a0a0);font-size:var(--font-size-sm)}.send-button-fixed{position:absolute;top:6px;right:6px;z-index:10;flex-shrink:0;opacity:0;transform:translate(20px) scale(.8);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.send-button-fixed.show{opacity:1;transform:translate(0) scale(1);pointer-events:auto;animation:slideInFromRight var(--spring-bouncy)}@media (prefers-reduced-motion: no-preference){.send-button-fixed{transition:opacity .15s ease-in,transform .15s ease-in}}.send-button-fixed::ng-deep button{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;padding:0!important;border-radius:50%!important}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px) scale(.8)}to{opacity:1;transform:translate(0) scale(1)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { 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: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { 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: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "moreActions", "replyLabel", "editLabel", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }, { kind: "component", type: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileEmptyStateComponent, selector: "ds-mobile-empty-state", inputs: ["imageSrc", "imageAlt", "title", "description"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
14234
14242
|
}
|
|
14235
14243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePostDetailModalComponent, decorators: [{
|
|
14236
14244
|
type: Component,
|
|
@@ -16647,6 +16655,10 @@ class DsMobileBookingModalComponent {
|
|
|
16647
16655
|
* Defaults to 60 (2 months). Override via componentProps when opening the modal.
|
|
16648
16656
|
*/
|
|
16649
16657
|
daysAhead = 60;
|
|
16658
|
+
selectFromCalendarText = 'Vælg fra kalender';
|
|
16659
|
+
confirmBookingText = 'Bekræft booking';
|
|
16660
|
+
availableDates;
|
|
16661
|
+
availableTimeSlots;
|
|
16650
16662
|
swiperComponent;
|
|
16651
16663
|
// Signals for reactive state management
|
|
16652
16664
|
dateOptions = signal([], ...(ngDevMode ? [{ debugName: "dateOptions" }] : []));
|
|
@@ -16709,9 +16721,28 @@ class DsMobileBookingModalComponent {
|
|
|
16709
16721
|
};
|
|
16710
16722
|
}, ...(ngDevMode ? [{ debugName: "dateDisabledFn" }] : []));
|
|
16711
16723
|
/**
|
|
16712
|
-
* Generate mock date and time data
|
|
16724
|
+
* Generate mock date and time data or use provided available data
|
|
16713
16725
|
*/
|
|
16714
16726
|
generateMockData() {
|
|
16727
|
+
if (this.availableDates && this.availableDates.length > 0) {
|
|
16728
|
+
this.dateOptions.set(this.availableDates);
|
|
16729
|
+
const firstAvailableDate = this.availableDates.find(d => d.state !== 'disabled') || this.availableDates[0];
|
|
16730
|
+
if (firstAvailableDate) {
|
|
16731
|
+
// Ensure strictly one selected
|
|
16732
|
+
const updatedDates = this.availableDates.map(date => ({
|
|
16733
|
+
...date,
|
|
16734
|
+
state: date.id === firstAvailableDate.id ? 'selected' :
|
|
16735
|
+
(date.state === 'disabled' ? 'disabled' : 'default')
|
|
16736
|
+
}));
|
|
16737
|
+
this.dateOptions.set(updatedDates);
|
|
16738
|
+
const selectedRef = updatedDates.find(d => d.id === firstAvailableDate.id);
|
|
16739
|
+
if (selectedRef) {
|
|
16740
|
+
this.selectedDate.set(selectedRef);
|
|
16741
|
+
this.generateTimeSlots(selectedRef.fullDate, selectedRef.date);
|
|
16742
|
+
}
|
|
16743
|
+
}
|
|
16744
|
+
return;
|
|
16745
|
+
}
|
|
16715
16746
|
const dates = [];
|
|
16716
16747
|
const today = new Date();
|
|
16717
16748
|
const dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
|
|
@@ -16740,7 +16771,7 @@ class DsMobileBookingModalComponent {
|
|
|
16740
16771
|
// Set the first available date as selected and generate time slots for it
|
|
16741
16772
|
if (firstAvailableDate) {
|
|
16742
16773
|
this.selectedDate.set(firstAvailableDate);
|
|
16743
|
-
this.generateTimeSlots(firstAvailableDate.fullDate);
|
|
16774
|
+
this.generateTimeSlots(firstAvailableDate.fullDate, firstAvailableDate.date);
|
|
16744
16775
|
}
|
|
16745
16776
|
else {
|
|
16746
16777
|
// Fallback to today if no available dates
|
|
@@ -16748,9 +16779,13 @@ class DsMobileBookingModalComponent {
|
|
|
16748
16779
|
}
|
|
16749
16780
|
}
|
|
16750
16781
|
/**
|
|
16751
|
-
* Generate time slots based on selected date
|
|
16782
|
+
* Generate time slots based on selected date and dynamic available timeslots
|
|
16752
16783
|
*/
|
|
16753
|
-
generateTimeSlots(date) {
|
|
16784
|
+
generateTimeSlots(date, dateStringKey) {
|
|
16785
|
+
if (this.availableTimeSlots && dateStringKey && this.availableTimeSlots[dateStringKey]) {
|
|
16786
|
+
this.timeSlots.set(this.availableTimeSlots[dateStringKey]);
|
|
16787
|
+
return;
|
|
16788
|
+
}
|
|
16754
16789
|
const slots = [];
|
|
16755
16790
|
const currentHour = new Date().getHours();
|
|
16756
16791
|
const isToday = date.toDateString() === new Date().toDateString();
|
|
@@ -16789,7 +16824,7 @@ class DsMobileBookingModalComponent {
|
|
|
16789
16824
|
this.dateOptions.set(updatedDates);
|
|
16790
16825
|
this.selectedDate.set(selectedDate);
|
|
16791
16826
|
// Regenerate time slots for the selected date
|
|
16792
|
-
this.generateTimeSlots(selectedDate.fullDate);
|
|
16827
|
+
this.generateTimeSlots(selectedDate.fullDate, selectedDate.date);
|
|
16793
16828
|
// Reset time selection
|
|
16794
16829
|
this.selectedTimeSlot.set(null);
|
|
16795
16830
|
}
|
|
@@ -16851,7 +16886,7 @@ class DsMobileBookingModalComponent {
|
|
|
16851
16886
|
await this.modalController.dismiss(null, 'cancel');
|
|
16852
16887
|
}
|
|
16853
16888
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileBookingModalComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component });
|
|
16854
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileBookingModalComponent, isStandalone: true, selector: "ds-mobile-booking-modal", inputs: { facilityId: "facilityId", facilityTitle: "facilityTitle", daysAhead: "daysAhead" }, viewQueries: [{ propertyName: "swiperComponent", first: true, predicate: DsMobileSwiperComponent, descendants: true }], ngImport: i0, template: `
|
|
16889
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileBookingModalComponent, isStandalone: true, selector: "ds-mobile-booking-modal", inputs: { facilityId: "facilityId", facilityTitle: "facilityTitle", daysAhead: "daysAhead", selectFromCalendarText: "selectFromCalendarText", confirmBookingText: "confirmBookingText", availableDates: "availableDates", availableTimeSlots: "availableTimeSlots" }, viewQueries: [{ propertyName: "swiperComponent", first: true, predicate: DsMobileSwiperComponent, descendants: true }], ngImport: i0, template: `
|
|
16855
16890
|
<ds-mobile-modal-base
|
|
16856
16891
|
headerTitle="Hvornår skal det være?"
|
|
16857
16892
|
[showCloseButton]="true"
|
|
@@ -16865,7 +16900,7 @@ class DsMobileBookingModalComponent {
|
|
|
16865
16900
|
[isDateDisabled]="dateDisabledFn()"
|
|
16866
16901
|
(dateChange)="jumpToDate($event)">
|
|
16867
16902
|
<span class="calendar-link">
|
|
16868
|
-
|
|
16903
|
+
{{ selectFromCalendarText }}
|
|
16869
16904
|
<ds-icon name="remixArrowRightSLine" size="16px" />
|
|
16870
16905
|
</span>
|
|
16871
16906
|
</ds-datepicker>
|
|
@@ -16919,7 +16954,7 @@ class DsMobileBookingModalComponent {
|
|
|
16919
16954
|
[disabled]="!canConfirm()"
|
|
16920
16955
|
[loading]="isConfirming()"
|
|
16921
16956
|
(clicked)="handleConfirm()">
|
|
16922
|
-
|
|
16957
|
+
{{ confirmBookingText }}
|
|
16923
16958
|
</ds-button>
|
|
16924
16959
|
</div>
|
|
16925
16960
|
</ds-mobile-modal-base>
|
|
@@ -16949,7 +16984,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16949
16984
|
[isDateDisabled]="dateDisabledFn()"
|
|
16950
16985
|
(dateChange)="jumpToDate($event)">
|
|
16951
16986
|
<span class="calendar-link">
|
|
16952
|
-
|
|
16987
|
+
{{ selectFromCalendarText }}
|
|
16953
16988
|
<ds-icon name="remixArrowRightSLine" size="16px" />
|
|
16954
16989
|
</span>
|
|
16955
16990
|
</ds-datepicker>
|
|
@@ -17003,7 +17038,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17003
17038
|
[disabled]="!canConfirm()"
|
|
17004
17039
|
[loading]="isConfirming()"
|
|
17005
17040
|
(clicked)="handleConfirm()">
|
|
17006
|
-
|
|
17041
|
+
{{ confirmBookingText }}
|
|
17007
17042
|
</ds-button>
|
|
17008
17043
|
</div>
|
|
17009
17044
|
</ds-mobile-modal-base>
|
|
@@ -17014,6 +17049,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17014
17049
|
type: Input
|
|
17015
17050
|
}], daysAhead: [{
|
|
17016
17051
|
type: Input
|
|
17052
|
+
}], selectFromCalendarText: [{
|
|
17053
|
+
type: Input
|
|
17054
|
+
}], confirmBookingText: [{
|
|
17055
|
+
type: Input
|
|
17056
|
+
}], availableDates: [{
|
|
17057
|
+
type: Input
|
|
17058
|
+
}], availableTimeSlots: [{
|
|
17059
|
+
type: Input
|
|
17017
17060
|
}], swiperComponent: [{
|
|
17018
17061
|
type: ViewChild,
|
|
17019
17062
|
args: [DsMobileSwiperComponent]
|
|
@@ -17237,22 +17280,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17237
17280
|
type: Input
|
|
17238
17281
|
}] } });
|
|
17239
17282
|
|
|
17240
|
-
/**
|
|
17241
|
-
* DsMobileBookingModalService
|
|
17242
|
-
*
|
|
17243
|
-
* Service for managing the booking modal flow:
|
|
17244
|
-
* 1. Opens the booking modal for date/time selection
|
|
17245
|
-
* 2. On confirmation, opens the confirmation bottom sheet
|
|
17246
|
-
*
|
|
17247
|
-
* @example
|
|
17248
|
-
* ```typescript
|
|
17249
|
-
* constructor(private bookingModalService: DsMobileBookingModalService) {}
|
|
17250
|
-
*
|
|
17251
|
-
* async openBooking() {
|
|
17252
|
-
* await this.bookingModalService.open('facility-1', 'Boremaskinen');
|
|
17253
|
-
* }
|
|
17254
|
-
* ```
|
|
17255
|
-
*/
|
|
17256
17283
|
class DsMobileBookingModalService extends BaseModalService {
|
|
17257
17284
|
constructor(modalController) {
|
|
17258
17285
|
super(modalController);
|
|
@@ -17260,18 +17287,25 @@ class DsMobileBookingModalService extends BaseModalService {
|
|
|
17260
17287
|
/**
|
|
17261
17288
|
* Open the booking modal for a facility
|
|
17262
17289
|
*
|
|
17263
|
-
* @param
|
|
17264
|
-
* @param facilityTitle The display name of the facility
|
|
17265
|
-
* @param facilityThumbnail Optional thumbnail image URL
|
|
17266
|
-
* @param daysAhead Number of days ahead available for selection (defaults to 14)
|
|
17290
|
+
* @param options The booking modal options including dynamic data and texts
|
|
17267
17291
|
* @returns Promise that resolves when the booking flow is complete
|
|
17268
17292
|
*/
|
|
17269
|
-
async open(
|
|
17270
|
-
const
|
|
17271
|
-
facilityId,
|
|
17272
|
-
facilityTitle,
|
|
17273
|
-
|
|
17274
|
-
|
|
17293
|
+
async open(options) {
|
|
17294
|
+
const componentProps = {
|
|
17295
|
+
facilityId: options.facilityId,
|
|
17296
|
+
facilityTitle: options.facilityTitle,
|
|
17297
|
+
};
|
|
17298
|
+
if (options.daysAhead !== undefined)
|
|
17299
|
+
componentProps.daysAhead = options.daysAhead;
|
|
17300
|
+
if (options.availableDates !== undefined)
|
|
17301
|
+
componentProps.availableDates = options.availableDates;
|
|
17302
|
+
if (options.availableTimeSlots !== undefined)
|
|
17303
|
+
componentProps.availableTimeSlots = options.availableTimeSlots;
|
|
17304
|
+
if (options.labels?.selectFromCalendar)
|
|
17305
|
+
componentProps.selectFromCalendarText = options.labels.selectFromCalendar;
|
|
17306
|
+
if (options.labels?.confirmBooking)
|
|
17307
|
+
componentProps.confirmBookingText = options.labels.confirmBooking;
|
|
17308
|
+
const modal = await this.createModal(DsMobileBookingModalComponent, componentProps, { keyboardClose: true });
|
|
17275
17309
|
await modal.present();
|
|
17276
17310
|
const result = await modal.onWillDismiss();
|
|
17277
17311
|
// If user confirmed the booking, dismiss all modals and show confirmation sheet
|
|
@@ -17279,7 +17313,7 @@ class DsMobileBookingModalService extends BaseModalService {
|
|
|
17279
17313
|
// Dismiss all open modals (booking modal + facility detail modal)
|
|
17280
17314
|
await this.dismissAllModals();
|
|
17281
17315
|
// Show confirmation sheet after all modals are dismissed
|
|
17282
|
-
await this.openConfirmationSheet(result.data, facilityThumbnail);
|
|
17316
|
+
await this.openConfirmationSheet(result.data, options.facilityThumbnail);
|
|
17283
17317
|
}
|
|
17284
17318
|
}
|
|
17285
17319
|
/**
|
|
@@ -19128,7 +19162,11 @@ class DsMobileFacilityDetailModalComponent {
|
|
|
19128
19162
|
* Opens the booking modal for date/time selection
|
|
19129
19163
|
*/
|
|
19130
19164
|
async handleBookNow() {
|
|
19131
|
-
await this.bookingModalService.open(
|
|
19165
|
+
await this.bookingModalService.open({
|
|
19166
|
+
facilityId: this.facilityData.id,
|
|
19167
|
+
facilityTitle: this.facilityData.facilityTitle,
|
|
19168
|
+
facilityThumbnail: this.facilityData.heroImage
|
|
19169
|
+
});
|
|
19132
19170
|
}
|
|
19133
19171
|
/**
|
|
19134
19172
|
* Close the modal
|
|
@@ -19637,7 +19675,7 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
19637
19675
|
@for (item of getDisplayItems(); track item.title + $index) {
|
|
19638
19676
|
<ds-mobile-section [headline]="item.title || ''" contentGap="20px">
|
|
19639
19677
|
@if (item.description) {
|
|
19640
|
-
<
|
|
19678
|
+
<div class="item-description" [innerHTML]="item.description"></div>
|
|
19641
19679
|
}
|
|
19642
19680
|
|
|
19643
19681
|
<!-- Images -->
|
|
@@ -19694,7 +19732,7 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
19694
19732
|
</ds-mobile-section>
|
|
19695
19733
|
}
|
|
19696
19734
|
</ds-mobile-modal-base>
|
|
19697
|
-
`, 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:20px;color:var(--color-text-primary, #1a1a1a);margin: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", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron"], outputs: ["contactClick"] }, { 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: ["showHeader"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
19735
|
+
`, 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", "contactPerson", "phoneNumber", "layout", "clickable", "showChevron"], outputs: ["contactClick"] }, { 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: ["showHeader"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
19698
19736
|
}
|
|
19699
19737
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileHandbookDetailModalComponent, decorators: [{
|
|
19700
19738
|
type: Component,
|
|
@@ -19717,7 +19755,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
19717
19755
|
@for (item of getDisplayItems(); track item.title + $index) {
|
|
19718
19756
|
<ds-mobile-section [headline]="item.title || ''" contentGap="20px">
|
|
19719
19757
|
@if (item.description) {
|
|
19720
|
-
<
|
|
19758
|
+
<div class="item-description" [innerHTML]="item.description"></div>
|
|
19721
19759
|
}
|
|
19722
19760
|
|
|
19723
19761
|
<!-- Images -->
|
|
@@ -19774,7 +19812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
19774
19812
|
</ds-mobile-section>
|
|
19775
19813
|
}
|
|
19776
19814
|
</ds-mobile-modal-base>
|
|
19777
|
-
`, 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:20px;color:var(--color-text-primary, #1a1a1a);margin: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"] }]
|
|
19815
|
+
`, 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"] }]
|
|
19778
19816
|
}], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { handbookData: [{
|
|
19779
19817
|
type: Input
|
|
19780
19818
|
}], loading: [{
|
|
@@ -21992,7 +22030,7 @@ class MobileHandbookPageComponent {
|
|
|
21992
22030
|
utilitiesItems = [
|
|
21993
22031
|
{
|
|
21994
22032
|
title: 'El',
|
|
21995
|
-
description: 'Hovedeltavle placeret i kælderrum B-12
|
|
22033
|
+
description: '<p>Hovedeltavle placeret i <strong>kælderrum B-12</strong>. Nødafbryderknap er ved hovedindgangen. Alle kredsløb er mærket.</p><p><em>Bemærk: Der må ikke foretages ændringer på eltavlen uden tilladelse fra ejendomsadministrationen.</em></p><p>Ved <u>strømsvigt</u> kontakt venligst ElektroTek ApS på nedenstående nummer.</p>',
|
|
21996
22034
|
contacts: [
|
|
21997
22035
|
{
|
|
21998
22036
|
name: 'ElektroTek ApS',
|
|
@@ -22009,7 +22047,7 @@ class MobileHandbookPageComponent {
|
|
|
22009
22047
|
},
|
|
22010
22048
|
{
|
|
22011
22049
|
title: 'Vandforsyning',
|
|
22012
|
-
description: 'Hovedvandhane er placeret i kælderens tekniske rum
|
|
22050
|
+
description: '<p>Hovedvandhane er placeret i kælderens <strong>tekniske rum</strong>. Individuelle lejlighedsafspærringer er i gangpanelerne.</p><p>Vandtryk overvåges <em>automatisk</em> af bygningens system.</p><p><strong><em>Vigtigt:</em></strong> Ved vandskade, luk <u>straks</u> for hovedvandhanen og kontakt VVS Hansen.</p>',
|
|
22013
22051
|
contacts: [
|
|
22014
22052
|
{
|
|
22015
22053
|
name: 'VVS Hansen',
|
|
@@ -22021,7 +22059,7 @@ class MobileHandbookPageComponent {
|
|
|
22021
22059
|
},
|
|
22022
22060
|
{
|
|
22023
22061
|
title: 'Varmesystem',
|
|
22024
|
-
description: 'Fjernvarmetilslutning i kælder. Termostater i hver enhed kan justeres individuelt
|
|
22062
|
+
description: '<p>Fjernvarmetilslutning i kælder. Termostater i hver enhed kan justeres individuelt.</p><p>Systemet vedligeholdes <strong>kvartalsvis</strong> af certificerede teknikere.</p><p><em>Tip: Sæt termostaten til 21°C for optimal komfort og energibesparelse.</em></p>',
|
|
22025
22063
|
contacts: [
|
|
22026
22064
|
{
|
|
22027
22065
|
name: 'Varme Service A/S',
|
|
@@ -25682,7 +25720,7 @@ class MobilePostDetailPageComponent {
|
|
|
25682
25720
|
</div>
|
|
25683
25721
|
</div>
|
|
25684
25722
|
</ds-mobile-page-details>
|
|
25685
|
-
`, isInline: true, styles: [".post-detail-container{display:flex;flex-direction:column;gap:16px;max-width:640px}.post-section{border-bottom:1px solid var(--border-color-default);padding-bottom:16px}.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}.comments-section{display:flex;flex-direction:column;margin-left:-8px;margin-right:-8px}.comments-header{font-family:Brockmann,sans-serif;font-size:18px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px;padding-left:8px;padding-right:8px}.comments-list{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "backRoute", "contentPadding", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll"] }, { 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: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { 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: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "moreActions", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }] });
|
|
25723
|
+
`, isInline: true, styles: [".post-detail-container{display:flex;flex-direction:column;gap:16px;max-width:640px}.post-section{border-bottom:1px solid var(--border-color-default);padding-bottom:16px}.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}.comments-section{display:flex;flex-direction:column;margin-left:-8px;margin-right:-8px}.comments-header{font-family:Brockmann,sans-serif;font-size:18px;font-weight:600;line-height:24px;color:var(--color-text-primary, #1a1a1a);margin-bottom:16px;padding-left:8px;padding-right:8px}.comments-list{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: DsMobilePageDetailsComponent, selector: "ds-mobile-page-details", inputs: ["title", "backRoute", "contentPadding", "tabs", "activeTab", "showRefresh", "scrollThreshold", "headerFadeDistance"], outputs: ["back", "tabChange", "refresh", "scroll"] }, { 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: PostContentComponent, selector: "post-content" }, { kind: "component", type: PostTextComponent, selector: "post-text" }, { kind: "component", type: PostMediaComponent, selector: "post-media" }, { 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: DsMobileCommentComponent, selector: "ds-mobile-comment", inputs: ["authorName", "authorRole", "timestamp", "content", "avatarInitials", "avatarType", "clickable", "moreActions", "replyLabel", "editLabel", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }] });
|
|
25686
25724
|
}
|
|
25687
25725
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobilePostDetailPageComponent, decorators: [{
|
|
25688
25726
|
type: Component,
|