@propbinder/mobile-design 0.2.44 → 0.2.47
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 +573 -308
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +106 -23
- 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 }]
|
|
@@ -14050,7 +14205,7 @@ class DsMobilePostDetailModalComponent {
|
|
|
14050
14205
|
</div>
|
|
14051
14206
|
</div>
|
|
14052
14207
|
</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"] }] });
|
|
14208
|
+
`, 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
14209
|
}
|
|
14055
14210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobilePostDetailModalComponent, decorators: [{
|
|
14056
14211
|
type: Component,
|
|
@@ -15924,6 +16079,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
15924
16079
|
class DsMobileNewInquiryModalComponent {
|
|
15925
16080
|
modalController = inject(ModalController);
|
|
15926
16081
|
titleInputRef;
|
|
16082
|
+
descriptionInputRef;
|
|
15927
16083
|
titleInput;
|
|
15928
16084
|
fileInput;
|
|
15929
16085
|
/**
|
|
@@ -15977,6 +16133,7 @@ class DsMobileNewInquiryModalComponent {
|
|
|
15977
16133
|
// Setup auto-resize for title textarea
|
|
15978
16134
|
setTimeout(() => {
|
|
15979
16135
|
this.autoResizeTitleTextarea();
|
|
16136
|
+
this.autoResizeDescriptionTextarea();
|
|
15980
16137
|
// Focus the title textarea after view initialization to trigger keyboard on iOS
|
|
15981
16138
|
if (this.titleInputRef) {
|
|
15982
16139
|
const textareaElement = this.titleInputRef.nativeElement.querySelector('textarea');
|
|
@@ -15999,6 +16156,18 @@ class DsMobileNewInquiryModalComponent {
|
|
|
15999
16156
|
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
16000
16157
|
}
|
|
16001
16158
|
}
|
|
16159
|
+
/**
|
|
16160
|
+
* Auto-resize the description textarea based on content
|
|
16161
|
+
*/
|
|
16162
|
+
autoResizeDescriptionTextarea() {
|
|
16163
|
+
if (!this.descriptionInputRef)
|
|
16164
|
+
return;
|
|
16165
|
+
const textareaElement = this.descriptionInputRef.nativeElement.querySelector('textarea');
|
|
16166
|
+
if (textareaElement) {
|
|
16167
|
+
textareaElement.style.height = 'auto';
|
|
16168
|
+
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
16169
|
+
}
|
|
16170
|
+
}
|
|
16002
16171
|
/**
|
|
16003
16172
|
* Handle title change with auto-resize
|
|
16004
16173
|
*/
|
|
@@ -16006,6 +16175,13 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16006
16175
|
this.validateForm();
|
|
16007
16176
|
this.autoResizeTitleTextarea();
|
|
16008
16177
|
}
|
|
16178
|
+
/**
|
|
16179
|
+
* Handle description change with auto-resize
|
|
16180
|
+
*/
|
|
16181
|
+
handleDescriptionChange(value) {
|
|
16182
|
+
this.validateForm();
|
|
16183
|
+
this.autoResizeDescriptionTextarea();
|
|
16184
|
+
}
|
|
16009
16185
|
/**
|
|
16010
16186
|
* Validate form fields
|
|
16011
16187
|
*/
|
|
@@ -16162,8 +16338,8 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16162
16338
|
}
|
|
16163
16339
|
}
|
|
16164
16340
|
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">
|
|
16341
|
+
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: `
|
|
16342
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" [keyboardContentBehavior]="'overlay'" closeButtonLabel="Close">
|
|
16167
16343
|
<!-- Form Content -->
|
|
16168
16344
|
<ds-mobile-section>
|
|
16169
16345
|
<!-- Title Field (Large Ghost Textarea) -->
|
|
@@ -16180,12 +16356,13 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16180
16356
|
|
|
16181
16357
|
<!-- Description Field (Ghost Textarea) -->
|
|
16182
16358
|
<ds-textarea
|
|
16359
|
+
#descriptionInput
|
|
16183
16360
|
[(ngModel)]="description"
|
|
16184
16361
|
[ghost]="true"
|
|
16185
16362
|
[rows]="1"
|
|
16186
16363
|
[placeholder]="descriptionPlaceholder"
|
|
16187
16364
|
class="inquiry-description-input ghost-input-clean"
|
|
16188
|
-
(valueChange)="
|
|
16365
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
16189
16366
|
/>
|
|
16190
16367
|
</ds-mobile-section>
|
|
16191
16368
|
|
|
@@ -16224,12 +16401,14 @@ class DsMobileNewInquiryModalComponent {
|
|
|
16224
16401
|
</div>
|
|
16225
16402
|
|
|
16226
16403
|
<!-- Submit Button (Right) -->
|
|
16227
|
-
<ds-button variant="primary" size="
|
|
16404
|
+
<ds-button class="submit-action-button" variant="primary" size="md" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
16405
|
+
{{ submitButtonLabel }}
|
|
16406
|
+
</ds-button>
|
|
16228
16407
|
</div>
|
|
16229
16408
|
</div>
|
|
16230
16409
|
</div>
|
|
16231
16410
|
</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;
|
|
16411
|
+
`, 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
16412
|
}
|
|
16234
16413
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileNewInquiryModalComponent, decorators: [{
|
|
16235
16414
|
type: Component,
|
|
@@ -16243,7 +16422,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16243
16422
|
DsMobileAttachmentPreviewComponent,
|
|
16244
16423
|
DsMobileSectionComponent,
|
|
16245
16424
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
|
|
16246
|
-
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" closeButtonLabel="Close">
|
|
16425
|
+
<ds-mobile-modal-base [loading]="loading" [error]="error" [showHeader]="false" [hasFixedBottom]="true" [enableKeyboardHandling]="true" [keyboardContentBehavior]="'overlay'" closeButtonLabel="Close">
|
|
16247
16426
|
<!-- Form Content -->
|
|
16248
16427
|
<ds-mobile-section>
|
|
16249
16428
|
<!-- Title Field (Large Ghost Textarea) -->
|
|
@@ -16260,12 +16439,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16260
16439
|
|
|
16261
16440
|
<!-- Description Field (Ghost Textarea) -->
|
|
16262
16441
|
<ds-textarea
|
|
16442
|
+
#descriptionInput
|
|
16263
16443
|
[(ngModel)]="description"
|
|
16264
16444
|
[ghost]="true"
|
|
16265
16445
|
[rows]="1"
|
|
16266
16446
|
[placeholder]="descriptionPlaceholder"
|
|
16267
16447
|
class="inquiry-description-input ghost-input-clean"
|
|
16268
|
-
(valueChange)="
|
|
16448
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
16269
16449
|
/>
|
|
16270
16450
|
</ds-mobile-section>
|
|
16271
16451
|
|
|
@@ -16304,15 +16484,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
16304
16484
|
</div>
|
|
16305
16485
|
|
|
16306
16486
|
<!-- Submit Button (Right) -->
|
|
16307
|
-
<ds-button variant="primary" size="
|
|
16487
|
+
<ds-button class="submit-action-button" variant="primary" size="md" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
16488
|
+
{{ submitButtonLabel }}
|
|
16489
|
+
</ds-button>
|
|
16308
16490
|
</div>
|
|
16309
16491
|
</div>
|
|
16310
16492
|
</div>
|
|
16311
16493
|
</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;
|
|
16494
|
+
`, 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
16495
|
}], propDecorators: { titleInputRef: [{
|
|
16314
16496
|
type: ViewChild,
|
|
16315
16497
|
args: ['titleInput', { read: ElementRef }]
|
|
16498
|
+
}], descriptionInputRef: [{
|
|
16499
|
+
type: ViewChild,
|
|
16500
|
+
args: ['descriptionInput', { read: ElementRef }]
|
|
16316
16501
|
}], titleInput: [{
|
|
16317
16502
|
type: ViewChild,
|
|
16318
16503
|
args: ['titleInput']
|
|
@@ -17098,6 +17283,7 @@ class DsMobileBookingModalService extends BaseModalService {
|
|
|
17098
17283
|
mode: 'ios'
|
|
17099
17284
|
});
|
|
17100
17285
|
await sheet.present();
|
|
17286
|
+
disableModalShadowPointerEvents(sheet);
|
|
17101
17287
|
}
|
|
17102
17288
|
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
17289
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileBookingModalService, providedIn: 'root' });
|
|
@@ -17126,6 +17312,7 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17126
17312
|
modalController = inject(ModalController);
|
|
17127
17313
|
bottomSheetService = inject(DsMobileBottomSheetService);
|
|
17128
17314
|
titleInputRef;
|
|
17315
|
+
descriptionInputRef;
|
|
17129
17316
|
titleInput;
|
|
17130
17317
|
fileInput;
|
|
17131
17318
|
/**
|
|
@@ -17195,6 +17382,7 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17195
17382
|
// Setup auto-resize for title textarea
|
|
17196
17383
|
setTimeout(() => {
|
|
17197
17384
|
this.autoResizeTitleTextarea();
|
|
17385
|
+
this.autoResizeDescriptionTextarea();
|
|
17198
17386
|
// Focus the title textarea after view initialization to trigger keyboard on iOS
|
|
17199
17387
|
if (this.titleInputRef) {
|
|
17200
17388
|
const textareaElement = this.titleInputRef.nativeElement.querySelector('textarea');
|
|
@@ -17217,6 +17405,18 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17217
17405
|
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
17218
17406
|
}
|
|
17219
17407
|
}
|
|
17408
|
+
/**
|
|
17409
|
+
* Auto-resize the description textarea based on content
|
|
17410
|
+
*/
|
|
17411
|
+
autoResizeDescriptionTextarea() {
|
|
17412
|
+
if (!this.descriptionInputRef)
|
|
17413
|
+
return;
|
|
17414
|
+
const textareaElement = this.descriptionInputRef.nativeElement.querySelector('textarea');
|
|
17415
|
+
if (textareaElement) {
|
|
17416
|
+
textareaElement.style.height = 'auto';
|
|
17417
|
+
textareaElement.style.height = textareaElement.scrollHeight + 'px';
|
|
17418
|
+
}
|
|
17419
|
+
}
|
|
17220
17420
|
/**
|
|
17221
17421
|
* Handle title change with auto-resize
|
|
17222
17422
|
*/
|
|
@@ -17224,6 +17424,13 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17224
17424
|
this.validateForm();
|
|
17225
17425
|
this.autoResizeTitleTextarea();
|
|
17226
17426
|
}
|
|
17427
|
+
/**
|
|
17428
|
+
* Handle description change with auto-resize
|
|
17429
|
+
*/
|
|
17430
|
+
handleDescriptionChange(value) {
|
|
17431
|
+
this.validateForm();
|
|
17432
|
+
this.autoResizeDescriptionTextarea();
|
|
17433
|
+
}
|
|
17227
17434
|
/**
|
|
17228
17435
|
* Validate form fields
|
|
17229
17436
|
*/
|
|
@@ -17505,13 +17712,14 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17505
17712
|
}
|
|
17506
17713
|
}
|
|
17507
17714
|
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: `
|
|
17715
|
+
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
17716
|
<ds-mobile-modal-base
|
|
17510
17717
|
[loading]="loading"
|
|
17511
17718
|
[error]="error"
|
|
17512
17719
|
[showHeader]="false"
|
|
17513
17720
|
[hasFixedBottom]="true"
|
|
17514
17721
|
[enableKeyboardHandling]="true"
|
|
17722
|
+
[keyboardContentBehavior]="'overlay'"
|
|
17515
17723
|
closeButtonLabel="Close"
|
|
17516
17724
|
>
|
|
17517
17725
|
<!-- Form Content -->
|
|
@@ -17530,12 +17738,13 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17530
17738
|
|
|
17531
17739
|
<!-- Description Field (Ghost Textarea) -->
|
|
17532
17740
|
<ds-textarea
|
|
17741
|
+
#descriptionInput
|
|
17533
17742
|
[(ngModel)]="description"
|
|
17534
17743
|
[ghost]="true"
|
|
17535
17744
|
[rows]="1"
|
|
17536
17745
|
[placeholder]="descriptionPlaceholder"
|
|
17537
17746
|
class="inquiry-description-input ghost-input-clean"
|
|
17538
|
-
(valueChange)="
|
|
17747
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
17539
17748
|
/>
|
|
17540
17749
|
</ds-mobile-section>
|
|
17541
17750
|
|
|
@@ -17641,12 +17850,14 @@ class DsMobileFacilityCreationModalComponent {
|
|
|
17641
17850
|
</div>
|
|
17642
17851
|
|
|
17643
17852
|
<!-- Submit Button (Right) -->
|
|
17644
|
-
<ds-button variant="primary" size="
|
|
17853
|
+
<ds-button class="submit-action-button" variant="primary" size="sm" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
17854
|
+
{{ submitButtonLabel }}
|
|
17855
|
+
</ds-button>
|
|
17645
17856
|
</div>
|
|
17646
17857
|
</div>
|
|
17647
17858
|
</div>
|
|
17648
17859
|
</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;
|
|
17860
|
+
`, 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
17861
|
}
|
|
17651
17862
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalComponent, decorators: [{
|
|
17652
17863
|
type: Component,
|
|
@@ -17668,6 +17879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17668
17879
|
[showHeader]="false"
|
|
17669
17880
|
[hasFixedBottom]="true"
|
|
17670
17881
|
[enableKeyboardHandling]="true"
|
|
17882
|
+
[keyboardContentBehavior]="'overlay'"
|
|
17671
17883
|
closeButtonLabel="Close"
|
|
17672
17884
|
>
|
|
17673
17885
|
<!-- Form Content -->
|
|
@@ -17686,12 +17898,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17686
17898
|
|
|
17687
17899
|
<!-- Description Field (Ghost Textarea) -->
|
|
17688
17900
|
<ds-textarea
|
|
17901
|
+
#descriptionInput
|
|
17689
17902
|
[(ngModel)]="description"
|
|
17690
17903
|
[ghost]="true"
|
|
17691
17904
|
[rows]="1"
|
|
17692
17905
|
[placeholder]="descriptionPlaceholder"
|
|
17693
17906
|
class="inquiry-description-input ghost-input-clean"
|
|
17694
|
-
(valueChange)="
|
|
17907
|
+
(valueChange)="handleDescriptionChange($event)"
|
|
17695
17908
|
/>
|
|
17696
17909
|
</ds-mobile-section>
|
|
17697
17910
|
|
|
@@ -17797,15 +18010,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
17797
18010
|
</div>
|
|
17798
18011
|
|
|
17799
18012
|
<!-- Submit Button (Right) -->
|
|
17800
|
-
<ds-button variant="primary" size="
|
|
18013
|
+
<ds-button class="submit-action-button" variant="primary" size="sm" [disabled]="!isFormValid() || isSubmitting()" (clicked)="handleSubmit()">
|
|
18014
|
+
{{ submitButtonLabel }}
|
|
18015
|
+
</ds-button>
|
|
17801
18016
|
</div>
|
|
17802
18017
|
</div>
|
|
17803
18018
|
</div>
|
|
17804
18019
|
</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;
|
|
18020
|
+
`, 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
18021
|
}], propDecorators: { titleInputRef: [{
|
|
17807
18022
|
type: ViewChild,
|
|
17808
18023
|
args: ['titleInput', { read: ElementRef }]
|
|
18024
|
+
}], descriptionInputRef: [{
|
|
18025
|
+
type: ViewChild,
|
|
18026
|
+
args: ['descriptionInput', { read: ElementRef }]
|
|
17809
18027
|
}], titleInput: [{
|
|
17810
18028
|
type: ViewChild,
|
|
17811
18029
|
args: ['titleInput']
|
|
@@ -17984,9 +18202,6 @@ class DsMobileFacilityCreationModalService extends BaseModalService {
|
|
|
17984
18202
|
}, {
|
|
17985
18203
|
keyboardClose: false, // Don't close on keyboard hide for this modal
|
|
17986
18204
|
cssClass: ['ds-modal-base'],
|
|
17987
|
-
breakpoints: [0, 1],
|
|
17988
|
-
initialBreakpoint: 1,
|
|
17989
|
-
handle: false,
|
|
17990
18205
|
});
|
|
17991
18206
|
console.log('[FacilityCreationModal] Modal created, presenting...');
|
|
17992
18207
|
await modal.present();
|
|
@@ -18014,6 +18229,7 @@ class DsMobileFacilityCreationModalService extends BaseModalService {
|
|
|
18014
18229
|
presentingElement: undefined
|
|
18015
18230
|
});
|
|
18016
18231
|
await sheet.present();
|
|
18232
|
+
disableModalShadowPointerEvents(sheet);
|
|
18017
18233
|
}
|
|
18018
18234
|
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
18235
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityCreationModalService, providedIn: 'root' });
|
|
@@ -18892,7 +19108,8 @@ class DsMobileFacilityDetailModalComponent {
|
|
|
18892
19108
|
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
19109
|
<ds-mobile-modal-base
|
|
18894
19110
|
[headerTitle]="facilityData.facilityTitle"
|
|
18895
|
-
[hasFixedBottom]="true"
|
|
19111
|
+
[hasFixedBottom]="true"
|
|
19112
|
+
[keyboardContentBehavior]="'overlay'">
|
|
18896
19113
|
|
|
18897
19114
|
<!-- Hero Image Section -->
|
|
18898
19115
|
<!-- Hero Image and Things to Know Section -->
|
|
@@ -18932,22 +19149,20 @@ class DsMobileFacilityDetailModalComponent {
|
|
|
18932
19149
|
<!-- Fixed Bottom Button -->
|
|
18933
19150
|
<div fixed-bottom class="booking-action">
|
|
18934
19151
|
<ds-button
|
|
18935
|
-
size="
|
|
19152
|
+
size="md"
|
|
18936
19153
|
variant="primary"
|
|
18937
19154
|
[fullWidth]="true"
|
|
18938
19155
|
(clicked)="handleBookNow()">
|
|
18939
19156
|
Book nu
|
|
18940
|
-
<ds-icon slot="end" name="remixArrowRightSLine" />
|
|
18941
19157
|
</ds-button>
|
|
18942
19158
|
</div>
|
|
18943
19159
|
</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:
|
|
19160
|
+
`, 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
19161
|
}
|
|
18946
19162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileFacilityDetailModalComponent, decorators: [{
|
|
18947
19163
|
type: Component,
|
|
18948
19164
|
args: [{ selector: 'ds-mobile-facility-detail-modal', standalone: true, imports: [
|
|
18949
19165
|
CommonModule,
|
|
18950
|
-
DsIconComponent,
|
|
18951
19166
|
DsButtonComponent,
|
|
18952
19167
|
DsMobileModalBaseComponent,
|
|
18953
19168
|
DsMobileSectionComponent,
|
|
@@ -18955,7 +19170,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
18955
19170
|
], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
|
|
18956
19171
|
<ds-mobile-modal-base
|
|
18957
19172
|
[headerTitle]="facilityData.facilityTitle"
|
|
18958
|
-
[hasFixedBottom]="true"
|
|
19173
|
+
[hasFixedBottom]="true"
|
|
19174
|
+
[keyboardContentBehavior]="'overlay'">
|
|
18959
19175
|
|
|
18960
19176
|
<!-- Hero Image Section -->
|
|
18961
19177
|
<!-- Hero Image and Things to Know Section -->
|
|
@@ -18995,16 +19211,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
18995
19211
|
<!-- Fixed Bottom Button -->
|
|
18996
19212
|
<div fixed-bottom class="booking-action">
|
|
18997
19213
|
<ds-button
|
|
18998
|
-
size="
|
|
19214
|
+
size="md"
|
|
18999
19215
|
variant="primary"
|
|
19000
19216
|
[fullWidth]="true"
|
|
19001
19217
|
(clicked)="handleBookNow()">
|
|
19002
19218
|
Book nu
|
|
19003
|
-
<ds-icon slot="end" name="remixArrowRightSLine" />
|
|
19004
19219
|
</ds-button>
|
|
19005
19220
|
</div>
|
|
19006
19221
|
</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:
|
|
19222
|
+
`, 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
19223
|
}], ctorParameters: () => [{ type: i1.ModalController }, { type: DsMobileBookingModalService }], propDecorators: { facilityData: [{
|
|
19009
19224
|
type: Input
|
|
19010
19225
|
}] } });
|
|
@@ -19310,6 +19525,7 @@ class DsMobileHandbookDetailModalComponent {
|
|
|
19310
19525
|
cssClass: ['ds-bottom-sheet', 'auto-height'],
|
|
19311
19526
|
});
|
|
19312
19527
|
await sheet.present();
|
|
19528
|
+
disableModalShadowPointerEvents(sheet);
|
|
19313
19529
|
const result = await sheet.onWillDismiss();
|
|
19314
19530
|
if (result.data?.action) {
|
|
19315
19531
|
this.handleContactAction(result.data.action, contact);
|
|
@@ -19817,7 +20033,7 @@ class DsMobileHandbookFolderComponent {
|
|
|
19817
20033
|
}
|
|
19818
20034
|
</div>
|
|
19819
20035
|
</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"] }] });
|
|
20036
|
+
`, 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
20037
|
}
|
|
19822
20038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DsMobileHandbookFolderComponent, decorators: [{
|
|
19823
20039
|
type: Component,
|
|
@@ -19862,7 +20078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
19862
20078
|
}
|
|
19863
20079
|
</div>
|
|
19864
20080
|
</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"] }]
|
|
20081
|
+
`, 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
20082
|
}], ctorParameters: () => [{ type: DsMobileHandbookDetailModalService }], propDecorators: { variant: [{
|
|
19867
20083
|
type: Input
|
|
19868
20084
|
}], customColor: [{
|
|
@@ -21241,6 +21457,7 @@ class MobileCommunityPageComponent {
|
|
|
21241
21457
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21242
21458
|
[showBadge]="true"
|
|
21243
21459
|
[clickable]="true"
|
|
21460
|
+
[moreActions]="true"
|
|
21244
21461
|
(postClick)="openPost(post.id)"
|
|
21245
21462
|
(commentClick)="openPost(post.id, true)"
|
|
21246
21463
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21310,6 +21527,7 @@ class MobileCommunityPageComponent {
|
|
|
21310
21527
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21311
21528
|
[avatarType]="post.avatarType"
|
|
21312
21529
|
[clickable]="true"
|
|
21530
|
+
[moreActions]="true"
|
|
21313
21531
|
(postClick)="openPost(post.id)"
|
|
21314
21532
|
(commentClick)="openPost(post.id, true)"
|
|
21315
21533
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21348,6 +21566,7 @@ class MobileCommunityPageComponent {
|
|
|
21348
21566
|
[avatarType]="post.avatarType"
|
|
21349
21567
|
[showBadge]="post.showBadge || false"
|
|
21350
21568
|
[clickable]="true"
|
|
21569
|
+
[moreActions]="true"
|
|
21351
21570
|
(postClick)="openPost(post.id)"
|
|
21352
21571
|
(commentClick)="openPost(post.id, true)"
|
|
21353
21572
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21389,6 +21608,7 @@ class MobileCommunityPageComponent {
|
|
|
21389
21608
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21390
21609
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21391
21610
|
[clickable]="true"
|
|
21611
|
+
[moreActions]="true"
|
|
21392
21612
|
(postClick)="openPost(post.id)"
|
|
21393
21613
|
(commentClick)="openPost(post.id, true)"
|
|
21394
21614
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21443,7 +21663,7 @@ class MobileCommunityPageComponent {
|
|
|
21443
21663
|
}
|
|
21444
21664
|
</ds-mobile-section>
|
|
21445
21665
|
</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"] }] });
|
|
21666
|
+
`, 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
21667
|
}
|
|
21448
21668
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileCommunityPageComponent, decorators: [{
|
|
21449
21669
|
type: Component,
|
|
@@ -21518,6 +21738,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21518
21738
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21519
21739
|
[showBadge]="true"
|
|
21520
21740
|
[clickable]="true"
|
|
21741
|
+
[moreActions]="true"
|
|
21521
21742
|
(postClick)="openPost(post.id)"
|
|
21522
21743
|
(commentClick)="openPost(post.id, true)"
|
|
21523
21744
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21587,6 +21808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21587
21808
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21588
21809
|
[avatarType]="post.avatarType"
|
|
21589
21810
|
[clickable]="true"
|
|
21811
|
+
[moreActions]="true"
|
|
21590
21812
|
(postClick)="openPost(post.id)"
|
|
21591
21813
|
(commentClick)="openPost(post.id, true)"
|
|
21592
21814
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -21625,6 +21847,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21625
21847
|
[avatarType]="post.avatarType"
|
|
21626
21848
|
[showBadge]="post.showBadge || false"
|
|
21627
21849
|
[clickable]="true"
|
|
21850
|
+
[moreActions]="true"
|
|
21628
21851
|
(postClick)="openPost(post.id)"
|
|
21629
21852
|
(commentClick)="openPost(post.id, true)"
|
|
21630
21853
|
(longPress)="handlePostLongPress(post.id, false)">
|
|
@@ -21666,6 +21889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
21666
21889
|
[avatarSrc]="post.avatarSrc || ''"
|
|
21667
21890
|
[avatarInitials]="post.avatarInitials || ''"
|
|
21668
21891
|
[clickable]="true"
|
|
21892
|
+
[moreActions]="true"
|
|
21669
21893
|
(postClick)="openPost(post.id)"
|
|
21670
21894
|
(commentClick)="openPost(post.id, true)"
|
|
21671
21895
|
(longPress)="handlePostLongPress(post.id, post.authorRole === 'Dig')">
|
|
@@ -22010,7 +22234,7 @@ class MobileHandbookPageComponent {
|
|
|
22010
22234
|
</div>
|
|
22011
22235
|
</ds-mobile-section>
|
|
22012
22236
|
</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
|
|
22237
|
+
`, 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
22238
|
}
|
|
22015
22239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHandbookPageComponent, decorators: [{
|
|
22016
22240
|
type: Component,
|
|
@@ -22036,7 +22260,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22036
22260
|
</div>
|
|
22037
22261
|
</ds-mobile-section>
|
|
22038
22262
|
</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
|
|
22263
|
+
`, 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
22264
|
}], ctorParameters: () => [{ type: UserService }], propDecorators: { pageComponent: [{
|
|
22041
22265
|
type: ViewChild,
|
|
22042
22266
|
args: ['pageComponent']
|
|
@@ -22127,6 +22351,7 @@ class MobileHomePageComponent {
|
|
|
22127
22351
|
postsService;
|
|
22128
22352
|
postModal;
|
|
22129
22353
|
trackingPermissionService;
|
|
22354
|
+
bottomSheet;
|
|
22130
22355
|
pageComponent;
|
|
22131
22356
|
// Get recent posts from PostsService - exclude pinned post (post-4) and limit to 3
|
|
22132
22357
|
recentPosts = computed(() => this.postsService.posts()
|
|
@@ -22160,12 +22385,13 @@ class MobileHomePageComponent {
|
|
|
22160
22385
|
openInquiries = computed(() => this.allInquiries()
|
|
22161
22386
|
.filter(inquiry => inquiry.status === 'open')
|
|
22162
22387
|
.slice(0, 3), ...(ngDevMode ? [{ debugName: "openInquiries" }] : []));
|
|
22163
|
-
constructor(router, userService, postsService, postModal, trackingPermissionService) {
|
|
22388
|
+
constructor(router, userService, postsService, postModal, trackingPermissionService, bottomSheet) {
|
|
22164
22389
|
this.router = router;
|
|
22165
22390
|
this.userService = userService;
|
|
22166
22391
|
this.postsService = postsService;
|
|
22167
22392
|
this.postModal = postModal;
|
|
22168
22393
|
this.trackingPermissionService = trackingPermissionService;
|
|
22394
|
+
this.bottomSheet = bottomSheet;
|
|
22169
22395
|
console.log('MobileHomePageComponent constructor');
|
|
22170
22396
|
}
|
|
22171
22397
|
ngOnInit() {
|
|
@@ -22207,7 +22433,36 @@ class MobileHomePageComponent {
|
|
|
22207
22433
|
console.log('Navigating to inquiries page');
|
|
22208
22434
|
this.router.navigate(['/inquiries']);
|
|
22209
22435
|
}
|
|
22210
|
-
|
|
22436
|
+
async handlePostLongPress(postId) {
|
|
22437
|
+
const sheet = await this.bottomSheet.create({
|
|
22438
|
+
component: DsMobileActionsBottomSheetComponent,
|
|
22439
|
+
componentProps: { isOwnContent: false },
|
|
22440
|
+
breakpoints: [0, 1],
|
|
22441
|
+
initialBreakpoint: 1,
|
|
22442
|
+
handle: true,
|
|
22443
|
+
backdropDismiss: true,
|
|
22444
|
+
cssClass: 'auto-height'
|
|
22445
|
+
});
|
|
22446
|
+
const result = await sheet.onWillDismiss();
|
|
22447
|
+
if (result.role === 'select' && result.data) {
|
|
22448
|
+
const action = result.data.action;
|
|
22449
|
+
switch (action) {
|
|
22450
|
+
case 'like':
|
|
22451
|
+
const post = this.postsService.getPostById(postId);
|
|
22452
|
+
if (post) {
|
|
22453
|
+
this.postsService.updatePost(postId, {
|
|
22454
|
+
isLiked: !post.isLiked,
|
|
22455
|
+
likeCount: post.isLiked ? post.likeCount - 1 : post.likeCount + 1
|
|
22456
|
+
});
|
|
22457
|
+
}
|
|
22458
|
+
break;
|
|
22459
|
+
case 'reply':
|
|
22460
|
+
await this.openPost(postId, true);
|
|
22461
|
+
break;
|
|
22462
|
+
}
|
|
22463
|
+
}
|
|
22464
|
+
}
|
|
22465
|
+
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
22466
|
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
22467
|
<ds-mobile-page-main
|
|
22213
22468
|
#pageComponent
|
|
@@ -22215,7 +22470,8 @@ class MobileHomePageComponent {
|
|
|
22215
22470
|
headerTitle="Velkommen, Lars"
|
|
22216
22471
|
[avatarInitials]="userService.avatarInitials()"
|
|
22217
22472
|
[avatarType]="userService.avatarType()"
|
|
22218
|
-
(refresh)="handleRefresh($event)"
|
|
22473
|
+
(refresh)="handleRefresh($event)"
|
|
22474
|
+
>
|
|
22219
22475
|
|
|
22220
22476
|
<!-- Offline indicator -->
|
|
22221
22477
|
@if (pageComponent.isOffline()) {
|
|
@@ -22250,9 +22506,10 @@ class MobileHomePageComponent {
|
|
|
22250
22506
|
[avatarInitials]="post.avatarInitials || ''"
|
|
22251
22507
|
[showBadge]="post.showBadge || false"
|
|
22252
22508
|
[clickable]="true"
|
|
22253
|
-
[
|
|
22509
|
+
[moreActions]="true"
|
|
22254
22510
|
(postClick)="openPost(post.id)"
|
|
22255
|
-
(commentClick)="openPost(post.id, true)"
|
|
22511
|
+
(commentClick)="openPost(post.id, true)"
|
|
22512
|
+
(longPress)="handlePostLongPress(post.id)">
|
|
22256
22513
|
|
|
22257
22514
|
<post-content>
|
|
22258
22515
|
@if (post.content) {
|
|
@@ -22324,7 +22581,7 @@ class MobileHomePageComponent {
|
|
|
22324
22581
|
</div>
|
|
22325
22582
|
</ds-mobile-section>
|
|
22326
22583
|
</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"] }] });
|
|
22584
|
+
`, 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
22585
|
}
|
|
22329
22586
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileHomePageComponent, decorators: [{
|
|
22330
22587
|
type: Component,
|
|
@@ -22349,7 +22606,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22349
22606
|
headerTitle="Velkommen, Lars"
|
|
22350
22607
|
[avatarInitials]="userService.avatarInitials()"
|
|
22351
22608
|
[avatarType]="userService.avatarType()"
|
|
22352
|
-
(refresh)="handleRefresh($event)"
|
|
22609
|
+
(refresh)="handleRefresh($event)"
|
|
22610
|
+
>
|
|
22353
22611
|
|
|
22354
22612
|
<!-- Offline indicator -->
|
|
22355
22613
|
@if (pageComponent.isOffline()) {
|
|
@@ -22384,9 +22642,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22384
22642
|
[avatarInitials]="post.avatarInitials || ''"
|
|
22385
22643
|
[showBadge]="post.showBadge || false"
|
|
22386
22644
|
[clickable]="true"
|
|
22387
|
-
[
|
|
22645
|
+
[moreActions]="true"
|
|
22388
22646
|
(postClick)="openPost(post.id)"
|
|
22389
|
-
(commentClick)="openPost(post.id, true)"
|
|
22647
|
+
(commentClick)="openPost(post.id, true)"
|
|
22648
|
+
(longPress)="handlePostLongPress(post.id)">
|
|
22390
22649
|
|
|
22391
22650
|
<post-content>
|
|
22392
22651
|
@if (post.content) {
|
|
@@ -22459,7 +22718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
22459
22718
|
</ds-mobile-section>
|
|
22460
22719
|
</ds-mobile-page-main>
|
|
22461
22720
|
`, 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: [{
|
|
22721
|
+
}], ctorParameters: () => [{ type: i1$4.Router }, { type: UserService }, { type: PostsService }, { type: DsMobilePostDetailModalService }, { type: TrackingPermissionService }, { type: DsMobileBottomSheetService }], propDecorators: { pageComponent: [{
|
|
22463
22722
|
type: ViewChild,
|
|
22464
22723
|
args: ['pageComponent']
|
|
22465
22724
|
}] } });
|
|
@@ -22649,7 +22908,7 @@ class MobileInquiriesPageComponent {
|
|
|
22649
22908
|
ariaLabel="Create new inquiry"
|
|
22650
22909
|
(clicked)="createNewInquiry()">
|
|
22651
22910
|
</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"] }] });
|
|
22911
|
+
`, 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
22912
|
}
|
|
22654
22913
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileInquiriesPageComponent, decorators: [{
|
|
22655
22914
|
type: Component,
|
|
@@ -22848,7 +23107,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22848
23107
|
// Day 1 - Yesterday morning (9:15 AM)
|
|
22849
23108
|
{
|
|
22850
23109
|
id: '1',
|
|
22851
|
-
content: '
|
|
23110
|
+
content: 'Godmorgen! Jeg ville lige følge op på din henvendelse vedrørende vedligeholdelsesplanen.',
|
|
22852
23111
|
senderId: messageId,
|
|
22853
23112
|
senderName: messageThread.senderName,
|
|
22854
23113
|
senderRole: messageThread.role,
|
|
@@ -22859,7 +23118,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22859
23118
|
},
|
|
22860
23119
|
{
|
|
22861
23120
|
id: '2',
|
|
22862
|
-
content: '
|
|
23121
|
+
content: 'Vi har gennemgået din sag og identificeret den grundlæggende årsag til problemet.',
|
|
22863
23122
|
senderId: messageId,
|
|
22864
23123
|
senderName: messageThread.senderName,
|
|
22865
23124
|
senderRole: messageThread.role,
|
|
@@ -22870,7 +23129,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22870
23129
|
},
|
|
22871
23130
|
{
|
|
22872
23131
|
id: '3',
|
|
22873
|
-
content: '
|
|
23132
|
+
content: 'Tak fordi du kiggede på det! Hvad fandt du?',
|
|
22874
23133
|
senderId: 'current-user',
|
|
22875
23134
|
senderName: 'You',
|
|
22876
23135
|
timestamp: new Date(Date.now() - 86400000 - 32100000), // Yesterday 9:25 AM (new group - 7 min gap)
|
|
@@ -22880,7 +23139,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22880
23139
|
},
|
|
22881
23140
|
{
|
|
22882
23141
|
id: '4',
|
|
22883
|
-
content: '
|
|
23142
|
+
content: 'Kan du også sende mig vedligeholdelsesrapporten?',
|
|
22884
23143
|
senderId: 'current-user',
|
|
22885
23144
|
senderName: 'You',
|
|
22886
23145
|
timestamp: new Date(Date.now() - 86400000 - 31980000), // Yesterday 9:27 AM (grouped with previous)
|
|
@@ -22902,7 +23161,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22902
23161
|
},
|
|
22903
23162
|
{
|
|
22904
23163
|
id: '6',
|
|
22905
|
-
content: '
|
|
23164
|
+
content: 'Jeg har vedhæftet den detaljerede rapport på dit henvendelsesdashboard. Gennemgå den gerne, når du har et øjeblik.',
|
|
22906
23165
|
senderId: messageId,
|
|
22907
23166
|
senderName: messageThread.senderName,
|
|
22908
23167
|
senderRole: messageThread.role,
|
|
@@ -22914,7 +23173,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22914
23173
|
// Day 2 - Today morning (10:45 AM - new day)
|
|
22915
23174
|
{
|
|
22916
23175
|
id: '7',
|
|
22917
|
-
content: '
|
|
23176
|
+
content: 'Perfekt! Jeg har gennemgået rapporten, og alt ser godt ud.',
|
|
22918
23177
|
senderId: 'current-user',
|
|
22919
23178
|
senderName: 'You',
|
|
22920
23179
|
timestamp: new Date(Date.now() - 7500000), // Today 10:45 AM (new group - new day)
|
|
@@ -22924,7 +23183,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22924
23183
|
},
|
|
22925
23184
|
{
|
|
22926
23185
|
id: '8',
|
|
22927
|
-
content: '
|
|
23186
|
+
content: 'Hvornår kan vi planlægge vedligeholdelsesarbejdet?',
|
|
22928
23187
|
senderId: 'current-user',
|
|
22929
23188
|
senderName: 'You',
|
|
22930
23189
|
timestamp: new Date(Date.now() - 7320000), // Today 10:48 AM (grouped with previous)
|
|
@@ -22935,7 +23194,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22935
23194
|
// Day 2 - Today (just now - 2 minutes ago)
|
|
22936
23195
|
{
|
|
22937
23196
|
id: '9',
|
|
22938
|
-
content: '
|
|
23197
|
+
content: 'Dejligt at høre! Jeg kan planlægge det til næste tirsdag kl. 09.00. Passer det dig?',
|
|
22939
23198
|
senderId: messageId,
|
|
22940
23199
|
senderName: messageThread.senderName,
|
|
22941
23200
|
senderRole: messageThread.role,
|
|
@@ -22946,7 +23205,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
22946
23205
|
},
|
|
22947
23206
|
{
|
|
22948
23207
|
id: '10',
|
|
22949
|
-
content: '
|
|
23208
|
+
content: 'Jeg sender dig en kalenderinvitation med alle detaljerne.',
|
|
22950
23209
|
senderId: messageId,
|
|
22951
23210
|
senderName: messageThread.senderName,
|
|
22952
23211
|
senderRole: messageThread.role,
|
|
@@ -23085,7 +23344,7 @@ class MobileInquiryDetailPageComponent {
|
|
|
23085
23344
|
</ds-mobile-section>
|
|
23086
23345
|
}
|
|
23087
23346
|
</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"] }] });
|
|
23347
|
+
`, 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
23348
|
}
|
|
23090
23349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileInquiryDetailPageComponent, decorators: [{
|
|
23091
23350
|
type: Component,
|
|
@@ -24536,30 +24795,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24536
24795
|
class MobileBookingPageComponent {
|
|
24537
24796
|
facilityModal;
|
|
24538
24797
|
facilityCreationModal;
|
|
24798
|
+
userService;
|
|
24539
24799
|
pageComponent;
|
|
24540
24800
|
bookingsSwiper;
|
|
24541
|
-
constructor(facilityModal, facilityCreationModal) {
|
|
24801
|
+
constructor(facilityModal, facilityCreationModal, userService) {
|
|
24542
24802
|
this.facilityModal = facilityModal;
|
|
24543
24803
|
this.facilityCreationModal = facilityCreationModal;
|
|
24804
|
+
this.userService = userService;
|
|
24544
24805
|
}
|
|
24545
24806
|
// Active bookings (current and upcoming)
|
|
24546
24807
|
activeBookings = signal([
|
|
24547
24808
|
{
|
|
24548
24809
|
id: 'booking-1',
|
|
24549
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24550
|
-
facilityTitle: '
|
|
24810
|
+
thumbnail: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24811
|
+
facilityTitle: 'Festlokale på taget',
|
|
24551
24812
|
bookingDate: '14. februar, 2026',
|
|
24552
24813
|
bookingTime: '9:00 - 17:00',
|
|
24553
|
-
description: '
|
|
24554
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24555
|
-
fullDescription: '<p>
|
|
24814
|
+
description: 'Din aktive booking af festlokalet på taget',
|
|
24815
|
+
heroImage: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24816
|
+
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
24817
|
requirements: ['Kræver nøglekort'],
|
|
24557
|
-
bookingType: '
|
|
24558
|
-
expectations: '<p>
|
|
24818
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24819
|
+
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
24820
|
restrictions: [
|
|
24560
|
-
'
|
|
24561
|
-
'
|
|
24562
|
-
'
|
|
24821
|
+
'Maksimal bookingvarighed: 3 timer',
|
|
24822
|
+
'Ingen høj musik efter kl. 22',
|
|
24823
|
+
'Efterlad lokalet rent og opryddet'
|
|
24563
24824
|
]
|
|
24564
24825
|
}
|
|
24565
24826
|
], ...(ngDevMode ? [{ debugName: "activeBookings" }] : []));
|
|
@@ -24569,102 +24830,102 @@ class MobileBookingPageComponent {
|
|
|
24569
24830
|
id: 'facility-1',
|
|
24570
24831
|
thumbnail: '/Assets/Dummy-photos/handyman.jpg',
|
|
24571
24832
|
facilityTitle: 'Boremaskinen',
|
|
24572
|
-
description: '
|
|
24833
|
+
description: 'Lån en boremaskine til mindre gør-det-selv-opgaver i boligen.',
|
|
24573
24834
|
availabilityStatus: 'available-today',
|
|
24574
24835
|
statusLabel: 'Ledig i dag',
|
|
24575
24836
|
heroImage: '/Assets/Dummy-photos/handyman.jpg',
|
|
24576
|
-
fullDescription: '<p>
|
|
24837
|
+
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
24838
|
requirements: ['Kræver nøglekort'],
|
|
24578
|
-
bookingType: '
|
|
24579
|
-
expectations: '<p>
|
|
24839
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24840
|
+
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
24841
|
restrictions: [
|
|
24581
|
-
'
|
|
24582
|
-
'
|
|
24583
|
-
'
|
|
24584
|
-
'
|
|
24842
|
+
'Maksimal bookingvarighed: 48 timer',
|
|
24843
|
+
'Skal returneres i samme stand',
|
|
24844
|
+
'Skader skal meldes med det samme',
|
|
24845
|
+
'Må ikke bruges til kommercielt arbejde'
|
|
24585
24846
|
]
|
|
24586
24847
|
},
|
|
24587
24848
|
{
|
|
24588
24849
|
id: 'facility-2',
|
|
24589
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24850
|
+
thumbnail: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24590
24851
|
facilityTitle: 'Festlokale på taget',
|
|
24591
|
-
description: 'Book
|
|
24852
|
+
description: 'Book det fælles festlokale på taget til fødselsdage, fejring og mindre arrangementer.',
|
|
24592
24853
|
availabilityStatus: 'available-today',
|
|
24593
24854
|
statusLabel: 'Ledig i dag',
|
|
24594
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24855
|
+
heroImage: '/Assets/Dummy-photos/rooftop-party.jpg',
|
|
24595
24856
|
fullDescription: `
|
|
24596
|
-
<p>
|
|
24857
|
+
<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
24858
|
|
|
24598
24859
|
<h3 class="section-headline">Hvad du kan forvente</h3>
|
|
24599
|
-
<p>
|
|
24860
|
+
<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
24861
|
|
|
24601
24862
|
<h3 class="section-headline">Restriktioner</h3>
|
|
24602
24863
|
<ul>
|
|
24603
|
-
<li>
|
|
24604
|
-
<li>
|
|
24605
|
-
<li
|
|
24606
|
-
<li>
|
|
24607
|
-
<li>
|
|
24864
|
+
<li>Rygning og vaping er ikke tilladt på terrassen.</li>
|
|
24865
|
+
<li>Høj musik og fester over rimeligt lydniveau er ikke tilladt.</li>
|
|
24866
|
+
<li>Åben ild og stearinlys er ikke tilladt af sikkerhedshensyn.</li>
|
|
24867
|
+
<li>Private grill eller eget madudstyr må ikke anvendes; brug kun fælles faciliteter.</li>
|
|
24868
|
+
<li>Kæledyr er ikke tilladt på terrassen, undtaget servicehunde.</li>
|
|
24608
24869
|
</ul>
|
|
24609
24870
|
|
|
24610
|
-
<h3 class="section-headline">
|
|
24611
|
-
<p>For
|
|
24871
|
+
<h3 class="section-headline">Sikkerhed og adfærd</h3>
|
|
24872
|
+
<p>For alles komfort og sikkerhed beder vi dig:</p>
|
|
24612
24873
|
<ul>
|
|
24613
|
-
<li>
|
|
24614
|
-
<li>
|
|
24615
|
-
<li>
|
|
24616
|
-
<li>
|
|
24617
|
-
<li>
|
|
24874
|
+
<li>Undgå overfyldning; terrassen har plads til maks. 20 personer ad gangen.</li>
|
|
24875
|
+
<li>Holde børn under opsyn til enhver tid.</li>
|
|
24876
|
+
<li>Undlade at flytte eller fjerne møbler.</li>
|
|
24877
|
+
<li>Holde nødudgange og gangarealer fri.</li>
|
|
24878
|
+
<li>Bortskaffe affald i de opsatte skraldespande.</li>
|
|
24618
24879
|
</ul>
|
|
24619
24880
|
|
|
24620
|
-
<h3 class="section-headline">Booking
|
|
24621
|
-
<p>
|
|
24881
|
+
<h3 class="section-headline">Booking og varighed</h3>
|
|
24882
|
+
<p>Terrassen skal bookes på forhånd ved private arrangementer:</p>
|
|
24622
24883
|
<ul>
|
|
24623
|
-
<li>
|
|
24624
|
-
<li>
|
|
24884
|
+
<li>Maksimal varighed: 3 timer pr. booking.</li>
|
|
24885
|
+
<li>Oprydning: Beboeren har ansvar for at efterlade terrassen ren og klar til næste booking.</li>
|
|
24625
24886
|
</ul>
|
|
24626
24887
|
`,
|
|
24627
24888
|
requirements: ['Kræver nøglekort'],
|
|
24628
|
-
bookingType: '
|
|
24889
|
+
bookingType: 'Øjeblikkelig booking',
|
|
24629
24890
|
expectations: '',
|
|
24630
24891
|
restrictions: []
|
|
24631
24892
|
},
|
|
24632
24893
|
{
|
|
24633
24894
|
id: 'facility-3',
|
|
24634
|
-
thumbnail: '/Assets/Dummy-photos/
|
|
24895
|
+
thumbnail: '/Assets/Dummy-photos/parking.jpg',
|
|
24635
24896
|
facilityTitle: 'Gæsteparkering',
|
|
24636
|
-
description: 'Book
|
|
24897
|
+
description: 'Book en gæsteparkeringsplads, så dine besøgende nemt kan parkere ved ejendommen.',
|
|
24637
24898
|
availabilityStatus: 'available-from',
|
|
24638
24899
|
statusLabel: 'Ledig fra 28. februar, 2026',
|
|
24639
|
-
heroImage: '/Assets/Dummy-photos/
|
|
24640
|
-
fullDescription: '<p>
|
|
24900
|
+
heroImage: '/Assets/Dummy-photos/parking.jpg',
|
|
24901
|
+
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
24902
|
requirements: ['Kræver nøglekort'],
|
|
24642
|
-
bookingType: '
|
|
24643
|
-
expectations: '<p>
|
|
24903
|
+
bookingType: 'Forudgående booking påkrævet',
|
|
24904
|
+
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
24905
|
restrictions: [
|
|
24645
|
-
'
|
|
24646
|
-
'
|
|
24647
|
-
'
|
|
24648
|
-
'
|
|
24906
|
+
'Forudgående booking påkrævet (minimum 24 timer)',
|
|
24907
|
+
'Maksimal bookingvarighed: 12 timer',
|
|
24908
|
+
'Gæster skal vise synlig parkeringstilladelse',
|
|
24909
|
+
'Ingen erhvervskøretøjer tilladt'
|
|
24649
24910
|
]
|
|
24650
24911
|
},
|
|
24651
24912
|
{
|
|
24652
24913
|
id: 'facility-4',
|
|
24653
24914
|
thumbnail: '/Assets/Dummy-photos/yard.jpg',
|
|
24654
24915
|
facilityTitle: 'BBQ område',
|
|
24655
|
-
description: 'Book
|
|
24916
|
+
description: 'Book grillområdet til sommerarrangementer og udendørs spisning med naboer og venner.',
|
|
24656
24917
|
availabilityStatus: 'unavailable',
|
|
24657
24918
|
statusLabel: 'Ikke tilgængelig',
|
|
24658
24919
|
heroImage: '/Assets/Dummy-photos/yard.jpg',
|
|
24659
|
-
fullDescription: '<p>
|
|
24920
|
+
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
24921
|
requirements: ['Kræver nøglekort'],
|
|
24661
|
-
bookingType: '
|
|
24662
|
-
expectations: '<p>
|
|
24922
|
+
bookingType: 'Sæsonbestemt tilgængelighed',
|
|
24923
|
+
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
24924
|
restrictions: [
|
|
24664
|
-
'
|
|
24665
|
-
'
|
|
24666
|
-
'
|
|
24667
|
-
'
|
|
24925
|
+
'Lukket i vintersæsonen',
|
|
24926
|
+
'Åbner igen i maj 2026',
|
|
24927
|
+
'Maksimal gruppestørrelse: 20 personer',
|
|
24928
|
+
'Musik skal stoppe senest kl. 22'
|
|
24668
24929
|
]
|
|
24669
24930
|
}
|
|
24670
24931
|
], ...(ngDevMode ? [{ debugName: "availableFacilities" }] : []));
|
|
@@ -24745,11 +25006,13 @@ class MobileBookingPageComponent {
|
|
|
24745
25006
|
}
|
|
24746
25007
|
});
|
|
24747
25008
|
}
|
|
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 });
|
|
25009
|
+
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
25010
|
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
25011
|
<ds-mobile-page-main
|
|
24751
25012
|
#pageComponent
|
|
24752
|
-
[title]="'
|
|
25013
|
+
[title]="'Bookinger'"
|
|
25014
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
25015
|
+
[avatarType]="userService.avatarType()"
|
|
24753
25016
|
(refresh)="handleRefresh($event)">
|
|
24754
25017
|
|
|
24755
25018
|
@if (pageComponent.isOffline()) {
|
|
@@ -24839,10 +25102,10 @@ class MobileBookingPageComponent {
|
|
|
24839
25102
|
<ds-mobile-fab
|
|
24840
25103
|
icon="remixAddLine"
|
|
24841
25104
|
position="bottom-right"
|
|
24842
|
-
ariaLabel="
|
|
25105
|
+
ariaLabel="Opret facilitet"
|
|
24843
25106
|
(clicked)="openFacilityCreationModal()">
|
|
24844
25107
|
</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"] }] });
|
|
25108
|
+
`, 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
25109
|
}
|
|
24847
25110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobileBookingPageComponent, decorators: [{
|
|
24848
25111
|
type: Component,
|
|
@@ -24857,7 +25120,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24857
25120
|
], template: `
|
|
24858
25121
|
<ds-mobile-page-main
|
|
24859
25122
|
#pageComponent
|
|
24860
|
-
[title]="'
|
|
25123
|
+
[title]="'Bookinger'"
|
|
25124
|
+
[avatarInitials]="userService.avatarInitials()"
|
|
25125
|
+
[avatarType]="userService.avatarType()"
|
|
24861
25126
|
(refresh)="handleRefresh($event)">
|
|
24862
25127
|
|
|
24863
25128
|
@if (pageComponent.isOffline()) {
|
|
@@ -24947,11 +25212,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
24947
25212
|
<ds-mobile-fab
|
|
24948
25213
|
icon="remixAddLine"
|
|
24949
25214
|
position="bottom-right"
|
|
24950
|
-
ariaLabel="
|
|
25215
|
+
ariaLabel="Opret facilitet"
|
|
24951
25216
|
(clicked)="openFacilityCreationModal()">
|
|
24952
25217
|
</ds-mobile-fab>
|
|
24953
25218
|
`, 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: [{
|
|
25219
|
+
}], ctorParameters: () => [{ type: DsMobileFacilityDetailModalService }, { type: DsMobileFacilityCreationModalService }, { type: UserService }], propDecorators: { pageComponent: [{
|
|
24955
25220
|
type: ViewChild,
|
|
24956
25221
|
args: ['pageComponent']
|
|
24957
25222
|
}], bookingsSwiper: [{
|
|
@@ -25385,7 +25650,7 @@ class MobilePostDetailPageComponent {
|
|
|
25385
25650
|
</div>
|
|
25386
25651
|
</div>
|
|
25387
25652
|
</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"] }] });
|
|
25653
|
+
`, 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
25654
|
}
|
|
25390
25655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MobilePostDetailPageComponent, decorators: [{
|
|
25391
25656
|
type: Component,
|