@propbinder/mobile-design 0.0.28 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/fonts/Brockmann-Bold.otf +0 -0
- package/assets/fonts/Brockmann-BoldItalic.otf +0 -0
- package/assets/fonts/Brockmann-Medium.otf +0 -0
- package/assets/fonts/Brockmann-MediumItalic.otf +0 -0
- package/assets/fonts/Brockmann-Regular.otf +0 -0
- package/assets/fonts/Brockmann-RegularItalic.otf +0 -0
- package/assets/fonts/Brockmann-SemiBold.otf +0 -0
- package/assets/fonts/Brockmann-SemiBoldItalic.otf +0 -0
- package/assets/fonts/Brockmann_desktop_license.pdf +0 -0
- package/assets/fonts/brockmann-medium-webfont.woff2 +0 -0
- package/assets/fonts/brockmann-regular-webfont.woff2 +0 -0
- package/assets/fonts/brockmann-semibold-webfont.woff2 +0 -0
- package/fesm2022/propbinder-mobile-design.mjs +2402 -1882
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +103 -208
- package/package.json +10 -1
- package/styles/ionic.css +711 -0
- package/styles/mobile-common.css +109 -0
- package/styles/mobile-page-base.css +282 -0
package/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { AfterViewInit, ElementRef, OnDestroy, EventEmitter, OnInit, Application
|
|
|
3
3
|
import { IonContent, NavController, ModalController, GestureController } from '@ionic/angular/standalone';
|
|
4
4
|
import { ImpactStyle } from '@capacitor/haptics';
|
|
5
5
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
6
|
-
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
7
6
|
import { Animation } from '@ionic/angular';
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -444,7 +443,7 @@ declare class DsMobilePostCardComponent {
|
|
|
444
443
|
* - 'detail' - Full detail view
|
|
445
444
|
* - 'compact' - Compact display for nested/related posts
|
|
446
445
|
*/
|
|
447
|
-
variant: _angular_core.InputSignal<"
|
|
446
|
+
variant: _angular_core.InputSignal<"compact" | "feed" | "detail">;
|
|
448
447
|
/**
|
|
449
448
|
* Whether the post card is clickable
|
|
450
449
|
*/
|
|
@@ -944,7 +943,7 @@ declare class DsMobileListItemComponent {
|
|
|
944
943
|
* - 'detail' - Full detail view
|
|
945
944
|
* - 'compact' - Compact display for nested/related items
|
|
946
945
|
*/
|
|
947
|
-
variant: _angular_core.InputSignal<"
|
|
946
|
+
variant: _angular_core.InputSignal<"compact" | "feed" | "detail">;
|
|
948
947
|
/**
|
|
949
948
|
* Whether the list item is interactive (clickable and long-pressable)
|
|
950
949
|
* When true, adds interactive background, cursor pointer, and touch handlers
|
|
@@ -1046,57 +1045,6 @@ declare class DsMobileListItemComponent {
|
|
|
1046
1045
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileListItemComponent, "ds-mobile-list-item", never, { "leadingSize": { "alias": "leadingSize"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "enableLongPress": { "alias": "enableLongPress"; "required": false; "isSignal": true; }; "showDesktopMoreButton": { "alias": "showDesktopMoreButton"; "required": false; "isSignal": true; }; "interactiveOffset": { "alias": "interactiveOffset"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "showDivider": { "alias": "showDivider"; "required": false; "isSignal": true; }; "dividerSpacing": { "alias": "dividerSpacing"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "moreButtonClick": "moreButtonClick"; }, never, ["[content-leading]", "[content-main]", "*", "[content-trailing]"], true, [{ directive: typeof DsMobileLongPressDirective; inputs: {}; outputs: { "longPress": "longPress"; }; }]>;
|
|
1047
1046
|
}
|
|
1048
1047
|
|
|
1049
|
-
/**
|
|
1050
|
-
* DsMobileListItemStaticComponent
|
|
1051
|
-
*
|
|
1052
|
-
* A read-only version of the interactive list item component.
|
|
1053
|
-
* Used for displaying static information without interaction.
|
|
1054
|
-
*
|
|
1055
|
-
* This component has the same structure as the interactive list item but without:
|
|
1056
|
-
* - Padding
|
|
1057
|
-
* - Rounded corners
|
|
1058
|
-
* - Hover states
|
|
1059
|
-
* - Click interactions
|
|
1060
|
-
* - Background fill (transparent)
|
|
1061
|
-
*
|
|
1062
|
-
* @example
|
|
1063
|
-
* ```html
|
|
1064
|
-
* <ds-mobile-list-item-static
|
|
1065
|
-
* [leadingSize]="'40px'">
|
|
1066
|
-
*
|
|
1067
|
-
* <div content-leading>
|
|
1068
|
-
* <ds-avatar initials="JD" />
|
|
1069
|
-
* </div>
|
|
1070
|
-
*
|
|
1071
|
-
* <div content-main>
|
|
1072
|
-
* <h3>Main Content</h3>
|
|
1073
|
-
* <p>Supporting text goes here...</p>
|
|
1074
|
-
* </div>
|
|
1075
|
-
*
|
|
1076
|
-
* <div content-trailing>
|
|
1077
|
-
* <span>Info</span>
|
|
1078
|
-
* </div>
|
|
1079
|
-
* </ds-mobile-list-item-static>
|
|
1080
|
-
* ```
|
|
1081
|
-
*/
|
|
1082
|
-
declare class DsMobileListItemStaticComponent {
|
|
1083
|
-
/**
|
|
1084
|
-
* CSS size value for the leading content area (e.g., '32px', '40px', '48px')
|
|
1085
|
-
* Defaults to '32px' for standard list item avatars
|
|
1086
|
-
*/
|
|
1087
|
-
leadingSize: _angular_core.InputSignal<string>;
|
|
1088
|
-
/**
|
|
1089
|
-
* Check if leading content slot has content
|
|
1090
|
-
*/
|
|
1091
|
-
hasLeadingContent: _angular_core.Signal<boolean>;
|
|
1092
|
-
/**
|
|
1093
|
-
* Check if trailing content slot has content
|
|
1094
|
-
*/
|
|
1095
|
-
hasTrailingContent: _angular_core.Signal<boolean>;
|
|
1096
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileListItemStaticComponent, never>;
|
|
1097
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileListItemStaticComponent, "ds-mobile-list-item-static", never, { "leadingSize": { "alias": "leadingSize"; "required": false; "isSignal": true; }; }, {}, never, ["[content-leading]", "[content-main]", "*", "[content-trailing]"], true, never>;
|
|
1098
|
-
}
|
|
1099
|
-
|
|
1100
1048
|
/**
|
|
1101
1049
|
* DsMobileInteractiveListItemPostComponent
|
|
1102
1050
|
*
|
|
@@ -1165,7 +1113,7 @@ declare class DsMobileInteractiveListItemPostComponent {
|
|
|
1165
1113
|
* - 'detail' - Full detail view
|
|
1166
1114
|
* - 'compact' - Compact display for nested/related posts
|
|
1167
1115
|
*/
|
|
1168
|
-
variant: _angular_core.InputSignal<"
|
|
1116
|
+
variant: _angular_core.InputSignal<"compact" | "feed" | "detail">;
|
|
1169
1117
|
/**
|
|
1170
1118
|
* Whether the post card is clickable
|
|
1171
1119
|
*/
|
|
@@ -1270,7 +1218,7 @@ declare class DsMobileInteractiveListItemInquiryComponent {
|
|
|
1270
1218
|
* - 'detail' - Full detail view
|
|
1271
1219
|
* - 'compact' - Compact display
|
|
1272
1220
|
*/
|
|
1273
|
-
variant: _angular_core.InputSignal<"
|
|
1221
|
+
variant: _angular_core.InputSignal<"compact" | "feed" | "detail">;
|
|
1274
1222
|
/**
|
|
1275
1223
|
* Whether the inquiry item is clickable
|
|
1276
1224
|
*/
|
|
@@ -1419,81 +1367,63 @@ declare class DsMobileContactListItemComponent {
|
|
|
1419
1367
|
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>;
|
|
1420
1368
|
}
|
|
1421
1369
|
|
|
1422
|
-
interface TabConfig$
|
|
1370
|
+
interface TabConfig$1 {
|
|
1423
1371
|
id: string;
|
|
1424
1372
|
label: string;
|
|
1425
1373
|
route: string;
|
|
1426
1374
|
icon: string;
|
|
1427
1375
|
iconActive: string;
|
|
1428
1376
|
}
|
|
1429
|
-
type HeaderVariant = 'home' | 'simple' | 'back' | 'none';
|
|
1430
1377
|
/**
|
|
1431
|
-
*
|
|
1378
|
+
* DsMobileTabBarComponent
|
|
1432
1379
|
*
|
|
1433
|
-
*
|
|
1434
|
-
*
|
|
1380
|
+
* Responsive navigation tab bar that adapts from mobile to desktop:
|
|
1381
|
+
* - Mobile (< 768px): Bottom tab bar with icons + labels
|
|
1382
|
+
* - Desktop (≥ 768px): Top navigation bar with logo, tabs, and avatar
|
|
1435
1383
|
*
|
|
1436
|
-
*
|
|
1437
|
-
* -
|
|
1438
|
-
* - Multiple header variants (home with logomark, simple title, back button)
|
|
1439
|
-
* - Pull-to-refresh support
|
|
1440
|
-
* - Purple brand background with content wrapper
|
|
1441
|
-
* - iOS safe area support
|
|
1384
|
+
* Use this component INSIDE your own `ion-tabs` when Angular routing
|
|
1385
|
+
* requires `ion-tabs` to be a direct child in your component.
|
|
1442
1386
|
*
|
|
1443
1387
|
* @example
|
|
1444
1388
|
* ```html
|
|
1445
|
-
*
|
|
1446
|
-
*
|
|
1447
|
-
*
|
|
1448
|
-
*
|
|
1449
|
-
*
|
|
1450
|
-
*
|
|
1389
|
+
* <!-- In your component with child routes -->
|
|
1390
|
+
* <ion-tabs>
|
|
1391
|
+
* <ds-mobile-tab-bar
|
|
1392
|
+
* [tabs]="tabs"
|
|
1393
|
+
* [avatarInitials]="'JD'"
|
|
1394
|
+
* (avatarClick)="handleAvatarClick()"
|
|
1395
|
+
* />
|
|
1396
|
+
* </ion-tabs>
|
|
1451
1397
|
* ```
|
|
1452
1398
|
*/
|
|
1453
|
-
declare class
|
|
1454
|
-
private router;
|
|
1399
|
+
declare class DsMobileTabBarComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
1455
1400
|
private elementRef;
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
showBackButton: _angular_core.InputSignal<boolean>;
|
|
1463
|
-
showPullToRefresh: _angular_core.InputSignal<boolean>;
|
|
1464
|
-
showTabBar: _angular_core.InputSignal<boolean>;
|
|
1465
|
-
tabs: _angular_core.InputSignal<TabConfig$2[]>;
|
|
1466
|
-
avatarType: _angular_core.InputSignal<"initials" | "photo" | "icon">;
|
|
1467
|
-
avatarInitials: _angular_core.InputSignal<string>;
|
|
1468
|
-
avatarSrc: _angular_core.InputSignal<string>;
|
|
1469
|
-
avatarIconName: _angular_core.InputSignal<string>;
|
|
1470
|
-
backClick: _angular_core.OutputEmitterRef<void>;
|
|
1471
|
-
refresh: _angular_core.OutputEmitterRef<any>;
|
|
1472
|
-
avatarClick: _angular_core.OutputEmitterRef<void>;
|
|
1473
|
-
scroll: _angular_core.OutputEmitterRef<any>;
|
|
1474
|
-
private scrollY;
|
|
1401
|
+
tabs: TabConfig$1[];
|
|
1402
|
+
avatarType: 'initials' | 'photo' | 'icon';
|
|
1403
|
+
avatarInitials: string;
|
|
1404
|
+
avatarSrc: string;
|
|
1405
|
+
avatarIconName: string;
|
|
1406
|
+
avatarClick: EventEmitter<void>;
|
|
1475
1407
|
activeTab: _angular_core.WritableSignal<string>;
|
|
1476
1408
|
isDesktop: _angular_core.WritableSignal<boolean>;
|
|
1477
|
-
|
|
1409
|
+
private mutationObserver?;
|
|
1410
|
+
private resizeObserver?;
|
|
1411
|
+
private mediaQuery?;
|
|
1412
|
+
constructor(elementRef: ElementRef);
|
|
1413
|
+
ngOnInit(): void;
|
|
1478
1414
|
ngAfterViewInit(): void;
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1415
|
+
ngOnDestroy(): void;
|
|
1416
|
+
private setupBreakpointDetection;
|
|
1417
|
+
private handleBreakpointChange;
|
|
1418
|
+
private setupTitleRemovalObserver;
|
|
1419
|
+
private removeTitleAttributes;
|
|
1420
|
+
trackByTabId(index: number, tab: TabConfig$1): string;
|
|
1485
1421
|
isTabActive(tabId: string): boolean;
|
|
1486
|
-
|
|
1487
|
-
static
|
|
1422
|
+
handleAvatarClick(): void;
|
|
1423
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileTabBarComponent, never>;
|
|
1424
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileTabBarComponent, "ds-mobile-tab-bar", never, { "tabs": { "alias": "tabs"; "required": false; }; "avatarType": { "alias": "avatarType"; "required": false; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; }; "avatarIconName": { "alias": "avatarIconName"; "required": false; }; }, { "avatarClick": "avatarClick"; }, never, never, true, never>;
|
|
1488
1425
|
}
|
|
1489
1426
|
|
|
1490
|
-
interface TabConfig$1 {
|
|
1491
|
-
id: string;
|
|
1492
|
-
label: string;
|
|
1493
|
-
route: string;
|
|
1494
|
-
icon: string;
|
|
1495
|
-
iconActive: string;
|
|
1496
|
-
}
|
|
1497
1427
|
/**
|
|
1498
1428
|
* DsMobileTabsComponent
|
|
1499
1429
|
*
|
|
@@ -1504,6 +1434,11 @@ interface TabConfig$1 {
|
|
|
1504
1434
|
* Wraps ion-tabs to maintain native routing functionality while
|
|
1505
1435
|
* providing a responsive navigation experience with branding.
|
|
1506
1436
|
*
|
|
1437
|
+
* NOTE: This component wraps `ion-tabs` internally. If your Angular
|
|
1438
|
+
* routing requires `ion-tabs` to be a direct child in your component
|
|
1439
|
+
* (e.g., when using `ion-router-outlet` in app.html), use the
|
|
1440
|
+
* `DsMobileTabBarComponent` directly inside your own `ion-tabs` instead.
|
|
1441
|
+
*
|
|
1507
1442
|
* @example
|
|
1508
1443
|
* ```html
|
|
1509
1444
|
* <ds-mobile-tabs
|
|
@@ -1513,44 +1448,35 @@ interface TabConfig$1 {
|
|
|
1513
1448
|
* />
|
|
1514
1449
|
* ```
|
|
1515
1450
|
*/
|
|
1516
|
-
declare class DsMobileTabsComponent implements OnInit
|
|
1517
|
-
private elementRef;
|
|
1451
|
+
declare class DsMobileTabsComponent implements OnInit {
|
|
1518
1452
|
tabs: TabConfig$1[];
|
|
1519
1453
|
avatarType: 'initials' | 'photo' | 'icon';
|
|
1520
1454
|
avatarInitials: string;
|
|
1521
1455
|
avatarSrc: string;
|
|
1522
1456
|
avatarIconName: string;
|
|
1523
1457
|
avatarClick: EventEmitter<void>;
|
|
1524
|
-
|
|
1525
|
-
isDesktop: _angular_core.WritableSignal<boolean>;
|
|
1526
|
-
private mutationObserver?;
|
|
1527
|
-
constructor(elementRef: ElementRef);
|
|
1458
|
+
constructor();
|
|
1528
1459
|
ngOnInit(): void;
|
|
1529
|
-
ngAfterViewInit(): void;
|
|
1530
|
-
ngOnDestroy(): void;
|
|
1531
|
-
private setupTitleRemovalObserver;
|
|
1532
|
-
private removeTitleAttributes;
|
|
1533
1460
|
trackByTabId(index: number, tab: TabConfig$1): string;
|
|
1534
|
-
isTabActive(tabId: string): boolean;
|
|
1535
1461
|
handleAvatarClick(): void;
|
|
1536
1462
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileTabsComponent, never>;
|
|
1537
1463
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileTabsComponent, "ds-mobile-tabs", never, { "tabs": { "alias": "tabs"; "required": false; }; "avatarType": { "alias": "avatarType"; "required": false; }; "avatarInitials": { "alias": "avatarInitials"; "required": false; }; "avatarSrc": { "alias": "avatarSrc"; "required": false; }; "avatarIconName": { "alias": "avatarIconName"; "required": false; }; }, { "avatarClick": "avatarClick"; }, never, never, true, never>;
|
|
1538
1464
|
}
|
|
1539
1465
|
|
|
1540
|
-
interface
|
|
1466
|
+
interface InlineTabItem {
|
|
1541
1467
|
id: string;
|
|
1542
1468
|
label: string;
|
|
1543
1469
|
badge?: number;
|
|
1544
1470
|
}
|
|
1545
1471
|
/**
|
|
1546
|
-
*
|
|
1472
|
+
* DsMobileInlineTabsComponent
|
|
1547
1473
|
*
|
|
1548
|
-
* Pill-style
|
|
1474
|
+
* Pill-style inline tabs for filtering/switching views
|
|
1549
1475
|
* Used in the purple header section of pages
|
|
1550
1476
|
*
|
|
1551
1477
|
* @example
|
|
1552
1478
|
* ```html
|
|
1553
|
-
* <ds-mobile-
|
|
1479
|
+
* <ds-mobile-inline-tabs
|
|
1554
1480
|
* [tabs]="[
|
|
1555
1481
|
* { id: 'all', label: 'All' },
|
|
1556
1482
|
* { id: 'open', label: 'Open' },
|
|
@@ -1558,14 +1484,14 @@ interface TabItem {
|
|
|
1558
1484
|
* ]"
|
|
1559
1485
|
* [activeTab]="'all'"
|
|
1560
1486
|
* (tabChange)="handleTabChange($event)">
|
|
1561
|
-
* </ds-mobile-
|
|
1487
|
+
* </ds-mobile-inline-tabs>
|
|
1562
1488
|
* ```
|
|
1563
1489
|
*/
|
|
1564
|
-
declare class
|
|
1490
|
+
declare class DsMobileInlineTabsComponent {
|
|
1565
1491
|
/**
|
|
1566
1492
|
* Array of tab items to display
|
|
1567
1493
|
*/
|
|
1568
|
-
tabs: _angular_core.InputSignal<
|
|
1494
|
+
tabs: _angular_core.InputSignal<InlineTabItem[]>;
|
|
1569
1495
|
/**
|
|
1570
1496
|
* Currently active tab ID
|
|
1571
1497
|
*/
|
|
@@ -1575,8 +1501,8 @@ declare class DsMobileTabBarComponent {
|
|
|
1575
1501
|
*/
|
|
1576
1502
|
tabChange: _angular_core.OutputEmitterRef<string>;
|
|
1577
1503
|
handleTabClick(tabId: string): void;
|
|
1578
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<
|
|
1579
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<
|
|
1504
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileInlineTabsComponent, never>;
|
|
1505
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileInlineTabsComponent, "ds-mobile-inline-tabs", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": true; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
|
|
1580
1506
|
}
|
|
1581
1507
|
|
|
1582
1508
|
interface ActionResult {
|
|
@@ -2761,55 +2687,6 @@ interface ContactItem {
|
|
|
2761
2687
|
contactPerson?: string;
|
|
2762
2688
|
phoneNumber?: string;
|
|
2763
2689
|
}
|
|
2764
|
-
/**
|
|
2765
|
-
* DsMobileHandbookDetailModalComponent
|
|
2766
|
-
*
|
|
2767
|
-
* Modal wrapper for displaying handbook folder details.
|
|
2768
|
-
*
|
|
2769
|
-
* Features:
|
|
2770
|
-
* - Folder content display
|
|
2771
|
-
* - Items list with descriptions
|
|
2772
|
-
* - Images and attachments
|
|
2773
|
-
* - Contact information
|
|
2774
|
-
* - Native modal controls (close, swipe down)
|
|
2775
|
-
* - Safe area support
|
|
2776
|
-
*
|
|
2777
|
-
* This component is typically not used directly - use DsMobileHandbookDetailModalService instead.
|
|
2778
|
-
*/
|
|
2779
|
-
declare class DsMobileHandbookDetailModalComponent {
|
|
2780
|
-
private modalController;
|
|
2781
|
-
handbookData: HandbookDetailData;
|
|
2782
|
-
handbook: _angular_core.WritableSignal<HandbookDetailData>;
|
|
2783
|
-
constructor(modalController: ModalController);
|
|
2784
|
-
ngOnInit(): void;
|
|
2785
|
-
/**
|
|
2786
|
-
* Split handbook items to enforce content structure rules:
|
|
2787
|
-
* - Never mix photos and documents (attachments) in the same section
|
|
2788
|
-
* - Never mix contact persons and attachments together in the same section
|
|
2789
|
-
*
|
|
2790
|
-
* This method splits items that violate these rules into multiple display items.
|
|
2791
|
-
* Each resulting item will have only compatible content types.
|
|
2792
|
-
*/
|
|
2793
|
-
splitItemsByContentRules(item: HandbookItem): HandbookItem[];
|
|
2794
|
-
/**
|
|
2795
|
-
* Get all display items with enforced content structure rules applied
|
|
2796
|
-
*/
|
|
2797
|
-
getDisplayItems(): HandbookItem[];
|
|
2798
|
-
/**
|
|
2799
|
-
* Close the modal
|
|
2800
|
-
*/
|
|
2801
|
-
close(): void;
|
|
2802
|
-
/**
|
|
2803
|
-
* Handle contact click
|
|
2804
|
-
*/
|
|
2805
|
-
handleContactClick(contact: ContactItem): void;
|
|
2806
|
-
/**
|
|
2807
|
-
* Handle attachment click
|
|
2808
|
-
*/
|
|
2809
|
-
handleAttachmentClick(attachment: AttachmentItem): void;
|
|
2810
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileHandbookDetailModalComponent, never>;
|
|
2811
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileHandbookDetailModalComponent, "ds-mobile-handbook-detail-modal", never, { "handbookData": { "alias": "handbookData"; "required": false; }; }, {}, never, never, true, never>;
|
|
2812
|
-
}
|
|
2813
2690
|
|
|
2814
2691
|
/**
|
|
2815
2692
|
* DsMobileHandbookDetailModalService
|
|
@@ -3092,8 +2969,8 @@ declare class MobileInquiriesPageComponent {
|
|
|
3092
2969
|
userService: UserService;
|
|
3093
2970
|
private navCtrl;
|
|
3094
2971
|
constructor(userService: UserService, navCtrl: NavController);
|
|
3095
|
-
filterStatus: _angular_core.WritableSignal<"
|
|
3096
|
-
tabItems:
|
|
2972
|
+
filterStatus: _angular_core.WritableSignal<"all" | "open" | "closed">;
|
|
2973
|
+
tabItems: InlineTabItem[];
|
|
3097
2974
|
inquiries: _angular_core.WritableSignal<Inquiry[]>;
|
|
3098
2975
|
filteredInquiries: _angular_core.Signal<Inquiry[]>;
|
|
3099
2976
|
openInquiries: _angular_core.Signal<Inquiry[]>;
|
|
@@ -3137,7 +3014,7 @@ declare class MobileInquiryDetailPageComponent extends MobilePageBase implements
|
|
|
3137
3014
|
isNativePlatform: _angular_core.Signal<boolean>;
|
|
3138
3015
|
inquiryTitle: string;
|
|
3139
3016
|
activeTab: _angular_core.WritableSignal<string>;
|
|
3140
|
-
tabItems:
|
|
3017
|
+
tabItems: InlineTabItem[];
|
|
3141
3018
|
activities: ActivityItem[];
|
|
3142
3019
|
messageThreads: MessageThread[];
|
|
3143
3020
|
unreadMessagesCount: _angular_core.Signal<number>;
|
|
@@ -3164,6 +3041,7 @@ declare class MobileTabsExampleComponent implements OnInit {
|
|
|
3164
3041
|
userService: UserService;
|
|
3165
3042
|
private modalController;
|
|
3166
3043
|
private router;
|
|
3044
|
+
private whitelabelDemoModal;
|
|
3167
3045
|
constructor(userService: UserService, modalController: ModalController, router: Router);
|
|
3168
3046
|
ngOnInit(): void;
|
|
3169
3047
|
tabs: TabConfig[];
|
|
@@ -3228,8 +3106,10 @@ interface WhitelabelConfig {
|
|
|
3228
3106
|
logoHeight?: number;
|
|
3229
3107
|
logoMarkWidth?: number;
|
|
3230
3108
|
logoMarkHeight?: number;
|
|
3231
|
-
|
|
3232
|
-
|
|
3109
|
+
primarySurface: string;
|
|
3110
|
+
primaryContent: string;
|
|
3111
|
+
secondarySurface: string;
|
|
3112
|
+
secondaryContent: string;
|
|
3233
3113
|
organizationName: string;
|
|
3234
3114
|
organizationId: string;
|
|
3235
3115
|
}
|
|
@@ -3258,13 +3138,16 @@ interface WhitelabelConfig {
|
|
|
3258
3138
|
*/
|
|
3259
3139
|
declare class WhitelabelService {
|
|
3260
3140
|
private _config;
|
|
3261
|
-
readonly logoUrl:
|
|
3262
|
-
readonly logoMarkUrl:
|
|
3263
|
-
readonly logoAlt:
|
|
3264
|
-
readonly
|
|
3265
|
-
readonly
|
|
3266
|
-
readonly
|
|
3267
|
-
readonly
|
|
3141
|
+
readonly logoUrl: _angular_core.Signal<string>;
|
|
3142
|
+
readonly logoMarkUrl: _angular_core.Signal<string>;
|
|
3143
|
+
readonly logoAlt: _angular_core.Signal<string>;
|
|
3144
|
+
readonly logoHeight: _angular_core.Signal<number>;
|
|
3145
|
+
readonly primarySurface: _angular_core.Signal<string>;
|
|
3146
|
+
readonly primaryContent: _angular_core.Signal<string>;
|
|
3147
|
+
readonly secondarySurface: _angular_core.Signal<string>;
|
|
3148
|
+
readonly secondaryContent: _angular_core.Signal<string>;
|
|
3149
|
+
readonly organizationName: _angular_core.Signal<string>;
|
|
3150
|
+
readonly organizationId: _angular_core.Signal<string>;
|
|
3268
3151
|
readonly config: _angular_core.Signal<WhitelabelConfig>;
|
|
3269
3152
|
constructor();
|
|
3270
3153
|
/**
|
|
@@ -3286,16 +3169,32 @@ declare class WhitelabelService {
|
|
|
3286
3169
|
/**
|
|
3287
3170
|
* Update only the brand colors
|
|
3288
3171
|
*/
|
|
3289
|
-
updateColors(
|
|
3172
|
+
updateColors(colors: {
|
|
3173
|
+
primarySurface?: string;
|
|
3174
|
+
primaryContent?: string;
|
|
3175
|
+
secondarySurface?: string;
|
|
3176
|
+
secondaryContent?: string;
|
|
3177
|
+
}): void;
|
|
3290
3178
|
/**
|
|
3291
3179
|
* Reset to default configuration
|
|
3292
3180
|
*/
|
|
3293
3181
|
resetToDefault(): void;
|
|
3294
3182
|
/**
|
|
3295
|
-
*
|
|
3183
|
+
* Convert hex color to RGB values
|
|
3184
|
+
*/
|
|
3185
|
+
private hexToRgb;
|
|
3186
|
+
/**
|
|
3187
|
+
* Apply colors to CSS custom properties and native StatusBar
|
|
3296
3188
|
* This updates the actual CSS variables used throughout the app
|
|
3189
|
+
* and the native status bar color on mobile devices
|
|
3297
3190
|
*/
|
|
3298
3191
|
private applyColors;
|
|
3192
|
+
/**
|
|
3193
|
+
* Update the native status bar color
|
|
3194
|
+
* Note: This only works on Android. On iOS, the status bar is transparent
|
|
3195
|
+
* and shows the web content behind it (controlled by CSS variables)
|
|
3196
|
+
*/
|
|
3197
|
+
private updateNativeStatusBar;
|
|
3299
3198
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelService, never>;
|
|
3300
3199
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<WhitelabelService>;
|
|
3301
3200
|
}
|
|
@@ -3303,24 +3202,20 @@ declare class WhitelabelService {
|
|
|
3303
3202
|
/**
|
|
3304
3203
|
* Whitelabel Demo Page
|
|
3305
3204
|
*
|
|
3306
|
-
* Demonstrates the whitelabeling system with
|
|
3205
|
+
* Demonstrates the whitelabeling system with theme selection, brand colors, and logo previews.
|
|
3307
3206
|
*/
|
|
3308
3207
|
declare class WhitelabelDemoPage implements OnInit {
|
|
3309
3208
|
whitelabelService: WhitelabelService;
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3209
|
+
currentTheme: string;
|
|
3210
|
+
customPrimarySurface: string;
|
|
3211
|
+
customPrimaryContent: string;
|
|
3212
|
+
customSecondarySurface: string;
|
|
3213
|
+
customSecondaryContent: string;
|
|
3314
3214
|
ngOnInit(): void;
|
|
3315
|
-
handleFullLogoUpload(event: Event): void;
|
|
3316
|
-
handleLogomarkUpload(event: Event): void;
|
|
3317
|
-
resetFullLogo(): void;
|
|
3318
|
-
resetLogomark(): void;
|
|
3319
|
-
configJson(): string;
|
|
3320
3215
|
applyDefaultTheme(): void;
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3216
|
+
applyCejTheme(): void;
|
|
3217
|
+
applyPkaTheme(): void;
|
|
3218
|
+
applyClaveTheme(): void;
|
|
3324
3219
|
applyCustomColors(): void;
|
|
3325
3220
|
private updateCustomColorInputs;
|
|
3326
3221
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WhitelabelDemoPage, never>;
|
|
@@ -3346,5 +3241,5 @@ declare const customPageTransition: (_: HTMLElement, opts: any) => Animation;
|
|
|
3346
3241
|
*/
|
|
3347
3242
|
declare const customBackTransition: (_: HTMLElement, opts: any) => Animation;
|
|
3348
3243
|
|
|
3349
|
-
export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent,
|
|
3350
|
-
export type { ActionGroup, ActionItem, ActionResult,
|
|
3244
|
+
export { ActionCommentComponent, ActionLikeComponent, ContentRowComponent, DsMobileActionsBottomSheetComponent, DsMobileBottomSheetService, DsMobileActionsBottomSheetComponent as DsMobileCommentActionsBottomSheetComponent, DsMobileCommentComponent, DsMobileContactListItemComponent, DsMobileContentComponent, DsMobileContentSectionComponent, DsMobileHandbookFolderComponent, DsMobileHandbookFolderMiniComponent, DsMobileHeaderContentComponent, DsMobileHeaderContentTileComponent, DsMobileInlinePhotoComponent, DsMobileInlineTabsComponent, DsMobileInteractiveListItemInquiryComponent, DsMobileInteractiveListItemMessageComponent, DsMobileInteractiveListItemPostComponent, DsMobileLightboxImageComponent as DsMobileLightboxComponent, DsMobileLightboxFooterComponent, DsMobileLightboxHeaderComponent, DsMobileLightboxImageComponent, DsMobileLightboxPdfComponent, DsMobileLightboxService, DsMobileListItemComponent, DsMobileLongPressDirective, DsMobileModalService, DsMobilePageDetailsComponent, DsMobilePageMainComponent, DsMobileActionsBottomSheetComponent as DsMobilePostActionsBottomSheetComponent, DsMobilePostCardComponent, DsMobilePostComposerComponent, DsMobilePostCreateBottomSheetComponent, DsMobilePostDetailModalComponent, DsMobilePostDetailModalService, DsMobileTabBarComponent, DsMobileTabsComponent, MobileCommunityPageComponent, MobileHandbookPageComponent, MobileHomePageComponent, MobileInquiriesPageComponent, MobileInquiryDetailPageComponent, MobilePageBase, MobilePostDetailPageComponent, MobileTabsExampleComponent, PostActionsComponent, PostAttachmentsComponent, PostContentComponent, PostCreatePageComponent, PostMediaComponent, PostPdfAttachmentComponent, PostTextComponent, SectionHeaderComponent, TileContentComponent, TileIconComponent, TileLabelComponent, TileValueComponent, UserService, WhitelabelDemoPage, WhitelabelService, customBackTransition, customPageTransition };
|
|
3245
|
+
export type { ActionGroup, ActionItem, ActionResult, BottomSheetOptions, ActionResult as CommentActionResult, CommentData, ContentWidth, InlineTabItem, LightboxAuthor, LightboxImage, LightboxImageOptions, LightboxMediaFile, LightboxMediaType, LightboxOptions, LightboxPdf, LightboxPdfOptions, ModalOptions, ActionResult as PostActionResult, PostDetailData, TabConfig$1 as TabConfig, WhitelabelConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propbinder/mobile-design",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.3.0 || ^21.0.0",
|
|
6
6
|
"@angular/core": "^20.3.0 || ^21.0.0"
|
|
@@ -28,6 +28,15 @@
|
|
|
28
28
|
"./styles/globals.css": {
|
|
29
29
|
"default": "./styles/globals.css"
|
|
30
30
|
},
|
|
31
|
+
"./styles/ionic.css": {
|
|
32
|
+
"default": "./styles/ionic.css"
|
|
33
|
+
},
|
|
34
|
+
"./styles/mobile-common.css": {
|
|
35
|
+
"default": "./styles/mobile-common.css"
|
|
36
|
+
},
|
|
37
|
+
"./styles/mobile-page-base.css": {
|
|
38
|
+
"default": "./styles/mobile-page-base.css"
|
|
39
|
+
},
|
|
31
40
|
"./ui/*": {
|
|
32
41
|
"default": "./ui/*"
|
|
33
42
|
},
|