@propbinder/mobile-design 0.2.46 → 0.2.48
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 +608 -311
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +122 -24
- package/package.json +1 -1
- package/styles/ionic.css +26 -7
- package/styles/mobile-page-base.css +4 -6
|
@@ -663,6 +663,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
663
663
|
type: Input
|
|
664
664
|
}] } });
|
|
665
665
|
|
|
666
|
+
/**
|
|
667
|
+
* DsMobileLoaderOverlayComponent
|
|
668
|
+
*
|
|
669
|
+
* Reusable loader overlay component that displays a spinner centered over its container.
|
|
670
|
+
* Designed to overlay images or other content during loading states.
|
|
671
|
+
*
|
|
672
|
+
* Features:
|
|
673
|
+
* - Semi-transparent white background overlay
|
|
674
|
+
* - Centered animated spinner
|
|
675
|
+
* - Customizable spinner size
|
|
676
|
+
* - Absolute positioning to cover parent
|
|
677
|
+
* - Accessible with proper z-index stacking
|
|
678
|
+
*
|
|
679
|
+
* @example
|
|
680
|
+
* ```html
|
|
681
|
+
* <!-- Basic usage -->
|
|
682
|
+
* <div style="position: relative;">
|
|
683
|
+
* <img src="image.jpg" alt="Content" />
|
|
684
|
+
* @if (isLoading) {
|
|
685
|
+
* <ds-mobile-loader-overlay />
|
|
686
|
+
* }
|
|
687
|
+
* </div>
|
|
688
|
+
*
|
|
689
|
+
* <!-- With custom spinner size -->
|
|
690
|
+
* <div style="position: relative;">
|
|
691
|
+
* <div class="content">Loading content...</div>
|
|
692
|
+
* <ds-mobile-loader-overlay [spinnerSize]="32" />
|
|
693
|
+
* </div>
|
|
694
|
+
*
|
|
695
|
+
* <!-- Over an image with rounded corners -->
|
|
696
|
+
* <div style="position: relative; border-radius: 12px; overflow: hidden;">
|
|
697
|
+
* <img src="photo.jpg" />
|
|
698
|
+
* <ds-mobile-loader-overlay [borderRadius]="12" />
|
|
699
|
+
* </div>
|
|
700
|
+
* ```
|
|
701
|
+
*
|
|
702
|
+
* @notes
|
|
703
|
+
* - Parent container must have position: relative for the overlay to work correctly
|
|
704
|
+
* - The overlay covers the entire parent element using inset: 0
|
|
705
|
+
* - Spinner animation runs continuously at 0.6s per rotation
|
|
706
|
+
*/
|
|
707
|
+
class DsMobileLoaderOverlayComponent {
|
|
708
|
+
/**
|
|
709
|
+
* Size of the spinner in pixels
|
|
710
|
+
* @default 24
|
|
711
|
+
*/
|
|
712
|
+
spinnerSize = input(24, ...(ngDevMode ? [{ debugName: "spinnerSize" }] : []));
|
|
713
|
+
/**
|
|
714
|
+
* Border radius of the overlay in pixels (should match parent's border radius)
|
|
715
|
+
* @default 0
|
|
716
|
+
*/
|
|
717
|
+
borderRadius = input(0, ...(ngDevMode ? [{ debugName: "borderRadius" }] : []));
|
|
718
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileLoaderOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
719
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: DsMobileLoaderOverlayComponent, isStandalone: true, selector: "ds-mobile-loader-overlay", inputs: { spinnerSize: { classPropertyName: "spinnerSize", publicName: "spinnerSize", isSignal: true, isRequired: false, transformFunction: null }, borderRadius: { classPropertyName: "borderRadius", publicName: "borderRadius", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
720
|
+
<div
|
|
721
|
+
class="loader-overlay"
|
|
722
|
+
[style.border-radius.px]="borderRadius()"
|
|
723
|
+
role="status"
|
|
724
|
+
aria-live="polite"
|
|
725
|
+
aria-label="Loading">
|
|
726
|
+
<div
|
|
727
|
+
class="spinner"
|
|
728
|
+
[style.width.px]="spinnerSize()"
|
|
729
|
+
[style.height.px]="spinnerSize()">
|
|
730
|
+
</div>
|
|
731
|
+
</div>
|
|
732
|
+
`, isInline: true, styles: [":host{display:contents}.loader-overlay{position:absolute;inset:0;background:var(--color-background-neutral-primary, #ffffff);display:flex;align-items:center;justify-content:center;z-index:100}.spinner{border:2px solid var(--color-border-neutral-secondary, #E5E5E5);border-top-color:var(--color-accent, #6B5FF5);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.spinner{border-color:#fff3;border-top-color:var(--color-accent, #6B5FF5)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
733
|
+
}
|
|
734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileLoaderOverlayComponent, decorators: [{
|
|
735
|
+
type: Component,
|
|
736
|
+
args: [{ selector: 'ds-mobile-loader-overlay', standalone: true, imports: [CommonModule], template: `
|
|
737
|
+
<div
|
|
738
|
+
class="loader-overlay"
|
|
739
|
+
[style.border-radius.px]="borderRadius()"
|
|
740
|
+
role="status"
|
|
741
|
+
aria-live="polite"
|
|
742
|
+
aria-label="Loading">
|
|
743
|
+
<div
|
|
744
|
+
class="spinner"
|
|
745
|
+
[style.width.px]="spinnerSize()"
|
|
746
|
+
[style.height.px]="spinnerSize()">
|
|
747
|
+
</div>
|
|
748
|
+
</div>
|
|
749
|
+
`, styles: [":host{display:contents}.loader-overlay{position:absolute;inset:0;background:var(--color-background-neutral-primary, #ffffff);display:flex;align-items:center;justify-content:center;z-index:100}.spinner{border:2px solid var(--color-border-neutral-secondary, #E5E5E5);border-top-color:var(--color-accent, #6B5FF5);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.spinner{border-color:#fff3;border-top-color:var(--color-accent, #6B5FF5)}}\n"] }]
|
|
750
|
+
}], propDecorators: { spinnerSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "spinnerSize", required: false }] }], borderRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "borderRadius", required: false }] }] } });
|
|
751
|
+
|
|
666
752
|
/**
|
|
667
753
|
* MobilePageBase
|
|
668
754
|
*
|
|
@@ -682,6 +768,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
682
768
|
* @internal This is a base class and should not be used directly.
|
|
683
769
|
*/
|
|
684
770
|
class MobilePageBase {
|
|
771
|
+
/**
|
|
772
|
+
* Shows a loading overlay above page content area.
|
|
773
|
+
*
|
|
774
|
+
* Non-breaking: defaults to false, so existing pages are unchanged
|
|
775
|
+
* until they explicitly opt in.
|
|
776
|
+
*/
|
|
777
|
+
contentLoading = input(false, ...(ngDevMode ? [{ debugName: "contentLoading" }] : []));
|
|
685
778
|
/**
|
|
686
779
|
* Maximum content width (desktop only)
|
|
687
780
|
*
|
|
@@ -827,11 +920,11 @@ class MobilePageBase {
|
|
|
827
920
|
window.removeEventListener('offline', this.handleOffline);
|
|
828
921
|
}
|
|
829
922
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobilePageBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
830
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: MobilePageBase, isStandalone: true, inputs: { contentWidth: { classPropertyName: "contentWidth", publicName: "contentWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
923
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: MobilePageBase, isStandalone: true, inputs: { contentLoading: { classPropertyName: "contentLoading", publicName: "contentLoading", isSignal: true, isRequired: false, transformFunction: null }, contentWidth: { classPropertyName: "contentWidth", publicName: "contentWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
831
924
|
}
|
|
832
925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobilePageBase, decorators: [{
|
|
833
926
|
type: Directive
|
|
834
|
-
}], propDecorators: { contentWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentWidth", required: false }] }] } });
|
|
927
|
+
}], propDecorators: { contentLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentLoading", required: false }] }], contentWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentWidth", required: false }] }] } });
|
|
835
928
|
|
|
836
929
|
/**
|
|
837
930
|
* DsMobileLongPressDirective
|
|
@@ -1187,11 +1280,27 @@ class DsMobileListItemComponent {
|
|
|
1187
1280
|
enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
|
|
1188
1281
|
/**
|
|
1189
1282
|
* Show "more actions" button on desktop for items with long-press enabled
|
|
1190
|
-
*
|
|
1191
|
-
* Clicking this button triggers the same handler as long-press on mobile
|
|
1283
|
+
* @deprecated Use `moreActions` instead. Kept for backwards compatibility.
|
|
1192
1284
|
* @default true
|
|
1193
1285
|
*/
|
|
1194
1286
|
showDesktopMoreButton = input(true, ...(ngDevMode ? [{ debugName: "showDesktopMoreButton" }] : []));
|
|
1287
|
+
/**
|
|
1288
|
+
* Unified toggle for contextual actions (more button + long press).
|
|
1289
|
+
* - `true` — more button visible on **all** breakpoints, long press enabled
|
|
1290
|
+
* - `false` — more button hidden, long press suppressed
|
|
1291
|
+
* - `undefined` (default) — falls back to legacy `enableLongPress` + `showDesktopMoreButton` + desktop check
|
|
1292
|
+
*/
|
|
1293
|
+
moreActions = input(undefined, ...(ngDevMode ? [{ debugName: "moreActions" }] : []));
|
|
1294
|
+
/**
|
|
1295
|
+
* Resolved visibility of the more-actions button.
|
|
1296
|
+
* When `moreActions` is set it takes precedence; otherwise legacy inputs + breakpoint apply.
|
|
1297
|
+
*/
|
|
1298
|
+
shouldShowMoreButton = computed(() => {
|
|
1299
|
+
const ma = this.moreActions();
|
|
1300
|
+
if (ma !== undefined)
|
|
1301
|
+
return ma;
|
|
1302
|
+
return this.enableLongPress() && this.showDesktopMoreButton() && this.isDesktop();
|
|
1303
|
+
}, ...(ngDevMode ? [{ debugName: "shouldShowMoreButton" }] : []));
|
|
1195
1304
|
/**
|
|
1196
1305
|
* Offset distance for the interactive background pseudo-element
|
|
1197
1306
|
* Extends the background beyond the content bounds
|
|
@@ -1296,8 +1405,9 @@ class DsMobileListItemComponent {
|
|
|
1296
1405
|
* Set the flag to prevent the subsequent click event
|
|
1297
1406
|
*/
|
|
1298
1407
|
handleLongPress() {
|
|
1408
|
+
if (this.moreActions() === false)
|
|
1409
|
+
return;
|
|
1299
1410
|
this.longPressTriggered = true;
|
|
1300
|
-
// Reset the flag after a short delay to allow for the next interaction
|
|
1301
1411
|
setTimeout(() => {
|
|
1302
1412
|
this.longPressTriggered = false;
|
|
1303
1413
|
}, 100);
|
|
@@ -1316,7 +1426,7 @@ class DsMobileListItemComponent {
|
|
|
1316
1426
|
this.moreButtonClick.emit(event);
|
|
1317
1427
|
}
|
|
1318
1428
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1319
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileListItemComponent, isStandalone: true, selector: "ds-mobile-list-item", inputs: { leadingSize: { classPropertyName: "leadingSize", publicName: "leadingSize", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null }, showDesktopMoreButton: { classPropertyName: "showDesktopMoreButton", publicName: "showDesktopMoreButton", isSignal: true, isRequired: false, transformFunction: null }, interactiveOffset: { classPropertyName: "interactiveOffset", publicName: "interactiveOffset", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null }, dividerSpacing: { classPropertyName: "dividerSpacing", publicName: "dividerSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", moreButtonClick: "moreButtonClick" }, host: { listeners: { "click": "handleClick($event)", "keydown.enter": "handleKeyDown($event)", "keydown.space": "handleKeyDown($event)", "longPress": "handleLongPress()" }, properties: { "class.interactive": "interactive() && !disabled()", "class.disabled": "disabled()", "class.loading": "loading()", "class.no-divider": "!showDivider()", "class.no-leading-content": "!hasLeadingContent()", "class.variant-compact": "variant() === \"compact\"", "class.align-top": "align() === \"top\"", "class.align-center": "align() === \"center\"", "class.align-bottom": "align() === \"bottom\"", "attr.role": "interactive() ? \"button\" : null", "attr.tabindex": "interactive() && !disabled() ? \"0\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "style.--leading-size": "leadingSize()", "style.--interactive-offset": "interactiveOffset()", "style.--divider-spacing": "dividerSpacing()" } }, hostDirectives: [{ directive: DsMobileLongPressDirective, outputs: ["longPress", "longPress"] }], ngImport: i0, template: `
|
|
1429
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileListItemComponent, isStandalone: true, selector: "ds-mobile-list-item", inputs: { leadingSize: { classPropertyName: "leadingSize", publicName: "leadingSize", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null }, showDesktopMoreButton: { classPropertyName: "showDesktopMoreButton", publicName: "showDesktopMoreButton", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null }, interactiveOffset: { classPropertyName: "interactiveOffset", publicName: "interactiveOffset", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null }, dividerSpacing: { classPropertyName: "dividerSpacing", publicName: "dividerSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", moreButtonClick: "moreButtonClick" }, host: { listeners: { "click": "handleClick($event)", "keydown.enter": "handleKeyDown($event)", "keydown.space": "handleKeyDown($event)", "longPress": "handleLongPress()" }, properties: { "class.interactive": "interactive() && !disabled()", "class.disabled": "disabled()", "class.loading": "loading()", "class.no-divider": "!showDivider()", "class.no-leading-content": "!hasLeadingContent()", "class.variant-compact": "variant() === \"compact\"", "class.align-top": "align() === \"top\"", "class.align-center": "align() === \"center\"", "class.align-bottom": "align() === \"bottom\"", "attr.role": "interactive() ? \"button\" : null", "attr.tabindex": "interactive() && !disabled() ? \"0\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "style.--leading-size": "leadingSize()", "style.--interactive-offset": "interactiveOffset()", "style.--divider-spacing": "dividerSpacing()" } }, hostDirectives: [{ directive: DsMobileLongPressDirective, outputs: ["longPress", "longPress"] }], ngImport: i0, template: `
|
|
1320
1430
|
<div class="list-item-inner">
|
|
1321
1431
|
@if (hasLeadingContent()) {
|
|
1322
1432
|
<div class="content-leading">
|
|
@@ -1336,8 +1446,7 @@ class DsMobileListItemComponent {
|
|
|
1336
1446
|
</div>
|
|
1337
1447
|
|
|
1338
1448
|
<div class="content-trailing">
|
|
1339
|
-
@if (interactive() &&
|
|
1340
|
-
isDesktop()) {
|
|
1449
|
+
@if (interactive() && shouldShowMoreButton()) {
|
|
1341
1450
|
<ds-icon-button
|
|
1342
1451
|
class="desktop-more-button"
|
|
1343
1452
|
icon="remixMoreFill"
|
|
@@ -1400,8 +1509,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1400
1509
|
</div>
|
|
1401
1510
|
|
|
1402
1511
|
<div class="content-trailing">
|
|
1403
|
-
@if (interactive() &&
|
|
1404
|
-
isDesktop()) {
|
|
1512
|
+
@if (interactive() && shouldShowMoreButton()) {
|
|
1405
1513
|
<ds-icon-button
|
|
1406
1514
|
class="desktop-more-button"
|
|
1407
1515
|
icon="remixMoreFill"
|
|
@@ -1416,7 +1524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1416
1524
|
</div>
|
|
1417
1525
|
</div>
|
|
1418
1526
|
`, 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: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:var(--color-background-neutral-primary, #ffffff);border-radius:16px;z-index:-1;pointer-events:none}:host(.interactive){cursor:pointer}@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}\n"] }]
|
|
1419
|
-
}], 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 }] }], 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 }] }], 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"] }] } });
|
|
1527
|
+
}], 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 }] }], 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 }] }], 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"] }] } });
|
|
1420
1528
|
|
|
1421
1529
|
/**
|
|
1422
1530
|
* DsMobileActionListItemComponent
|
|
@@ -1467,7 +1575,7 @@ class DsMobileActionListItemComponent {
|
|
|
1467
1575
|
<ng-content select="[content-trailing]" />
|
|
1468
1576
|
</div>
|
|
1469
1577
|
</ds-mobile-list-item>
|
|
1470
|
-
`, isInline: true, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}:host{outline:none;--background-focused: transparent;--background-activated: transparent;-webkit-tap-highlight-color:transparent}:host ::ng-deep ds-mobile-list-item{outline:none}\n"], dependencies: [{ kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
1578
|
+
`, isInline: true, styles: [":host ::ng-deep ds-mobile-list-item .list-item-inner{align-items:center}:host ::ng-deep ds-mobile-list-item .content-leading{align-items:center;justify-content:center}:host ::ng-deep .action-icon-wrapper{display:flex;align-items:center;justify-content:center;width:100%;height:100%}:host ::ng-deep ds-mobile-list-item .content-main{gap:0;justify-content:center}:host{outline:none;--background-focused: transparent;--background-activated: transparent;-webkit-tap-highlight-color:transparent}:host ::ng-deep ds-mobile-list-item{outline:none}\n"], dependencies: [{ kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
1471
1579
|
}
|
|
1472
1580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileActionListItemComponent, decorators: [{
|
|
1473
1581
|
type: Component,
|
|
@@ -1802,6 +1910,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
1802
1910
|
type: Input
|
|
1803
1911
|
}] } });
|
|
1804
1912
|
|
|
1913
|
+
/**
|
|
1914
|
+
* Disable pointer events for Ionic's internal modal shadow layer.
|
|
1915
|
+
*
|
|
1916
|
+
* The .modal-shadow element is rendered inside ion-modal's Shadow DOM and can
|
|
1917
|
+
* intercept backdrop taps even when visually hidden.
|
|
1918
|
+
*/
|
|
1919
|
+
function disableModalShadowPointerEvents(modal) {
|
|
1920
|
+
const applyFix = () => {
|
|
1921
|
+
const modalShadow = modal.shadowRoot?.querySelector('.modal-shadow');
|
|
1922
|
+
if (!modalShadow) {
|
|
1923
|
+
return;
|
|
1924
|
+
}
|
|
1925
|
+
modalShadow.style.setProperty('pointer-events', 'none', 'important');
|
|
1926
|
+
modalShadow.style.setProperty('box-shadow', 'none', 'important');
|
|
1927
|
+
};
|
|
1928
|
+
applyFix();
|
|
1929
|
+
if (!modal.shadowRoot) {
|
|
1930
|
+
return;
|
|
1931
|
+
}
|
|
1932
|
+
const observer = new MutationObserver(() => {
|
|
1933
|
+
applyFix();
|
|
1934
|
+
});
|
|
1935
|
+
observer.observe(modal.shadowRoot, {
|
|
1936
|
+
childList: true,
|
|
1937
|
+
subtree: true,
|
|
1938
|
+
attributes: true,
|
|
1939
|
+
attributeFilter: ['class', 'style'],
|
|
1940
|
+
});
|
|
1941
|
+
modal.addEventListener('ionModalDidDismiss', () => {
|
|
1942
|
+
observer.disconnect();
|
|
1943
|
+
}, { once: true });
|
|
1944
|
+
}
|
|
1945
|
+
|
|
1805
1946
|
/**
|
|
1806
1947
|
* DsMobileBottomSheetService
|
|
1807
1948
|
*
|
|
@@ -1897,6 +2038,7 @@ class DsMobileBottomSheetService {
|
|
|
1897
2038
|
document.removeEventListener('keydown', escKeyHandler);
|
|
1898
2039
|
});
|
|
1899
2040
|
await modal.present();
|
|
2041
|
+
disableModalShadowPointerEvents(modal);
|
|
1900
2042
|
// Don't wait - return immediately so component can try to focus
|
|
1901
2043
|
// while still in user gesture context
|
|
1902
2044
|
return modal;
|
|
@@ -4777,6 +4919,7 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
4777
4919
|
cssClass: ['ds-bottom-sheet', 'auto-height'],
|
|
4778
4920
|
});
|
|
4779
4921
|
await sheet.present();
|
|
4922
|
+
disableModalShadowPointerEvents(sheet);
|
|
4780
4923
|
const result = await sheet.onWillDismiss();
|
|
4781
4924
|
if (result.data?.action) {
|
|
4782
4925
|
// Handle appearance/whitelabel-demo action internally (works on all pages)
|
|
@@ -4874,7 +5017,7 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
4874
5017
|
</ion-header>
|
|
4875
5018
|
|
|
4876
5019
|
<!-- Content with expandable header -->
|
|
4877
|
-
<ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
|
|
5020
|
+
<ion-content [scrollEvents]="true" [forceOverscroll]="true" (ionScroll)="handleScroll($event)">
|
|
4878
5021
|
<!-- Condensed header for Ionic scroll effects -->
|
|
4879
5022
|
@if (showCondensedHeader()) {
|
|
4880
5023
|
<ion-header collapse="condense">
|
|
@@ -4910,6 +5053,10 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
4910
5053
|
|
|
4911
5054
|
<!-- Content wrapper -->
|
|
4912
5055
|
<div class="content-wrapper">
|
|
5056
|
+
@if (contentLoading()) {
|
|
5057
|
+
<ds-mobile-loader-overlay />
|
|
5058
|
+
}
|
|
5059
|
+
|
|
4913
5060
|
<!-- Offline indicator slot (appears at top of content) -->
|
|
4914
5061
|
<ng-content select="[offline-indicator]"></ng-content>
|
|
4915
5062
|
|
|
@@ -4919,11 +5066,11 @@ class DsMobilePageMainComponent extends MobilePageBase {
|
|
|
4919
5066
|
</div>
|
|
4920
5067
|
</div>
|
|
4921
5068
|
</ion-content>
|
|
4922
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column
|
|
5069
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column;min-height:100%;-webkit-overflow-scrolling:touch}.plt-ios :host ion-content{--background: var(--color-background-neutral-primary)}@media (min-width: 768px){:host ion-content{border-radius:24px 24px 0 0}}:host ion-header[collapse=condense]{display:none}@media (min-width: 768px){:host ion-header[collapse=condense]{display:none}}:host ion-refresher{z-index:0}:host ion-refresher-content{--color: var(--color-header-content)}:host .content-wrapper{width:100%;position:relative;z-index:20;flex:1;display:flex;flex-direction:column;background:var(--color-background-neutral-primary);border-radius:24px 24px 0 0;overflow:visible;transform:translateZ(0);will-change:transform;isolation:isolate;box-shadow:0 300px 0 0 var(--color-background-neutral-primary);padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px);padding-bottom:calc(var(--mobile-content-spacing) + var(--mobile-tab-bar-height) + var(--app-safe-bottom, 0px))}:host .content-inner{max-width:640px;margin:0 auto;width:100%}@media (min-width: 768px){:host .content-wrapper{padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px)}}:host .header-expandable{background:var(--color-header-surface);padding:32px 20px 24px;color:var(--header-content-color, white);position:sticky;top:0;z-index:5;transition:opacity .1s ease-out,transform .1s ease-out}:host .header-expandable-inner{display:flex;flex-direction:column;gap:20px;max-width:640px;margin:0 auto}:host .header-expandable__text{margin-bottom:0;gap:4px;display:flex;flex-direction:column}:host .header-expandable__title{font-size:var(--font-size-2xl);font-weight:600;color:var(--header-content-color, white);margin:0}:host .header-expandable__subtitle{font-size:var(--font-size-sm);font-weight:400;color:var(--header-content-color, white);opacity:.85;margin:0}@media (min-width: 768px){:host .header-expandable{padding:48px 20px 32px}:host .header-expandable__title{font-size:var(--font-size-3xl)}:host .header-expandable__subtitle{font-size:var(--font-size-base)}}@media (min-width: 992px){:host .header-expandable{padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg)}}@media (min-width: 1440px){:host .header-expandable{padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){:host .header-expandable{padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){:host .header-expandable{padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}\n", ".header-main{padding:0 20px;height:72px}.header-main__title{transform:translate(-50%) translateY(-100%);opacity:0;transition:transform .6s ease,opacity .6s ease;padding:0;--color: var(--color-header-content)}.header-scrolled .header-main__title{opacity:1;transform:translate(-50%) translateY(0)}.header-main__actions{display:flex;align-items:center;gap:8px}.header-main__actions ds-avatar{cursor:pointer;-webkit-tap-highlight-color:transparent}@media (min-width: 768px){.header-main{padding:16px 24px;height:88px}.header-main__title{display:none}}ion-refresher{--color: var(--color-header-content)}ion-refresher-content{--color: var(--color-header-content)}ion-refresher-content::part(spinner){color:var(--color-header-content)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsLogoComponent, selector: "ds-logo", inputs: ["variant", "size", "customHeight", "customWidth"] }, { kind: "component", type: DsMobileLoaderOverlayComponent, selector: "ds-mobile-loader-overlay", inputs: ["spinnerSize", "borderRadius"] }] });
|
|
4923
5070
|
}
|
|
4924
5071
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePageMainComponent, decorators: [{
|
|
4925
5072
|
type: Component,
|
|
4926
|
-
args: [{ selector: 'ds-mobile-page-main', standalone: true, imports: [CommonModule, IonHeader, IonToolbar, IonTitle, IonContent, IonRefresher, IonRefresherContent, DsAvatarComponent, DsLogoComponent], host: {
|
|
5073
|
+
args: [{ selector: 'ds-mobile-page-main', standalone: true, imports: [CommonModule, IonHeader, IonToolbar, IonTitle, IonContent, IonRefresher, IonRefresherContent, DsAvatarComponent, DsLogoComponent, DsMobileLoaderOverlayComponent], host: {
|
|
4927
5074
|
'[style.--content-wrapper-padding]': 'contentPadding()'
|
|
4928
5075
|
}, template: `
|
|
4929
5076
|
<!-- Fixed header at top -->
|
|
@@ -4953,7 +5100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
4953
5100
|
</ion-header>
|
|
4954
5101
|
|
|
4955
5102
|
<!-- Content with expandable header -->
|
|
4956
|
-
<ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
|
|
5103
|
+
<ion-content [scrollEvents]="true" [forceOverscroll]="true" (ionScroll)="handleScroll($event)">
|
|
4957
5104
|
<!-- Condensed header for Ionic scroll effects -->
|
|
4958
5105
|
@if (showCondensedHeader()) {
|
|
4959
5106
|
<ion-header collapse="condense">
|
|
@@ -4989,6 +5136,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
4989
5136
|
|
|
4990
5137
|
<!-- Content wrapper -->
|
|
4991
5138
|
<div class="content-wrapper">
|
|
5139
|
+
@if (contentLoading()) {
|
|
5140
|
+
<ds-mobile-loader-overlay />
|
|
5141
|
+
}
|
|
5142
|
+
|
|
4992
5143
|
<!-- Offline indicator slot (appears at top of content) -->
|
|
4993
5144
|
<ng-content select="[offline-indicator]"></ng-content>
|
|
4994
5145
|
|
|
@@ -4998,7 +5149,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
4998
5149
|
</div>
|
|
4999
5150
|
</div>
|
|
5000
5151
|
</ion-content>
|
|
5001
|
-
`, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column
|
|
5152
|
+
`, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column;min-height:100%;-webkit-overflow-scrolling:touch}.plt-ios :host ion-content{--background: var(--color-background-neutral-primary)}@media (min-width: 768px){:host ion-content{border-radius:24px 24px 0 0}}:host ion-header[collapse=condense]{display:none}@media (min-width: 768px){:host ion-header[collapse=condense]{display:none}}:host ion-refresher{z-index:0}:host ion-refresher-content{--color: var(--color-header-content)}:host .content-wrapper{width:100%;position:relative;z-index:20;flex:1;display:flex;flex-direction:column;background:var(--color-background-neutral-primary);border-radius:24px 24px 0 0;overflow:visible;transform:translateZ(0);will-change:transform;isolation:isolate;box-shadow:0 300px 0 0 var(--color-background-neutral-primary);padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px);padding-bottom:calc(var(--mobile-content-spacing) + var(--mobile-tab-bar-height) + var(--app-safe-bottom, 0px))}:host .content-inner{max-width:640px;margin:0 auto;width:100%}@media (min-width: 768px){:host .content-wrapper{padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px)}}:host .header-expandable{background:var(--color-header-surface);padding:32px 20px 24px;color:var(--header-content-color, white);position:sticky;top:0;z-index:5;transition:opacity .1s ease-out,transform .1s ease-out}:host .header-expandable-inner{display:flex;flex-direction:column;gap:20px;max-width:640px;margin:0 auto}:host .header-expandable__text{margin-bottom:0;gap:4px;display:flex;flex-direction:column}:host .header-expandable__title{font-size:var(--font-size-2xl);font-weight:600;color:var(--header-content-color, white);margin:0}:host .header-expandable__subtitle{font-size:var(--font-size-sm);font-weight:400;color:var(--header-content-color, white);opacity:.85;margin:0}@media (min-width: 768px){:host .header-expandable{padding:48px 20px 32px}:host .header-expandable__title{font-size:var(--font-size-3xl)}:host .header-expandable__subtitle{font-size:var(--font-size-base)}}@media (min-width: 992px){:host .header-expandable{padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg)}}@media (min-width: 1440px){:host .header-expandable{padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){:host .header-expandable{padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){:host .header-expandable{padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}\n", ".header-main{padding:0 20px;height:72px}.header-main__title{transform:translate(-50%) translateY(-100%);opacity:0;transition:transform .6s ease,opacity .6s ease;padding:0;--color: var(--color-header-content)}.header-scrolled .header-main__title{opacity:1;transform:translate(-50%) translateY(0)}.header-main__actions{display:flex;align-items:center;gap:8px}.header-main__actions ds-avatar{cursor:pointer;-webkit-tap-highlight-color:transparent}@media (min-width: 768px){.header-main{padding:16px 24px;height:88px}.header-main__title{display:none}}ion-refresher{--color: var(--color-header-content)}ion-refresher-content{--color: var(--color-header-content)}ion-refresher-content::part(spinner){color:var(--color-header-content)}\n"] }]
|
|
5002
5153
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { ionContent: [{
|
|
5003
5154
|
type: ViewChild,
|
|
5004
5155
|
args: [IonContent]
|
|
@@ -5383,7 +5534,7 @@ class DsMobilePageDetailsComponent extends MobilePageBase {
|
|
|
5383
5534
|
</ion-header>
|
|
5384
5535
|
|
|
5385
5536
|
<!-- Content with expandable header -->
|
|
5386
|
-
<ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
|
|
5537
|
+
<ion-content [scrollEvents]="true" [forceOverscroll]="true" (ionScroll)="handleScroll($event)">
|
|
5387
5538
|
<!-- Pull to refresh (only on native iOS/Android) -->
|
|
5388
5539
|
@if (showRefresh() && isNativePlatform()) {
|
|
5389
5540
|
<ion-refresher
|
|
@@ -5420,6 +5571,10 @@ class DsMobilePageDetailsComponent extends MobilePageBase {
|
|
|
5420
5571
|
|
|
5421
5572
|
<!-- Content wrapper -->
|
|
5422
5573
|
<div class="content-wrapper">
|
|
5574
|
+
@if (contentLoading()) {
|
|
5575
|
+
<ds-mobile-loader-overlay />
|
|
5576
|
+
}
|
|
5577
|
+
|
|
5423
5578
|
<!-- Offline indicator slot (appears at top of content) -->
|
|
5424
5579
|
<ng-content select="[offline-indicator]"></ng-content>
|
|
5425
5580
|
|
|
@@ -5428,7 +5583,7 @@ class DsMobilePageDetailsComponent extends MobilePageBase {
|
|
|
5428
5583
|
</div>
|
|
5429
5584
|
</div>
|
|
5430
5585
|
</ion-content>
|
|
5431
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column
|
|
5586
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column;min-height:100%;-webkit-overflow-scrolling:touch}.plt-ios :host ion-content{--background: var(--color-background-neutral-primary)}@media (min-width: 768px){:host ion-content{border-radius:24px 24px 0 0}}:host ion-header[collapse=condense]{display:none}@media (min-width: 768px){:host ion-header[collapse=condense]{display:none}}:host ion-refresher{z-index:0}:host ion-refresher-content{--color: var(--color-header-content)}:host .content-wrapper{width:100%;position:relative;z-index:20;flex:1;display:flex;flex-direction:column;background:var(--color-background-neutral-primary);border-radius:24px 24px 0 0;overflow:visible;transform:translateZ(0);will-change:transform;isolation:isolate;box-shadow:0 300px 0 0 var(--color-background-neutral-primary);padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px);padding-bottom:calc(var(--mobile-content-spacing) + var(--mobile-tab-bar-height) + var(--app-safe-bottom, 0px))}:host .content-inner{max-width:640px;margin:0 auto;width:100%}@media (min-width: 768px){:host .content-wrapper{padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px)}}:host .header-expandable{background:var(--color-header-surface);padding:32px 20px 24px;color:var(--header-content-color, white);position:sticky;top:0;z-index:5;transition:opacity .1s ease-out,transform .1s ease-out}:host .header-expandable-inner{display:flex;flex-direction:column;gap:20px;max-width:640px;margin:0 auto}:host .header-expandable__text{margin-bottom:0;gap:4px;display:flex;flex-direction:column}:host .header-expandable__title{font-size:var(--font-size-2xl);font-weight:600;color:var(--header-content-color, white);margin:0}:host .header-expandable__subtitle{font-size:var(--font-size-sm);font-weight:400;color:var(--header-content-color, white);opacity:.85;margin:0}@media (min-width: 768px){:host .header-expandable{padding:48px 20px 32px}:host .header-expandable__title{font-size:var(--font-size-3xl)}:host .header-expandable__subtitle{font-size:var(--font-size-base)}}@media (min-width: 992px){:host .header-expandable{padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg)}}@media (min-width: 1440px){:host .header-expandable{padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){:host .header-expandable{padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){:host .header-expandable{padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}\n", "ion-refresher{--color: var(--color-header-content)}ion-refresher-content{--color: var(--color-header-content)}ion-refresher-content::part(spinner){color:var(--color-header-content)}.header-details{gap:12px;padding:0 20px;height:72px;min-height:72px}:host .header-details .back-button{width:36px;height:36px;border-radius:50%;background:var(--color-header-accent)!important;flex-shrink:0;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:background var(--transition-duration-fast) var(--ease-smooth);z-index:10}:host .header-details .back-button:hover{background:var(--color-header-accent-hover)!important}:host .header-details .back-button:active{background:var(--color-header-accent-active)!important}.header-details .header-title{left:64px}@media (min-width: 768px){ion-header{display:block!important;height:88px;min-height:88px}ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}.header-details{padding:16px 24px;height:88px;min-height:88px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonRefresher, selector: "ion-refresher", inputs: ["closeDuration", "disabled", "mode", "pullFactor", "pullMax", "pullMin", "snapbackDuration"] }, { kind: "component", type: IonRefresherContent, selector: "ion-refresher-content", inputs: ["pullingIcon", "pullingText", "refreshingSpinner", "refreshingText"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsMobileLoaderOverlayComponent, selector: "ds-mobile-loader-overlay", inputs: ["spinnerSize", "borderRadius"] }, { kind: "component", type: DsMobileInlineTabsComponent, selector: "ds-mobile-inline-tabs", inputs: ["tabs", "activeTab"], outputs: ["tabChange"] }] });
|
|
5432
5587
|
}
|
|
5433
5588
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePageDetailsComponent, decorators: [{
|
|
5434
5589
|
type: Component,
|
|
@@ -5441,6 +5596,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
5441
5596
|
IonRefresher,
|
|
5442
5597
|
IonRefresherContent,
|
|
5443
5598
|
DsIconComponent,
|
|
5599
|
+
DsMobileLoaderOverlayComponent,
|
|
5444
5600
|
DsMobileInlineTabsComponent
|
|
5445
5601
|
], host: {
|
|
5446
5602
|
'[style.--content-wrapper-padding]': 'contentPadding()'
|
|
@@ -5461,7 +5617,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
5461
5617
|
</ion-header>
|
|
5462
5618
|
|
|
5463
5619
|
<!-- Content with expandable header -->
|
|
5464
|
-
<ion-content [scrollEvents]="true" (ionScroll)="handleScroll($event)">
|
|
5620
|
+
<ion-content [scrollEvents]="true" [forceOverscroll]="true" (ionScroll)="handleScroll($event)">
|
|
5465
5621
|
<!-- Pull to refresh (only on native iOS/Android) -->
|
|
5466
5622
|
@if (showRefresh() && isNativePlatform()) {
|
|
5467
5623
|
<ion-refresher
|
|
@@ -5498,6 +5654,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
5498
5654
|
|
|
5499
5655
|
<!-- Content wrapper -->
|
|
5500
5656
|
<div class="content-wrapper">
|
|
5657
|
+
@if (contentLoading()) {
|
|
5658
|
+
<ds-mobile-loader-overlay />
|
|
5659
|
+
}
|
|
5660
|
+
|
|
5501
5661
|
<!-- Offline indicator slot (appears at top of content) -->
|
|
5502
5662
|
<ng-content select="[offline-indicator]"></ng-content>
|
|
5503
5663
|
|
|
@@ -5506,7 +5666,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
5506
5666
|
</div>
|
|
5507
5667
|
</div>
|
|
5508
5668
|
</ion-content>
|
|
5509
|
-
`, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column
|
|
5669
|
+
`, styles: [":host{display:flex;flex-direction:column;align-items:center;height:100%;background:var(--color-header-surface);width:100%}:host ion-header{background:var(--color-header-surface);box-shadow:none;height:72px;min-height:72px;margin-top:var(--app-header-top-offset)}:host ion-header ion-toolbar{--background: var(--color-header-surface);--border-width: 0;--box-shadow: none;--padding-top: 0;--padding-bottom: 0;--padding-start: 0;--padding-end: 0;--min-height: 72px;height:72px;min-height:72px;padding:0}@media (min-width: 768px){:host ion-header{height:88px;min-height:88px}:host ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}}@media (min-width: 768px){:host ion-header{display:none;height:auto}}:host .header-main,:host .header-details,.header-details{display:flex;align-items:center;justify-content:space-between;background:var(--color-header-surface);position:relative}:host .header-main__title,:host .header-details .header-title,.header-details .header-title{position:absolute;left:50%;transform:translate(-50%);font-size:var(--font-size-base);font-weight:600;color:var(--color-header-content);margin:0;padding:0;--color: var(--color-header-content)}.header-details .header-title{transform:translate(-50%) translateY(-100%);opacity:0!important;pointer-events:none;transition:transform .2s ease,opacity .2s ease!important}.header-scrolled .header-details .header-title{opacity:1!important;pointer-events:auto;transform:translate(-50%) translateY(0)}:host .header-details .back-button,.header-details .back-button{background:none;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:opacity var(--transition-duration-fast, .2s) var(--ease-smooth, ease);z-index:10;position:relative}:host .header-details .back-button:hover,.header-details .back-button:hover{opacity:.8}:host .header-details .back-button:active,.header-details .back-button:active{opacity:.6}:host ion-content{--background: var(--color-header-surface);--padding-top: 0;--padding-start: 0;--padding-end: 0;--padding-bottom: 0;border-radius:24px 24px 0 0;overflow:hidden}:host ion-content::part(scroll){display:flex;flex-direction:column;min-height:100%;-webkit-overflow-scrolling:touch}.plt-ios :host ion-content{--background: var(--color-background-neutral-primary)}@media (min-width: 768px){:host ion-content{border-radius:24px 24px 0 0}}:host ion-header[collapse=condense]{display:none}@media (min-width: 768px){:host ion-header[collapse=condense]{display:none}}:host ion-refresher{z-index:0}:host ion-refresher-content{--color: var(--color-header-content)}:host .content-wrapper{width:100%;position:relative;z-index:20;flex:1;display:flex;flex-direction:column;background:var(--color-background-neutral-primary);border-radius:24px 24px 0 0;overflow:visible;transform:translateZ(0);will-change:transform;isolation:isolate;box-shadow:0 300px 0 0 var(--color-background-neutral-primary);padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px);padding-bottom:calc(var(--mobile-content-spacing) + var(--mobile-tab-bar-height) + var(--app-safe-bottom, 0px))}:host .content-inner{max-width:640px;margin:0 auto;width:100%}@media (min-width: 768px){:host .content-wrapper{padding-top:0;padding-left:var(--content-wrapper-padding, 20px);padding-right:var(--content-wrapper-padding, 20px)}}:host .header-expandable{background:var(--color-header-surface);padding:32px 20px 24px;color:var(--header-content-color, white);position:sticky;top:0;z-index:5;transition:opacity .1s ease-out,transform .1s ease-out}:host .header-expandable-inner{display:flex;flex-direction:column;gap:20px;max-width:640px;margin:0 auto}:host .header-expandable__text{margin-bottom:0;gap:4px;display:flex;flex-direction:column}:host .header-expandable__title{font-size:var(--font-size-2xl);font-weight:600;color:var(--header-content-color, white);margin:0}:host .header-expandable__subtitle{font-size:var(--font-size-sm);font-weight:400;color:var(--header-content-color, white);opacity:.85;margin:0}@media (min-width: 768px){:host .header-expandable{padding:48px 20px 32px}:host .header-expandable__title{font-size:var(--font-size-3xl)}:host .header-expandable__subtitle{font-size:var(--font-size-base)}}@media (min-width: 992px){:host .header-expandable{padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg)}}@media (min-width: 1440px){:host .header-expandable{padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){:host .header-expandable{padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){:host .header-expandable{padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}\n", "ion-refresher{--color: var(--color-header-content)}ion-refresher-content{--color: var(--color-header-content)}ion-refresher-content::part(spinner){color:var(--color-header-content)}.header-details{gap:12px;padding:0 20px;height:72px;min-height:72px}:host .header-details .back-button{width:36px;height:36px;border-radius:50%;background:var(--color-header-accent)!important;flex-shrink:0;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-header-content);transition:background var(--transition-duration-fast) var(--ease-smooth);z-index:10}:host .header-details .back-button:hover{background:var(--color-header-accent-hover)!important}:host .header-details .back-button:active{background:var(--color-header-accent-active)!important}.header-details .header-title{left:64px}@media (min-width: 768px){ion-header{display:block!important;height:88px;min-height:88px}ion-header ion-toolbar{--min-height: 88px;height:88px;min-height:88px}.header-details{padding:16px 24px;height:88px;min-height:88px}}\n"] }]
|
|
5510
5670
|
}], ctorParameters: () => [{ type: i1.NavController }, { type: i0.ElementRef }], propDecorators: { ionContent: [{
|
|
5511
5671
|
type: ViewChild,
|
|
5512
5672
|
args: [IonContent]
|
|
@@ -6177,6 +6337,19 @@ class DsMobileCommentComponent {
|
|
|
6177
6337
|
* Whether the comment is clickable
|
|
6178
6338
|
*/
|
|
6179
6339
|
clickable = input(false, ...(ngDevMode ? [{ debugName: "clickable" }] : []));
|
|
6340
|
+
/**
|
|
6341
|
+
* Unified toggle for contextual actions (more button + long press).
|
|
6342
|
+
* - `true` — more button visible on **all** breakpoints, long press enabled
|
|
6343
|
+
* - `false` — more button hidden, long press suppressed
|
|
6344
|
+
* - `undefined` (default) — falls back to desktop-only button
|
|
6345
|
+
*/
|
|
6346
|
+
moreActions = input(undefined, ...(ngDevMode ? [{ debugName: "moreActions" }] : []));
|
|
6347
|
+
shouldShowMoreButton = computed(() => {
|
|
6348
|
+
const ma = this.moreActions();
|
|
6349
|
+
if (ma !== undefined)
|
|
6350
|
+
return ma;
|
|
6351
|
+
return this.isDesktop();
|
|
6352
|
+
}, ...(ngDevMode ? [{ debugName: "shouldShowMoreButton" }] : []));
|
|
6180
6353
|
/**
|
|
6181
6354
|
* Whether this comment belongs to the current user
|
|
6182
6355
|
*/
|
|
@@ -6278,6 +6451,8 @@ class DsMobileCommentComponent {
|
|
|
6278
6451
|
* Handle touch start for long press detection
|
|
6279
6452
|
*/
|
|
6280
6453
|
handleTouchStart(event) {
|
|
6454
|
+
if (this.moreActions() === false)
|
|
6455
|
+
return;
|
|
6281
6456
|
this.longPressTriggered = false;
|
|
6282
6457
|
this.touchStartX = event.touches[0].clientX;
|
|
6283
6458
|
this.touchStartY = event.touches[0].clientY;
|
|
@@ -6332,6 +6507,8 @@ class DsMobileCommentComponent {
|
|
|
6332
6507
|
* Handle context menu (right-click on desktop) to trigger long press action
|
|
6333
6508
|
*/
|
|
6334
6509
|
handleContextMenu(event) {
|
|
6510
|
+
if (this.moreActions() === false)
|
|
6511
|
+
return;
|
|
6335
6512
|
event.preventDefault();
|
|
6336
6513
|
this.longPress.emit();
|
|
6337
6514
|
}
|
|
@@ -6346,7 +6523,7 @@ class DsMobileCommentComponent {
|
|
|
6346
6523
|
this.longPress.emit();
|
|
6347
6524
|
}
|
|
6348
6525
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileCommentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6349
|
-
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 }, 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: `
|
|
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: `
|
|
6350
6527
|
<div class="avatar-wrapper">
|
|
6351
6528
|
<ds-avatar [initials]="avatarInitials()" [type]="avatarType()" size="sm" />
|
|
6352
6529
|
</div>
|
|
@@ -6366,8 +6543,7 @@ class DsMobileCommentComponent {
|
|
|
6366
6543
|
</div>
|
|
6367
6544
|
</div>
|
|
6368
6545
|
|
|
6369
|
-
|
|
6370
|
-
@if (isDesktop()) {
|
|
6546
|
+
@if (shouldShowMoreButton()) {
|
|
6371
6547
|
<ds-icon-button class="desktop-more-button" icon="remixMoreFill" variant="secondary" size="sm" (clicked)="handleMoreButtonClick($event)" aria-label="More options">
|
|
6372
6548
|
</ds-icon-button>
|
|
6373
6549
|
}
|
|
@@ -6414,8 +6590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6414
6590
|
</div>
|
|
6415
6591
|
</div>
|
|
6416
6592
|
|
|
6417
|
-
|
|
6418
|
-
@if (isDesktop()) {
|
|
6593
|
+
@if (shouldShowMoreButton()) {
|
|
6419
6594
|
<ds-icon-button class="desktop-more-button" icon="remixMoreFill" variant="secondary" size="sm" (clicked)="handleMoreButtonClick($event)" aria-label="More options">
|
|
6420
6595
|
</ds-icon-button>
|
|
6421
6596
|
}
|
|
@@ -6432,7 +6607,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6432
6607
|
</div>
|
|
6433
6608
|
</div>
|
|
6434
6609
|
`, 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"] }]
|
|
6435
|
-
}], 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 }] }], 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"] }] } });
|
|
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"] }] } });
|
|
6436
6611
|
|
|
6437
6612
|
/**
|
|
6438
6613
|
* DsMobilePostComposerComponent
|
|
@@ -6531,92 +6706,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
6531
6706
|
`, styles: [":host{display:block;max-width:640px;cursor:pointer;transition:all .2s ease}.composer-container{display:flex;align-items:center;gap:12px}.composer-input-wrapper{flex:1;min-width:0}.composer-input{width:100%;background:rgba(var(--header-content-color-rgb, 255, 255, 255),.1);border:none;border-radius:24px;padding:10px 16px;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:rgba(var(--header-content-color-rgb, 255, 255, 255),.75);outline:none;cursor:pointer;transition:all .2s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.composer-input::placeholder{color:rgba(var(--header-content-color-rgb, 255, 255, 255),.75);opacity:1}@media (hover: hover){:host:hover .composer-input{opacity:.8}}\n"] }]
|
|
6532
6707
|
}], propDecorators: { avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], buttonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonText", required: false }] }], composerClick: [{ type: i0.Output, args: ["composerClick"] }] } });
|
|
6533
6708
|
|
|
6534
|
-
/**
|
|
6535
|
-
* DsMobileLoaderOverlayComponent
|
|
6536
|
-
*
|
|
6537
|
-
* Reusable loader overlay component that displays a spinner centered over its container.
|
|
6538
|
-
* Designed to overlay images or other content during loading states.
|
|
6539
|
-
*
|
|
6540
|
-
* Features:
|
|
6541
|
-
* - Semi-transparent white background overlay
|
|
6542
|
-
* - Centered animated spinner
|
|
6543
|
-
* - Customizable spinner size
|
|
6544
|
-
* - Absolute positioning to cover parent
|
|
6545
|
-
* - Accessible with proper z-index stacking
|
|
6546
|
-
*
|
|
6547
|
-
* @example
|
|
6548
|
-
* ```html
|
|
6549
|
-
* <!-- Basic usage -->
|
|
6550
|
-
* <div style="position: relative;">
|
|
6551
|
-
* <img src="image.jpg" alt="Content" />
|
|
6552
|
-
* @if (isLoading) {
|
|
6553
|
-
* <ds-mobile-loader-overlay />
|
|
6554
|
-
* }
|
|
6555
|
-
* </div>
|
|
6556
|
-
*
|
|
6557
|
-
* <!-- With custom spinner size -->
|
|
6558
|
-
* <div style="position: relative;">
|
|
6559
|
-
* <div class="content">Loading content...</div>
|
|
6560
|
-
* <ds-mobile-loader-overlay [spinnerSize]="32" />
|
|
6561
|
-
* </div>
|
|
6562
|
-
*
|
|
6563
|
-
* <!-- Over an image with rounded corners -->
|
|
6564
|
-
* <div style="position: relative; border-radius: 12px; overflow: hidden;">
|
|
6565
|
-
* <img src="photo.jpg" />
|
|
6566
|
-
* <ds-mobile-loader-overlay [borderRadius]="12" />
|
|
6567
|
-
* </div>
|
|
6568
|
-
* ```
|
|
6569
|
-
*
|
|
6570
|
-
* @notes
|
|
6571
|
-
* - Parent container must have position: relative for the overlay to work correctly
|
|
6572
|
-
* - The overlay covers the entire parent element using inset: 0
|
|
6573
|
-
* - Spinner animation runs continuously at 0.6s per rotation
|
|
6574
|
-
*/
|
|
6575
|
-
class DsMobileLoaderOverlayComponent {
|
|
6576
|
-
/**
|
|
6577
|
-
* Size of the spinner in pixels
|
|
6578
|
-
* @default 24
|
|
6579
|
-
*/
|
|
6580
|
-
spinnerSize = input(24, ...(ngDevMode ? [{ debugName: "spinnerSize" }] : []));
|
|
6581
|
-
/**
|
|
6582
|
-
* Border radius of the overlay in pixels (should match parent's border radius)
|
|
6583
|
-
* @default 0
|
|
6584
|
-
*/
|
|
6585
|
-
borderRadius = input(0, ...(ngDevMode ? [{ debugName: "borderRadius" }] : []));
|
|
6586
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileLoaderOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6587
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: DsMobileLoaderOverlayComponent, isStandalone: true, selector: "ds-mobile-loader-overlay", inputs: { spinnerSize: { classPropertyName: "spinnerSize", publicName: "spinnerSize", isSignal: true, isRequired: false, transformFunction: null }, borderRadius: { classPropertyName: "borderRadius", publicName: "borderRadius", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
6588
|
-
<div
|
|
6589
|
-
class="loader-overlay"
|
|
6590
|
-
[style.border-radius.px]="borderRadius()"
|
|
6591
|
-
role="status"
|
|
6592
|
-
aria-live="polite"
|
|
6593
|
-
aria-label="Loading">
|
|
6594
|
-
<div
|
|
6595
|
-
class="spinner"
|
|
6596
|
-
[style.width.px]="spinnerSize()"
|
|
6597
|
-
[style.height.px]="spinnerSize()">
|
|
6598
|
-
</div>
|
|
6599
|
-
</div>
|
|
6600
|
-
`, isInline: true, styles: [":host{display:contents}.loader-overlay{position:absolute;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:2}.spinner{border:2px solid var(--color-border-neutral-secondary, #E5E5E5);border-top-color:var(--color-accent, #6B5FF5);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.loader-overlay{background:#000c}.spinner{border-color:#fff3;border-top-color:var(--color-accent, #6B5FF5)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
6601
|
-
}
|
|
6602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileLoaderOverlayComponent, decorators: [{
|
|
6603
|
-
type: Component,
|
|
6604
|
-
args: [{ selector: 'ds-mobile-loader-overlay', standalone: true, imports: [CommonModule], template: `
|
|
6605
|
-
<div
|
|
6606
|
-
class="loader-overlay"
|
|
6607
|
-
[style.border-radius.px]="borderRadius()"
|
|
6608
|
-
role="status"
|
|
6609
|
-
aria-live="polite"
|
|
6610
|
-
aria-label="Loading">
|
|
6611
|
-
<div
|
|
6612
|
-
class="spinner"
|
|
6613
|
-
[style.width.px]="spinnerSize()"
|
|
6614
|
-
[style.height.px]="spinnerSize()">
|
|
6615
|
-
</div>
|
|
6616
|
-
</div>
|
|
6617
|
-
`, styles: [":host{display:contents}.loader-overlay{position:absolute;inset:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;z-index:2}.spinner{border:2px solid var(--color-border-neutral-secondary, #E5E5E5);border-top-color:var(--color-accent, #6B5FF5);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-color-scheme: dark){.loader-overlay{background:#000c}.spinner{border-color:#fff3;border-top-color:var(--color-accent, #6B5FF5)}}\n"] }]
|
|
6618
|
-
}], propDecorators: { spinnerSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "spinnerSize", required: false }] }], borderRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "borderRadius", required: false }] }] } });
|
|
6619
|
-
|
|
6620
6709
|
/**
|
|
6621
6710
|
* DsMobileAttachmentPreviewComponent
|
|
6622
6711
|
*
|
|
@@ -8580,6 +8669,11 @@ class DsMobileInteractiveListItemPostComponent {
|
|
|
8580
8669
|
* @default true
|
|
8581
8670
|
*/
|
|
8582
8671
|
enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
|
|
8672
|
+
/**
|
|
8673
|
+
* Unified toggle for contextual actions (more button + long press).
|
|
8674
|
+
* When set, takes precedence over `enableLongPress`.
|
|
8675
|
+
*/
|
|
8676
|
+
moreActions = input(undefined, ...(ngDevMode ? [{ debugName: "moreActions" }] : []));
|
|
8583
8677
|
/**
|
|
8584
8678
|
* Emits when the post card is clicked (if clickable)
|
|
8585
8679
|
*/
|
|
@@ -8607,13 +8701,14 @@ class DsMobileInteractiveListItemPostComponent {
|
|
|
8607
8701
|
this.longPress.emit();
|
|
8608
8702
|
}
|
|
8609
8703
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemPostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8610
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: DsMobileInteractiveListItemPostComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-post", 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 }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", 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 }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { postClick: "postClick", commentClick: "commentClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
8704
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.16", type: DsMobileInteractiveListItemPostComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-post", 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 }, avatarInitials: { classPropertyName: "avatarInitials", publicName: "avatarInitials", isSignal: true, isRequired: false, transformFunction: null }, avatarType: { classPropertyName: "avatarType", publicName: "avatarType", 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 }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { postClick: "postClick", commentClick: "commentClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
8611
8705
|
<ds-mobile-list-item
|
|
8612
8706
|
[leadingSize]="'32px'"
|
|
8613
8707
|
[align]="align()"
|
|
8614
8708
|
[variant]="variant()"
|
|
8615
8709
|
[interactive]="clickable()"
|
|
8616
8710
|
[enableLongPress]="enableLongPress()"
|
|
8711
|
+
[moreActions]="moreActions()"
|
|
8617
8712
|
(itemClick)="handlePostClick()"
|
|
8618
8713
|
(longPress)="handleLongPress()"
|
|
8619
8714
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -8646,7 +8741,7 @@ class DsMobileInteractiveListItemPostComponent {
|
|
|
8646
8741
|
<ng-content select="post-actions" />
|
|
8647
8742
|
</div>
|
|
8648
8743
|
</ds-mobile-list-item>
|
|
8649
|
-
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.menu-slot{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
8744
|
+
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.menu-slot{flex-shrink:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
8650
8745
|
}
|
|
8651
8746
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemPostComponent, decorators: [{
|
|
8652
8747
|
type: Component,
|
|
@@ -8657,6 +8752,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
8657
8752
|
[variant]="variant()"
|
|
8658
8753
|
[interactive]="clickable()"
|
|
8659
8754
|
[enableLongPress]="enableLongPress()"
|
|
8755
|
+
[moreActions]="moreActions()"
|
|
8660
8756
|
(itemClick)="handlePostClick()"
|
|
8661
8757
|
(longPress)="handleLongPress()"
|
|
8662
8758
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -8690,7 +8786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
8690
8786
|
</div>
|
|
8691
8787
|
</ds-mobile-list-item>
|
|
8692
8788
|
`, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.post-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.menu-slot{flex-shrink:0}\n"] }]
|
|
8693
|
-
}], 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 }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], showBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBadge", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], postClick: [{ type: i0.Output, args: ["postClick"] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
8789
|
+
}], 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 }] }], avatarInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarInitials", required: false }] }], avatarType: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarType", required: false }] }], avatarSrc: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarSrc", required: false }] }], avatarIconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "avatarIconName", required: false }] }], showBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBadge", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], postClick: [{ type: i0.Output, args: ["postClick"] }], commentClick: [{ type: i0.Output, args: ["commentClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
8694
8790
|
/**
|
|
8695
8791
|
* PostContentComponent
|
|
8696
8792
|
*
|
|
@@ -9056,6 +9152,11 @@ class DsMobileInteractiveListItemInquiryComponent {
|
|
|
9056
9152
|
* @default true
|
|
9057
9153
|
*/
|
|
9058
9154
|
enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
|
|
9155
|
+
/**
|
|
9156
|
+
* Unified toggle for contextual actions (more button + long press).
|
|
9157
|
+
* When set, takes precedence over `enableLongPress`.
|
|
9158
|
+
*/
|
|
9159
|
+
moreActions = input(undefined, ...(ngDevMode ? [{ debugName: "moreActions" }] : []));
|
|
9059
9160
|
/**
|
|
9060
9161
|
* Emits when the inquiry item is clicked (if clickable)
|
|
9061
9162
|
*/
|
|
@@ -9084,13 +9185,14 @@ class DsMobileInteractiveListItemInquiryComponent {
|
|
|
9084
9185
|
this.longPress.emit();
|
|
9085
9186
|
}
|
|
9086
9187
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemInquiryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9087
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileInteractiveListItemInquiryComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-inquiry", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", 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 }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inquiryClick: "inquiryClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
9188
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileInteractiveListItemInquiryComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-inquiry", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, timestamp: { classPropertyName: "timestamp", publicName: "timestamp", isSignal: true, isRequired: true, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", 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 }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { inquiryClick: "inquiryClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
9088
9189
|
<ds-mobile-list-item
|
|
9089
9190
|
[leadingSize]="'32px'"
|
|
9090
9191
|
[align]="align()"
|
|
9091
9192
|
[variant]="variant()"
|
|
9092
9193
|
[interactive]="clickable()"
|
|
9093
9194
|
[enableLongPress]="enableLongPress()"
|
|
9195
|
+
[moreActions]="moreActions()"
|
|
9094
9196
|
(itemClick)="handleInquiryClick()"
|
|
9095
9197
|
(longPress)="handleLongPress()"
|
|
9096
9198
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -9138,7 +9240,7 @@ class DsMobileInteractiveListItemInquiryComponent {
|
|
|
9138
9240
|
</div>
|
|
9139
9241
|
}
|
|
9140
9242
|
</ds-mobile-list-item>
|
|
9141
|
-
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-accent, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-on-accent, #ffffff)!important;fill:var(--color-on-accent, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-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}.inquiry-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9243
|
+
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-accent, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-on-accent, #ffffff)!important;fill:var(--color-on-accent, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-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}.inquiry-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9142
9244
|
}
|
|
9143
9245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemInquiryComponent, decorators: [{
|
|
9144
9246
|
type: Component,
|
|
@@ -9149,6 +9251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9149
9251
|
[variant]="variant()"
|
|
9150
9252
|
[interactive]="clickable()"
|
|
9151
9253
|
[enableLongPress]="enableLongPress()"
|
|
9254
|
+
[moreActions]="moreActions()"
|
|
9152
9255
|
(itemClick)="handleInquiryClick()"
|
|
9153
9256
|
(longPress)="handleLongPress()"
|
|
9154
9257
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -9197,7 +9300,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9197
9300
|
}
|
|
9198
9301
|
</ds-mobile-list-item>
|
|
9199
9302
|
`, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.inquiry-avatar{flex-shrink:0}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon{background-color:var(--color-accent, #5d5fef)!important}.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon,.inquiry-avatar:not(.closed)::ng-deep .avatar--icon ds-icon::ng-deep svg{color:var(--color-on-accent, #ffffff)!important;fill:var(--color-on-accent, #ffffff)!important}.inquiry-avatar.closed::ng-deep .avatar--icon{background-color:var(--text-color-default-tertiary, #737373)!important}.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon,.inquiry-avatar.closed::ng-deep .avatar--icon ds-icon::ng-deep svg{color:#fff!important;fill:#fff!important}.inquiry-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.inquiry-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}.inquiry-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inquiry-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.inquiry-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-status.open,.inquiry-status.closed{color:var(--text-color-default-tertiary, #737373)}.inquiry-timestamp{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.inquiry-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"] }]
|
|
9200
|
-
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], inquiryClick: [{ type: i0.Output, args: ["inquiryClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
9303
|
+
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], timestamp: [{ type: i0.Input, args: [{ isSignal: true, alias: "timestamp", required: true }] }], iconName: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconName", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], inquiryClick: [{ type: i0.Output, args: ["inquiryClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
9201
9304
|
|
|
9202
9305
|
/**
|
|
9203
9306
|
* DsMobileInteractiveListItemMessageComponent
|
|
@@ -9286,6 +9389,7 @@ class DsMobileInteractiveListItemMessageComponent {
|
|
|
9286
9389
|
[interactive]="clickable()"
|
|
9287
9390
|
[enableLongPress]="false"
|
|
9288
9391
|
[showDesktopMoreButton]="false"
|
|
9392
|
+
[moreActions]="false"
|
|
9289
9393
|
(itemClick)="handleMessageClick()">
|
|
9290
9394
|
|
|
9291
9395
|
<div content-leading>
|
|
@@ -9318,7 +9422,7 @@ class DsMobileInteractiveListItemMessageComponent {
|
|
|
9318
9422
|
<p class="message-preview">{{ message() }}</p>
|
|
9319
9423
|
</div>
|
|
9320
9424
|
</ds-mobile-list-item>
|
|
9321
|
-
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{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);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9425
|
+
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.message-header{display:flex;align-items:center;justify-content:space-between;height:32px;margin-bottom:8px}.sender-details{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1;min-width:0}.sender-name-row{display:flex;align-items:center;gap:6px;flex-shrink:0}.sender-name{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);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.sender-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;display:flex;align-items:center;gap:4px}.meta-separator{color:var(--text-color-default-tertiary, #737373);opacity:.5}.unread-indicator{width:8px;height:8px;border-radius:50%;background:var(--color-brand-primary, #5d5fef);flex-shrink:0}.message-preview{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9322
9426
|
}
|
|
9323
9427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemMessageComponent, decorators: [{
|
|
9324
9428
|
type: Component,
|
|
@@ -9329,6 +9433,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9329
9433
|
[interactive]="clickable()"
|
|
9330
9434
|
[enableLongPress]="false"
|
|
9331
9435
|
[showDesktopMoreButton]="false"
|
|
9436
|
+
[moreActions]="false"
|
|
9332
9437
|
(itemClick)="handleMessageClick()">
|
|
9333
9438
|
|
|
9334
9439
|
<div content-leading>
|
|
@@ -9580,6 +9685,11 @@ class DsMobileInteractiveListItemBookingComponent {
|
|
|
9580
9685
|
* @default true
|
|
9581
9686
|
*/
|
|
9582
9687
|
enableLongPress = input(true, ...(ngDevMode ? [{ debugName: "enableLongPress" }] : []));
|
|
9688
|
+
/**
|
|
9689
|
+
* Unified toggle for contextual actions (more button + long press).
|
|
9690
|
+
* When set, takes precedence over `enableLongPress`.
|
|
9691
|
+
*/
|
|
9692
|
+
moreActions = input(undefined, ...(ngDevMode ? [{ debugName: "moreActions" }] : []));
|
|
9583
9693
|
/**
|
|
9584
9694
|
* Emits when the booking item is clicked (if clickable)
|
|
9585
9695
|
*/
|
|
@@ -9610,13 +9720,14 @@ class DsMobileInteractiveListItemBookingComponent {
|
|
|
9610
9720
|
this.longPress.emit();
|
|
9611
9721
|
}
|
|
9612
9722
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemBookingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9613
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileInteractiveListItemBookingComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-booking", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, facilityTitle: { classPropertyName: "facilityTitle", publicName: "facilityTitle", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, bookingDate: { classPropertyName: "bookingDate", publicName: "bookingDate", isSignal: true, isRequired: false, transformFunction: null }, bookingTime: { classPropertyName: "bookingTime", publicName: "bookingTime", isSignal: true, isRequired: false, transformFunction: null }, availabilityStatus: { classPropertyName: "availabilityStatus", publicName: "availabilityStatus", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", 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 }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bookingClick: "bookingClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
9723
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileInteractiveListItemBookingComponent, isStandalone: true, selector: "ds-mobile-interactive-list-item-booking", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", isSignal: true, isRequired: false, transformFunction: null }, facilityTitle: { classPropertyName: "facilityTitle", publicName: "facilityTitle", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, bookingDate: { classPropertyName: "bookingDate", publicName: "bookingDate", isSignal: true, isRequired: false, transformFunction: null }, bookingTime: { classPropertyName: "bookingTime", publicName: "bookingTime", isSignal: true, isRequired: false, transformFunction: null }, availabilityStatus: { classPropertyName: "availabilityStatus", publicName: "availabilityStatus", isSignal: true, isRequired: false, transformFunction: null }, statusLabel: { classPropertyName: "statusLabel", publicName: "statusLabel", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", 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 }, enableLongPress: { classPropertyName: "enableLongPress", publicName: "enableLongPress", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: "moreActions", publicName: "moreActions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bookingClick: "bookingClick", longPress: "longPress" }, ngImport: i0, template: `
|
|
9614
9724
|
<ds-mobile-list-item
|
|
9615
9725
|
[leadingSize]="'64px'"
|
|
9616
9726
|
[align]="align()"
|
|
9617
9727
|
[variant]="variant()"
|
|
9618
9728
|
[interactive]="clickable()"
|
|
9619
9729
|
[enableLongPress]="enableLongPress()"
|
|
9730
|
+
[moreActions]="moreActions()"
|
|
9620
9731
|
(itemClick)="handleBookingClick()"
|
|
9621
9732
|
(longPress)="handleLongPress()"
|
|
9622
9733
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -9680,7 +9791,7 @@ class DsMobileInteractiveListItemBookingComponent {
|
|
|
9680
9791
|
</div>
|
|
9681
9792
|
}
|
|
9682
9793
|
</ds-mobile-list-item>
|
|
9683
|
-
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.booking-thumbnail{flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--color-surface-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center}.booking-thumbnail img{width:100%;height:100%;object-fit:cover}.booking-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-color-default-tertiary, #737373)}.booking-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.booking-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}.booking-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.booking-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-status.available-today{color:var(--color-accent, #5d5fef)}.booking-status.available-from{color:var(--color-warning, #f59e0b)}.booking-status.unavailable{color:var(--text-color-default-tertiary, #737373)}.booking-datetime{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9794
|
+
`, isInline: true, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.booking-thumbnail{flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--color-surface-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center}.booking-thumbnail img{width:100%;height:100%;object-fit:cover}.booking-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-color-default-tertiary, #737373)}.booking-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.booking-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}.booking-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.booking-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-status.available-today{color:var(--color-accent, #5d5fef)}.booking-status.available-from{color:var(--color-warning, #f59e0b)}.booking-status.unavailable{color:var(--text-color-default-tertiary, #737373)}.booking-datetime{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsShapeIndicatorComponent, selector: "ds-shape-indicator", inputs: ["shape", "variant", "label"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }] });
|
|
9684
9795
|
}
|
|
9685
9796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileInteractiveListItemBookingComponent, decorators: [{
|
|
9686
9797
|
type: Component,
|
|
@@ -9691,6 +9802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9691
9802
|
[variant]="variant()"
|
|
9692
9803
|
[interactive]="clickable()"
|
|
9693
9804
|
[enableLongPress]="enableLongPress()"
|
|
9805
|
+
[moreActions]="moreActions()"
|
|
9694
9806
|
(itemClick)="handleBookingClick()"
|
|
9695
9807
|
(longPress)="handleLongPress()"
|
|
9696
9808
|
(moreButtonClick)="handleMoreButtonClick($event)">
|
|
@@ -9755,7 +9867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
9755
9867
|
}
|
|
9756
9868
|
</ds-mobile-list-item>
|
|
9757
9869
|
`, styles: [":host{display:block}:host:last-child{--divider-display: none;--item-padding-bottom: 0}.booking-thumbnail{flex-shrink:0;width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--color-surface-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center}.booking-thumbnail img{width:100%;height:100%;object-fit:cover}.booking-thumbnail-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-color-default-tertiary, #737373)}.booking-content{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.booking-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}.booking-description{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;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.booking-meta{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66);display:flex;align-items:center;gap:8px;margin-top:4px}.booking-status{display:flex;align-items:center;gap:6px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:500;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-status.available-today{color:var(--color-accent, #5d5fef)}.booking-status.available-from{color:var(--color-warning, #f59e0b)}.booking-status.unavailable{color:var(--text-color-default-tertiary, #737373)}.booking-datetime{display:flex;align-items:center;gap:4px;font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-secondary, #545B66)}.booking-trailing{display:flex;align-items:center;color:var(--color-text-tertiary, #a3a3a3)}\n"] }]
|
|
9758
|
-
}], propDecorators: { thumbnail: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbnail", required: false }] }], facilityTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "facilityTitle", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], bookingDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "bookingDate", required: false }] }], bookingTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "bookingTime", required: false }] }], availabilityStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "availabilityStatus", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], bookingClick: [{ type: i0.Output, args: ["bookingClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
9870
|
+
}], propDecorators: { thumbnail: [{ type: i0.Input, args: [{ isSignal: true, alias: "thumbnail", required: false }] }], facilityTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "facilityTitle", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], bookingDate: [{ type: i0.Input, args: [{ isSignal: true, alias: "bookingDate", required: false }] }], bookingTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "bookingTime", required: false }] }], availabilityStatus: [{ type: i0.Input, args: [{ isSignal: true, alias: "availabilityStatus", required: false }] }], statusLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "statusLabel", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], showChevron: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChevron", required: false }] }], enableLongPress: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLongPress", required: false }] }], moreActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "moreActions", required: false }] }], bookingClick: [{ type: i0.Output, args: ["bookingClick"] }], longPress: [{ type: i0.Output, args: ["longPress"] }] } });
|
|
9759
9871
|
|
|
9760
9872
|
/**
|
|
9761
9873
|
* DsMobileTabBarComponent
|
|
@@ -10356,6 +10468,7 @@ class DsMobileTabBarComponent {
|
|
|
10356
10468
|
cssClass: ['ds-bottom-sheet', 'auto-height'],
|
|
10357
10469
|
});
|
|
10358
10470
|
await sheet.present();
|
|
10471
|
+
disableModalShadowPointerEvents(sheet);
|
|
10359
10472
|
const result = await sheet.onWillDismiss();
|
|
10360
10473
|
if (result.data?.action) {
|
|
10361
10474
|
// Emit the selected action to parent
|
|
@@ -10397,7 +10510,7 @@ class DsMobileTabBarComponent {
|
|
|
10397
10510
|
<ds-avatar [size]="'md'" [type]="avatarType" [initials]="avatarInitials" [src]="avatarSrc" [iconName]="avatarIconName" (click)="handleAvatarClick()" />
|
|
10398
10511
|
</div>
|
|
10399
10512
|
</ion-tab-bar>
|
|
10400
|
-
`, isInline: true, styles: [":host{--ds-tab-bar-height: 64px}@media (min-width: 768px){:host{display:block;--ds-tab-bar-height: 64px}}@media (max-width: 767px){:host{display:contents}}ion-tabs.ds-tabs-wrapper{height:100%;background:var(--color-header-surface)}ion-tab-button:before,ion-tab-button:after{content:none!important;display:none!important}ion-tab-button[title]:before,ion-tab-button[title]:after{display:none!important}ion-tab-button::part(native):before,ion-tab-button::part(native):after{display:none!important}.ds-tab-bar{--background: var(--color-background-neutral-primary);transition:transform .2s ease-in-out}ion-tab-bar[slot=bottom]{border-top:1px solid var(--border-color-default);padding-top:8px;padding-bottom:max(8px,calc(var(--
|
|
10513
|
+
`, isInline: true, styles: [":host{--ds-tab-bar-height: 64px}@media (min-width: 768px){:host{display:block;--ds-tab-bar-height: 64px}}@media (max-width: 767px){:host{display:contents}}ion-tabs.ds-tabs-wrapper{height:100%;background:var(--color-header-surface)}ion-tab-button:before,ion-tab-button:after{content:none!important;display:none!important}ion-tab-button[title]:before,ion-tab-button[title]:after{display:none!important}ion-tab-button::part(native):before,ion-tab-button::part(native):after{display:none!important}.ds-tab-bar{--background: var(--color-background-neutral-primary);transition:transform .2s ease-in-out}ion-tab-bar[slot=bottom]{border-top:1px solid var(--border-color-default);padding-top:8px;padding-bottom:max(8px,calc(var(--app-safe-bottom, 0px) - 16px));padding-left:12px;padding-right:12px}@media (max-width: 767px){ion-tab-bar[slot=bottom]{position:fixed;bottom:0;left:0;right:0;z-index:100}}@media (max-width: 767px){:host-context(.plt-android) ion-tab-bar[slot=bottom]{padding-bottom:max(8px,var(--app-safe-bottom, 0px))!important}}@media (max-width: 767px){:host-context(ion-tabs:has(ds-mobile-page-details)) .ds-tab-bar{transform:translateY(100%);transition:transform .3s ease}}.ds-tab-bar__logo,.ds-tab-bar__actions{display:none}.ds-tab-bar__tabs{display:flex;width:100%;justify-content:space-around;align-items:center}@media (min-width: 769px){ion-tab-bar[slot=bottom]{padding-bottom:var(--app-safe-bottom, 0px)}}@media (display-mode: standalone){ion-tab-bar[slot=bottom]{padding-bottom:var(--app-safe-bottom, 0px)!important}}@media (min-width: 768px){:host[slot=top]{order:-1!important}:host ion-tab-bar{position:relative!important;bottom:auto!important;top:0!important}ion-tab-bar[slot=top]{--background: var(--color-header-surface);position:relative!important;display:flex!important;align-items:center;padding:12px 24px;height:64px;max-width:none;bottom:auto!important;top:0!important}ion-tab-bar[slot=bottom]{position:relative!important;bottom:auto!important}ion-tabs>div:not([slot]){order:1!important}.ds-tab-bar__logo{display:flex;position:absolute;left:24px;align-items:center;color:var(--header-content-color, white)}.ds-tab-bar__actions{display:flex;position:absolute;right:24px;align-items:center;gap:12px}.ds-tab-bar__tabs{display:flex;gap:8px;align-items:center;max-width:640px;width:100%;margin:0 auto;justify-content:center;padding-left:var(--content-padding-md);padding-right:var(--content-padding-md)}.logomark{height:28px;width:auto;flex-shrink:0}}@media (min-width: 992px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg);justify-content:center}}@media (min-width: 1440px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}ion-tab-button{--color: var(--text-color-default-tertiary);--color-selected: var(--color-accent);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:visible;pointer-events:auto}ion-tab-button[title]:before{content:attr(title);position:absolute;opacity:0;pointer-events:none}.tab-icon-ripple{position:absolute;left:50%;top:50%;width:40px;height:40px;border-radius:50%;background:var(--color-accent);transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none;transition:all .6s cubic-bezier(.36,1.2,.04,1.4);z-index:0}.tab-selected .tab-icon-ripple{transform:translate(-50%,-50%) scale(2);opacity:.05;animation:ripple-fade .6s cubic-bezier(.36,.5,.04,1.8) forwards}@keyframes ripple-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}30%{opacity:.1}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}ion-tab-button::part(native){overflow:visible}ion-tab-button ion-ripple-effect{color:var(--color-accent);border-radius:1000px}ion-tab-button ion-label{font-size:11px;font-weight:500;letter-spacing:-.5px;margin-top:0}.tab-icon-wrapper{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center;z-index:1;margin-bottom:4px}.tab-icon-inactive,.tab-icon-active{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:all .8s cubic-bezier(.36,1,.04,1)}.tab-icon-inactive{opacity:1;transform:translate(-50%,-50%) scale(1)}.tab-icon-active{opacity:0;transform:translate(-50%,calc(-50% - 12px)) scale(.5)}.tab-selected .tab-icon-inactive{opacity:0;transform:translate(-50%,-50%) scale(.5)}.tab-selected .tab-icon-active{opacity:1;transform:translate(-50%,-50%) scale(1)}@media (min-width: 768px){.ds-tab-button{flex-direction:row;height:40px;padding:0 16px!important;border-radius:40px;transition:all .2s ease;width:-moz-fit-content;width:fit-content;min-width:-moz-fit-content;min-width:fit-content;flex:0 0 auto;--color: rgba(var(--color-header-content-rgb, 255, 255, 255), .7);--color-selected: var(--color-header-content, white);color:rgba(var(--color-header-content-rgb, 255, 255, 255),.7);background:transparent;position:relative;overflow:hidden}.tab-icon-wrapper,.tab-icon-ripple{width:20px;height:20px}.ds-tab-button::part(native){border-radius:40px}.ds-tab-button:hover:not(.tab-selected){--color: var(--color-header-content, white);--color-selected: var(--color-header-content, white);color:var(--color-header-content, white);background:rgba(var(--color-header-content-rgb, 255, 255, 255),.1)}.ds-tab-button:hover:not(.tab-selected) ion-label{color:var(--color-header-content, white)}.ds-tab-button:hover:not(.tab-selected) ds-icon{--icon-color: var(--color-header-content, white);color:var(--color-header-content, white)}.ds-tab-button:hover:not(.tab-selected) ds-icon svg{fill:var(--color-header-content, white)}.ds-tab-button.tab-selected,.ds-tab-button.tab-selected:hover{background:var(--color-header-accent);--color-selected: var(--color-on-header-accent, white);--color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ion-label{color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ds-icon{--icon-color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ds-icon svg{fill:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover .tab-icon-active{opacity:1!important;visibility:visible!important}.ds-tab-button.tab-selected:hover .tab-icon-inactive{opacity:0!important}.ds-tab-button.tab-selected ion-label{color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected ds-icon{--icon-color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected ds-icon svg{fill:var(--color-on-header-accent, white)}.ds-tab-button .button-native{width:auto;padding:0}.ds-tab-button ion-label{font-size:var(--font-size-sm);font-weight:500;margin:0;color:inherit}.ds-tab-button .tab-icon-wrapper{margin-right:4px;margin-bottom:0}.ds-tab-button ion-ripple-effect{color:rgba(var(--header-content-color-rgb, 255, 255, 255),.3);border-radius:1000px;transform:scale(1.5)}}@media (min-width: 768px){.ds-tab-bar__actions ds-avatar{cursor:pointer;transition:transform .2s ease}.ds-tab-bar__actions ds-avatar:hover{transform:scale(1.05)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonTabBar, selector: "ion-tab-bar", inputs: ["color", "mode", "selectedTab", "translucent"] }, { kind: "component", type: IonTabButton, selector: "ion-tab-button", inputs: ["disabled", "download", "href", "layout", "mode", "rel", "selected", "tab", "target"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsAvatarComponent, selector: "ds-avatar", inputs: ["type", "size", "initials", "src", "alt", "iconName", "iconColor"] }, { kind: "component", type: DsLogoComponent, selector: "ds-logo", inputs: ["variant", "size", "customHeight", "customWidth"] }] });
|
|
10401
10514
|
}
|
|
10402
10515
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileTabBarComponent, decorators: [{
|
|
10403
10516
|
type: Component,
|
|
@@ -10433,7 +10546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
10433
10546
|
<ds-avatar [size]="'md'" [type]="avatarType" [initials]="avatarInitials" [src]="avatarSrc" [iconName]="avatarIconName" (click)="handleAvatarClick()" />
|
|
10434
10547
|
</div>
|
|
10435
10548
|
</ion-tab-bar>
|
|
10436
|
-
`, styles: [":host{--ds-tab-bar-height: 64px}@media (min-width: 768px){:host{display:block;--ds-tab-bar-height: 64px}}@media (max-width: 767px){:host{display:contents}}ion-tabs.ds-tabs-wrapper{height:100%;background:var(--color-header-surface)}ion-tab-button:before,ion-tab-button:after{content:none!important;display:none!important}ion-tab-button[title]:before,ion-tab-button[title]:after{display:none!important}ion-tab-button::part(native):before,ion-tab-button::part(native):after{display:none!important}.ds-tab-bar{--background: var(--color-background-neutral-primary);transition:transform .2s ease-in-out}ion-tab-bar[slot=bottom]{border-top:1px solid var(--border-color-default);padding-top:8px;padding-bottom:max(8px,calc(var(--
|
|
10549
|
+
`, styles: [":host{--ds-tab-bar-height: 64px}@media (min-width: 768px){:host{display:block;--ds-tab-bar-height: 64px}}@media (max-width: 767px){:host{display:contents}}ion-tabs.ds-tabs-wrapper{height:100%;background:var(--color-header-surface)}ion-tab-button:before,ion-tab-button:after{content:none!important;display:none!important}ion-tab-button[title]:before,ion-tab-button[title]:after{display:none!important}ion-tab-button::part(native):before,ion-tab-button::part(native):after{display:none!important}.ds-tab-bar{--background: var(--color-background-neutral-primary);transition:transform .2s ease-in-out}ion-tab-bar[slot=bottom]{border-top:1px solid var(--border-color-default);padding-top:8px;padding-bottom:max(8px,calc(var(--app-safe-bottom, 0px) - 16px));padding-left:12px;padding-right:12px}@media (max-width: 767px){ion-tab-bar[slot=bottom]{position:fixed;bottom:0;left:0;right:0;z-index:100}}@media (max-width: 767px){:host-context(.plt-android) ion-tab-bar[slot=bottom]{padding-bottom:max(8px,var(--app-safe-bottom, 0px))!important}}@media (max-width: 767px){:host-context(ion-tabs:has(ds-mobile-page-details)) .ds-tab-bar{transform:translateY(100%);transition:transform .3s ease}}.ds-tab-bar__logo,.ds-tab-bar__actions{display:none}.ds-tab-bar__tabs{display:flex;width:100%;justify-content:space-around;align-items:center}@media (min-width: 769px){ion-tab-bar[slot=bottom]{padding-bottom:var(--app-safe-bottom, 0px)}}@media (display-mode: standalone){ion-tab-bar[slot=bottom]{padding-bottom:var(--app-safe-bottom, 0px)!important}}@media (min-width: 768px){:host[slot=top]{order:-1!important}:host ion-tab-bar{position:relative!important;bottom:auto!important;top:0!important}ion-tab-bar[slot=top]{--background: var(--color-header-surface);position:relative!important;display:flex!important;align-items:center;padding:12px 24px;height:64px;max-width:none;bottom:auto!important;top:0!important}ion-tab-bar[slot=bottom]{position:relative!important;bottom:auto!important}ion-tabs>div:not([slot]){order:1!important}.ds-tab-bar__logo{display:flex;position:absolute;left:24px;align-items:center;color:var(--header-content-color, white)}.ds-tab-bar__actions{display:flex;position:absolute;right:24px;align-items:center;gap:12px}.ds-tab-bar__tabs{display:flex;gap:8px;align-items:center;max-width:640px;width:100%;margin:0 auto;justify-content:center;padding-left:var(--content-padding-md);padding-right:var(--content-padding-md)}.logomark{height:28px;width:auto;flex-shrink:0}}@media (min-width: 992px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-lg);padding-right:var(--content-padding-lg);justify-content:center}}@media (min-width: 1440px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-xl);padding-right:var(--content-padding-xl)}}@media (min-width: 1768px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-2xl);padding-right:var(--content-padding-2xl)}}@media (min-width: 1920px){.ds-tab-bar__tabs{max-width:640px;padding-left:var(--content-padding-3xl);padding-right:var(--content-padding-3xl)}}ion-tab-button{--color: var(--text-color-default-tertiary);--color-selected: var(--color-accent);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:visible;pointer-events:auto}ion-tab-button[title]:before{content:attr(title);position:absolute;opacity:0;pointer-events:none}.tab-icon-ripple{position:absolute;left:50%;top:50%;width:40px;height:40px;border-radius:50%;background:var(--color-accent);transform:translate(-50%,-50%) scale(0);opacity:0;pointer-events:none;transition:all .6s cubic-bezier(.36,1.2,.04,1.4);z-index:0}.tab-selected .tab-icon-ripple{transform:translate(-50%,-50%) scale(2);opacity:.05;animation:ripple-fade .6s cubic-bezier(.36,.5,.04,1.8) forwards}@keyframes ripple-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}30%{opacity:.1}to{opacity:0;transform:translate(-50%,-50%) scale(2)}}ion-tab-button::part(native){overflow:visible}ion-tab-button ion-ripple-effect{color:var(--color-accent);border-radius:1000px}ion-tab-button ion-label{font-size:11px;font-weight:500;letter-spacing:-.5px;margin-top:0}.tab-icon-wrapper{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center;z-index:1;margin-bottom:4px}.tab-icon-inactive,.tab-icon-active{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transition:all .8s cubic-bezier(.36,1,.04,1)}.tab-icon-inactive{opacity:1;transform:translate(-50%,-50%) scale(1)}.tab-icon-active{opacity:0;transform:translate(-50%,calc(-50% - 12px)) scale(.5)}.tab-selected .tab-icon-inactive{opacity:0;transform:translate(-50%,-50%) scale(.5)}.tab-selected .tab-icon-active{opacity:1;transform:translate(-50%,-50%) scale(1)}@media (min-width: 768px){.ds-tab-button{flex-direction:row;height:40px;padding:0 16px!important;border-radius:40px;transition:all .2s ease;width:-moz-fit-content;width:fit-content;min-width:-moz-fit-content;min-width:fit-content;flex:0 0 auto;--color: rgba(var(--color-header-content-rgb, 255, 255, 255), .7);--color-selected: var(--color-header-content, white);color:rgba(var(--color-header-content-rgb, 255, 255, 255),.7);background:transparent;position:relative;overflow:hidden}.tab-icon-wrapper,.tab-icon-ripple{width:20px;height:20px}.ds-tab-button::part(native){border-radius:40px}.ds-tab-button:hover:not(.tab-selected){--color: var(--color-header-content, white);--color-selected: var(--color-header-content, white);color:var(--color-header-content, white);background:rgba(var(--color-header-content-rgb, 255, 255, 255),.1)}.ds-tab-button:hover:not(.tab-selected) ion-label{color:var(--color-header-content, white)}.ds-tab-button:hover:not(.tab-selected) ds-icon{--icon-color: var(--color-header-content, white);color:var(--color-header-content, white)}.ds-tab-button:hover:not(.tab-selected) ds-icon svg{fill:var(--color-header-content, white)}.ds-tab-button.tab-selected,.ds-tab-button.tab-selected:hover{background:var(--color-header-accent);--color-selected: var(--color-on-header-accent, white);--color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ion-label{color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ds-icon{--icon-color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover ds-icon svg{fill:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected:hover .tab-icon-active{opacity:1!important;visibility:visible!important}.ds-tab-button.tab-selected:hover .tab-icon-inactive{opacity:0!important}.ds-tab-button.tab-selected ion-label{color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected ds-icon{--icon-color: var(--color-on-header-accent, white);color:var(--color-on-header-accent, white)}.ds-tab-button.tab-selected ds-icon svg{fill:var(--color-on-header-accent, white)}.ds-tab-button .button-native{width:auto;padding:0}.ds-tab-button ion-label{font-size:var(--font-size-sm);font-weight:500;margin:0;color:inherit}.ds-tab-button .tab-icon-wrapper{margin-right:4px;margin-bottom:0}.ds-tab-button ion-ripple-effect{color:rgba(var(--header-content-color-rgb, 255, 255, 255),.3);border-radius:1000px;transform:scale(1.5)}}@media (min-width: 768px){.ds-tab-bar__actions ds-avatar{cursor:pointer;transition:transform .2s ease}.ds-tab-bar__actions ds-avatar:hover{transform:scale(1.05)}}\n"] }]
|
|
10437
10550
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { tabs: [{
|
|
10438
10551
|
type: Input
|
|
10439
10552
|
}], avatarType: [{
|
|
@@ -12836,6 +12949,13 @@ class MobileModalBase {
|
|
|
12836
12949
|
* @default false
|
|
12837
12950
|
*/
|
|
12838
12951
|
isAutoHeight = input(false, ...(ngDevMode ? [{ debugName: "isAutoHeight" }] : []));
|
|
12952
|
+
/**
|
|
12953
|
+
* Controls how modal content behaves when the keyboard opens.
|
|
12954
|
+
* - 'follow': content is pushed to follow keyboard movement
|
|
12955
|
+
* - 'overlay': keyboard/footer overlays lower content (no auto scroll push)
|
|
12956
|
+
* @default 'follow'
|
|
12957
|
+
*/
|
|
12958
|
+
keyboardContentBehavior = input('follow', ...(ngDevMode ? [{ debugName: "keyboardContentBehavior" }] : []));
|
|
12839
12959
|
/**
|
|
12840
12960
|
* Emitted when modal is closed
|
|
12841
12961
|
*/
|
|
@@ -12900,33 +13020,39 @@ class MobileModalBase {
|
|
|
12900
13020
|
try {
|
|
12901
13021
|
const scrollElement = await this.ionContent.getScrollElement();
|
|
12902
13022
|
if (scrollElement) {
|
|
12903
|
-
// Store current scroll position before keyboard animation
|
|
12904
|
-
const currentScrollTop = scrollElement.scrollTop;
|
|
12905
13023
|
// Get current fixed bottom height and add keyboard height
|
|
12906
13024
|
const fixedBottomHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--fixed-bottom-height') || '0');
|
|
12907
|
-
const totalPadding = fixedBottomHeight
|
|
13025
|
+
const totalPadding = this.getScrollPadding(fixedBottomHeight, info.keyboardHeight);
|
|
12908
13026
|
scrollElement.style.paddingBottom = `${totalPadding}px`;
|
|
12909
13027
|
// console.log('[MobileModalBase] Updated padding:', totalPadding, '(fixed:', fixedBottomHeight, '+ keyboard:', info.keyboardHeight, ')');
|
|
12910
|
-
//
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
12924
|
-
|
|
12925
|
-
//
|
|
12926
|
-
|
|
12927
|
-
|
|
12928
|
-
|
|
12929
|
-
|
|
13028
|
+
// In overlay mode, keep content stationary and let keyboard/footer overlap.
|
|
13029
|
+
if (this.isOverlayBehavior()) {
|
|
13030
|
+
this.isKeyboardAnimating = false;
|
|
13031
|
+
}
|
|
13032
|
+
else {
|
|
13033
|
+
// Store current scroll position before keyboard animation
|
|
13034
|
+
const currentScrollTop = scrollElement.scrollTop;
|
|
13035
|
+
// Animate scroll position to match keyboard
|
|
13036
|
+
const startTime = performance.now();
|
|
13037
|
+
const duration = 300; // Match keyboard animation duration
|
|
13038
|
+
const animateScroll = (currentTime) => {
|
|
13039
|
+
const elapsed = currentTime - startTime;
|
|
13040
|
+
const progress = Math.min(elapsed / duration, 1);
|
|
13041
|
+
// Ease-out cubic (matches iOS/Android keyboard animation curve)
|
|
13042
|
+
const easeProgress = 1 - Math.pow(1 - progress, 3);
|
|
13043
|
+
// Scroll down by keyboard height so content "follows" keyboard up
|
|
13044
|
+
scrollElement.scrollTop = currentScrollTop + info.keyboardHeight * easeProgress;
|
|
13045
|
+
if (progress < 1) {
|
|
13046
|
+
requestAnimationFrame(animateScroll);
|
|
13047
|
+
}
|
|
13048
|
+
else {
|
|
13049
|
+
// Animation complete - re-enable ResizeObserver
|
|
13050
|
+
// console.log('[MobileModalBase] ✅ Keyboard animation complete');
|
|
13051
|
+
this.isKeyboardAnimating = false;
|
|
13052
|
+
}
|
|
13053
|
+
};
|
|
13054
|
+
requestAnimationFrame(animateScroll);
|
|
13055
|
+
}
|
|
12930
13056
|
}
|
|
12931
13057
|
}
|
|
12932
13058
|
catch (e) {
|
|
@@ -12961,33 +13087,40 @@ class MobileModalBase {
|
|
|
12961
13087
|
try {
|
|
12962
13088
|
const scrollElement = await this.ionContent.getScrollElement();
|
|
12963
13089
|
if (scrollElement) {
|
|
12964
|
-
// Store current scroll position
|
|
12965
|
-
const currentScrollTop = scrollElement.scrollTop;
|
|
12966
13090
|
// Get current fixed bottom height (without keyboard)
|
|
12967
13091
|
const fixedBottomHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--fixed-bottom-height') || '0');
|
|
12968
|
-
|
|
13092
|
+
const totalPadding = this.getScrollPadding(fixedBottomHeight, 0);
|
|
13093
|
+
scrollElement.style.paddingBottom = `${totalPadding}px`;
|
|
12969
13094
|
// console.log('[MobileModalBase] Removed keyboard padding, now:', fixedBottomHeight);
|
|
12970
|
-
//
|
|
12971
|
-
|
|
12972
|
-
|
|
12973
|
-
|
|
12974
|
-
|
|
12975
|
-
|
|
12976
|
-
|
|
12977
|
-
|
|
12978
|
-
|
|
12979
|
-
const
|
|
12980
|
-
|
|
12981
|
-
|
|
12982
|
-
|
|
12983
|
-
|
|
12984
|
-
|
|
12985
|
-
//
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
13095
|
+
// In overlay mode, keep content stationary and let keyboard/footer overlap.
|
|
13096
|
+
if (this.isOverlayBehavior()) {
|
|
13097
|
+
this.isKeyboardAnimating = false;
|
|
13098
|
+
}
|
|
13099
|
+
else {
|
|
13100
|
+
// Store current scroll position
|
|
13101
|
+
const currentScrollTop = scrollElement.scrollTop;
|
|
13102
|
+
// Animate scroll position back
|
|
13103
|
+
const startTime = performance.now();
|
|
13104
|
+
const duration = 300;
|
|
13105
|
+
const animateScroll = (currentTime) => {
|
|
13106
|
+
const elapsed = currentTime - startTime;
|
|
13107
|
+
const progress = Math.min(elapsed / duration, 1);
|
|
13108
|
+
// Ease-out cubic
|
|
13109
|
+
const easeProgress = 1 - Math.pow(1 - progress, 3);
|
|
13110
|
+
// Scroll up by keyboard height (reverse the push)
|
|
13111
|
+
const newScrollTop = currentScrollTop - keyboardHeight * easeProgress;
|
|
13112
|
+
scrollElement.scrollTop = Math.max(0, newScrollTop);
|
|
13113
|
+
if (progress < 1) {
|
|
13114
|
+
requestAnimationFrame(animateScroll);
|
|
13115
|
+
}
|
|
13116
|
+
else {
|
|
13117
|
+
// Animation complete - re-enable ResizeObserver
|
|
13118
|
+
// console.log('[MobileModalBase] ✅ Keyboard hide animation complete');
|
|
13119
|
+
this.isKeyboardAnimating = false;
|
|
13120
|
+
}
|
|
13121
|
+
};
|
|
13122
|
+
requestAnimationFrame(animateScroll);
|
|
13123
|
+
}
|
|
12991
13124
|
}
|
|
12992
13125
|
}
|
|
12993
13126
|
catch (e) {
|
|
@@ -13010,13 +13143,12 @@ class MobileModalBase {
|
|
|
13010
13143
|
* @protected
|
|
13011
13144
|
*/
|
|
13012
13145
|
async setupFixedBottomObserver() {
|
|
13013
|
-
//
|
|
13014
|
-
const
|
|
13015
|
-
const offset = isNative ? -24 : -12;
|
|
13146
|
+
// Use measured fixed-bottom height directly; safe-area tuning is handled in CSS.
|
|
13147
|
+
const offset = 0;
|
|
13016
13148
|
// Small delay to ensure DOM is ready
|
|
13017
13149
|
setTimeout(async () => {
|
|
13018
13150
|
const fixedBottom = document.querySelector('.modal-fixed-bottom');
|
|
13019
|
-
// console.log('[MobileModalBase] Fixed bottom element:', fixedBottom, '
|
|
13151
|
+
// console.log('[MobileModalBase] Fixed bottom element:', fixedBottom, 'Offset:', offset);
|
|
13020
13152
|
if (fixedBottom) {
|
|
13021
13153
|
this.fixedBottomObserver = new ResizeObserver(async (entries) => {
|
|
13022
13154
|
// Skip updates during keyboard animations to prevent conflicts
|
|
@@ -13032,7 +13164,7 @@ class MobileModalBase {
|
|
|
13032
13164
|
const totalHeight = height + offset;
|
|
13033
13165
|
// CRITICAL: Include keyboard height if keyboard is visible!
|
|
13034
13166
|
const keyboardHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--keyboard-height') || '0');
|
|
13035
|
-
const paddingWithKeyboard = totalHeight
|
|
13167
|
+
const paddingWithKeyboard = this.getScrollPadding(totalHeight, keyboardHeight);
|
|
13036
13168
|
// console.log('[MobileModalBase] ResizeObserver - height:', height, 'totalHeight:', totalHeight, 'keyboard:', keyboardHeight, 'finalPadding:', paddingWithKeyboard);
|
|
13037
13169
|
document.documentElement.style.setProperty('--fixed-bottom-height', `${totalHeight}px`);
|
|
13038
13170
|
// Also update scroll element padding (including keyboard height!)
|
|
@@ -13047,7 +13179,7 @@ class MobileModalBase {
|
|
|
13047
13179
|
scrollElement.style.paddingBottom = `${paddingWithKeyboard}px`;
|
|
13048
13180
|
// CRITICAL: Adjust scroll to maintain visual position
|
|
13049
13181
|
// When padding increases, we need to scroll down by the same amount
|
|
13050
|
-
if (paddingDifference !== 0) {
|
|
13182
|
+
if (!this.isOverlayBehavior() && paddingDifference !== 0) {
|
|
13051
13183
|
const currentScrollTop = scrollElement.scrollTop;
|
|
13052
13184
|
scrollElement.scrollTop = currentScrollTop + paddingDifference;
|
|
13053
13185
|
// console.log('[MobileModalBase] Adjusted scroll by', paddingDifference, 'px (from', currentScrollTop, 'to', scrollElement.scrollTop, ')');
|
|
@@ -13073,7 +13205,7 @@ class MobileModalBase {
|
|
|
13073
13205
|
if (scrollElement) {
|
|
13074
13206
|
// Include keyboard height if present
|
|
13075
13207
|
const keyboardHeight = parseFloat(getComputedStyle(document.documentElement).getPropertyValue('--keyboard-height') || '0');
|
|
13076
|
-
const paddingWithKeyboard = initialTotal
|
|
13208
|
+
const paddingWithKeyboard = this.getScrollPadding(initialTotal, keyboardHeight);
|
|
13077
13209
|
scrollElement.style.paddingBottom = `${paddingWithKeyboard}px`;
|
|
13078
13210
|
}
|
|
13079
13211
|
}
|
|
@@ -13112,15 +13244,30 @@ class MobileModalBase {
|
|
|
13112
13244
|
}
|
|
13113
13245
|
return false;
|
|
13114
13246
|
}
|
|
13247
|
+
/**
|
|
13248
|
+
* Returns true when keyboard should overlay content without push-scrolling.
|
|
13249
|
+
*/
|
|
13250
|
+
isOverlayBehavior() {
|
|
13251
|
+
return this.keyboardContentBehavior() === 'overlay';
|
|
13252
|
+
}
|
|
13253
|
+
/**
|
|
13254
|
+
* Computes scroll bottom inset for current keyboard behavior.
|
|
13255
|
+
*/
|
|
13256
|
+
getScrollPadding(fixedBottomHeight, keyboardHeight) {
|
|
13257
|
+
if (this.isOverlayBehavior()) {
|
|
13258
|
+
return fixedBottomHeight;
|
|
13259
|
+
}
|
|
13260
|
+
return fixedBottomHeight + keyboardHeight;
|
|
13261
|
+
}
|
|
13115
13262
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileModalBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
13116
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: MobileModalBase, isStandalone: true, inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, headerMeta: { classPropertyName: "headerMeta", publicName: "headerMeta", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, enableKeyboardHandling: { classPropertyName: "enableKeyboardHandling", publicName: "enableKeyboardHandling", isSignal: true, isRequired: false, transformFunction: null }, hasFixedBottom: { classPropertyName: "hasFixedBottom", publicName: "hasFixedBottom", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: "contentPadding", publicName: "contentPadding", isSignal: true, isRequired: false, transformFunction: null }, isAutoHeight: { classPropertyName: "isAutoHeight", publicName: "isAutoHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", keyboardWillShow: "keyboardWillShow", keyboardWillHide: "keyboardWillHide" }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true, read: IonContent }], ngImport: i0 });
|
|
13263
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.16", type: MobileModalBase, isStandalone: true, inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, headerTitle: { classPropertyName: "headerTitle", publicName: "headerTitle", isSignal: true, isRequired: false, transformFunction: null }, headerMeta: { classPropertyName: "headerMeta", publicName: "headerMeta", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, enableKeyboardHandling: { classPropertyName: "enableKeyboardHandling", publicName: "enableKeyboardHandling", isSignal: true, isRequired: false, transformFunction: null }, hasFixedBottom: { classPropertyName: "hasFixedBottom", publicName: "hasFixedBottom", isSignal: true, isRequired: false, transformFunction: null }, contentPadding: { classPropertyName: "contentPadding", publicName: "contentPadding", isSignal: true, isRequired: false, transformFunction: null }, isAutoHeight: { classPropertyName: "isAutoHeight", publicName: "isAutoHeight", isSignal: true, isRequired: false, transformFunction: null }, keyboardContentBehavior: { classPropertyName: "keyboardContentBehavior", publicName: "keyboardContentBehavior", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", keyboardWillShow: "keyboardWillShow", keyboardWillHide: "keyboardWillHide" }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true, read: IonContent }], ngImport: i0 });
|
|
13117
13264
|
}
|
|
13118
13265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileModalBase, decorators: [{
|
|
13119
13266
|
type: Directive
|
|
13120
13267
|
}], propDecorators: { ionContent: [{
|
|
13121
13268
|
type: ViewChild,
|
|
13122
13269
|
args: [IonContent, { read: IonContent }]
|
|
13123
|
-
}], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], headerTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTitle", required: false }] }], headerMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerMeta", required: false }] }], closeButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonLabel", required: false }] }], enableKeyboardHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableKeyboardHandling", required: false }] }], hasFixedBottom: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasFixedBottom", required: false }] }], contentPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentPadding", required: false }] }], isAutoHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAutoHeight", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], keyboardWillShow: [{ type: i0.Output, args: ["keyboardWillShow"] }], keyboardWillHide: [{ type: i0.Output, args: ["keyboardWillHide"] }] } });
|
|
13270
|
+
}], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], headerTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerTitle", required: false }] }], headerMeta: [{ type: i0.Input, args: [{ isSignal: true, alias: "headerMeta", required: false }] }], closeButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeButtonLabel", required: false }] }], enableKeyboardHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableKeyboardHandling", required: false }] }], hasFixedBottom: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasFixedBottom", required: false }] }], contentPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentPadding", required: false }] }], isAutoHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAutoHeight", required: false }] }], keyboardContentBehavior: [{ type: i0.Input, args: [{ isSignal: true, alias: "keyboardContentBehavior", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], keyboardWillShow: [{ type: i0.Output, args: ["keyboardWillShow"] }], keyboardWillHide: [{ type: i0.Output, args: ["keyboardWillHide"] }] } });
|
|
13124
13271
|
|
|
13125
13272
|
/**
|
|
13126
13273
|
* DsMobileModalBaseComponent
|
|
@@ -13134,6 +13281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
13134
13281
|
* - Default loading and error state templates (with override capability)
|
|
13135
13282
|
* - Fixed bottom component support (e.g., message composer)
|
|
13136
13283
|
* - Automatic keyboard handling
|
|
13284
|
+
* - Configurable keyboard content behavior (`follow` or `overlay`)
|
|
13137
13285
|
* - Safe area support
|
|
13138
13286
|
*
|
|
13139
13287
|
* **Slot Structure:**
|
|
@@ -13176,7 +13324,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
13176
13324
|
* <ds-mobile-modal-base
|
|
13177
13325
|
* headerTitle="Create Inquiry"
|
|
13178
13326
|
* [hasFixedBottom]="true"
|
|
13179
|
-
* [enableKeyboardHandling]="true"
|
|
13327
|
+
* [enableKeyboardHandling]="true"
|
|
13328
|
+
* [keyboardContentBehavior]="'overlay'">
|
|
13180
13329
|
*
|
|
13181
13330
|
* <div class="content">
|
|
13182
13331
|
* <input type="text" placeholder="Type something..." />
|
|
@@ -13254,6 +13403,12 @@ class DsMobileModalBaseComponent extends MobileModalBase {
|
|
|
13254
13403
|
// Auto-detect: show header if there's any header content
|
|
13255
13404
|
return !!(this.headerTitle() || this.headerMeta() || this.hasContentInSlot(this.headerLeading) || this.hasContentInSlot(this.headerMain));
|
|
13256
13405
|
}
|
|
13406
|
+
/**
|
|
13407
|
+
* Check whether header-leading slot has actual projected content.
|
|
13408
|
+
*/
|
|
13409
|
+
hasHeaderLeadingContent() {
|
|
13410
|
+
return this.hasContentInSlot(this.headerLeading);
|
|
13411
|
+
}
|
|
13257
13412
|
/**
|
|
13258
13413
|
* Check if a content child slot has actual content
|
|
13259
13414
|
*/
|
|
@@ -13275,7 +13430,7 @@ class DsMobileModalBaseComponent extends MobileModalBase {
|
|
|
13275
13430
|
<div class="modal-wrapper" [class.headerless]="!shouldShowHeader()" [class.is-auto-height]="isAutoHeight()">
|
|
13276
13431
|
<!-- Header (conditional) -->
|
|
13277
13432
|
@if (shouldShowHeader()) {
|
|
13278
|
-
<div class="modal-header">
|
|
13433
|
+
<div class="modal-header" [class.no-leading-content]="!hasHeaderLeadingContent()">
|
|
13279
13434
|
<div class="header-content">
|
|
13280
13435
|
<!-- Leading slot (avatar, icon) - always rendered, CSS handles empty state -->
|
|
13281
13436
|
<div class="header-leading">
|
|
@@ -13346,7 +13501,7 @@ class DsMobileModalBaseComponent extends MobileModalBase {
|
|
|
13346
13501
|
<ng-content select="[fixed-bottom]"></ng-content>
|
|
13347
13502
|
<ng-content select="[footer]"></ng-content>
|
|
13348
13503
|
</div>
|
|
13349
|
-
`, isInline: true, styles: [":host{display:block;position:relative;height:100%;width:100%}:host(.is-auto-height){height:auto}.modal-base-content{--background: var(--color-background-neutral-primary, #ffffff)}.modal-base-content.is-auto-height{--height: auto;height:auto!important;flex:0 0 auto;display:block;contain:none!important}.modal-base-content.is-auto-height::part(scroll){position:relative!important;display:block!important;height:auto!important;overflow:visible!important}.modal-wrapper{display:flex;flex-direction:column;width:100%;background:var(--color-background-neutral-primary, #ffffff)}.modal-wrapper.is-auto-height{flex:0 0 auto}.modal-header{position:sticky;top:0;z-index:10;background:var(--color-background-neutral-primary, #ffffff);border-bottom:1px solid var(--border-color-default);padding:16px}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-leading{flex-shrink:0;display:flex;align-items:center}.header-leading:empty{display:none}.header-content:has(.header-leading:empty){gap:16px}.header-main{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.modal-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-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}.close-button{flex-shrink:0;border-radius:50%}.close-button::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button-absolute{position:absolute;top:16px;right:16px;z-index:100;flex-shrink:0;border-radius:50%}.close-button-absolute::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-content-container{display:flex;flex-direction:column;width:100%;max-width:640px;margin:0 auto;flex:1;position:relative
|
|
13504
|
+
`, isInline: true, styles: [":host{display:block;position:relative;height:100%;width:100%}:host(.is-auto-height){height:auto}.modal-base-content{--background: var(--color-background-neutral-primary, #ffffff)}.modal-base-content.is-auto-height{--height: auto;height:auto!important;flex:0 0 auto;display:block;contain:none!important}.modal-base-content.is-auto-height::part(scroll){position:relative!important;display:block!important;height:auto!important;overflow:visible!important}.modal-wrapper{display:flex;flex-direction:column;width:100%;background:var(--color-background-neutral-primary, #ffffff)}.modal-wrapper.is-auto-height{flex:0 0 auto}.modal-header{position:sticky;top:0;z-index:10;background:var(--color-background-neutral-primary, #ffffff);border-bottom:1px solid var(--border-color-default);padding:16px}.modal-header.no-leading-content{padding-left:20px}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-leading{flex-shrink:0;display:flex;align-items:center}.header-leading:empty{display:none}.modal-header.no-leading-content .header-content,.header-content:has(.header-leading:empty){gap:16px}.header-main{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.modal-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-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}.close-button{flex-shrink:0;border-radius:50%}.close-button::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button-absolute{position:absolute;top:16px;right:16px;z-index:100;flex-shrink:0;border-radius:50%}.close-button-absolute::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-content-container{display:flex;flex-direction:column;width:100%;max-width:640px;margin:0 auto;flex:1;position:relative}:host-context(ion-modal.auto-height) .modal-content-container,.modal-wrapper.is-auto-height .modal-content-container{flex:0 0 auto}.modal-wrapper.headerless .modal-content-container{padding-top:0}.modal-main-content{display:flex;flex-direction:column;width:100%;padding-top:0;padding-left:var(--modal-content-padding, 20px);padding-right:var(--modal-content-padding, 20px);padding-bottom:var(--modal-content-padding, 20px)}.modal-main-content.content-hidden,.state-hidden{display:none}.custom-loading-slot,.custom-error-slot{width:100%}.modal-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{width:48px;height:48px;border:3px solid var(--color-background-neutral-secondary, #f0f0f0);border-top-color:var(--color-primary-base, #2563eb);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373);margin-top:16px}.modal-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:16px}.error-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);margin:0}.error-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);margin:0}.modal-fixed-bottom{position:fixed;bottom:0;left:0;right:0;z-index:1000;pointer-events:none;background:var(--color-background-neutral-primary, #ffffff);box-shadow:0 300px 0 300px var(--color-background-neutral-primary, #ffffff);transform:translateY(calc(-1 * var(--keyboard-height, 0px)));transition:transform .3s cubic-bezier(.215,.61,.355,1);max-width:100vw;padding-bottom:max(8px,calc(var(--app-safe-bottom, 0px) - 24px))}:host-context(.plt-android) .modal-fixed-bottom{padding-bottom:max(8px,var(--app-safe-bottom, 0px))}.modal-fixed-bottom.is-auto-height{position:relative;bottom:auto;left:auto;right:auto;transform:none!important;box-shadow:none;z-index:1;background:var(--color-background-neutral-primary, #ffffff);padding-bottom:var(--keyboard-height, 0px);transition:padding-bottom .3s cubic-bezier(.215,.61,.355,1)}.modal-fixed-bottom>*{pointer-events:auto}.modal-fixed-bottom.bottom-hidden{display:none}@media (prefers-reduced-motion: reduce){.modal-fixed-bottom{transition:none}.loading-spinner{animation:none}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { 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: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }] });
|
|
13350
13505
|
}
|
|
13351
13506
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileModalBaseComponent, decorators: [{
|
|
13352
13507
|
type: Component,
|
|
@@ -13364,7 +13519,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
13364
13519
|
<div class="modal-wrapper" [class.headerless]="!shouldShowHeader()" [class.is-auto-height]="isAutoHeight()">
|
|
13365
13520
|
<!-- Header (conditional) -->
|
|
13366
13521
|
@if (shouldShowHeader()) {
|
|
13367
|
-
<div class="modal-header">
|
|
13522
|
+
<div class="modal-header" [class.no-leading-content]="!hasHeaderLeadingContent()">
|
|
13368
13523
|
<div class="header-content">
|
|
13369
13524
|
<!-- Leading slot (avatar, icon) - always rendered, CSS handles empty state -->
|
|
13370
13525
|
<div class="header-leading">
|
|
@@ -13435,7 +13590,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
13435
13590
|
<ng-content select="[fixed-bottom]"></ng-content>
|
|
13436
13591
|
<ng-content select="[footer]"></ng-content>
|
|
13437
13592
|
</div>
|
|
13438
|
-
`, styles: [":host{display:block;position:relative;height:100%;width:100%}:host(.is-auto-height){height:auto}.modal-base-content{--background: var(--color-background-neutral-primary, #ffffff)}.modal-base-content.is-auto-height{--height: auto;height:auto!important;flex:0 0 auto;display:block;contain:none!important}.modal-base-content.is-auto-height::part(scroll){position:relative!important;display:block!important;height:auto!important;overflow:visible!important}.modal-wrapper{display:flex;flex-direction:column;width:100%;background:var(--color-background-neutral-primary, #ffffff)}.modal-wrapper.is-auto-height{flex:0 0 auto}.modal-header{position:sticky;top:0;z-index:10;background:var(--color-background-neutral-primary, #ffffff);border-bottom:1px solid var(--border-color-default);padding:16px}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-leading{flex-shrink:0;display:flex;align-items:center}.header-leading:empty{display:none}.header-content:has(.header-leading:empty){gap:16px}.header-main{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.modal-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-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}.close-button{flex-shrink:0;border-radius:50%}.close-button::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button-absolute{position:absolute;top:16px;right:16px;z-index:100;flex-shrink:0;border-radius:50%}.close-button-absolute::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-content-container{display:flex;flex-direction:column;width:100%;max-width:640px;margin:0 auto;flex:1;position:relative
|
|
13593
|
+
`, styles: [":host{display:block;position:relative;height:100%;width:100%}:host(.is-auto-height){height:auto}.modal-base-content{--background: var(--color-background-neutral-primary, #ffffff)}.modal-base-content.is-auto-height{--height: auto;height:auto!important;flex:0 0 auto;display:block;contain:none!important}.modal-base-content.is-auto-height::part(scroll){position:relative!important;display:block!important;height:auto!important;overflow:visible!important}.modal-wrapper{display:flex;flex-direction:column;width:100%;background:var(--color-background-neutral-primary, #ffffff)}.modal-wrapper.is-auto-height{flex:0 0 auto}.modal-header{position:sticky;top:0;z-index:10;background:var(--color-background-neutral-primary, #ffffff);border-bottom:1px solid var(--border-color-default);padding:16px}.modal-header.no-leading-content{padding-left:20px}.header-content{display:flex;align-items:center;justify-content:space-between;gap:12px}.header-leading{flex-shrink:0;display:flex;align-items:center}.header-leading:empty{display:none}.modal-header.no-leading-content .header-content,.header-content:has(.header-leading:empty){gap:16px}.header-main{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.modal-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-base);font-weight:600;line-height:20px;letter-spacing:-.3px;color:var(--color-text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-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}.close-button{flex-shrink:0;border-radius:50%}.close-button::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.close-button-absolute{position:absolute;top:16px;right:16px;z-index:100;flex-shrink:0;border-radius:50%}.close-button-absolute::ng-deep button{border-radius:50%!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-content-container{display:flex;flex-direction:column;width:100%;max-width:640px;margin:0 auto;flex:1;position:relative}:host-context(ion-modal.auto-height) .modal-content-container,.modal-wrapper.is-auto-height .modal-content-container{flex:0 0 auto}.modal-wrapper.headerless .modal-content-container{padding-top:0}.modal-main-content{display:flex;flex-direction:column;width:100%;padding-top:0;padding-left:var(--modal-content-padding, 20px);padding-right:var(--modal-content-padding, 20px);padding-bottom:var(--modal-content-padding, 20px)}.modal-main-content.content-hidden,.state-hidden{display:none}.custom-loading-slot,.custom-error-slot{width:100%}.modal-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{width:48px;height:48px;border:3px solid var(--color-background-neutral-secondary, #f0f0f0);border-top-color:var(--color-primary-base, #2563eb);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:1.4;color:var(--color-text-secondary, #737373);margin-top:16px}.modal-error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;gap:16px}.error-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);margin:0}.error-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);margin:0}.modal-fixed-bottom{position:fixed;bottom:0;left:0;right:0;z-index:1000;pointer-events:none;background:var(--color-background-neutral-primary, #ffffff);box-shadow:0 300px 0 300px var(--color-background-neutral-primary, #ffffff);transform:translateY(calc(-1 * var(--keyboard-height, 0px)));transition:transform .3s cubic-bezier(.215,.61,.355,1);max-width:100vw;padding-bottom:max(8px,calc(var(--app-safe-bottom, 0px) - 24px))}:host-context(.plt-android) .modal-fixed-bottom{padding-bottom:max(8px,var(--app-safe-bottom, 0px))}.modal-fixed-bottom.is-auto-height{position:relative;bottom:auto;left:auto;right:auto;transform:none!important;box-shadow:none;z-index:1;background:var(--color-background-neutral-primary, #ffffff);padding-bottom:var(--keyboard-height, 0px);transition:padding-bottom .3s cubic-bezier(.215,.61,.355,1)}.modal-fixed-bottom>*{pointer-events:auto}.modal-fixed-bottom.bottom-hidden{display:none}@media (prefers-reduced-motion: reduce){.modal-fixed-bottom{transition:none}.loading-spinner{animation:none}}\n"] }]
|
|
13439
13594
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { ionContent: [{
|
|
13440
13595
|
type: ViewChild,
|
|
13441
13596
|
args: [IonContent, { read: IonContent }]
|
|
@@ -13577,6 +13732,8 @@ class DsMobilePostDetailModalComponent {
|
|
|
13577
13732
|
// State management inputs (passed to modal base)
|
|
13578
13733
|
loading = false;
|
|
13579
13734
|
error;
|
|
13735
|
+
// Callback for toggling like on the main post
|
|
13736
|
+
onTogglePostLike;
|
|
13580
13737
|
// Callback for submitting a new comment
|
|
13581
13738
|
onSubmitComment;
|
|
13582
13739
|
// Callback for liking/unliking a comment
|
|
@@ -13714,6 +13871,25 @@ class DsMobilePostDetailModalComponent {
|
|
|
13714
13871
|
}
|
|
13715
13872
|
}, 100);
|
|
13716
13873
|
}
|
|
13874
|
+
/**
|
|
13875
|
+
* Handle post like/unlike toggle
|
|
13876
|
+
*/
|
|
13877
|
+
handlePostLikeToggle(ev) {
|
|
13878
|
+
const currentPost = this.post();
|
|
13879
|
+
// Update local state immediately for responsiveness
|
|
13880
|
+
this.post.set({
|
|
13881
|
+
...currentPost,
|
|
13882
|
+
isLiked: ev.active,
|
|
13883
|
+
likeCount: ev.count
|
|
13884
|
+
});
|
|
13885
|
+
// Call the callback if provided
|
|
13886
|
+
if (this.onTogglePostLike) {
|
|
13887
|
+
this.onTogglePostLike({
|
|
13888
|
+
postId: currentPost.postId,
|
|
13889
|
+
active: ev.active
|
|
13890
|
+
});
|
|
13891
|
+
}
|
|
13892
|
+
}
|
|
13717
13893
|
/**
|
|
13718
13894
|
* Handle comment like/unlike toggle
|
|
13719
13895
|
* @param comment The comment being liked/unliked
|
|
@@ -13926,7 +14102,7 @@ class DsMobilePostDetailModalComponent {
|
|
|
13926
14102
|
}
|
|
13927
14103
|
}
|
|
13928
14104
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePostDetailModalComponent, deps: [{ token: DsMobileLightboxService }, { token: DsMobileBottomSheetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13929
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobilePostDetailModalComponent, isStandalone: true, selector: "ds-mobile-post-detail-modal", inputs: { postData: "postData", currentUserName: "currentUserName", currentUserInitialsInput: "currentUserInitialsInput", loading: "loading", error: "error", onSubmitComment: "onSubmitComment", onToggleCommentLike: "onToggleCommentLike", onEditComment: "onEditComment", onDeleteComment: "onDeleteComment" }, viewQueries: [{ propertyName: "commentInput", first: true, predicate: ["commentInput"], descendants: true }], ngImport: i0, template: `
|
|
14105
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobilePostDetailModalComponent, isStandalone: true, selector: "ds-mobile-post-detail-modal", inputs: { postData: "postData", currentUserName: "currentUserName", currentUserInitialsInput: "currentUserInitialsInput", loading: "loading", error: "error", onTogglePostLike: "onTogglePostLike", onSubmitComment: "onSubmitComment", onToggleCommentLike: "onToggleCommentLike", onEditComment: "onEditComment", onDeleteComment: "onDeleteComment" }, viewQueries: [{ propertyName: "commentInput", first: true, predicate: ["commentInput"], descendants: true }], ngImport: i0, template: `
|
|
13930
14106
|
<ds-mobile-modal-base
|
|
13931
14107
|
[loading]="loading"
|
|
13932
14108
|
[error]="error"
|
|
@@ -13954,7 +14130,11 @@ class DsMobilePostDetailModalComponent {
|
|
|
13954
14130
|
|
|
13955
14131
|
<!-- Post actions -->
|
|
13956
14132
|
<div class="post-actions">
|
|
13957
|
-
<action-like
|
|
14133
|
+
<action-like
|
|
14134
|
+
[active]="post().isLiked || false"
|
|
14135
|
+
[count]="post().likeCount || 0"
|
|
14136
|
+
(likeClick)="handlePostLikeToggle($event)"
|
|
14137
|
+
/>
|
|
13958
14138
|
<action-comment [count]="post().commentCount || 0" (commentClick)="focusCommentInput()" />
|
|
13959
14139
|
</div>
|
|
13960
14140
|
</ds-mobile-section>
|
|
@@ -14050,7 +14230,7 @@ class DsMobilePostDetailModalComponent {
|
|
|
14050
14230
|
</div>
|
|
14051
14231
|
</div>
|
|
14052
14232
|
</ds-mobile-modal-base>
|
|
14053
|
-
`, 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", "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"] }] });
|
|
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"] }] });
|
|
14054
14234
|
}
|
|
14055
14235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePostDetailModalComponent, decorators: [{
|
|
14056
14236
|
type: Component,
|
|
@@ -14096,7 +14276,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
14096
14276
|
|
|
14097
14277
|
<!-- Post actions -->
|
|
14098
14278
|
<div class="post-actions">
|
|
14099
|
-
<action-like
|
|
14279
|
+
<action-like
|
|
14280
|
+
[active]="post().isLiked || false"
|
|
14281
|
+
[count]="post().likeCount || 0"
|
|
14282
|
+
(likeClick)="handlePostLikeToggle($event)"
|
|
14283
|
+
/>
|
|
14100
14284
|
<action-comment [count]="post().commentCount || 0" (commentClick)="focusCommentInput()" />
|
|
14101
14285
|
</div>
|
|
14102
14286
|
</ds-mobile-section>
|
|
@@ -14203,6 +14387,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
14203
14387
|
type: Input
|
|
14204
14388
|
}], error: [{
|
|
14205
14389
|
type: Input
|
|
14390
|
+
}], onTogglePostLike: [{
|
|
14391
|
+
type: Input
|
|
14206
14392
|
}], onSubmitComment: [{
|
|
14207
14393
|
type: Input
|
|
14208
14394
|
}], onToggleCommentLike: [{
|
|
@@ -14376,6 +14562,7 @@ class DsMobilePostDetailModalService extends BaseModalService {
|
|
|
14376
14562
|
postData: postData,
|
|
14377
14563
|
loading: options?.loading ?? false,
|
|
14378
14564
|
error: options?.error,
|
|
14565
|
+
onTogglePostLike: options?.onTogglePostLike,
|
|
14379
14566
|
onSubmitComment: options?.onSubmitComment,
|
|
14380
14567
|
onToggleCommentLike: options?.onToggleCommentLike,
|
|
14381
14568
|
currentUserName: options?.currentUserName ?? '',
|
|
@@ -15924,6 +16111,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
15924
16111
|
class DsMobileNewInquiryModalComponent {
|
|
15925
16112
|
modalController = inject(ModalController);
|
|
15926
16113
|
titleInputRef;
|
|
16114
|
+
descriptionInputRef;
|
|
15927
16115
|
titleInput;
|
|
15928
16116
|
fileInput;
|
|
15929
16117
|
/**
|
|
@@ -15977,6 +16165,7 @@ class DsMobileNewInquiryModalComponent {
|
|
|
15977
16165
|
// Setup auto-resize for title textarea
|
|
15978
16166
|
setTimeout(() => {
|
|
15979
16167
|
this.autoResizeTitleTextarea();
|
|
16168
|
+
this.autoResizeDescriptionTextarea();
|
|
15980
16169
|
// Focus the title textarea after view initialization to trigger keyboard on iOS
|
|
15981
16170
|
if (this.titleInputRef) {
|
|
15982
16171
|
const textareaElement = this.titleInputRef.nativeElement.querySelector('textarea');
|
|
@@ -15999,6 +16188,18 @@ class DsMobileNewInquiryModalComponent {
|
|
|
15999
16188
|
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
16000
16189
|
}
|
|
16001
16190
|
}
|
|
16191
|
+
/**
|
|
16192
|
+
* Auto-resize the description textarea based on content
|
|
16193
|
+
*/
|
|
16194
|
+
autoResizeDescriptionTextarea() {
|
|
16195
|
+
if (!this.descriptionInputRef)
|
|
16196
|
+
return;
|
|
16197
|
+
const textareaElement = this.descriptionInputRef.nativeElement.querySelector('textarea');
|
|
16198
|
+
if (textareaElement) {
|
|
16199
|
+
textareaElement.style.height = 'auto';
|
|
16200
|
+
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
16201
|
+
}
|
|
16202
|
+
}
|
|
16002
16203
|
/**
|
|
16003
16204
|
* Handle title change with auto-resize
|
|
16004
16205
|
*/
|
|
@@ -16006,6 +16207,13 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16006
16207
|
this.validateForm();
|
|
16007
16208
|
this.autoResizeTitleTextarea();
|
|
16008
16209
|
}
|
|
16210
|
+
/**
|
|
16211
|
+
* Handle description change with auto-resize
|
|
16212
|
+
*/
|
|
16213
|
+
handleDescriptionChange(value) {
|
|
16214
|
+
this.validateForm();
|
|
16215
|
+
this.autoResizeDescriptionTextarea();
|
|
16216
|
+
}
|
|
16009
16217
|
/**
|
|
16010
16218
|
* Validate form fields
|
|
16011
16219
|
*/
|
|
@@ -16162,8 +16370,8 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16162
16370
|
}
|
|
16163
16371
|
}
|
|
16164
16372
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileNewInquiryModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16165
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileNewInquiryModalComponent, isStandalone: true, selector: "ds-mobile-new-inquiry-modal", inputs: { loading: "loading", error: "error", onSubmit: "onSubmit", titlePlaceholder: "titlePlaceholder", descriptionPlaceholder: "descriptionPlaceholder", submitButtonLabel: "submitButtonLabel" }, viewQueries: [{ propertyName: "titleInputRef", first: true, predicate: ["titleInput"], descendants: true, read: ElementRef }, { propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
|
|
16166
|
-
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" closeButtonLabel="Close">
|
|
16373
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileNewInquiryModalComponent, isStandalone: true, selector: "ds-mobile-new-inquiry-modal", inputs: { loading: "loading", error: "error", onSubmit: "onSubmit", titlePlaceholder: "titlePlaceholder", descriptionPlaceholder: "descriptionPlaceholder", submitButtonLabel: "submitButtonLabel" }, viewQueries: [{ propertyName: "titleInputRef", first: true, predicate: ["titleInput"], descendants: true, read: ElementRef }, { propertyName: "descriptionInputRef", first: true, predicate: ["descriptionInput"], descendants: true, read: ElementRef }, { propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
|
|
16374
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" [keyboardContentBehavior]="'overlay'" closeButtonLabel="Close">
|
|
16167
16375
|
<!-- Form Content -->
|
|
16168
16376
|
<ds-mobile-section>
|
|
16169
16377
|
<!-- Title Field (Large Ghost Textarea) -->
|
|
@@ -16180,12 +16388,13 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16180
16388
|
|
|
16181
16389
|
<!-- Description Field (Ghost Textarea) -->
|
|
16182
16390
|
<ds-textarea
|
|
16391
|
+
#descriptionInput
|
|
16183
16392
|
[(ngModel)]="description"
|
|
16184
16393
|
[ghost]="true"
|
|
16185
16394
|
[rows]="1"
|
|
16186
16395
|
[placeholder]="descriptionPlaceholder"
|
|
16187
16396
|
class="inquiry-description-input ghost-input-clean"
|
|
16188
|
-
(valueChange)="
|
|
16397
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
16189
16398
|
/>
|
|
16190
16399
|
</ds-mobile-section>
|
|
16191
16400
|
|
|
@@ -16224,12 +16433,14 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16224
16433
|
</div>
|
|
16225
16434
|
|
|
16226
16435
|
<!-- Submit Button (Right) -->
|
|
16227
|
-
<ds-button variant="primary" size="
|
|
16436
|
+
<ds-button class="submit-action-button" variant="primary" size="md" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
16437
|
+
{{ submitButtonLabel }}
|
|
16438
|
+
</ds-button>
|
|
16228
16439
|
</div>
|
|
16229
16440
|
</div>
|
|
16230
16441
|
</div>
|
|
16231
16442
|
</ds-mobile-modal-base>
|
|
16232
|
-
`, 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", ".inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;
|
|
16443
|
+
`, 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", ".inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;overflow-y:hidden;resize:none;box-sizing:border-box;padding-right:52px}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.image-previews::-webkit-scrollbar{display:none}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.submit-content ds-button.submit-action-button::ng-deep button{height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}.inquiry-description-input{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep textarea{flex:1;min-height:80px;overflow-y:hidden;resize:none}@media (min-width: 768px){.submit-container{padding:20px 32px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: DsTextareaComponent, selector: "ds-textarea", inputs: ["variant", "placeholder", "disabled", "readonly", "required", "ghost", "rows", "cols", "maxlength", "minlength", "ariaLabel", "ariaDescribedBy", "ariaLabelledBy"], outputs: ["valueChange", "focused", "blurred"] }, { 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: DsMobileModalBaseComponent, selector: "ds-mobile-modal-base", inputs: ["showHeader"] }, { kind: "component", type: DsMobileAttachmentPreviewComponent, selector: "ds-mobile-attachment-preview", inputs: ["attachment"], outputs: ["remove"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }] });
|
|
16233
16444
|
}
|
|
16234
16445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileNewInquiryModalComponent, decorators: [{
|
|
16235
16446
|
type: Component,
|
|
@@ -16243,7 +16454,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16243
16454
|
DsMobileAttachmentPreviewComponent,
|
|
16244
16455
|
DsMobileSectionComponent,
|
|
16245
16456
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
|
|
16246
|
-
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" closeButtonLabel="Close">
|
|
16457
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" [keyboardContentBehavior]="'overlay'" closeButtonLabel="Close">
|
|
16247
16458
|
<!-- Form Content -->
|
|
16248
16459
|
<ds-mobile-section>
|
|
16249
16460
|
<!-- Title Field (Large Ghost Textarea) -->
|
|
@@ -16260,12 +16471,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16260
16471
|
|
|
16261
16472
|
<!-- Description Field (Ghost Textarea) -->
|
|
16262
16473
|
<ds-textarea
|
|
16474
|
+
#descriptionInput
|
|
16263
16475
|
[(ngModel)]="description"
|
|
16264
16476
|
[ghost]="true"
|
|
16265
16477
|
[rows]="1"
|
|
16266
16478
|
[placeholder]="descriptionPlaceholder"
|
|
16267
16479
|
class="inquiry-description-input ghost-input-clean"
|
|
16268
|
-
(valueChange)="
|
|
16480
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
16269
16481
|
/>
|
|
16270
16482
|
</ds-mobile-section>
|
|
16271
16483
|
|
|
@@ -16304,15 +16516,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16304
16516
|
</div>
|
|
16305
16517
|
|
|
16306
16518
|
<!-- Submit Button (Right) -->
|
|
16307
|
-
<ds-button variant="primary" size="
|
|
16519
|
+
<ds-button class="submit-action-button" variant="primary" size="md" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
16520
|
+
{{ submitButtonLabel }}
|
|
16521
|
+
</ds-button>
|
|
16308
16522
|
</div>
|
|
16309
16523
|
</div>
|
|
16310
16524
|
</div>
|
|
16311
16525
|
</ds-mobile-modal-base>
|
|
16312
|
-
`, 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", ".inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;
|
|
16526
|
+
`, 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", ".inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;overflow-y:hidden;resize:none;box-sizing:border-box;padding-right:52px}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.image-previews::-webkit-scrollbar{display:none}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.submit-content ds-button.submit-action-button::ng-deep button{height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}.inquiry-description-input{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep textarea{flex:1;min-height:80px;overflow-y:hidden;resize:none}@media (min-width: 768px){.submit-container{padding:20px 32px}}\n"] }]
|
|
16313
16527
|
}], propDecorators: { titleInputRef: [{
|
|
16314
16528
|
type: ViewChild,
|
|
16315
16529
|
args: ['titleInput', { read: ElementRef }]
|
|
16530
|
+
}], descriptionInputRef: [{
|
|
16531
|
+
type: ViewChild,
|
|
16532
|
+
args: ['descriptionInput', { read: ElementRef }]
|
|
16316
16533
|
}], titleInput: [{
|
|
16317
16534
|
type: ViewChild,
|
|
16318
16535
|
args: ['titleInput']
|
|
@@ -17098,6 +17315,7 @@ class DsMobileBookingModalService extends BaseModalService {
|
|
|
17098
17315
|
mode: 'ios'
|
|
17099
17316
|
});
|
|
17100
17317
|
await sheet.present();
|
|
17318
|
+
disableModalShadowPointerEvents(sheet);
|
|
17101
17319
|
}
|
|
17102
17320
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileBookingModalService, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17103
17321
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileBookingModalService, providedIn: 'root' });
|
|
@@ -17126,6 +17344,7 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17126
17344
|
modalController = inject(ModalController);
|
|
17127
17345
|
bottomSheetService = inject(DsMobileBottomSheetService);
|
|
17128
17346
|
titleInputRef;
|
|
17347
|
+
descriptionInputRef;
|
|
17129
17348
|
titleInput;
|
|
17130
17349
|
fileInput;
|
|
17131
17350
|
/**
|
|
@@ -17195,6 +17414,7 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17195
17414
|
// Setup auto-resize for title textarea
|
|
17196
17415
|
setTimeout(() => {
|
|
17197
17416
|
this.autoResizeTitleTextarea();
|
|
17417
|
+
this.autoResizeDescriptionTextarea();
|
|
17198
17418
|
// Focus the title textarea after view initialization to trigger keyboard on iOS
|
|
17199
17419
|
if (this.titleInputRef) {
|
|
17200
17420
|
const textareaElement = this.titleInputRef.nativeElement.querySelector('textarea');
|
|
@@ -17217,6 +17437,18 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17217
17437
|
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
17218
17438
|
}
|
|
17219
17439
|
}
|
|
17440
|
+
/**
|
|
17441
|
+
* Auto-resize the description textarea based on content
|
|
17442
|
+
*/
|
|
17443
|
+
autoResizeDescriptionTextarea() {
|
|
17444
|
+
if (!this.descriptionInputRef)
|
|
17445
|
+
return;
|
|
17446
|
+
const textareaElement = this.descriptionInputRef.nativeElement.querySelector('textarea');
|
|
17447
|
+
if (textareaElement) {
|
|
17448
|
+
textareaElement.style.height = 'auto';
|
|
17449
|
+
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
17450
|
+
}
|
|
17451
|
+
}
|
|
17220
17452
|
/**
|
|
17221
17453
|
* Handle title change with auto-resize
|
|
17222
17454
|
*/
|
|
@@ -17224,6 +17456,13 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17224
17456
|
this.validateForm();
|
|
17225
17457
|
this.autoResizeTitleTextarea();
|
|
17226
17458
|
}
|
|
17459
|
+
/**
|
|
17460
|
+
* Handle description change with auto-resize
|
|
17461
|
+
*/
|
|
17462
|
+
handleDescriptionChange(value) {
|
|
17463
|
+
this.validateForm();
|
|
17464
|
+
this.autoResizeDescriptionTextarea();
|
|
17465
|
+
}
|
|
17227
17466
|
/**
|
|
17228
17467
|
* Validate form fields
|
|
17229
17468
|
*/
|
|
@@ -17505,13 +17744,14 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17505
17744
|
}
|
|
17506
17745
|
}
|
|
17507
17746
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17508
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileFacilityCreationModalComponent, isStandalone: true, selector: "ds-mobile-facility-creation-modal", inputs: { loading: "loading", error: "error", onSubmit: "onSubmit", titlePlaceholder: "titlePlaceholder", descriptionPlaceholder: "descriptionPlaceholder", submitButtonLabel: "submitButtonLabel" }, viewQueries: [{ propertyName: "titleInputRef", first: true, predicate: ["titleInput"], descendants: true, read: ElementRef }, { propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
|
|
17747
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileFacilityCreationModalComponent, isStandalone: true, selector: "ds-mobile-facility-creation-modal", inputs: { loading: "loading", error: "error", onSubmit: "onSubmit", titlePlaceholder: "titlePlaceholder", descriptionPlaceholder: "descriptionPlaceholder", submitButtonLabel: "submitButtonLabel" }, viewQueries: [{ propertyName: "titleInputRef", first: true, predicate: ["titleInput"], descendants: true, read: ElementRef }, { propertyName: "descriptionInputRef", first: true, predicate: ["descriptionInput"], descendants: true, read: ElementRef }, { propertyName: "titleInput", first: true, predicate: ["titleInput"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
|
|
17509
17748
|
<ds-mobile-modal-base
|
|
17510
17749
|
[loading]="loading"
|
|
17511
17750
|
[error]="error"
|
|
17512
17751
|
[showHeader]="false"
|
|
17513
17752
|
[hasFixedBottom]="true"
|
|
17514
17753
|
[enableKeyboardHandling]="true"
|
|
17754
|
+
[keyboardContentBehavior]="'overlay'"
|
|
17515
17755
|
closeButtonLabel="Close"
|
|
17516
17756
|
>
|
|
17517
17757
|
<!-- Form Content -->
|
|
@@ -17530,12 +17770,13 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17530
17770
|
|
|
17531
17771
|
<!-- Description Field (Ghost Textarea) -->
|
|
17532
17772
|
<ds-textarea
|
|
17773
|
+
#descriptionInput
|
|
17533
17774
|
[(ngModel)]="description"
|
|
17534
17775
|
[ghost]="true"
|
|
17535
17776
|
[rows]="1"
|
|
17536
17777
|
[placeholder]="descriptionPlaceholder"
|
|
17537
17778
|
class="inquiry-description-input ghost-input-clean"
|
|
17538
|
-
(valueChange)="
|
|
17779
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
17539
17780
|
/>
|
|
17540
17781
|
</ds-mobile-section>
|
|
17541
17782
|
|
|
@@ -17641,12 +17882,14 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17641
17882
|
</div>
|
|
17642
17883
|
|
|
17643
17884
|
<!-- Submit Button (Right) -->
|
|
17644
|
-
<ds-button variant="primary" size="
|
|
17885
|
+
<ds-button class="submit-action-button" variant="primary" size="sm" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
17886
|
+
{{ submitButtonLabel }}
|
|
17887
|
+
</ds-button>
|
|
17645
17888
|
</div>
|
|
17646
17889
|
</div>
|
|
17647
17890
|
</div>
|
|
17648
17891
|
</ds-mobile-modal-base>
|
|
17649
|
-
`, 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", ":host ::ng-deep .modal-wrapper:not(.is-auto-height){min-height:100%}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-content-container{display:flex;flex-direction:column;flex:1}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-main-content{flex:1;display:flex;flex-direction:column}.form-section{flex:1;display:flex;flex-direction:column}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;
|
|
17892
|
+
`, 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", ":host ::ng-deep .modal-wrapper:not(.is-auto-height){min-height:100%}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-content-container{display:flex;flex-direction:column;flex:1}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-main-content{flex:1;display:flex;flex-direction:column}.form-section{flex:1;display:flex;flex-direction:column}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;overflow-y:hidden;resize:none;box-sizing:border-box;padding-right:52px}.inquiry-description-input{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep textarea{flex:1;min-height:80px;overflow-y:hidden;resize:none}.detail-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:16px;letter-spacing:-.3px;color:var(--text-color-default-tertiary, #868e99)}.detail-value{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-primary, #202227)}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.image-previews::-webkit-scrollbar{display:none}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.submit-content ds-button.submit-action-button::ng-deep button{height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}@media (min-width: 768px){.submit-container{padding:20px 32px}}.create-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.create-action ds-button{display:block;width:100%}.create-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:48px}@media (min-width: 768px){.create-action{padding:20px 32px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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: DsTextareaComponent, selector: "ds-textarea", inputs: ["variant", "placeholder", "disabled", "readonly", "required", "ghost", "rows", "cols", "maxlength", "minlength", "ariaLabel", "ariaDescribedBy", "ariaLabelledBy"], outputs: ["valueChange", "focused", "blurred"] }, { 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: 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"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }, { kind: "component", type: DsMobileAttachmentPreviewComponent, selector: "ds-mobile-attachment-preview", inputs: ["attachment"], outputs: ["remove"] }] });
|
|
17650
17893
|
}
|
|
17651
17894
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalComponent, decorators: [{
|
|
17652
17895
|
type: Component,
|
|
@@ -17668,6 +17911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17668
17911
|
[showHeader]="false"
|
|
17669
17912
|
[hasFixedBottom]="true"
|
|
17670
17913
|
[enableKeyboardHandling]="true"
|
|
17914
|
+
[keyboardContentBehavior]="'overlay'"
|
|
17671
17915
|
closeButtonLabel="Close"
|
|
17672
17916
|
>
|
|
17673
17917
|
<!-- Form Content -->
|
|
@@ -17686,12 +17930,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17686
17930
|
|
|
17687
17931
|
<!-- Description Field (Ghost Textarea) -->
|
|
17688
17932
|
<ds-textarea
|
|
17933
|
+
#descriptionInput
|
|
17689
17934
|
[(ngModel)]="description"
|
|
17690
17935
|
[ghost]="true"
|
|
17691
17936
|
[rows]="1"
|
|
17692
17937
|
[placeholder]="descriptionPlaceholder"
|
|
17693
17938
|
class="inquiry-description-input ghost-input-clean"
|
|
17694
|
-
(valueChange)="
|
|
17939
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
17695
17940
|
/>
|
|
17696
17941
|
</ds-mobile-section>
|
|
17697
17942
|
|
|
@@ -17797,15 +18042,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17797
18042
|
</div>
|
|
17798
18043
|
|
|
17799
18044
|
<!-- Submit Button (Right) -->
|
|
17800
|
-
<ds-button variant="primary" size="
|
|
18045
|
+
<ds-button class="submit-action-button" variant="primary" size="sm" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
18046
|
+
{{ submitButtonLabel }}
|
|
18047
|
+
</ds-button>
|
|
17801
18048
|
</div>
|
|
17802
18049
|
</div>
|
|
17803
18050
|
</div>
|
|
17804
18051
|
</ds-mobile-modal-base>
|
|
17805
|
-
`, 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 ::ng-deep .modal-wrapper:not(.is-auto-height){min-height:100%}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-content-container{display:flex;flex-direction:column;flex:1}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-main-content{flex:1;display:flex;flex-direction:column}.form-section{flex:1;display:flex;flex-direction:column}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;
|
|
18052
|
+
`, 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 ::ng-deep .modal-wrapper:not(.is-auto-height){min-height:100%}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-content-container{display:flex;flex-direction:column;flex:1}:host ::ng-deep .modal-wrapper:not(.is-auto-height) .modal-main-content{flex:1;display:flex;flex-direction:column}.form-section{flex:1;display:flex;flex-direction:column}.inquiry-title-input{flex:0 0 auto}.inquiry-title-input ::ng-deep textarea{font-size:var(--font-size-2xl);font-weight:400;line-height:1.2;overflow-y:hidden;resize:none;box-sizing:border-box;padding-right:52px}.inquiry-description-input{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep .textarea-container{display:flex;flex:1;min-height:0}.inquiry-description-input ::ng-deep textarea{flex:1;min-height:80px;overflow-y:hidden;resize:none}.detail-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs, 12px);font-weight:400;line-height:16px;letter-spacing:-.3px;color:var(--text-color-default-tertiary, #868e99)}.detail-value{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-primary, #202227)}.fixed-bottom-container{background:var(--color-background-neutral-primary);border-top:1px solid var(--border-color-default)}.attachment-previews-section{padding:16px 20px;border-bottom:1px solid var(--border-color-default)}.image-previews{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.image-previews::-webkit-scrollbar{display:none}.submit-container{padding:16px 20px}.submit-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.upload-actions{display:flex;align-items:center;gap:8px}.upload-actions ds-icon-button::ng-deep button{width:44px;height:44px;border-radius:50%}.submit-content ds-button::ng-deep button{border-radius:100px}.submit-content ds-button.submit-action-button::ng-deep button{height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}@media (min-width: 768px){.submit-container{padding:20px 32px}}.create-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.create-action ds-button{display:block;width:100%}.create-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:48px}@media (min-width: 768px){.create-action{padding:20px 32px}}\n"] }]
|
|
17806
18053
|
}], propDecorators: { titleInputRef: [{
|
|
17807
18054
|
type: ViewChild,
|
|
17808
18055
|
args: ['titleInput', { read: ElementRef }]
|
|
18056
|
+
}], descriptionInputRef: [{
|
|
18057
|
+
type: ViewChild,
|
|
18058
|
+
args: ['descriptionInput', { read: ElementRef }]
|
|
17809
18059
|
}], titleInput: [{
|
|
17810
18060
|
type: ViewChild,
|
|
17811
18061
|
args: ['titleInput']
|
|
@@ -17984,9 +18234,6 @@ class DsMobileFacilityCreationModalService extends BaseModalService {
|
|
|
17984
18234
|
}, {
|
|
17985
18235
|
keyboardClose: false, // Don't close on keyboard hide for this modal
|
|
17986
18236
|
cssClass: ['ds-modal-base'],
|
|
17987
|
-
breakpoints: [0, 1],
|
|
17988
|
-
initialBreakpoint: 1,
|
|
17989
|
-
handle: false,
|
|
17990
18237
|
});
|
|
17991
18238
|
console.log('[FacilityCreationModal] Modal created, presenting...');
|
|
17992
18239
|
await modal.present();
|
|
@@ -18014,6 +18261,7 @@ class DsMobileFacilityCreationModalService extends BaseModalService {
|
|
|
18014
18261
|
presentingElement: undefined
|
|
18015
18262
|
});
|
|
18016
18263
|
await sheet.present();
|
|
18264
|
+
disableModalShadowPointerEvents(sheet);
|
|
18017
18265
|
}
|
|
18018
18266
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalService, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18019
18267
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalService, providedIn: 'root' });
|
|
@@ -18892,7 +19140,8 @@ class DsMobileFacilityDetailModalComponent {
|
|
|
18892
19140
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: DsMobileFacilityDetailModalComponent, isStandalone: true, selector: "ds-mobile-facility-detail-modal", inputs: { facilityData: "facilityData" }, ngImport: i0, template: `
|
|
18893
19141
|
<ds-mobile-modal-base
|
|
18894
19142
|
[headerTitle]="facilityData.facilityTitle"
|
|
18895
|
-
[hasFixedBottom]="true"
|
|
19143
|
+
[hasFixedBottom]="true"
|
|
19144
|
+
[keyboardContentBehavior]="'overlay'">
|
|
18896
19145
|
|
|
18897
19146
|
<!-- Hero Image Section -->
|
|
18898
19147
|
<!-- Hero Image and Things to Know Section -->
|
|
@@ -18932,22 +19181,20 @@ class DsMobileFacilityDetailModalComponent {
|
|
|
18932
19181
|
<!-- Fixed Bottom Button -->
|
|
18933
19182
|
<div fixed-bottom class="booking-action">
|
|
18934
19183
|
<ds-button
|
|
18935
|
-
size="
|
|
19184
|
+
size="md"
|
|
18936
19185
|
variant="primary"
|
|
18937
19186
|
[fullWidth]="true"
|
|
18938
19187
|
(clicked)="handleBookNow()">
|
|
18939
19188
|
Book nu
|
|
18940
|
-
<ds-icon slot="end" name="remixArrowRightSLine" />
|
|
18941
19189
|
</ds-button>
|
|
18942
19190
|
</div>
|
|
18943
19191
|
</ds-mobile-modal-base>
|
|
18944
|
-
`, isInline: true, styles: [":host{display:block}.facility-image{width:100%;max-width:100%;height:280px;object-fit:cover;display:block;border-radius:12px}.info-item{display:flex;align-items:center;gap:8px;padding:8px 0;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);color:var(--text-color-default-primary, #202227)}.facility-description,.facility-expectations{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227)}.facility-description p,.facility-expectations p{margin:0 0 12px}.facility-description p:last-child,.facility-expectations p:last-child{margin-bottom:0}::ng-deep .facility-description h3,::ng-deep .facility-description headline,::ng-deep .facility-description .section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding-top:24px!important;padding-bottom:8px!important;display:block}::ng-deep .facility-description h3:first-child,::ng-deep .facility-description headline:first-child,::ng-deep .facility-description .section-headline:first-child,::ng-deep .facility-description>*:first-child h3:first-child,::ng-deep .facility-description>*:first-child headline:first-child{padding-top:0!important}::ng-deep .facility-expectations headline,::ng-deep .facility-expectations h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}::ng-deep .facility-expectations headline:first-child,::ng-deep .facility-expectations h3:first-child{padding-top:0!important}h2.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0;padding-top:16px!important;padding-bottom:8px}.facility-description ul{list-style:disc;padding-left:20px;margin:0 0 12px}.facility-description ul li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.facility-description ul li:last-child{margin-bottom:0}.facility-restrictions{margin-top:20px}.restrictions-heading{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0 0 12px}.restrictions-list{list-style:disc;padding-left:20px;margin:0}.restrictions-list li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.restrictions-list li:last-child{margin-bottom:0}.info-items-container{display:flex;flex-direction:column;gap:0}.booking-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.booking-action ds-button{display:block;width:100%}.booking-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:
|
|
19192
|
+
`, isInline: true, styles: [":host{display:block}.facility-image{width:100%;max-width:100%;height:280px;object-fit:cover;display:block;border-radius:12px}.info-item{display:flex;align-items:center;gap:8px;padding:8px 0;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);color:var(--text-color-default-primary, #202227)}.facility-description,.facility-expectations{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227)}.facility-description p,.facility-expectations p{margin:0 0 12px}.facility-description p:last-child,.facility-expectations p:last-child{margin-bottom:0}::ng-deep .facility-description h3,::ng-deep .facility-description headline,::ng-deep .facility-description .section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding-top:24px!important;padding-bottom:8px!important;display:block}::ng-deep .facility-description h3:first-child,::ng-deep .facility-description headline:first-child,::ng-deep .facility-description .section-headline:first-child,::ng-deep .facility-description>*:first-child h3:first-child,::ng-deep .facility-description>*:first-child headline:first-child{padding-top:0!important}::ng-deep .facility-expectations headline,::ng-deep .facility-expectations h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}::ng-deep .facility-expectations headline:first-child,::ng-deep .facility-expectations h3:first-child{padding-top:0!important}h2.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0;padding-top:16px!important;padding-bottom:8px}.facility-description ul{list-style:disc;padding-left:20px;margin:0 0 12px}.facility-description ul li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.facility-description ul li:last-child{margin-bottom:0}.facility-restrictions{margin-top:20px}.restrictions-heading{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0 0 12px}.restrictions-list{list-style:disc;padding-left:20px;margin:0}.restrictions-list li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.restrictions-list li:last-child{margin-bottom:0}.info-items-container{display:flex;flex-direction:column;gap:0}.booking-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.booking-action ds-button{display:block;width:100%}.booking-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: 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"] }, { kind: "component", type: DsMobileSwiperComponent, selector: "ds-mobile-swiper", inputs: ["slideWidth", "gap", "pagination", "autoHeight", "progressiveOpacity", "progressiveScale"] }] });
|
|
18945
19193
|
}
|
|
18946
19194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityDetailModalComponent, decorators: [{
|
|
18947
19195
|
type: Component,
|
|
18948
19196
|
args: [{ selector: 'ds-mobile-facility-detail-modal', standalone: true, imports: [
|
|
18949
19197
|
CommonModule,
|
|
18950
|
-
DsIconComponent,
|
|
18951
19198
|
DsButtonComponent,
|
|
18952
19199
|
DsMobileModalBaseComponent,
|
|
18953
19200
|
DsMobileSectionComponent,
|
|
@@ -18955,7 +19202,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
18955
19202
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
|
|
18956
19203
|
<ds-mobile-modal-base
|
|
18957
19204
|
[headerTitle]="facilityData.facilityTitle"
|
|
18958
|
-
[hasFixedBottom]="true"
|
|
19205
|
+
[hasFixedBottom]="true"
|
|
19206
|
+
[keyboardContentBehavior]="'overlay'">
|
|
18959
19207
|
|
|
18960
19208
|
<!-- Hero Image Section -->
|
|
18961
19209
|
<!-- Hero Image and Things to Know Section -->
|
|
@@ -18995,16 +19243,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
18995
19243
|
<!-- Fixed Bottom Button -->
|
|
18996
19244
|
<div fixed-bottom class="booking-action">
|
|
18997
19245
|
<ds-button
|
|
18998
|
-
size="
|
|
19246
|
+
size="md"
|
|
18999
19247
|
variant="primary"
|
|
19000
19248
|
[fullWidth]="true"
|
|
19001
19249
|
(clicked)="handleBookNow()">
|
|
19002
19250
|
Book nu
|
|
19003
|
-
<ds-icon slot="end" name="remixArrowRightSLine" />
|
|
19004
19251
|
</ds-button>
|
|
19005
19252
|
</div>
|
|
19006
19253
|
</ds-mobile-modal-base>
|
|
19007
|
-
`, styles: [":host{display:block}.facility-image{width:100%;max-width:100%;height:280px;object-fit:cover;display:block;border-radius:12px}.info-item{display:flex;align-items:center;gap:8px;padding:8px 0;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);color:var(--text-color-default-primary, #202227)}.facility-description,.facility-expectations{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227)}.facility-description p,.facility-expectations p{margin:0 0 12px}.facility-description p:last-child,.facility-expectations p:last-child{margin-bottom:0}::ng-deep .facility-description h3,::ng-deep .facility-description headline,::ng-deep .facility-description .section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding-top:24px!important;padding-bottom:8px!important;display:block}::ng-deep .facility-description h3:first-child,::ng-deep .facility-description headline:first-child,::ng-deep .facility-description .section-headline:first-child,::ng-deep .facility-description>*:first-child h3:first-child,::ng-deep .facility-description>*:first-child headline:first-child{padding-top:0!important}::ng-deep .facility-expectations headline,::ng-deep .facility-expectations h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}::ng-deep .facility-expectations headline:first-child,::ng-deep .facility-expectations h3:first-child{padding-top:0!important}h2.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0;padding-top:16px!important;padding-bottom:8px}.facility-description ul{list-style:disc;padding-left:20px;margin:0 0 12px}.facility-description ul li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.facility-description ul li:last-child{margin-bottom:0}.facility-restrictions{margin-top:20px}.restrictions-heading{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0 0 12px}.restrictions-list{list-style:disc;padding-left:20px;margin:0}.restrictions-list li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.restrictions-list li:last-child{margin-bottom:0}.info-items-container{display:flex;flex-direction:column;gap:0}.booking-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.booking-action ds-button{display:block;width:100%}.booking-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:
|
|
19254
|
+
`, styles: [":host{display:block}.facility-image{width:100%;max-width:100%;height:280px;object-fit:cover;display:block;border-radius:12px}.info-item{display:flex;align-items:center;gap:8px;padding:8px 0;font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);color:var(--text-color-default-primary, #202227)}.facility-description,.facility-expectations{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227)}.facility-description p,.facility-expectations p{margin:0 0 12px}.facility-description p:last-child,.facility-expectations p:last-child{margin-bottom:0}::ng-deep .facility-description h3,::ng-deep .facility-description headline,::ng-deep .facility-description .section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding-top:24px!important;padding-bottom:8px!important;display:block}::ng-deep .facility-description h3:first-child,::ng-deep .facility-description headline:first-child,::ng-deep .facility-description .section-headline:first-child,::ng-deep .facility-description>*:first-child h3:first-child,::ng-deep .facility-description>*:first-child headline:first-child{padding-top:0!important}::ng-deep .facility-expectations headline,::ng-deep .facility-expectations h3{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0!important;padding:24px 0 8px!important;display:block}::ng-deep .facility-expectations headline:first-child,::ng-deep .facility-expectations h3:first-child{padding-top:0!important}h2.section-headline{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0;padding-top:16px!important;padding-bottom:8px}.facility-description ul{list-style:disc;padding-left:20px;margin:0 0 12px}.facility-description ul li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.facility-description ul li:last-child{margin-bottom:0}.facility-restrictions{margin-top:20px}.restrictions-heading{font-family:Brockmann,sans-serif;font-size:var(--font-size-base, 16px);font-weight:600;line-height:1.4;color:var(--text-color-default-primary, #202227);margin:0 0 12px}.restrictions-list{list-style:disc;padding-left:20px;margin:0}.restrictions-list li{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm, 14px);line-height:1.6;color:var(--text-color-default-primary, #202227);margin-bottom:8px}.restrictions-list li:last-child{margin-bottom:0}.info-items-container{display:flex;flex-direction:column;gap:0}.booking-action{padding:16px 20px;background:var(--color-surface-primary, #ffffff);border-top:1px solid var(--color-border, #e5e5e5)}.booking-action ds-button{display:block;width:100%}.booking-action ::ng-deep ds-button button{width:100%;border-radius:100px;height:44px;min-height:44px;max-height:44px;padding-left:16px;padding-right:16px}\n"] }]
|
|
19008
19255
|
}], ctorParameters: () => [{ type: i1.ModalController }, { type: DsMobileBookingModalService }], propDecorators: { facilityData: [{
|
|
19009
19256
|
type: Input
|
|
19010
19257
|
}] } });
|
|
@@ -19310,6 +19557,7 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
19310
19557
|
cssClass: ['ds-bottom-sheet', 'auto-height'],
|
|
19311
19558
|
});
|
|
19312
19559
|
await sheet.present();
|
|
19560
|
+
disableModalShadowPointerEvents(sheet);
|
|
19313
19561
|
const result = await sheet.onWillDismiss();
|
|
19314
19562
|
if (result.data?.action) {
|
|
19315
19563
|
this.handleContactAction(result.data.action, contact);
|
|
@@ -19817,7 +20065,7 @@ class DsMobileHandbookFolderComponent {
|
|
|
19817
20065
|
}
|
|
19818
20066
|
</div>
|
|
19819
20067
|
</div>
|
|
19820
|
-
`, isInline: true, styles: [":host{display:inline-flex;flex-direction:column;align-items:center;gap:16px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:16px;border-radius:16px;background:var(--color-background-neutral-secondary, #f0f0f0);transition:background .2s ease}:host:active{background:var(--color-background-neutral-secondary-hover, #ebebeb)}@media (hover: hover){:host:hover{background:var(--color-background-neutral-secondary-hover, #ebebeb)}}:host{--color-red-base: #dc3545;--color-red-strong: #ae1d3b;--color-green-base: #28a745;--color-green-strong: #058057;--color-yellow-base: #ffc107;--color-yellow-strong: #e4b200;--color-purple-base: #6f42c1;--color-purple-strong: #4204c5;--color-indigo-base: #6610f2;--color-indigo-strong: #a527a2;--color-lime-base: #82c91e;--color-lime-strong: #58a503;--color-teal-base: #20c997;--color-teal-strong: #0ca678;--color-cyan-base: #17a2b8;--color-cyan-strong: #1098ad;--color-brown-base: #795548;--color-brown-strong: #5c4033;--color-light-blue-base: #add8e6;--color-light-blue-strong: #87ceeb;--color-light-green-base: #90ee90;--color-light-green-strong: #32cd32;--color-coral-base: #f08080;--color-coral-strong: #cd5c5c;--color-salmon-base: #ffa07a;--color-salmon-strong: #fa8072;--color-seagreen-base: #20b2aa;--color-seagreen-strong: #2e8b57}.folder-container{position:relative;width:100%;display:flex;flex-direction:column;perspective:800px;-webkit-perspective:800px;max-width:160px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.folder-container.open .page-sheet{-webkit-transform:translateY(-8px);transform:translateY(-8px);transition-delay:.2s}.folder-container.open .page-sheet:nth-child(1){-webkit-transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px);transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(2){-webkit-transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px);transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(3){-webkit-transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px);transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(4){-webkit-transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px);transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(5){-webkit-transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px);transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(6){-webkit-transform:scale(.9) translateY(-28px) rotateX(0deg) translateZ(.1px);transform:scale(.9) translateY(-28px) rotateX(.1px)}.folder-container.open .folder-front{-webkit-transform:translate3d(0,0,0) rotateX(-45deg);transform:translateZ(0) rotateX(-45deg)}.folder-tab{width:50%;height:auto;display:block}.folder-back{height:128px;border-radius:0 12px 12px;position:relative;margin-top:-1px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.page-sheet{position:absolute;width:80%;height:120px;background:#fff;border-radius:8px;box-shadow:0 -1px 5px #0000001a;border:1px solid var(--border-color-default);transition:transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;left:10%;-webkit-transform:translateZ(0);transform:translateZ(0);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;will-change:transform}.page-sheet:nth-child(1){bottom:2px;z-index:6;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(1) translateZ(.1px);transform:scale(1) translateZ(.1px)}.page-sheet:nth-child(2){bottom:8px;z-index:5;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.98) translateZ(.1px);transform:scale(.98) translateZ(.1px)}.page-sheet:nth-child(3){bottom:14px;z-index:4;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.96) translateZ(.1px);transform:scale(.96) translateZ(.1px)}.page-sheet:nth-child(4){bottom:20px;z-index:3;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.94) translateZ(.1px);transform:scale(.94) translateZ(.1px)}.page-sheet:nth-child(5){bottom:26px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.92) translateZ(.1px);transform:scale(.92) translateZ(.1px)}.page-sheet:nth-child(6){bottom:32px;z-index:1;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.9) translateZ(.1px);transform:scale(.9) translateZ(.1px)}.folder-front{position:absolute;bottom:0;left:0;right:0;height:116px;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:8px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out;-webkit-transition:-webkit-transform .4s ease-in-out;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;-webkit-transform:rotateX(-20deg) translateZ(.1px);transform:rotateX(-20deg) translateZ(.1px);-webkit-transform:translate3d(0,0,0) rotateX(-20deg);transform:translateZ(0) rotateX(-20deg);box-shadow:inset 0 64px 48px #fff3,inset 0 2px 4px #ffffff4d,inset 0 1px 1px #ffffff4d}.item-count{display:flex;align-items:center;gap:4px}.item-count-label{letter-spacing:.5px}.folder-icon{display:flex;align-items:center;justify-content:center}.folder-label-container{display:flex;flex-direction:column;align-items:center;gap:4px}.folder-label{text-align:center}.loading-indicator,.error-indicator{font-size:var(--font-size-xs)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }] });
|
|
20068
|
+
`, isInline: true, styles: [":host{display:inline-flex;flex-direction:column;align-items:center;gap:16px;width:100%;min-width:0;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:16px;border-radius:16px;background:var(--color-background-neutral-secondary, #f0f0f0);transition:background .2s ease}:host:active{background:var(--color-background-neutral-secondary-hover, #ebebeb)}@media (hover: hover){:host:hover{background:var(--color-background-neutral-secondary-hover, #ebebeb)}}:host{--color-red-base: #dc3545;--color-red-strong: #ae1d3b;--color-green-base: #28a745;--color-green-strong: #058057;--color-yellow-base: #ffc107;--color-yellow-strong: #e4b200;--color-purple-base: #6f42c1;--color-purple-strong: #4204c5;--color-indigo-base: #6610f2;--color-indigo-strong: #a527a2;--color-lime-base: #82c91e;--color-lime-strong: #58a503;--color-teal-base: #20c997;--color-teal-strong: #0ca678;--color-cyan-base: #17a2b8;--color-cyan-strong: #1098ad;--color-brown-base: #795548;--color-brown-strong: #5c4033;--color-light-blue-base: #add8e6;--color-light-blue-strong: #87ceeb;--color-light-green-base: #90ee90;--color-light-green-strong: #32cd32;--color-coral-base: #f08080;--color-coral-strong: #cd5c5c;--color-salmon-base: #ffa07a;--color-salmon-strong: #fa8072;--color-seagreen-base: #20b2aa;--color-seagreen-strong: #2e8b57}.folder-container{position:relative;width:100%;display:flex;flex-direction:column;perspective:800px;-webkit-perspective:800px;max-width:160px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.folder-container.open .page-sheet{-webkit-transform:translateY(-8px);transform:translateY(-8px);transition-delay:.2s}.folder-container.open .page-sheet:nth-child(1){-webkit-transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px);transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(2){-webkit-transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px);transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(3){-webkit-transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px);transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(4){-webkit-transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px);transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(5){-webkit-transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px);transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(6){-webkit-transform:scale(.9) translateY(-28px) rotateX(0deg) translateZ(.1px);transform:scale(.9) translateY(-28px) rotateX(.1px)}.folder-container.open .folder-front{-webkit-transform:translate3d(0,0,0) rotateX(-45deg);transform:translateZ(0) rotateX(-45deg)}.folder-tab{width:50%;height:auto;display:block}.folder-back{height:128px;border-radius:0 12px 12px;position:relative;margin-top:-1px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.page-sheet{position:absolute;width:80%;height:120px;background:#fff;border-radius:8px;box-shadow:0 -1px 5px #0000001a;border:1px solid var(--border-color-default);transition:transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;left:10%;-webkit-transform:translateZ(0);transform:translateZ(0);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;will-change:transform}.page-sheet:nth-child(1){bottom:2px;z-index:6;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(1) translateZ(.1px);transform:scale(1) translateZ(.1px)}.page-sheet:nth-child(2){bottom:8px;z-index:5;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.98) translateZ(.1px);transform:scale(.98) translateZ(.1px)}.page-sheet:nth-child(3){bottom:14px;z-index:4;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.96) translateZ(.1px);transform:scale(.96) translateZ(.1px)}.page-sheet:nth-child(4){bottom:20px;z-index:3;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.94) translateZ(.1px);transform:scale(.94) translateZ(.1px)}.page-sheet:nth-child(5){bottom:26px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.92) translateZ(.1px);transform:scale(.92) translateZ(.1px)}.page-sheet:nth-child(6){bottom:32px;z-index:1;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.9) translateZ(.1px);transform:scale(.9) translateZ(.1px)}.folder-front{position:absolute;bottom:0;left:0;right:0;height:116px;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:8px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out;-webkit-transition:-webkit-transform .4s ease-in-out;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;-webkit-transform:rotateX(-20deg) translateZ(.1px);transform:rotateX(-20deg) translateZ(.1px);-webkit-transform:translate3d(0,0,0) rotateX(-20deg);transform:translateZ(0) rotateX(-20deg);box-shadow:inset 0 64px 48px #fff3,inset 0 2px 4px #ffffff4d,inset 0 1px 1px #ffffff4d}.item-count{display:flex;align-items:center;gap:4px}.item-count-label{letter-spacing:.5px}.folder-icon{display:flex;align-items:center;justify-content:center}.folder-label-container{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-width:0}.folder-label{text-align:center;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading-indicator,.error-indicator{font-size:var(--font-size-xs)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }] });
|
|
19821
20069
|
}
|
|
19822
20070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileHandbookFolderComponent, decorators: [{
|
|
19823
20071
|
type: Component,
|
|
@@ -19862,7 +20110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
19862
20110
|
}
|
|
19863
20111
|
</div>
|
|
19864
20112
|
</div>
|
|
19865
|
-
`, styles: [":host{display:inline-flex;flex-direction:column;align-items:center;gap:16px;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:16px;border-radius:16px;background:var(--color-background-neutral-secondary, #f0f0f0);transition:background .2s ease}:host:active{background:var(--color-background-neutral-secondary-hover, #ebebeb)}@media (hover: hover){:host:hover{background:var(--color-background-neutral-secondary-hover, #ebebeb)}}:host{--color-red-base: #dc3545;--color-red-strong: #ae1d3b;--color-green-base: #28a745;--color-green-strong: #058057;--color-yellow-base: #ffc107;--color-yellow-strong: #e4b200;--color-purple-base: #6f42c1;--color-purple-strong: #4204c5;--color-indigo-base: #6610f2;--color-indigo-strong: #a527a2;--color-lime-base: #82c91e;--color-lime-strong: #58a503;--color-teal-base: #20c997;--color-teal-strong: #0ca678;--color-cyan-base: #17a2b8;--color-cyan-strong: #1098ad;--color-brown-base: #795548;--color-brown-strong: #5c4033;--color-light-blue-base: #add8e6;--color-light-blue-strong: #87ceeb;--color-light-green-base: #90ee90;--color-light-green-strong: #32cd32;--color-coral-base: #f08080;--color-coral-strong: #cd5c5c;--color-salmon-base: #ffa07a;--color-salmon-strong: #fa8072;--color-seagreen-base: #20b2aa;--color-seagreen-strong: #2e8b57}.folder-container{position:relative;width:100%;display:flex;flex-direction:column;perspective:800px;-webkit-perspective:800px;max-width:160px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.folder-container.open .page-sheet{-webkit-transform:translateY(-8px);transform:translateY(-8px);transition-delay:.2s}.folder-container.open .page-sheet:nth-child(1){-webkit-transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px);transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(2){-webkit-transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px);transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(3){-webkit-transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px);transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(4){-webkit-transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px);transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(5){-webkit-transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px);transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(6){-webkit-transform:scale(.9) translateY(-28px) rotateX(0deg) translateZ(.1px);transform:scale(.9) translateY(-28px) rotateX(.1px)}.folder-container.open .folder-front{-webkit-transform:translate3d(0,0,0) rotateX(-45deg);transform:translateZ(0) rotateX(-45deg)}.folder-tab{width:50%;height:auto;display:block}.folder-back{height:128px;border-radius:0 12px 12px;position:relative;margin-top:-1px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.page-sheet{position:absolute;width:80%;height:120px;background:#fff;border-radius:8px;box-shadow:0 -1px 5px #0000001a;border:1px solid var(--border-color-default);transition:transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;left:10%;-webkit-transform:translateZ(0);transform:translateZ(0);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;will-change:transform}.page-sheet:nth-child(1){bottom:2px;z-index:6;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(1) translateZ(.1px);transform:scale(1) translateZ(.1px)}.page-sheet:nth-child(2){bottom:8px;z-index:5;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.98) translateZ(.1px);transform:scale(.98) translateZ(.1px)}.page-sheet:nth-child(3){bottom:14px;z-index:4;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.96) translateZ(.1px);transform:scale(.96) translateZ(.1px)}.page-sheet:nth-child(4){bottom:20px;z-index:3;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.94) translateZ(.1px);transform:scale(.94) translateZ(.1px)}.page-sheet:nth-child(5){bottom:26px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.92) translateZ(.1px);transform:scale(.92) translateZ(.1px)}.page-sheet:nth-child(6){bottom:32px;z-index:1;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.9) translateZ(.1px);transform:scale(.9) translateZ(.1px)}.folder-front{position:absolute;bottom:0;left:0;right:0;height:116px;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:8px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out;-webkit-transition:-webkit-transform .4s ease-in-out;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;-webkit-transform:rotateX(-20deg) translateZ(.1px);transform:rotateX(-20deg) translateZ(.1px);-webkit-transform:translate3d(0,0,0) rotateX(-20deg);transform:translateZ(0) rotateX(-20deg);box-shadow:inset 0 64px 48px #fff3,inset 0 2px 4px #ffffff4d,inset 0 1px 1px #ffffff4d}.item-count{display:flex;align-items:center;gap:4px}.item-count-label{letter-spacing:.5px}.folder-icon{display:flex;align-items:center;justify-content:center}.folder-label-container{display:flex;flex-direction:column;align-items:center;gap:4px}.folder-label{text-align:center}.loading-indicator,.error-indicator{font-size:var(--font-size-xs)}\n"] }]
|
|
20113
|
+
`, styles: [":host{display:inline-flex;flex-direction:column;align-items:center;gap:16px;width:100%;min-width:0;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:16px;border-radius:16px;background:var(--color-background-neutral-secondary, #f0f0f0);transition:background .2s ease}:host:active{background:var(--color-background-neutral-secondary-hover, #ebebeb)}@media (hover: hover){:host:hover{background:var(--color-background-neutral-secondary-hover, #ebebeb)}}:host{--color-red-base: #dc3545;--color-red-strong: #ae1d3b;--color-green-base: #28a745;--color-green-strong: #058057;--color-yellow-base: #ffc107;--color-yellow-strong: #e4b200;--color-purple-base: #6f42c1;--color-purple-strong: #4204c5;--color-indigo-base: #6610f2;--color-indigo-strong: #a527a2;--color-lime-base: #82c91e;--color-lime-strong: #58a503;--color-teal-base: #20c997;--color-teal-strong: #0ca678;--color-cyan-base: #17a2b8;--color-cyan-strong: #1098ad;--color-brown-base: #795548;--color-brown-strong: #5c4033;--color-light-blue-base: #add8e6;--color-light-blue-strong: #87ceeb;--color-light-green-base: #90ee90;--color-light-green-strong: #32cd32;--color-coral-base: #f08080;--color-coral-strong: #cd5c5c;--color-salmon-base: #ffa07a;--color-salmon-strong: #fa8072;--color-seagreen-base: #20b2aa;--color-seagreen-strong: #2e8b57}.folder-container{position:relative;width:100%;display:flex;flex-direction:column;perspective:800px;-webkit-perspective:800px;max-width:160px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.folder-container.open .page-sheet{-webkit-transform:translateY(-8px);transform:translateY(-8px);transition-delay:.2s}.folder-container.open .page-sheet:nth-child(1){-webkit-transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px);transform:scale(1) translateY(-8px) rotateX(-45deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(2){-webkit-transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px);transform:scale(.98) translateY(-12px) rotateX(-36deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(3){-webkit-transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px);transform:scale(.96) translateY(-16px) rotateX(-27deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(4){-webkit-transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px);transform:scale(.94) translateY(-20px) rotateX(-18deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(5){-webkit-transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px);transform:scale(.92) translateY(-24px) rotateX(-9deg) translateZ(.1px)}.folder-container.open .page-sheet:nth-child(6){-webkit-transform:scale(.9) translateY(-28px) rotateX(0deg) translateZ(.1px);transform:scale(.9) translateY(-28px) rotateX(.1px)}.folder-container.open .folder-front{-webkit-transform:translate3d(0,0,0) rotateX(-45deg);transform:translateZ(0) rotateX(-45deg)}.folder-tab{width:50%;height:auto;display:block}.folder-back{height:128px;border-radius:0 12px 12px;position:relative;margin-top:-1px;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0)}.page-sheet{position:absolute;width:80%;height:120px;background:#fff;border-radius:8px;box-shadow:0 -1px 5px #0000001a;border:1px solid var(--border-color-default);transition:transform .3s ease-out;-webkit-transition:-webkit-transform .3s ease-out;left:10%;-webkit-transform:translateZ(0);transform:translateZ(0);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;will-change:transform}.page-sheet:nth-child(1){bottom:2px;z-index:6;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(1) translateZ(.1px);transform:scale(1) translateZ(.1px)}.page-sheet:nth-child(2){bottom:8px;z-index:5;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.98) translateZ(.1px);transform:scale(.98) translateZ(.1px)}.page-sheet:nth-child(3){bottom:14px;z-index:4;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.96) translateZ(.1px);transform:scale(.96) translateZ(.1px)}.page-sheet:nth-child(4){bottom:20px;z-index:3;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.94) translateZ(.1px);transform:scale(.94) translateZ(.1px)}.page-sheet:nth-child(5){bottom:26px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.92) translateZ(.1px);transform:scale(.92) translateZ(.1px)}.page-sheet:nth-child(6){bottom:32px;z-index:1;transform-origin:bottom center;-webkit-transform-origin:bottom center;-webkit-transform:scale(.9) translateZ(.1px);transform:scale(.9) translateZ(.1px)}.folder-front{position:absolute;bottom:0;left:0;right:0;height:116px;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:8px;z-index:2;transform-origin:bottom center;-webkit-transform-origin:bottom center;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out;-webkit-transition:-webkit-transform .4s ease-in-out;will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;-webkit-font-smoothing:antialiased;-webkit-transform:rotateX(-20deg) translateZ(.1px);transform:rotateX(-20deg) translateZ(.1px);-webkit-transform:translate3d(0,0,0) rotateX(-20deg);transform:translateZ(0) rotateX(-20deg);box-shadow:inset 0 64px 48px #fff3,inset 0 2px 4px #ffffff4d,inset 0 1px 1px #ffffff4d}.item-count{display:flex;align-items:center;gap:4px}.item-count-label{letter-spacing:.5px}.folder-icon{display:flex;align-items:center;justify-content:center}.folder-label-container{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-width:0}.folder-label{text-align:center;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loading-indicator,.error-indicator{font-size:var(--font-size-xs)}\n"] }]
|
|
19866
20114
|
}], ctorParameters: () => [{ type: DsMobileHandbookDetailModalService }], propDecorators: { variant: [{
|
|
19867
20115
|
type: Input
|
|
19868
20116
|
}], customColor: [{
|
|
@@ -21241,6 +21489,7 @@ class MobileCommunityPageComponent {
|
|
|
21241
21489
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21242
21490
|
[showBadge]="true"
|
|
21243
21491
|
[clickable]="true"
|
|
21492
|
+
[moreActions]="true"
|
|
21244
21493
|
(postClick)="openPost(post.id)"
|
|
21245
21494
|
(commentClick)="openPost(post.id, true)"
|
|
21246
21495
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21310,6 +21559,7 @@ class MobileCommunityPageComponent {
|
|
|
21310
21559
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21311
21560
|
[avatarType]="post.avatarType"
|
|
21312
21561
|
[clickable]="true"
|
|
21562
|
+
[moreActions]="true"
|
|
21313
21563
|
(postClick)="openPost(post.id)"
|
|
21314
21564
|
(commentClick)="openPost(post.id, true)"
|
|
21315
21565
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21348,6 +21598,7 @@ class MobileCommunityPageComponent {
|
|
|
21348
21598
|
[avatarType]="post.avatarType"
|
|
21349
21599
|
[showBadge]="post.showBadge || false"
|
|
21350
21600
|
[clickable]="true"
|
|
21601
|
+
[moreActions]="true"
|
|
21351
21602
|
(postClick)="openPost(post.id)"
|
|
21352
21603
|
(commentClick)="openPost(post.id, true)"
|
|
21353
21604
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21389,6 +21640,7 @@ class MobileCommunityPageComponent {
|
|
|
21389
21640
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21390
21641
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21391
21642
|
[clickable]="true"
|
|
21643
|
+
[moreActions]="true"
|
|
21392
21644
|
(postClick)="openPost(post.id)"
|
|
21393
21645
|
(commentClick)="openPost(post.id, true)"
|
|
21394
21646
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21443,7 +21695,7 @@ class MobileCommunityPageComponent {
|
|
|
21443
21695
|
}
|
|
21444
21696
|
</ds-mobile-section>
|
|
21445
21697
|
</ds-mobile-page-main>
|
|
21446
|
-
`, 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", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"], 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"] }] });
|
|
21698
|
+
`, 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", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }] });
|
|
21447
21699
|
}
|
|
21448
21700
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileCommunityPageComponent, decorators: [{
|
|
21449
21701
|
type: Component,
|
|
@@ -21518,6 +21770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21518
21770
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21519
21771
|
[showBadge]="true"
|
|
21520
21772
|
[clickable]="true"
|
|
21773
|
+
[moreActions]="true"
|
|
21521
21774
|
(postClick)="openPost(post.id)"
|
|
21522
21775
|
(commentClick)="openPost(post.id, true)"
|
|
21523
21776
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21587,6 +21840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21587
21840
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21588
21841
|
[avatarType]="post.avatarType"
|
|
21589
21842
|
[clickable]="true"
|
|
21843
|
+
[moreActions]="true"
|
|
21590
21844
|
(postClick)="openPost(post.id)"
|
|
21591
21845
|
(commentClick)="openPost(post.id, true)"
|
|
21592
21846
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21625,6 +21879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21625
21879
|
[avatarType]="post.avatarType"
|
|
21626
21880
|
[showBadge]="post.showBadge || false"
|
|
21627
21881
|
[clickable]="true"
|
|
21882
|
+
[moreActions]="true"
|
|
21628
21883
|
(postClick)="openPost(post.id)"
|
|
21629
21884
|
(commentClick)="openPost(post.id, true)"
|
|
21630
21885
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21666,6 +21921,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21666
21921
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21667
21922
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21668
21923
|
[clickable]="true"
|
|
21924
|
+
[moreActions]="true"
|
|
21669
21925
|
(postClick)="openPost(post.id)"
|
|
21670
21926
|
(commentClick)="openPost(post.id, true)"
|
|
21671
21927
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -22010,7 +22266,7 @@ class MobileHandbookPageComponent {
|
|
|
22010
22266
|
</div>
|
|
22011
22267
|
</ds-mobile-section>
|
|
22012
22268
|
</ds-mobile-page-main>
|
|
22013
|
-
`, 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
|
|
22269
|
+
`, 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", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }] });
|
|
22014
22270
|
}
|
|
22015
22271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHandbookPageComponent, decorators: [{
|
|
22016
22272
|
type: Component,
|
|
@@ -22036,7 +22292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22036
22292
|
</div>
|
|
22037
22293
|
</ds-mobile-section>
|
|
22038
22294
|
</ds-mobile-page-main>
|
|
22039
|
-
`, 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
|
|
22295
|
+
`, 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"] }]
|
|
22040
22296
|
}], ctorParameters: () => [{ type: UserService }], propDecorators: { pageComponent: [{
|
|
22041
22297
|
type: ViewChild,
|
|
22042
22298
|
args: ['pageComponent']
|
|
@@ -22127,6 +22383,7 @@ class MobileHomePageComponent {
|
|
|
22127
22383
|
postsService;
|
|
22128
22384
|
postModal;
|
|
22129
22385
|
trackingPermissionService;
|
|
22386
|
+
bottomSheet;
|
|
22130
22387
|
pageComponent;
|
|
22131
22388
|
// Get recent posts from PostsService - exclude pinned post (post-4) and limit to 3
|
|
22132
22389
|
recentPosts = computed(() => this.postsService.posts()
|
|
@@ -22160,12 +22417,13 @@ class MobileHomePageComponent {
|
|
|
22160
22417
|
openInquiries = computed(() => this.allInquiries()
|
|
22161
22418
|
.filter(inquiry => inquiry.status === 'open')
|
|
22162
22419
|
.slice(0, 3), ...(ngDevMode ? [{ debugName: "openInquiries" }] : []));
|
|
22163
|
-
constructor(router, userService, postsService, postModal, trackingPermissionService) {
|
|
22420
|
+
constructor(router, userService, postsService, postModal, trackingPermissionService, bottomSheet) {
|
|
22164
22421
|
this.router = router;
|
|
22165
22422
|
this.userService = userService;
|
|
22166
22423
|
this.postsService = postsService;
|
|
22167
22424
|
this.postModal = postModal;
|
|
22168
22425
|
this.trackingPermissionService = trackingPermissionService;
|
|
22426
|
+
this.bottomSheet = bottomSheet;
|
|
22169
22427
|
console.log('MobileHomePageComponent constructor');
|
|
22170
22428
|
}
|
|
22171
22429
|
ngOnInit() {
|
|
@@ -22207,7 +22465,36 @@ class MobileHomePageComponent {
|
|
|
22207
22465
|
console.log('Navigating to inquiries page');
|
|
22208
22466
|
this.router.navigate(['/inquiries']);
|
|
22209
22467
|
}
|
|
22210
|
-
|
|
22468
|
+
async handlePostLongPress(postId) {
|
|
22469
|
+
const sheet = await this.bottomSheet.create({
|
|
22470
|
+
component: DsMobileActionsBottomSheetComponent,
|
|
22471
|
+
componentProps: { isOwnContent: false },
|
|
22472
|
+
breakpoints: [0, 1],
|
|
22473
|
+
initialBreakpoint: 1,
|
|
22474
|
+
handle: true,
|
|
22475
|
+
backdropDismiss: true,
|
|
22476
|
+
cssClass: 'auto-height'
|
|
22477
|
+
});
|
|
22478
|
+
const result = await sheet.onWillDismiss();
|
|
22479
|
+
if (result.role === 'select' && result.data) {
|
|
22480
|
+
const action = result.data.action;
|
|
22481
|
+
switch (action) {
|
|
22482
|
+
case 'like':
|
|
22483
|
+
const post = this.postsService.getPostById(postId);
|
|
22484
|
+
if (post) {
|
|
22485
|
+
this.postsService.updatePost(postId, {
|
|
22486
|
+
isLiked: !post.isLiked,
|
|
22487
|
+
likeCount: post.isLiked ? post.likeCount - 1 : post.likeCount + 1
|
|
22488
|
+
});
|
|
22489
|
+
}
|
|
22490
|
+
break;
|
|
22491
|
+
case 'reply':
|
|
22492
|
+
await this.openPost(postId, true);
|
|
22493
|
+
break;
|
|
22494
|
+
}
|
|
22495
|
+
}
|
|
22496
|
+
}
|
|
22497
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHomePageComponent, deps: [{ token: i1$4.Router }, { token: UserService }, { token: PostsService }, { token: DsMobilePostDetailModalService }, { token: TrackingPermissionService }, { token: DsMobileBottomSheetService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22211
22498
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MobileHomePageComponent, isStandalone: true, selector: "app-home-page", viewQueries: [{ propertyName: "pageComponent", first: true, predicate: ["pageComponent"], descendants: true }], ngImport: i0, template: `
|
|
22212
22499
|
<ds-mobile-page-main
|
|
22213
22500
|
#pageComponent
|
|
@@ -22215,7 +22502,8 @@ class MobileHomePageComponent {
|
|
|
22215
22502
|
headerTitle="Velkommen, Lars"
|
|
22216
22503
|
[avatarInitials]="userService.avatarInitials()"
|
|
22217
22504
|
[avatarType]="userService.avatarType()"
|
|
22218
|
-
(refresh)="handleRefresh($event)"
|
|
22505
|
+
(refresh)="handleRefresh($event)"
|
|
22506
|
+
>
|
|
22219
22507
|
|
|
22220
22508
|
<!-- Offline indicator -->
|
|
22221
22509
|
@if (pageComponent.isOffline()) {
|
|
@@ -22250,9 +22538,10 @@ class MobileHomePageComponent {
|
|
|
22250
22538
|
[avatarInitials]="post.avatarInitials || ''"
|
|
22251
22539
|
[showBadge]="post.showBadge || false"
|
|
22252
22540
|
[clickable]="true"
|
|
22253
|
-
[
|
|
22541
|
+
[moreActions]="true"
|
|
22254
22542
|
(postClick)="openPost(post.id)"
|
|
22255
|
-
(commentClick)="openPost(post.id, true)"
|
|
22543
|
+
(commentClick)="openPost(post.id, true)"
|
|
22544
|
+
(longPress)="handlePostLongPress(post.id)">
|
|
22256
22545
|
|
|
22257
22546
|
<post-content>
|
|
22258
22547
|
@if (post.content) {
|
|
@@ -22324,7 +22613,7 @@ class MobileHomePageComponent {
|
|
|
22324
22613
|
</div>
|
|
22325
22614
|
</ds-mobile-section>
|
|
22326
22615
|
</ds-mobile-page-main>
|
|
22327
|
-
`, isInline: true, styles: [".posts-list,.inquiries-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}\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: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }, { kind: "component", type: DsMobileInteractiveListItemPostComponent, selector: "ds-mobile-interactive-list-item-post", inputs: ["authorName", "authorRole", "timestamp", "avatarInitials", "avatarType", "avatarSrc", "avatarIconName", "showBadge", "variant", "align", "clickable", "enableLongPress"], 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"], outputs: ["inquiryClick", "longPress"] }, { 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"] }] });
|
|
22616
|
+
`, isInline: true, styles: [".posts-list,.inquiries-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}\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: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }, { 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: 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"] }] });
|
|
22328
22617
|
}
|
|
22329
22618
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHomePageComponent, decorators: [{
|
|
22330
22619
|
type: Component,
|
|
@@ -22349,7 +22638,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22349
22638
|
headerTitle="Velkommen, Lars"
|
|
22350
22639
|
[avatarInitials]="userService.avatarInitials()"
|
|
22351
22640
|
[avatarType]="userService.avatarType()"
|
|
22352
|
-
(refresh)="handleRefresh($event)"
|
|
22641
|
+
(refresh)="handleRefresh($event)"
|
|
22642
|
+
>
|
|
22353
22643
|
|
|
22354
22644
|
<!-- Offline indicator -->
|
|
22355
22645
|
@if (pageComponent.isOffline()) {
|
|
@@ -22384,9 +22674,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22384
22674
|
[avatarInitials]="post.avatarInitials || ''"
|
|
22385
22675
|
[showBadge]="post.showBadge || false"
|
|
22386
22676
|
[clickable]="true"
|
|
22387
|
-
[
|
|
22677
|
+
[moreActions]="true"
|
|
22388
22678
|
(postClick)="openPost(post.id)"
|
|
22389
|
-
(commentClick)="openPost(post.id, true)"
|
|
22679
|
+
(commentClick)="openPost(post.id, true)"
|
|
22680
|
+
(longPress)="handlePostLongPress(post.id)">
|
|
22390
22681
|
|
|
22391
22682
|
<post-content>
|
|
22392
22683
|
@if (post.content) {
|
|
@@ -22459,7 +22750,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22459
22750
|
</ds-mobile-section>
|
|
22460
22751
|
</ds-mobile-page-main>
|
|
22461
22752
|
`, styles: [".posts-list,.inquiries-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}\n"] }]
|
|
22462
|
-
}], ctorParameters: () => [{ type: i1$4.Router }, { type: UserService }, { type: PostsService }, { type: DsMobilePostDetailModalService }, { type: TrackingPermissionService }], propDecorators: { pageComponent: [{
|
|
22753
|
+
}], ctorParameters: () => [{ type: i1$4.Router }, { type: UserService }, { type: PostsService }, { type: DsMobilePostDetailModalService }, { type: TrackingPermissionService }, { type: DsMobileBottomSheetService }], propDecorators: { pageComponent: [{
|
|
22463
22754
|
type: ViewChild,
|
|
22464
22755
|
args: ['pageComponent']
|
|
22465
22756
|
}] } });
|
|
@@ -22649,7 +22940,7 @@ class MobileInquiriesPageComponent {
|
|
|
22649
22940
|
ariaLabel="Create new inquiry"
|
|
22650
22941
|
(clicked)="createNewInquiry()">
|
|
22651
22942
|
</ds-mobile-fab>
|
|
22652
|
-
`, 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", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"], 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"] }] });
|
|
22943
|
+
`, 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", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }] });
|
|
22653
22944
|
}
|
|
22654
22945
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileInquiriesPageComponent, decorators: [{
|
|
22655
22946
|
type: Component,
|
|
@@ -22848,7 +23139,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22848
23139
|
// Day 1 - Yesterday morning (9:15 AM)
|
|
22849
23140
|
{
|
|
22850
23141
|
id: '1',
|
|
22851
|
-
content: '
|
|
23142
|
+
content: 'Godmorgen! Jeg ville lige følge op på din henvendelse vedrørende vedligeholdelsesplanen.',
|
|
22852
23143
|
senderId: messageId,
|
|
22853
23144
|
senderName: messageThread.senderName,
|
|
22854
23145
|
senderRole: messageThread.role,
|
|
@@ -22859,7 +23150,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22859
23150
|
},
|
|
22860
23151
|
{
|
|
22861
23152
|
id: '2',
|
|
22862
|
-
content: '
|
|
23153
|
+
content: 'Vi har gennemgået din sag og identificeret den grundlæggende årsag til problemet.',
|
|
22863
23154
|
senderId: messageId,
|
|
22864
23155
|
senderName: messageThread.senderName,
|
|
22865
23156
|
senderRole: messageThread.role,
|
|
@@ -22870,7 +23161,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22870
23161
|
},
|
|
22871
23162
|
{
|
|
22872
23163
|
id: '3',
|
|
22873
|
-
content: '
|
|
23164
|
+
content: 'Tak fordi du kiggede på det! Hvad fandt du?',
|
|
22874
23165
|
senderId: 'current-user',
|
|
22875
23166
|
senderName: 'You',
|
|
22876
23167
|
timestamp: new Date(Date.now() - 86400000 - 32100000), // Yesterday 9:25 AM (new group - 7 min gap)
|
|
@@ -22880,7 +23171,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22880
23171
|
},
|
|
22881
23172
|
{
|
|
22882
23173
|
id: '4',
|
|
22883
|
-
content: '
|
|
23174
|
+
content: 'Kan du også sende mig vedligeholdelsesrapporten?',
|
|
22884
23175
|
senderId: 'current-user',
|
|
22885
23176
|
senderName: 'You',
|
|
22886
23177
|
timestamp: new Date(Date.now() - 86400000 - 31980000), // Yesterday 9:27 AM (grouped with previous)
|
|
@@ -22902,7 +23193,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22902
23193
|
},
|
|
22903
23194
|
{
|
|
22904
23195
|
id: '6',
|
|
22905
|
-
content: '
|
|
23196
|
+
content: 'Jeg har vedhæftet den detaljerede rapport på dit henvendelsesdashboard. Gennemgå den gerne, når du har et øjeblik.',
|
|
22906
23197
|
senderId: messageId,
|
|
22907
23198
|
senderName: messageThread.senderName,
|
|
22908
23199
|
senderRole: messageThread.role,
|
|
@@ -22914,7 +23205,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22914
23205
|
// Day 2 - Today morning (10:45 AM - new day)
|
|
22915
23206
|
{
|
|
22916
23207
|
id: '7',
|
|
22917
|
-
content: '
|
|
23208
|
+
content: 'Perfekt! Jeg har gennemgået rapporten, og alt ser godt ud.',
|
|
22918
23209
|
senderId: 'current-user',
|
|
22919
23210
|
senderName: 'You',
|
|
22920
23211
|
timestamp: new Date(Date.now() - 7500000), // Today 10:45 AM (new group - new day)
|
|
@@ -22924,7 +23215,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22924
23215
|
},
|
|
22925
23216
|
{
|
|
22926
23217
|
id: '8',
|
|
22927
|
-
content: '
|
|
23218
|
+
content: 'Hvornår kan vi planlægge vedligeholdelsesarbejdet?',
|
|
22928
23219
|
senderId: 'current-user',
|
|
22929
23220
|
senderName: 'You',
|
|
22930
23221
|
timestamp: new Date(Date.now() - 7320000), // Today 10:48 AM (grouped with previous)
|
|
@@ -22935,7 +23226,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22935
23226
|
// Day 2 - Today (just now - 2 minutes ago)
|
|
22936
23227
|
{
|
|
22937
23228
|
id: '9',
|
|
22938
|
-
content: '
|
|
23229
|
+
content: 'Dejligt at høre! Jeg kan planlægge det til næste tirsdag kl. 09.00. Passer det dig?',
|
|
22939
23230
|
senderId: messageId,
|
|
22940
23231
|
senderName: messageThread.senderName,
|
|
22941
23232
|
senderRole: messageThread.role,
|
|
@@ -22946,7 +23237,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22946
23237
|
},
|
|
22947
23238
|
{
|
|
22948
23239
|
id: '10',
|
|
22949
|
-
content: '
|
|
23240
|
+
content: 'Jeg sender dig en kalenderinvitation med alle detaljerne.',
|
|
22950
23241
|
senderId: messageId,
|
|
22951
23242
|
senderName: messageThread.senderName,
|
|
22952
23243
|
senderRole: messageThread.role,
|
|
@@ -23085,7 +23376,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
23085
23376
|
</ds-mobile-section>
|
|
23086
23377
|
}
|
|
23087
23378
|
</ds-mobile-page-details>
|
|
23088
|
-
`, isInline: true, styles: [".activity-list{display:flex;flex-direction:column;gap:12px;position:relative}.activity-list ds-mobile-list-item:not(:last-child) [content-leading]:after{content:\"\";position:absolute;top:40px;left:50%;transform:translate(-50%);width:1px;height:calc(100% - 2px);background:var(--border-color-default, #e5e5e5);z-index:0}.activity-icon-wrapper{width:100%;height:100%;border-radius:8px;background:var(--color-background-neutral-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}.avatar-wrapper{position:relative;display:flex;align-items:start;justify-content:center;flex-shrink:0;width:100%;height:100%;z-index:1}.avatar-badge{position:absolute;bottom:-6px;right:-6px;width:20px;height:20px;border-radius:8px;background:var(--color-brand-secondary, #5d5fef);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-background-primary, #ffffff)}.avatar-badge svg{width:10px;position:relative;top:1px;fill:#fff}.activity-content{display:flex;flex-direction:column;gap:4px}.activity-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0}.activity-title .actor-name{font-weight:600;color:var(--text-color-default-primary, #202227)}.activity-title .activity-text{color:var(--text-color-default-secondary, #545B66);font-weight:400}.activity-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0}.activity-timestamp{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);display:flex;align-items:center;gap:4px;margin-top:2px}.detail-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373)}.detail-value{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:24px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227)}.detail-value.description-text{padding:0 0 8px}.detail-tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;background:var(--color-background-neutral-secondary, #f5f5f5);font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;color:var(--text-color-default-secondary, #525866);margin-top:4px;margin-bottom:10px;width:-moz-fit-content;width:fit-content}.photo-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.photo-add{width:100%;aspect-ratio:1;border-radius:12px;border:1px dashed var(--border-color-default, #e5e5e5);background:var(--color-background-neutral-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;cursor:pointer}.photo-item{width:100%;aspect-ratio:1;border-radius:12px;-o-object-fit:cover;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { 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: DsMobileInteractiveListItemMessageComponent, selector: "ds-mobile-interactive-list-item-message", inputs: ["senderName", "senderRole", "timestamp", "message", "avatarInitials", "avatarType", "avatarSrc", "unread", "clickable", "align"], outputs: ["messageClick", "longPress"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }, { kind: "component", type: DsBadgeComponent, selector: "ds-badge", inputs: ["variant", "contentType", "content", "leadingIcon", "indicatorShape"] }, { kind: "component", type: DsMobileCardInlineBannerComponent, selector: "ds-mobile-card-inline-banner", inputs: ["title", "timestamp", "unreadCount", "layout"], outputs: ["bannerClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "loadingStates", "author", "maxVisible", "useGrid"], outputs: ["photoClick"] }] });
|
|
23379
|
+
`, isInline: true, styles: [".activity-list{display:flex;flex-direction:column;gap:12px;position:relative}.activity-list ds-mobile-list-item:not(:last-child) [content-leading]:after{content:\"\";position:absolute;top:40px;left:50%;transform:translate(-50%);width:1px;height:calc(100% - 2px);background:var(--border-color-default, #e5e5e5);z-index:0}.activity-icon-wrapper{width:100%;height:100%;border-radius:8px;background:var(--color-background-neutral-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}.avatar-wrapper{position:relative;display:flex;align-items:start;justify-content:center;flex-shrink:0;width:100%;height:100%;z-index:1}.avatar-badge{position:absolute;bottom:-6px;right:-6px;width:20px;height:20px;border-radius:8px;background:var(--color-brand-secondary, #5d5fef);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-background-primary, #ffffff)}.avatar-badge svg{width:10px;position:relative;top:1px;fill:#fff}.activity-content{display:flex;flex-direction:column;gap:4px}.activity-title{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227);margin:0}.activity-title .actor-name{font-weight:600;color:var(--text-color-default-primary, #202227)}.activity-title .activity-text{color:var(--text-color-default-secondary, #545B66);font-weight:400}.activity-description{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:20px;letter-spacing:-.3px;color:var(--text-color-default-secondary, #545B66);margin:0}.activity-timestamp{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373);display:flex;align-items:center;gap:4px;margin-top:2px}.detail-label{font-family:Brockmann,sans-serif;font-size:var(--font-size-xs);font-weight:400;line-height:1.2;letter-spacing:-.26px;color:var(--text-color-default-tertiary, #737373)}.detail-value{font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:400;line-height:24px;letter-spacing:-.3px;color:var(--text-color-default-primary, #202227)}.detail-value.description-text{padding:0 0 8px}.detail-tag{display:inline-flex;align-items:center;padding:4px 12px;border-radius:12px;background:var(--color-background-neutral-secondary, #f5f5f5);font-family:Brockmann,sans-serif;font-size:var(--font-size-sm);font-weight:500;color:var(--text-color-default-secondary, #525866);margin-top:4px;margin-bottom:10px;width:-moz-fit-content;width:fit-content}.photo-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.photo-add{width:100%;aspect-ratio:1;border-radius:12px;border:1px dashed var(--border-color-default, #e5e5e5);background:var(--color-background-neutral-secondary, #f5f5f5);display:flex;align-items:center;justify-content:center;cursor:pointer}.photo-item{width:100%;aspect-ratio:1;border-radius:12px;-o-object-fit:cover;object-fit:cover}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DsIconComponent, selector: "ds-icon", inputs: ["name", "size", "color", "interactive"] }, { kind: "component", type: DsAvatarWithBadgeComponent, selector: "ds-avatar-with-badge", inputs: ["type", "size", "initials", "src", "iconName", "showBadge", "badgePosition"] }, { 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: DsMobileInteractiveListItemMessageComponent, selector: "ds-mobile-interactive-list-item-message", inputs: ["senderName", "senderRole", "timestamp", "message", "avatarInitials", "avatarType", "avatarSrc", "unread", "clickable", "align"], outputs: ["messageClick", "longPress"] }, { kind: "component", type: DsMobileListItemComponent, selector: "ds-mobile-list-item", inputs: ["leadingSize", "variant", "align", "interactive", "disabled", "loading", "enableLongPress", "showDesktopMoreButton", "moreActions", "interactiveOffset", "title", "subtitle", "showDivider", "dividerSpacing"], outputs: ["itemClick", "moreButtonClick"] }, { kind: "component", type: DsBadgeComponent, selector: "ds-badge", inputs: ["variant", "contentType", "content", "leadingIcon", "indicatorShape"] }, { kind: "component", type: DsMobileCardInlineBannerComponent, selector: "ds-mobile-card-inline-banner", inputs: ["title", "timestamp", "unreadCount", "layout"], outputs: ["bannerClick"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "gap", "contentGap", "showBorder", "overflow"], outputs: ["linkClick"] }, { kind: "component", type: DsMobileInlinePhotoComponent, selector: "ds-mobile-inline-photo", inputs: ["images", "loadingStates", "author", "maxVisible", "useGrid"], outputs: ["photoClick"] }] });
|
|
23089
23380
|
}
|
|
23090
23381
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileInquiryDetailPageComponent, decorators: [{
|
|
23091
23382
|
type: Component,
|
|
@@ -24536,30 +24827,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24536
24827
|
class MobileBookingPageComponent {
|
|
24537
24828
|
facilityModal;
|
|
24538
24829
|
facilityCreationModal;
|
|
24830
|
+
userService;
|
|
24539
24831
|
pageComponent;
|
|
24540
24832
|
bookingsSwiper;
|
|
24541
|
-
constructor(facilityModal, facilityCreationModal) {
|
|
24833
|
+
constructor(facilityModal, facilityCreationModal, userService) {
|
|
24542
24834
|
this.facilityModal = facilityModal;
|
|
24543
24835
|
this.facilityCreationModal = facilityCreationModal;
|
|
24836
|
+
this.userService = userService;
|
|
24544
24837
|
}
|
|
24545
24838
|
// Active bookings (current and upcoming)
|
|
24546
24839
|
activeBookings = signal([
|
|
24547
24840
|
{
|
|
24548
24841
|
id: 'booking-1',
|
|
24549
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24550
|
-
facilityTitle: '
|
|
24842
|
+
thumbnail: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24843
|
+
facilityTitle: 'Festlokale på taget',
|
|
24551
24844
|
bookingDate: '14. februar, 2026',
|
|
24552
24845
|
bookingTime: '9:00 - 17:00',
|
|
24553
|
-
description: '
|
|
24554
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24555
|
-
fullDescription: '<p>
|
|
24846
|
+
description: 'Din aktive booking af festlokalet på taget',
|
|
24847
|
+
heroImage: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24848
|
+
fullDescription: '<p>Festlokalet på taget giver jer et lyst og indbydende rum med flot udsigt over byen. Lokalet er velegnet til fødselsdage, mindre sammenkomster og hyggelige middage med naboer og venner.</p>',
|
|
24556
24849
|
requirements: ['Kræver nøglekort'],
|
|
24557
|
-
bookingType: '
|
|
24558
|
-
expectations: '<p>
|
|
24850
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24851
|
+
expectations: '<p>Lokalet er klargjort med borde og stole ved ankomst. Husk at rydde op efter brug, så området er klar til de næste beboere.</p>',
|
|
24559
24852
|
restrictions: [
|
|
24560
|
-
'
|
|
24561
|
-
'
|
|
24562
|
-
'
|
|
24853
|
+
'Maksimal bookingvarighed: 3 timer',
|
|
24854
|
+
'Ingen høj musik efter kl. 22',
|
|
24855
|
+
'Efterlad lokalet rent og opryddet'
|
|
24563
24856
|
]
|
|
24564
24857
|
}
|
|
24565
24858
|
], ...(ngDevMode ? [{ debugName: "activeBookings" }] : []));
|
|
@@ -24569,102 +24862,102 @@ class MobileBookingPageComponent {
|
|
|
24569
24862
|
id: 'facility-1',
|
|
24570
24863
|
thumbnail: '/Assets/Dummy-photos/handyman.jpg',
|
|
24571
24864
|
facilityTitle: 'Boremaskinen',
|
|
24572
|
-
description: '
|
|
24865
|
+
description: 'Lån en boremaskine til mindre gør-det-selv-opgaver i boligen.',
|
|
24573
24866
|
availabilityStatus: 'available-today',
|
|
24574
24867
|
statusLabel: 'Ledig i dag',
|
|
24575
24868
|
heroImage: '/Assets/Dummy-photos/handyman.jpg',
|
|
24576
|
-
fullDescription: '<p>
|
|
24869
|
+
fullDescription: '<p>Vores boremaskine i professionel kvalitet er tilgængelig for alle beboere til mindre forbedringer i hjemmet. Den er ideel til ophængning af hylder, montering af beslag og andre boreopgaver i lejligheden.</p>',
|
|
24577
24870
|
requirements: ['Kræver nøglekort'],
|
|
24578
|
-
bookingType: '
|
|
24579
|
-
expectations: '<p>
|
|
24871
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24872
|
+
expectations: '<p>Boremaskinen udleveres med et sæt bor og tilbehør. Den er opladet og klar til brug. Returner værktøjet i rengjort stand efter brug.</p>',
|
|
24580
24873
|
restrictions: [
|
|
24581
|
-
'
|
|
24582
|
-
'
|
|
24583
|
-
'
|
|
24584
|
-
'
|
|
24874
|
+
'Maksimal bookingvarighed: 48 timer',
|
|
24875
|
+
'Skal returneres i samme stand',
|
|
24876
|
+
'Skader skal meldes med det samme',
|
|
24877
|
+
'Må ikke bruges til kommercielt arbejde'
|
|
24585
24878
|
]
|
|
24586
24879
|
},
|
|
24587
24880
|
{
|
|
24588
24881
|
id: 'facility-2',
|
|
24589
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24882
|
+
thumbnail: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24590
24883
|
facilityTitle: 'Festlokale på taget',
|
|
24591
|
-
description: 'Book
|
|
24884
|
+
description: 'Book det fælles festlokale på taget til fødselsdage, fejring og mindre arrangementer.',
|
|
24592
24885
|
availabilityStatus: 'available-today',
|
|
24593
24886
|
statusLabel: 'Ledig i dag',
|
|
24594
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24887
|
+
heroImage: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24595
24888
|
fullDescription: `
|
|
24596
|
-
<p>
|
|
24889
|
+
<p>Tagterrassen er indrettet som et afslappende fristed og et levende samlingspunkt for beboerne med flot udsigt over byen. Uanset om du planlægger en mindre sammenkomst, en rolig aften udendørs eller en hyggelig stund med venner, giver terrassen de perfekte rammer.</p>
|
|
24597
24890
|
|
|
24598
24891
|
<h3 class="section-headline">Hvad du kan forvente</h3>
|
|
24599
|
-
<p>
|
|
24892
|
+
<p>Terrassen er møbleret med borde, stole og loungeområder, så den egner sig godt til sociale arrangementer, afslappet spisning eller en rolig pause. Sæsonens planter giver en indbydende stemning, og området har belysning til brug om aftenen. Terrassen er ikke en legeplads, og børn skal være under opsyn.</p>
|
|
24600
24893
|
|
|
24601
24894
|
<h3 class="section-headline">Restriktioner</h3>
|
|
24602
24895
|
<ul>
|
|
24603
|
-
<li>
|
|
24604
|
-
<li>
|
|
24605
|
-
<li
|
|
24606
|
-
<li>
|
|
24607
|
-
<li>
|
|
24896
|
+
<li>Rygning og vaping er ikke tilladt på terrassen.</li>
|
|
24897
|
+
<li>Høj musik og fester over rimeligt lydniveau er ikke tilladt.</li>
|
|
24898
|
+
<li>Åben ild og stearinlys er ikke tilladt af sikkerhedshensyn.</li>
|
|
24899
|
+
<li>Private grill eller eget madudstyr må ikke anvendes; brug kun fælles faciliteter.</li>
|
|
24900
|
+
<li>Kæledyr er ikke tilladt på terrassen, undtaget servicehunde.</li>
|
|
24608
24901
|
</ul>
|
|
24609
24902
|
|
|
24610
|
-
<h3 class="section-headline">
|
|
24611
|
-
<p>For
|
|
24903
|
+
<h3 class="section-headline">Sikkerhed og adfærd</h3>
|
|
24904
|
+
<p>For alles komfort og sikkerhed beder vi dig:</p>
|
|
24612
24905
|
<ul>
|
|
24613
|
-
<li>
|
|
24614
|
-
<li>
|
|
24615
|
-
<li>
|
|
24616
|
-
<li>
|
|
24617
|
-
<li>
|
|
24906
|
+
<li>Undgå overfyldning; terrassen har plads til maks. 20 personer ad gangen.</li>
|
|
24907
|
+
<li>Holde børn under opsyn til enhver tid.</li>
|
|
24908
|
+
<li>Undlade at flytte eller fjerne møbler.</li>
|
|
24909
|
+
<li>Holde nødudgange og gangarealer fri.</li>
|
|
24910
|
+
<li>Bortskaffe affald i de opsatte skraldespande.</li>
|
|
24618
24911
|
</ul>
|
|
24619
24912
|
|
|
24620
|
-
<h3 class="section-headline">Booking
|
|
24621
|
-
<p>
|
|
24913
|
+
<h3 class="section-headline">Booking og varighed</h3>
|
|
24914
|
+
<p>Terrassen skal bookes på forhånd ved private arrangementer:</p>
|
|
24622
24915
|
<ul>
|
|
24623
|
-
<li>
|
|
24624
|
-
<li>
|
|
24916
|
+
<li>Maksimal varighed: 3 timer pr. booking.</li>
|
|
24917
|
+
<li>Oprydning: Beboeren har ansvar for at efterlade terrassen ren og klar til næste booking.</li>
|
|
24625
24918
|
</ul>
|
|
24626
24919
|
`,
|
|
24627
24920
|
requirements: ['Kræver nøglekort'],
|
|
24628
|
-
bookingType: '
|
|
24921
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24629
24922
|
expectations: '',
|
|
24630
24923
|
restrictions: []
|
|
24631
24924
|
},
|
|
24632
24925
|
{
|
|
24633
24926
|
id: 'facility-3',
|
|
24634
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24927
|
+
thumbnail: '/Assets/Dummy-photos/parking.jpg',
|
|
24635
24928
|
facilityTitle: 'Gæsteparkering',
|
|
24636
|
-
description: 'Book
|
|
24929
|
+
description: 'Book en gæsteparkeringsplads, så dine besøgende nemt kan parkere ved ejendommen.',
|
|
24637
24930
|
availabilityStatus: 'available-from',
|
|
24638
24931
|
statusLabel: 'Ledig fra 28. februar, 2026',
|
|
24639
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24640
|
-
fullDescription: '<p>
|
|
24932
|
+
heroImage: '/Assets/Dummy-photos/parking.jpg',
|
|
24933
|
+
fullDescription: '<p>Ekstra gæsteparkeringspladser er tilgængelige for beboere, der har brug for parkering til besøgende. Pladserne giver dine gæster en nem og tryg parkeringsmulighed tæt på boligen.</p>',
|
|
24641
24934
|
requirements: ['Kræver nøglekort'],
|
|
24642
|
-
bookingType: '
|
|
24643
|
-
expectations: '<p>
|
|
24935
|
+
bookingType: 'Forudgående booking påkrævet',
|
|
24936
|
+
expectations: '<p>Parkeringsområdet er sikkert og velholdt. Gæstetilladelse skal være synlig i forruden under hele parkeringen. Informer gerne dine gæster om placering og regler.</p>',
|
|
24644
24937
|
restrictions: [
|
|
24645
|
-
'
|
|
24646
|
-
'
|
|
24647
|
-
'
|
|
24648
|
-
'
|
|
24938
|
+
'Forudgående booking påkrævet (minimum 24 timer)',
|
|
24939
|
+
'Maksimal bookingvarighed: 12 timer',
|
|
24940
|
+
'Gæster skal vise synlig parkeringstilladelse',
|
|
24941
|
+
'Ingen erhvervskøretøjer tilladt'
|
|
24649
24942
|
]
|
|
24650
24943
|
},
|
|
24651
24944
|
{
|
|
24652
24945
|
id: 'facility-4',
|
|
24653
24946
|
thumbnail: '/Assets/Dummy-photos/yard.jpg',
|
|
24654
24947
|
facilityTitle: 'BBQ område',
|
|
24655
|
-
description: 'Book
|
|
24948
|
+
description: 'Book grillområdet til sommerarrangementer og udendørs spisning med naboer og venner.',
|
|
24656
24949
|
availabilityStatus: 'unavailable',
|
|
24657
24950
|
statusLabel: 'Ikke tilgængelig',
|
|
24658
24951
|
heroImage: '/Assets/Dummy-photos/yard.jpg',
|
|
24659
|
-
fullDescription: '<p>
|
|
24952
|
+
fullDescription: '<p>BBQ-området har grill i professionel kvalitet og udendørs siddepladser, perfekt til sommerarrangementer og fællesspisning. Området er velegnet til både mindre familiemåltider og større sociale arrangementer.</p>',
|
|
24660
24953
|
requirements: ['Kræver nøglekort'],
|
|
24661
|
-
bookingType: '
|
|
24662
|
-
expectations: '<p>
|
|
24954
|
+
bookingType: 'Sæsonbestemt tilgængelighed',
|
|
24955
|
+
expectations: '<p>Alt grilludstyr og rengøringsartikler stilles til rådighed. Området har overdækkede siddepladser og borde til forberedelse. Rengør grillen efter brug, og bortskaf kul korrekt i de anviste beholdere.</p>',
|
|
24663
24956
|
restrictions: [
|
|
24664
|
-
'
|
|
24665
|
-
'
|
|
24666
|
-
'
|
|
24667
|
-
'
|
|
24957
|
+
'Lukket i vintersæsonen',
|
|
24958
|
+
'Åbner igen i maj 2026',
|
|
24959
|
+
'Maksimal gruppestørrelse: 20 personer',
|
|
24960
|
+
'Musik skal stoppe senest kl. 22'
|
|
24668
24961
|
]
|
|
24669
24962
|
}
|
|
24670
24963
|
], ...(ngDevMode ? [{ debugName: "availableFacilities" }] : []));
|
|
@@ -24745,11 +25038,13 @@ class MobileBookingPageComponent {
|
|
|
24745
25038
|
}
|
|
24746
25039
|
});
|
|
24747
25040
|
}
|
|
24748
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileBookingPageComponent, deps: [{ token: DsMobileFacilityDetailModalService }, { token: DsMobileFacilityCreationModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25041
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileBookingPageComponent, deps: [{ token: DsMobileFacilityDetailModalService }, { token: DsMobileFacilityCreationModalService }, { token: UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24749
25042
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MobileBookingPageComponent, isStandalone: true, selector: "app-mobile-booking-page", viewQueries: [{ propertyName: "pageComponent", first: true, predicate: ["pageComponent"], descendants: true }, { propertyName: "bookingsSwiper", first: true, predicate: ["bookingsSwiper"], descendants: true }], ngImport: i0, template: `
|
|
24750
25043
|
<ds-mobile-page-main
|
|
24751
25044
|
#pageComponent
|
|
24752
|
-
[title]="'
|
|
25045
|
+
[title]="'Bookinger'"
|
|
25046
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
25047
|
+
[avatarType]="userService.avatarType()"
|
|
24753
25048
|
(refresh)="handleRefresh($event)">
|
|
24754
25049
|
|
|
24755
25050
|
@if (pageComponent.isOffline()) {
|
|
@@ -24839,10 +25134,10 @@ class MobileBookingPageComponent {
|
|
|
24839
25134
|
<ds-mobile-fab
|
|
24840
25135
|
icon="remixAddLine"
|
|
24841
25136
|
position="bottom-right"
|
|
24842
|
-
ariaLabel="
|
|
25137
|
+
ariaLabel="Opret facilitet"
|
|
24843
25138
|
(clicked)="openFacilityCreationModal()">
|
|
24844
25139
|
</ds-mobile-fab>
|
|
24845
|
-
`, 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}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"], 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"] }] });
|
|
25140
|
+
`, 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}\n"], dependencies: [{ kind: "component", type: DsMobilePageMainComponent, selector: "ds-mobile-page-main", inputs: ["title", "headerTitle", "headerSubtitle", "avatarType", "avatarInitials", "avatarSrc", "avatarIconName", "showRefresh", "showCondensedHeader", "scrollThreshold", "headerFadeDistance", "contentPadding", "profileMenuItems"], outputs: ["avatarClick", "profileActionSelected", "refresh", "scroll"] }, { kind: "component", type: DsMobileSectionComponent, selector: "ds-mobile-section", inputs: ["headline", "icon", "linkText", "padding", "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"] }] });
|
|
24846
25141
|
}
|
|
24847
25142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileBookingPageComponent, decorators: [{
|
|
24848
25143
|
type: Component,
|
|
@@ -24857,7 +25152,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24857
25152
|
], template: `
|
|
24858
25153
|
<ds-mobile-page-main
|
|
24859
25154
|
#pageComponent
|
|
24860
|
-
[title]="'
|
|
25155
|
+
[title]="'Bookinger'"
|
|
25156
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
25157
|
+
[avatarType]="userService.avatarType()"
|
|
24861
25158
|
(refresh)="handleRefresh($event)">
|
|
24862
25159
|
|
|
24863
25160
|
@if (pageComponent.isOffline()) {
|
|
@@ -24947,11 +25244,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24947
25244
|
<ds-mobile-fab
|
|
24948
25245
|
icon="remixAddLine"
|
|
24949
25246
|
position="bottom-right"
|
|
24950
|
-
ariaLabel="
|
|
25247
|
+
ariaLabel="Opret facilitet"
|
|
24951
25248
|
(clicked)="openFacilityCreationModal()">
|
|
24952
25249
|
</ds-mobile-fab>
|
|
24953
25250
|
`, 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}\n"] }]
|
|
24954
|
-
}], ctorParameters: () => [{ type: DsMobileFacilityDetailModalService }, { type: DsMobileFacilityCreationModalService }], propDecorators: { pageComponent: [{
|
|
25251
|
+
}], ctorParameters: () => [{ type: DsMobileFacilityDetailModalService }, { type: DsMobileFacilityCreationModalService }, { type: UserService }], propDecorators: { pageComponent: [{
|
|
24955
25252
|
type: ViewChild,
|
|
24956
25253
|
args: ['pageComponent']
|
|
24957
25254
|
}], bookingsSwiper: [{
|
|
@@ -25385,7 +25682,7 @@ class MobilePostDetailPageComponent {
|
|
|
25385
25682
|
</div>
|
|
25386
25683
|
</div>
|
|
25387
25684
|
</ds-mobile-page-details>
|
|
25388
|
-
`, 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"], 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", "isOwnComment", "isLiked", "likeCount"], outputs: ["likeToggled", "commentClick", "replyClick", "editClick", "longPress"] }] });
|
|
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"] }] });
|
|
25389
25686
|
}
|
|
25390
25687
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobilePostDetailPageComponent, decorators: [{
|
|
25391
25688
|
type: Component,
|