@propbinder/mobile-design 0.0.1 → 0.0.21
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/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { AfterViewInit, ElementRef, OnDestroy, EventEmitter, OnInit, ApplicationRef, EnvironmentInjector, Type } from '@angular/core';
|
|
3
3
|
import { IonContent, NavController, ModalController, GestureController } from '@ionic/angular/standalone';
|
|
4
4
|
import { ImpactStyle } from '@capacitor/haptics';
|
|
5
|
-
import { Router } from '@angular/router';
|
|
5
|
+
import { Router, ActivatedRoute } from '@angular/router';
|
|
6
6
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
7
|
+
import { Animation } from '@ionic/angular';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Content width preset values
|
|
@@ -1367,7 +1368,7 @@ declare class DsMobileContactListItemComponent {
|
|
|
1367
1368
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileContactListItemComponent, "ds-mobile-contact-list-item", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "initials": { "alias": "initials"; "required": true; "isSignal": true; }; "contactPerson": { "alias": "contactPerson"; "required": false; "isSignal": true; }; "phoneNumber": { "alias": "phoneNumber"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "showChevron": { "alias": "showChevron"; "required": false; "isSignal": true; }; }, { "contactClick": "contactClick"; }, never, never, true, never>;
|
|
1368
1369
|
}
|
|
1369
1370
|
|
|
1370
|
-
interface TabConfig$
|
|
1371
|
+
interface TabConfig$2 {
|
|
1371
1372
|
id: string;
|
|
1372
1373
|
label: string;
|
|
1373
1374
|
route: string;
|
|
@@ -1410,7 +1411,7 @@ declare class DsMobileAppLayoutComponent implements AfterViewInit {
|
|
|
1410
1411
|
showBackButton: _angular_core.InputSignal<boolean>;
|
|
1411
1412
|
showPullToRefresh: _angular_core.InputSignal<boolean>;
|
|
1412
1413
|
showTabBar: _angular_core.InputSignal<boolean>;
|
|
1413
|
-
tabs: _angular_core.InputSignal<TabConfig$
|
|
1414
|
+
tabs: _angular_core.InputSignal<TabConfig$2[]>;
|
|
1414
1415
|
avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
|
|
1415
1416
|
avatarInitials: _angular_core.InputSignal<string>;
|
|
1416
1417
|
avatarSrc: _angular_core.InputSignal<string>;
|
|
@@ -1435,7 +1436,7 @@ declare class DsMobileAppLayoutComponent implements AfterViewInit {
|
|
|
1435
1436
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileAppLayoutComponent, "ds-mobile-app-layout", never, { "headerVariant": { "alias": "headerVariant"; "required": false; "isSignal": true; }; "pageTitle": { "alias": "pageTitle"; "required": false; "isSignal": true; }; "showBackButton": { "alias": "showBackButton"; "required": false; "isSignal": true; }; "showPullToRefresh": { "alias": "showPullToRefresh"; "required": false; "isSignal": true; }; "showTabBar": { "alias": "showTabBar"; "required": false; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "avatarType": { "alias": "avatarType"; "required": false; "isSignal": true; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; "isSignal": true; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; "isSignal": true; }; "avatarIconName": { "alias": "avatarIconName"; "required": false; "isSignal": true; }; }, { "backClick": "backClick"; "refresh": "refresh"; "avatarClick": "avatarClick"; "scroll": "scroll"; }, never, ["*"], true, never>;
|
|
1436
1437
|
}
|
|
1437
1438
|
|
|
1438
|
-
interface TabConfig {
|
|
1439
|
+
interface TabConfig$1 {
|
|
1439
1440
|
id: string;
|
|
1440
1441
|
label: string;
|
|
1441
1442
|
route: string;
|
|
@@ -1463,7 +1464,7 @@ interface TabConfig {
|
|
|
1463
1464
|
*/
|
|
1464
1465
|
declare class DsMobileTabsComponent implements OnInit, AfterViewInit {
|
|
1465
1466
|
private elementRef;
|
|
1466
|
-
tabs: TabConfig[];
|
|
1467
|
+
tabs: TabConfig$1[];
|
|
1467
1468
|
avatarType: 'initials' | 'photo' | 'icon';
|
|
1468
1469
|
avatarInitials: string;
|
|
1469
1470
|
avatarSrc: string;
|
|
@@ -1478,7 +1479,7 @@ declare class DsMobileTabsComponent implements OnInit, AfterViewInit {
|
|
|
1478
1479
|
ngOnDestroy(): void;
|
|
1479
1480
|
private setupTitleRemovalObserver;
|
|
1480
1481
|
private removeTitleAttributes;
|
|
1481
|
-
trackByTabId(index: number, tab: TabConfig): string;
|
|
1482
|
+
trackByTabId(index: number, tab: TabConfig$1): string;
|
|
1482
1483
|
isTabActive(tabId: string): boolean;
|
|
1483
1484
|
handleAvatarClick(): void;
|
|
1484
1485
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileTabsComponent, never>;
|
|
@@ -2856,5 +2857,358 @@ declare class DsMobileHandbookFolderMiniComponent {
|
|
|
2856
2857
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileHandbookFolderMiniComponent, "ds-mobile-handbook-folder-mini", never, { "variant": { "alias": "variant"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; }, {}, never, never, true, never>;
|
|
2857
2858
|
}
|
|
2858
2859
|
|
|
2859
|
-
|
|
2860
|
-
|
|
2860
|
+
/**
|
|
2861
|
+
* User service for managing current user data globally
|
|
2862
|
+
*/
|
|
2863
|
+
declare class UserService {
|
|
2864
|
+
private _avatarInitials;
|
|
2865
|
+
private _avatarType;
|
|
2866
|
+
private _avatarSrc;
|
|
2867
|
+
readonly avatarInitials: _angular_core.Signal<string>;
|
|
2868
|
+
readonly avatarType: _angular_core.Signal<"initials" | "photo" | "icon">;
|
|
2869
|
+
readonly avatarSrc: _angular_core.Signal<string>;
|
|
2870
|
+
/**
|
|
2871
|
+
* Update avatar configuration
|
|
2872
|
+
*/
|
|
2873
|
+
setAvatarInitials(initials: string): void;
|
|
2874
|
+
setAvatarType(type: 'initials' | 'photo' | 'icon'): void;
|
|
2875
|
+
setAvatarSrc(src: string): void;
|
|
2876
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserService, never>;
|
|
2877
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<UserService>;
|
|
2878
|
+
}
|
|
2879
|
+
|
|
2880
|
+
declare class MobileCommunityPageComponent {
|
|
2881
|
+
private router;
|
|
2882
|
+
private route;
|
|
2883
|
+
private bottomSheet;
|
|
2884
|
+
private lightbox;
|
|
2885
|
+
private postModal;
|
|
2886
|
+
userService: UserService;
|
|
2887
|
+
userPosts: _angular_core.WritableSignal<any[]>;
|
|
2888
|
+
showStaticPosts: _angular_core.WritableSignal<boolean>;
|
|
2889
|
+
hasAnyPosts: _angular_core.Signal<boolean>;
|
|
2890
|
+
constructor(router: Router, route: ActivatedRoute, bottomSheet: DsMobileBottomSheetService, lightbox: DsMobileLightboxService, postModal: DsMobilePostDetailModalService, userService: UserService);
|
|
2891
|
+
handleRefresh(event: any): void;
|
|
2892
|
+
/**
|
|
2893
|
+
* Open post detail modal
|
|
2894
|
+
* This provides a better UX than route navigation:
|
|
2895
|
+
* - Maintains scroll position
|
|
2896
|
+
* - Native iOS-style modal feel
|
|
2897
|
+
* - Proper close button that works
|
|
2898
|
+
*/
|
|
2899
|
+
openPost(postId: string, focusComment?: boolean): Promise<void>;
|
|
2900
|
+
/**
|
|
2901
|
+
* Open user-created post detail modal
|
|
2902
|
+
*/
|
|
2903
|
+
openUserPost(index: number, focusComment?: boolean): Promise<void>;
|
|
2904
|
+
openPostCreator(): Promise<void>;
|
|
2905
|
+
/**
|
|
2906
|
+
* Open an image in the lightbox viewer
|
|
2907
|
+
* Prevents the post click event from firing
|
|
2908
|
+
*/
|
|
2909
|
+
openImageLightbox(imageSrc: string, title: string, description: string, event: Event): Promise<void>;
|
|
2910
|
+
openHouseRulesPdf(): Promise<void>;
|
|
2911
|
+
/**
|
|
2912
|
+
* Handle long press on a post to show action sheet
|
|
2913
|
+
*/
|
|
2914
|
+
handlePostLongPress(postIdOrIndex: string | number, isOwnPost: boolean): Promise<void>;
|
|
2915
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileCommunityPageComponent, never>;
|
|
2916
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileCommunityPageComponent, "app-mobile-community-page", never, {}, {}, never, never, true, never>;
|
|
2917
|
+
}
|
|
2918
|
+
|
|
2919
|
+
declare class MobileHandbookPageComponent {
|
|
2920
|
+
userService: UserService;
|
|
2921
|
+
utilitiesItems: HandbookItem[];
|
|
2922
|
+
sikkerhedsudstyrItems: HandbookItem[];
|
|
2923
|
+
serviceContractsItems: HandbookItem[];
|
|
2924
|
+
equipmentItems: HandbookItem[];
|
|
2925
|
+
constructor(userService: UserService);
|
|
2926
|
+
handleRefresh(event: any): void;
|
|
2927
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileHandbookPageComponent, never>;
|
|
2928
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileHandbookPageComponent, "app-mobile-handbook-page", never, {}, {}, never, never, true, never>;
|
|
2929
|
+
}
|
|
2930
|
+
|
|
2931
|
+
declare class MobileHomePageComponent {
|
|
2932
|
+
private navCtrl;
|
|
2933
|
+
userService: UserService;
|
|
2934
|
+
constructor(navCtrl: NavController, userService: UserService);
|
|
2935
|
+
handleRefresh(event: any): void;
|
|
2936
|
+
navigateToDetail(): void;
|
|
2937
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileHomePageComponent, never>;
|
|
2938
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileHomePageComponent, "app-home-page", never, {}, {}, never, never, true, never>;
|
|
2939
|
+
}
|
|
2940
|
+
|
|
2941
|
+
interface TabItem {
|
|
2942
|
+
id: string;
|
|
2943
|
+
label: string;
|
|
2944
|
+
badge?: number;
|
|
2945
|
+
}
|
|
2946
|
+
|
|
2947
|
+
interface Inquiry {
|
|
2948
|
+
id: string;
|
|
2949
|
+
title: string;
|
|
2950
|
+
description: string;
|
|
2951
|
+
status: 'open' | 'closed';
|
|
2952
|
+
timestamp: string;
|
|
2953
|
+
category: 'maintenance' | 'plumbing' | 'electrical' | 'heating' | 'security' | 'appliance' | 'other';
|
|
2954
|
+
}
|
|
2955
|
+
declare class MobileInquiriesPageComponent {
|
|
2956
|
+
userService: UserService;
|
|
2957
|
+
private navCtrl;
|
|
2958
|
+
constructor(userService: UserService, navCtrl: NavController);
|
|
2959
|
+
filterStatus: _angular_core.WritableSignal<"open" | "closed" | "all">;
|
|
2960
|
+
tabItems: TabItem[];
|
|
2961
|
+
inquiries: _angular_core.WritableSignal<Inquiry[]>;
|
|
2962
|
+
filteredInquiries: _angular_core.Signal<Inquiry[]>;
|
|
2963
|
+
openInquiries: _angular_core.Signal<Inquiry[]>;
|
|
2964
|
+
closedInquiries: _angular_core.Signal<Inquiry[]>;
|
|
2965
|
+
setFilter(status: 'all' | 'open' | 'closed'): void;
|
|
2966
|
+
getInquiryIcon(category: string): string;
|
|
2967
|
+
openInquiryDetail(inquiryId: string): void;
|
|
2968
|
+
showInquiryActions(inquiryId: string): void;
|
|
2969
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileInquiriesPageComponent, never>;
|
|
2970
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileInquiriesPageComponent, "app-mobile-inquiries-page", never, {}, {}, never, never, true, never>;
|
|
2971
|
+
}
|
|
2972
|
+
|
|
2973
|
+
interface ActivityItem {
|
|
2974
|
+
id: string;
|
|
2975
|
+
type: 'assignment' | 'status_change' | 'creation';
|
|
2976
|
+
actor?: string;
|
|
2977
|
+
actorInitials?: string;
|
|
2978
|
+
title: string;
|
|
2979
|
+
description?: string;
|
|
2980
|
+
timestamp: string;
|
|
2981
|
+
date: string;
|
|
2982
|
+
iconName: string;
|
|
2983
|
+
iconBgColor?: string;
|
|
2984
|
+
}
|
|
2985
|
+
interface MessageThread {
|
|
2986
|
+
id: string;
|
|
2987
|
+
senderName: string;
|
|
2988
|
+
senderAvatar: string;
|
|
2989
|
+
senderInitials: string;
|
|
2990
|
+
message: string;
|
|
2991
|
+
role: string;
|
|
2992
|
+
timestamp: string;
|
|
2993
|
+
unread: boolean;
|
|
2994
|
+
}
|
|
2995
|
+
declare class MobileInquiryDetailPageComponent extends MobilePageBase implements AfterViewInit {
|
|
2996
|
+
userService: UserService;
|
|
2997
|
+
private navCtrl;
|
|
2998
|
+
private elementRef;
|
|
2999
|
+
ionContent?: IonContent;
|
|
3000
|
+
private platform;
|
|
3001
|
+
isNativePlatform: _angular_core.Signal<boolean>;
|
|
3002
|
+
inquiryTitle: string;
|
|
3003
|
+
activeTab: _angular_core.WritableSignal<string>;
|
|
3004
|
+
tabItems: TabItem[];
|
|
3005
|
+
activities: ActivityItem[];
|
|
3006
|
+
messageThreads: MessageThread[];
|
|
3007
|
+
unreadMessagesCount: _angular_core.Signal<number>;
|
|
3008
|
+
constructor(userService: UserService, navCtrl: NavController, elementRef: ElementRef);
|
|
3009
|
+
ngAfterViewInit(): void;
|
|
3010
|
+
setActiveTab(tabId: string): void;
|
|
3011
|
+
goBack(): void;
|
|
3012
|
+
handleScroll(event: any): void;
|
|
3013
|
+
handleRefresh(event: any): void;
|
|
3014
|
+
openMessage(messageId: string): void;
|
|
3015
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileInquiryDetailPageComponent, never>;
|
|
3016
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileInquiryDetailPageComponent, "app-mobile-inquiry-detail-page", never, {}, {}, never, never, true, never>;
|
|
3017
|
+
}
|
|
3018
|
+
|
|
3019
|
+
interface TabConfig {
|
|
3020
|
+
id: string;
|
|
3021
|
+
label: string;
|
|
3022
|
+
route: string;
|
|
3023
|
+
icon: string;
|
|
3024
|
+
iconActive: string;
|
|
3025
|
+
}
|
|
3026
|
+
|
|
3027
|
+
declare class MobileTabsExampleComponent implements OnInit {
|
|
3028
|
+
userService: UserService;
|
|
3029
|
+
private modalController;
|
|
3030
|
+
private router;
|
|
3031
|
+
constructor(userService: UserService, modalController: ModalController, router: Router);
|
|
3032
|
+
ngOnInit(): void;
|
|
3033
|
+
tabs: TabConfig[];
|
|
3034
|
+
handleAvatarClick(): Promise<void>;
|
|
3035
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileTabsExampleComponent, never>;
|
|
3036
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobileTabsExampleComponent, "app-mobile-tabs-example", never, {}, {}, never, never, true, never>;
|
|
3037
|
+
}
|
|
3038
|
+
|
|
3039
|
+
/**
|
|
3040
|
+
* PostCreatePageComponent
|
|
3041
|
+
*
|
|
3042
|
+
* Full-screen detail page for creating new posts in the community feed.
|
|
3043
|
+
* Features Threads-inspired interface with rich text editing capabilities.
|
|
3044
|
+
*/
|
|
3045
|
+
declare class PostCreatePageComponent implements AfterViewInit, OnInit {
|
|
3046
|
+
private router;
|
|
3047
|
+
private route;
|
|
3048
|
+
userService: UserService;
|
|
3049
|
+
textareaInput?: ElementRef<HTMLTextAreaElement>;
|
|
3050
|
+
postContent: string;
|
|
3051
|
+
username: _angular_core.WritableSignal<string>;
|
|
3052
|
+
placeholder: _angular_core.WritableSignal<string>;
|
|
3053
|
+
isEditMode: _angular_core.WritableSignal<boolean>;
|
|
3054
|
+
postId: _angular_core.WritableSignal<string | null>;
|
|
3055
|
+
pageTitle: _angular_core.WritableSignal<string>;
|
|
3056
|
+
submitButtonLabel: _angular_core.WritableSignal<string>;
|
|
3057
|
+
constructor(router: Router, route: ActivatedRoute, userService: UserService);
|
|
3058
|
+
ngOnInit(): void;
|
|
3059
|
+
ngAfterViewInit(): void;
|
|
3060
|
+
handleInput(): void;
|
|
3061
|
+
canPost(): boolean;
|
|
3062
|
+
handleCancel(): void;
|
|
3063
|
+
handlePost(): void;
|
|
3064
|
+
handleAddImage(): void;
|
|
3065
|
+
handleAddEmoji(): void;
|
|
3066
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PostCreatePageComponent, never>;
|
|
3067
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PostCreatePageComponent, "app-post-create-page", never, {}, {}, never, never, true, never>;
|
|
3068
|
+
}
|
|
3069
|
+
|
|
3070
|
+
declare class MobilePostDetailPageComponent {
|
|
3071
|
+
private lightbox;
|
|
3072
|
+
private bottomSheet;
|
|
3073
|
+
repliesCount: number;
|
|
3074
|
+
constructor(lightbox: DsMobileLightboxService, bottomSheet: DsMobileBottomSheetService);
|
|
3075
|
+
/**
|
|
3076
|
+
* Open an image in the lightbox viewer
|
|
3077
|
+
*/
|
|
3078
|
+
openImageLightbox(imageSrc: string, title: string, description: string): void;
|
|
3079
|
+
/**
|
|
3080
|
+
* Handle long press on a comment to show action sheet
|
|
3081
|
+
*/
|
|
3082
|
+
handleCommentLongPress(authorName: string, content: string, isOwnComment: boolean): Promise<void>;
|
|
3083
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobilePostDetailPageComponent, never>;
|
|
3084
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MobilePostDetailPageComponent, "app-mobile-post-detail-page", never, {}, {}, never, never, true, never>;
|
|
3085
|
+
}
|
|
3086
|
+
|
|
3087
|
+
interface WhitelabelConfig {
|
|
3088
|
+
logoUrl: string;
|
|
3089
|
+
logoMarkUrl: string;
|
|
3090
|
+
logoAlt: string;
|
|
3091
|
+
logoWidth?: number;
|
|
3092
|
+
logoHeight?: number;
|
|
3093
|
+
logoMarkWidth?: number;
|
|
3094
|
+
logoMarkHeight?: number;
|
|
3095
|
+
primaryColor: string;
|
|
3096
|
+
secondaryColor: string;
|
|
3097
|
+
organizationName: string;
|
|
3098
|
+
organizationId: string;
|
|
3099
|
+
}
|
|
3100
|
+
/**
|
|
3101
|
+
* WhitelabelService
|
|
3102
|
+
*
|
|
3103
|
+
* Manages whitelabel configuration including logos and brand colors.
|
|
3104
|
+
* Automatically updates CSS custom properties when colors change.
|
|
3105
|
+
*
|
|
3106
|
+
* @example
|
|
3107
|
+
* Initialize with custom config:
|
|
3108
|
+
* ```typescript
|
|
3109
|
+
* whitelabelService.initialize({
|
|
3110
|
+
* logoUrl: '/assets/logos/acme-logo.svg',
|
|
3111
|
+
* logoMarkUrl: '/assets/logos/acme-mark.svg',
|
|
3112
|
+
* primaryColor: '#2563eb',
|
|
3113
|
+
* secondaryColor: '#3b82f6',
|
|
3114
|
+
* organizationName: 'Acme Corp'
|
|
3115
|
+
* });
|
|
3116
|
+
* ```
|
|
3117
|
+
*
|
|
3118
|
+
* Load from API:
|
|
3119
|
+
* ```typescript
|
|
3120
|
+
* await whitelabelService.loadFromApi('acme-corp');
|
|
3121
|
+
* ```
|
|
3122
|
+
*/
|
|
3123
|
+
declare class WhitelabelService {
|
|
3124
|
+
private _config;
|
|
3125
|
+
readonly logoUrl: () => string;
|
|
3126
|
+
readonly logoMarkUrl: () => string;
|
|
3127
|
+
readonly logoAlt: () => string;
|
|
3128
|
+
readonly primaryColor: () => string;
|
|
3129
|
+
readonly secondaryColor: () => string;
|
|
3130
|
+
readonly organizationName: () => string;
|
|
3131
|
+
readonly organizationId: () => string;
|
|
3132
|
+
readonly config: _angular_core.Signal<WhitelabelConfig>;
|
|
3133
|
+
constructor();
|
|
3134
|
+
/**
|
|
3135
|
+
* Initialize whitelabel configuration
|
|
3136
|
+
* Call this early in app initialization (app.config.ts or app.component.ts)
|
|
3137
|
+
*/
|
|
3138
|
+
initialize(config: Partial<WhitelabelConfig>): void;
|
|
3139
|
+
/**
|
|
3140
|
+
* Load whitelabel config from API
|
|
3141
|
+
* Typically called on app startup based on subdomain, user tenant, etc.
|
|
3142
|
+
*
|
|
3143
|
+
* @param organizationId - The organization identifier (subdomain, tenant ID, etc.)
|
|
3144
|
+
*/
|
|
3145
|
+
loadFromApi(organizationId?: string): Promise<void>;
|
|
3146
|
+
/**
|
|
3147
|
+
* Update config dynamically (e.g., when user switches organizations)
|
|
3148
|
+
*/
|
|
3149
|
+
updateConfig(updates: Partial<WhitelabelConfig>): void;
|
|
3150
|
+
/**
|
|
3151
|
+
* Update only the brand colors
|
|
3152
|
+
*/
|
|
3153
|
+
updateColors(primaryColor: string, secondaryColor: string): void;
|
|
3154
|
+
/**
|
|
3155
|
+
* Reset to default configuration
|
|
3156
|
+
*/
|
|
3157
|
+
resetToDefault(): void;
|
|
3158
|
+
/**
|
|
3159
|
+
* Apply colors to CSS custom properties
|
|
3160
|
+
* This updates the actual CSS variables used throughout the app
|
|
3161
|
+
*/
|
|
3162
|
+
private applyColors;
|
|
3163
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelService, never>;
|
|
3164
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<WhitelabelService>;
|
|
3165
|
+
}
|
|
3166
|
+
|
|
3167
|
+
/**
|
|
3168
|
+
* Whitelabel Demo Page
|
|
3169
|
+
*
|
|
3170
|
+
* Demonstrates the whitelabeling system with live color and logo switching.
|
|
3171
|
+
*/
|
|
3172
|
+
declare class WhitelabelDemoPage implements OnInit {
|
|
3173
|
+
whitelabelService: WhitelabelService;
|
|
3174
|
+
customPrimaryColor: string;
|
|
3175
|
+
customSecondaryColor: string;
|
|
3176
|
+
uploadedFullLogoName: string;
|
|
3177
|
+
uploadedLogomarkName: string;
|
|
3178
|
+
ngOnInit(): void;
|
|
3179
|
+
handleFullLogoUpload(event: Event): void;
|
|
3180
|
+
handleLogomarkUpload(event: Event): void;
|
|
3181
|
+
resetFullLogo(): void;
|
|
3182
|
+
resetLogomark(): void;
|
|
3183
|
+
configJson(): string;
|
|
3184
|
+
applyDefaultTheme(): void;
|
|
3185
|
+
applyBlueTheme(): void;
|
|
3186
|
+
applyGreenTheme(): void;
|
|
3187
|
+
applyOrangeTheme(): void;
|
|
3188
|
+
applyCustomColors(): void;
|
|
3189
|
+
private updateCustomColorInputs;
|
|
3190
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelDemoPage, never>;
|
|
3191
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WhitelabelDemoPage, "app-whitelabel-demo", never, {}, {}, never, never, true, never>;
|
|
3192
|
+
}
|
|
3193
|
+
|
|
3194
|
+
/**
|
|
3195
|
+
* Custom page transition - iOS-style push/pop
|
|
3196
|
+
*
|
|
3197
|
+
* FORWARD (navigating TO detail):
|
|
3198
|
+
* - Entering page (detail): slides in from RIGHT, z-index 10 (on top)
|
|
3199
|
+
* - Leaving page (list): slides LEFT slightly, z-index 9 (underneath)
|
|
3200
|
+
*
|
|
3201
|
+
* REVERSE (swipe back FROM detail):
|
|
3202
|
+
* - Entering page (list): slides in from LEFT, z-index 9 (underneath)
|
|
3203
|
+
* - Leaving page (detail): slides out to RIGHT, z-index 10 (on top)
|
|
3204
|
+
*/
|
|
3205
|
+
declare const customPageTransition: (_: HTMLElement, opts: any) => Animation;
|
|
3206
|
+
/**
|
|
3207
|
+
* Custom back transition - iOS style where page slides out to reveal page underneath
|
|
3208
|
+
* The entering page (inquiries) slides in from the LEFT underneath
|
|
3209
|
+
* The leaving page (detail) slides out to the RIGHT on top
|
|
3210
|
+
*/
|
|
3211
|
+
declare const customBackTransition: (_: HTMLElement, opts: any) => Animation;
|
|
3212
|
+
|
|
3213
|
+
export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent, DsMobileAppLayoutComponent, DsMobileBottomSheetService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileLongPressDirective, DsMobileModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostCardComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileTabsComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, customBackTransition, customPageTransition };
|
|
3214
|
+
export type { ActionGroup, ActionItem, ActionResult, BottomSheetOptions, ActionResult as CommentActionResult, CommentData, ContentWidth, HeaderVariant, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, ModalOptions, ActionResult as PostActionResult, PostDetailData, TabConfig$1 as TabConfig };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propbinder/mobile-design",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.21",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^20.3.0",
|
|
6
|
-
"@angular/core": "^20.3.0"
|
|
5
|
+
"@angular/common": "^20.3.0 || ^21.0.0",
|
|
6
|
+
"@angular/core": "^20.3.0 || ^21.0.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|