@propbinder/mobile-design 0.2.22 → 0.2.24
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 +121 -180
- package/fesm2022/propbinder-mobile-design.mjs.map +1 -1
- package/index.d.ts +20 -22
- package/package.json +1 -1
- package/styles/ionic.css +18 -0
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { OnDestroy, AfterViewInit, OnInit, ElementRef, Injector, TemplateRef, EventEmitter, ApplicationRef, EnvironmentInjector, Type, AfterContentInit, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { OnDestroy, AfterViewInit, OnInit, ElementRef, OnChanges, Injector, SimpleChanges, TemplateRef, EventEmitter, ApplicationRef, EnvironmentInjector, Type, AfterContentInit, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import { ModalController, IonContent, NavController, GestureController, ModalOptions as ModalOptions$1 } from '@ionic/angular/standalone';
|
|
4
4
|
import { Style } from '@capacitor/status-bar';
|
|
5
5
|
import { ImpactStyle } from '@capacitor/haptics';
|
|
@@ -422,7 +422,7 @@ interface Language {
|
|
|
422
422
|
* }
|
|
423
423
|
* ```
|
|
424
424
|
*/
|
|
425
|
-
declare class DsMobileProfileActionsSheetComponent {
|
|
425
|
+
declare class DsMobileProfileActionsSheetComponent implements OnInit, OnChanges {
|
|
426
426
|
private modalController;
|
|
427
427
|
private injector;
|
|
428
428
|
/**
|
|
@@ -470,6 +470,8 @@ declare class DsMobileProfileActionsSheetComponent {
|
|
|
470
470
|
*/
|
|
471
471
|
isAnimating: _angular_core.WritableSignal<boolean>;
|
|
472
472
|
constructor(modalController: ModalController, injector: Injector);
|
|
473
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
474
|
+
ngOnInit(): void;
|
|
473
475
|
/**
|
|
474
476
|
* Handle action item click
|
|
475
477
|
*/
|
|
@@ -4144,21 +4146,14 @@ declare abstract class MobileModalBase implements OnInit, OnDestroy {
|
|
|
4144
4146
|
* - Any custom CSS padding value
|
|
4145
4147
|
*
|
|
4146
4148
|
* @default '0'
|
|
4147
|
-
*
|
|
4148
|
-
* @example
|
|
4149
|
-
* ```html
|
|
4150
|
-
* <!-- Default: sections handle padding -->
|
|
4151
|
-
* <ds-mobile-modal-base headerTitle="Details">
|
|
4152
|
-
* <ds-mobile-section headline="Info">...</ds-mobile-section>
|
|
4153
|
-
* </ds-mobile-modal-base>
|
|
4154
|
-
*
|
|
4155
|
-
* <!-- Legacy: content without sections -->
|
|
4156
|
-
* <ds-mobile-modal-base headerTitle="Details" contentPadding="20px">
|
|
4157
|
-
* <div>Padded content</div>
|
|
4158
|
-
* </ds-mobile-modal-base>
|
|
4159
|
-
* ```
|
|
4160
4149
|
*/
|
|
4161
4150
|
contentPadding: _angular_core.InputSignal<string>;
|
|
4151
|
+
/**
|
|
4152
|
+
* Enable auto-height behavior for bottom sheets
|
|
4153
|
+
* When true, sets [fullscreen]="false" on ion-content and enforces flex: 0 0 auto
|
|
4154
|
+
* @default false
|
|
4155
|
+
*/
|
|
4156
|
+
isAutoHeight: _angular_core.InputSignal<boolean>;
|
|
4162
4157
|
/**
|
|
4163
4158
|
* Emitted when modal is closed
|
|
4164
4159
|
*/
|
|
@@ -4200,7 +4195,7 @@ declare abstract class MobileModalBase implements OnInit, OnDestroy {
|
|
|
4200
4195
|
*/
|
|
4201
4196
|
protected cleanupKeyboardListeners(): void;
|
|
4202
4197
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MobileModalBase, never>;
|
|
4203
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MobileModalBase, never, never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "headerMeta": { "alias": "headerMeta"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "enableKeyboardHandling": { "alias": "enableKeyboardHandling"; "required": false; "isSignal": true; }; "hasFixedBottom": { "alias": "hasFixedBottom"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "keyboardWillShow": "keyboardWillShow"; "keyboardWillHide": "keyboardWillHide"; }, never, never, true, never>;
|
|
4198
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MobileModalBase, never, never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "headerMeta": { "alias": "headerMeta"; "required": false; "isSignal": true; }; "closeButtonLabel": { "alias": "closeButtonLabel"; "required": false; "isSignal": true; }; "enableKeyboardHandling": { "alias": "enableKeyboardHandling"; "required": false; "isSignal": true; }; "hasFixedBottom": { "alias": "hasFixedBottom"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; "isAutoHeight": { "alias": "isAutoHeight"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "keyboardWillShow": "keyboardWillShow"; "keyboardWillHide": "keyboardWillHide"; }, never, never, true, never>;
|
|
4204
4199
|
}
|
|
4205
4200
|
|
|
4206
4201
|
/**
|
|
@@ -5360,6 +5355,7 @@ interface NewInquiryData {
|
|
|
5360
5355
|
* ```
|
|
5361
5356
|
*/
|
|
5362
5357
|
declare class DsMobileNewInquiryModalComponent implements OnInit, AfterViewInit {
|
|
5358
|
+
private modalController;
|
|
5363
5359
|
titleInputRef?: ElementRef<HTMLElement>;
|
|
5364
5360
|
titleInput?: DsTextareaComponent;
|
|
5365
5361
|
fileInput?: ElementRef<HTMLInputElement>;
|
|
@@ -5468,16 +5464,18 @@ interface NewInquiryModalOptions {
|
|
|
5468
5464
|
*
|
|
5469
5465
|
* @example
|
|
5470
5466
|
* ```typescript
|
|
5471
|
-
* constructor(private
|
|
5467
|
+
* constructor(private newInquiryModal: DsMobileNewInquiryModalService) {}
|
|
5468
|
+
*
|
|
5469
|
+
* async createNewInquiry(): Promise<void> {
|
|
5470
|
+
* console.log('[InquiriesPage] FAB clicked, opening modal...');
|
|
5472
5471
|
*
|
|
5473
|
-
*
|
|
5474
|
-
* await this.inquiryModal.open({
|
|
5472
|
+
* await this.newInquiryModal.open({
|
|
5475
5473
|
* onSubmit: async (data) => {
|
|
5476
5474
|
* console.log('Creating inquiry:', data);
|
|
5477
5475
|
* // Call your API to create the inquiry
|
|
5478
5476
|
* await this.apiService.createInquiry(data);
|
|
5479
5477
|
* // Close the modal
|
|
5480
|
-
* await this.
|
|
5478
|
+
* await this.newInquiryModal.close();
|
|
5481
5479
|
* }
|
|
5482
5480
|
* });
|
|
5483
5481
|
* }
|
|
@@ -5996,7 +5994,7 @@ declare class DsMobileFabComponent implements AfterViewInit, OnDestroy {
|
|
|
5996
5994
|
/**
|
|
5997
5995
|
* Emitted when the FAB is clicked
|
|
5998
5996
|
*/
|
|
5999
|
-
|
|
5997
|
+
clicked: _angular_core.OutputEmitterRef<void>;
|
|
6000
5998
|
ngAfterViewInit(): void;
|
|
6001
5999
|
/**
|
|
6002
6000
|
* Calculate the FAB position dynamically based on actual tab bar height
|
|
@@ -6013,7 +6011,7 @@ declare class DsMobileFabComponent implements AfterViewInit, OnDestroy {
|
|
|
6013
6011
|
handleClick(): void;
|
|
6014
6012
|
ngOnDestroy(): void;
|
|
6015
6013
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DsMobileFabComponent, never>;
|
|
6016
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileFabComponent, "ds-mobile-fab", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "
|
|
6014
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DsMobileFabComponent, "ds-mobile-fab", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
6017
6015
|
}
|
|
6018
6016
|
|
|
6019
6017
|
type AppIconSize = 'sm' | 'md' | 'lg' | 'xl';
|
package/package.json
CHANGED
package/styles/ionic.css
CHANGED
|
@@ -618,6 +618,24 @@ ion-tab-button::part(native) {
|
|
|
618
618
|
max-height: calc(100vh - var(--app-sheet-top-offset)) !important;
|
|
619
619
|
}
|
|
620
620
|
|
|
621
|
+
/* Auto-height support for base modals */
|
|
622
|
+
.ds-modal-base.auto-height {
|
|
623
|
+
display: flex;
|
|
624
|
+
flex-direction: column;
|
|
625
|
+
justify-content: flex-end;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
.ds-modal-base.auto-height::part(content) {
|
|
629
|
+
height: auto !important;
|
|
630
|
+
margin-top: auto !important;
|
|
631
|
+
position: relative !important;
|
|
632
|
+
top: auto !important;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
.ds-modal-base.auto-height ion-content {
|
|
636
|
+
height: auto !important;
|
|
637
|
+
--height: auto;
|
|
638
|
+
}
|
|
621
639
|
.ds-modal-base::part(backdrop) {
|
|
622
640
|
background: rgba(0, 0, 0, 0.4);
|
|
623
641
|
backdrop-filter: blur(4px);
|