@forgeroute/ui 0.4.42 → 0.4.44
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/forgeroute-ui-messaging.mjs +211 -7
- package/fesm2022/forgeroute-ui-messaging.mjs.map +1 -1
- package/fesm2022/forgeroute-ui-stripe.mjs +11 -4
- package/fesm2022/forgeroute-ui-stripe.mjs.map +1 -1
- package/fesm2022/forgeroute-ui.mjs +56 -54
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/forgeroute-ui-messaging.d.ts +66 -7
- package/types/forgeroute-ui.d.ts +21 -15
package/package.json
CHANGED
|
@@ -115,7 +115,7 @@ export declare class TemplatePickerComponent {
|
|
|
115
115
|
private readonly host;
|
|
116
116
|
private readonly search$;
|
|
117
117
|
/** Filter results to a specific channel: 'email', 'text', or omit for all. */
|
|
118
|
-
readonly channel: import("@angular/core").InputSignal<"" | "
|
|
118
|
+
readonly channel: import("@angular/core").InputSignal<"" | "text" | "email">;
|
|
119
119
|
readonly selectedId: import("@angular/core").InputSignal<string | null>;
|
|
120
120
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
121
121
|
/** Shows the red required asterisk (same as the library inputs) — e.g. when a template must be picked to send. */
|
|
@@ -543,7 +543,7 @@ export declare class DocumentSendOptionsComponent implements UiFieldValidity {
|
|
|
543
543
|
/** API root from FORGEROUTE_CONFIG (e.g. a cross-origin prod API); falls back to same-origin `/api`. */
|
|
544
544
|
private readonly apiBase;
|
|
545
545
|
/** `email` → purpose select + attachment allowed; `text` → link only (purpose fixed to e-signature). */
|
|
546
|
-
readonly channel: import("@angular/core").InputSignal<"
|
|
546
|
+
readonly channel: import("@angular/core").InputSignal<"text" | "email">;
|
|
547
547
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
548
548
|
/** When true, at least one document must be chosen. The message forms leave it false: documents are optional there. */
|
|
549
549
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
@@ -608,7 +608,7 @@ export declare class DocumentSendOptionsComponent implements UiFieldValidity {
|
|
|
608
608
|
/** Roles of documents whose row had no `signerRoles` and that the host resolves (`signers().resolveRoles`). */
|
|
609
609
|
readonly roleStates: import("@angular/core").WritableSignal<Record<string, RoleState>>;
|
|
610
610
|
/** The envelope's documents: `loading` / `error` while the panel reads them (`loadDocuments`), `ready` once known. */
|
|
611
|
-
readonly envelopeStatus: import("@angular/core").WritableSignal<"
|
|
611
|
+
readonly envelopeStatus: import("@angular/core").WritableSignal<"error" | "loading" | "ready" | "idle">;
|
|
612
612
|
private envelopeSub;
|
|
613
613
|
private readonly roleSubs;
|
|
614
614
|
/** The sender opened the collapsed "Signing options" line. */
|
|
@@ -1375,18 +1375,36 @@ interface SendInAppPayload {
|
|
|
1375
1375
|
contactId?: string;
|
|
1376
1376
|
/** Only present when the Subject field is shown. */
|
|
1377
1377
|
subject?: string;
|
|
1378
|
+
/** The Message: plain text, or sanitized HTML when `richText` is on (then `bodyIsHtml` is true). */
|
|
1378
1379
|
body: string;
|
|
1380
|
+
/** Only present (true) when the Message was written in the rich-text editor. */
|
|
1381
|
+
bodyIsHtml?: true;
|
|
1382
|
+
/** Only present when attachments are on and the sender added at least one (base64 contents, like the email form). */
|
|
1383
|
+
attachments?: SendInAppAttachment[];
|
|
1384
|
+
}
|
|
1385
|
+
/** A file the sender attached, read as base64 (the same shape the email form sends). */
|
|
1386
|
+
interface SendInAppAttachment {
|
|
1387
|
+
filename: string;
|
|
1388
|
+
content: string;
|
|
1389
|
+
contentType: string;
|
|
1379
1390
|
}
|
|
1380
1391
|
/**
|
|
1381
1392
|
* The form of a message that is not delivered by email or text but handed to the host's own function (e.g. a client portal message to the
|
|
1382
|
-
* agent): "To" card with the name
|
|
1383
|
-
* no request of its own: `sendFn` does the sending. Used by `<ui-send-message-panel recipientMode="in-app">`.
|
|
1393
|
+
* agent): "To" card with the name (and the address when the host gives one), an optional Subject, the Message (plain, or the rich-text editor with
|
|
1394
|
+
* `richText`) and optional attachments (`allowAttachments`). No templates, video or scheduling, and it makes no request of its own: `sendFn` does the sending. Used by `<ui-send-message-panel recipientMode="in-app">`.
|
|
1384
1395
|
*/
|
|
1385
1396
|
declare class SendInAppComponent implements OnInit {
|
|
1386
1397
|
private readonly destroyRef;
|
|
1387
1398
|
private readonly toast;
|
|
1399
|
+
private readonly cdr;
|
|
1388
1400
|
readonly contactName: import("@angular/core").InputSignal<string>;
|
|
1389
1401
|
readonly contactId: import("@angular/core").InputSignal<string>;
|
|
1402
|
+
/** The address the message reaches the recipient at; shown under the name when given (the form never asks for one). */
|
|
1403
|
+
readonly contactEmail: import("@angular/core").InputSignal<string>;
|
|
1404
|
+
/** true shows "Attach Files" (any number of files); they are sent in the payload as base64. */
|
|
1405
|
+
readonly allowAttachments: import("@angular/core").InputSignal<boolean>;
|
|
1406
|
+
/** true writes the Message in the rich-text editor (bold, lists, ...); the payload body is then sanitized HTML. */
|
|
1407
|
+
readonly richText: import("@angular/core").InputSignal<boolean>;
|
|
1390
1408
|
/** Prefills Subject / Message. */
|
|
1391
1409
|
readonly defaultSubject: import("@angular/core").InputSignal<string>;
|
|
1392
1410
|
readonly defaultBody: import("@angular/core").InputSignal<string>;
|
|
@@ -1404,8 +1422,20 @@ declare class SendInAppComponent implements OnInit {
|
|
|
1404
1422
|
readonly sending: import("@angular/core").WritableSignal<boolean>;
|
|
1405
1423
|
subject: string;
|
|
1406
1424
|
body: string;
|
|
1425
|
+
attachments: {
|
|
1426
|
+
filename: string;
|
|
1427
|
+
content: string;
|
|
1428
|
+
contentType: string;
|
|
1429
|
+
sizeLabel: string;
|
|
1430
|
+
}[];
|
|
1407
1431
|
ngOnInit(): void;
|
|
1432
|
+
/** The Message as the limit and the "is it empty" check see it: the text of the rich-text HTML, or the plain text. */
|
|
1433
|
+
private bodyText;
|
|
1434
|
+
/** Rich text only: the HTML is longer than the host's limit (the limit is on what the server stores). */
|
|
1435
|
+
protected richTooLong(): boolean;
|
|
1408
1436
|
get canSend(): boolean;
|
|
1437
|
+
onFilesSelected(event: Event): void;
|
|
1438
|
+
removeAttachment(index: number): void;
|
|
1409
1439
|
notifyValid(): void;
|
|
1410
1440
|
submit(): void;
|
|
1411
1441
|
static ɵfac: i0.ɵɵFactoryDeclaration<SendInAppComponent, never>;
|
|
@@ -1420,6 +1450,21 @@ declare class SendInAppComponent implements OnInit {
|
|
|
1420
1450
|
"required": false;
|
|
1421
1451
|
"isSignal": true;
|
|
1422
1452
|
};
|
|
1453
|
+
"contactEmail": {
|
|
1454
|
+
"alias": "contactEmail";
|
|
1455
|
+
"required": false;
|
|
1456
|
+
"isSignal": true;
|
|
1457
|
+
};
|
|
1458
|
+
"allowAttachments": {
|
|
1459
|
+
"alias": "allowAttachments";
|
|
1460
|
+
"required": false;
|
|
1461
|
+
"isSignal": true;
|
|
1462
|
+
};
|
|
1463
|
+
"richText": {
|
|
1464
|
+
"alias": "richText";
|
|
1465
|
+
"required": false;
|
|
1466
|
+
"isSignal": true;
|
|
1467
|
+
};
|
|
1423
1468
|
"defaultSubject": {
|
|
1424
1469
|
"alias": "defaultSubject";
|
|
1425
1470
|
"required": false;
|
|
@@ -1825,6 +1870,10 @@ export declare class SendMessagePanelComponent {
|
|
|
1825
1870
|
readonly sendMessage: import("@angular/core").InputSignal<((payload: SendInAppPayload) => Observable<unknown>) | null>;
|
|
1826
1871
|
/** `recipientMode="in-app"` only: the longest Message the host's backend accepts; null (default) = no limit. */
|
|
1827
1872
|
readonly maxBodyLength: import("@angular/core").InputSignal<number | null>;
|
|
1873
|
+
/** `recipientMode="in-app"` only: shows "Attach Files" (any number of files, sent in the payload as base64). Default false. */
|
|
1874
|
+
readonly inAppAttachments: import("@angular/core").InputSignal<boolean>;
|
|
1875
|
+
/** `recipientMode="in-app"` only: the Message is written in the rich-text editor and the payload body is sanitized HTML (`bodyIsHtml`). Default false. */
|
|
1876
|
+
readonly inAppRichText: import("@angular/core").InputSignal<boolean>;
|
|
1828
1877
|
/** false hides the Subject field in the email form and the in-app form (Send then needs only a Message). Default true. */
|
|
1829
1878
|
readonly showSubject: import("@angular/core").InputSignal<boolean>;
|
|
1830
1879
|
/** false hides the "Use Existing Template" tab in the email and text forms (Create Message only; the template picker, `GET /templates`, is never used). Default true. */
|
|
@@ -1948,7 +1997,7 @@ export declare class SendMessagePanelComponent {
|
|
|
1948
1997
|
readonly activeContact: import("@angular/core").WritableSignal<MessageContact | null>;
|
|
1949
1998
|
/** What the sender should know about the picked contact before sending (why a channel is missing, what to add). */
|
|
1950
1999
|
readonly contactNotices: import("@angular/core").Signal<string[]>;
|
|
1951
|
-
readonly channel: import("@angular/core").WritableSignal<"
|
|
2000
|
+
readonly channel: import("@angular/core").WritableSignal<"text" | "email">;
|
|
1952
2001
|
readonly valid: import("@angular/core").WritableSignal<boolean>;
|
|
1953
2002
|
/** Bumped on every fresh open / new contact — re-creates the email and text forms so no draft carries over. */
|
|
1954
2003
|
readonly formEpoch: import("@angular/core").WritableSignal<number>;
|
|
@@ -2063,6 +2112,16 @@ export declare class SendMessagePanelComponent {
|
|
|
2063
2112
|
"required": false;
|
|
2064
2113
|
"isSignal": true;
|
|
2065
2114
|
};
|
|
2115
|
+
"inAppAttachments": {
|
|
2116
|
+
"alias": "inAppAttachments";
|
|
2117
|
+
"required": false;
|
|
2118
|
+
"isSignal": true;
|
|
2119
|
+
};
|
|
2120
|
+
"inAppRichText": {
|
|
2121
|
+
"alias": "inAppRichText";
|
|
2122
|
+
"required": false;
|
|
2123
|
+
"isSignal": true;
|
|
2124
|
+
};
|
|
2066
2125
|
"showSubject": {
|
|
2067
2126
|
"alias": "showSubject";
|
|
2068
2127
|
"required": false;
|
|
@@ -2327,4 +2386,4 @@ export declare class DocumentMergeCheckComponent {
|
|
|
2327
2386
|
"warningsChange": "warningsChange";
|
|
2328
2387
|
}, never, never, true, never>;
|
|
2329
2388
|
}
|
|
2330
|
-
export type { CreateDocumentRequestBody, DocuSignSendBody, DocumentSentInfo, DocumentSentMessage, DocumentsPayloadExtras, ExistingEnvelopeSendBody, SendDocumentsPayload, SendEmailPayload, SendInAppPayload, SendTextPayload, VideoDefaults, VideoLinkOptions };
|
|
2389
|
+
export type { CreateDocumentRequestBody, DocuSignSendBody, DocumentSentInfo, DocumentSentMessage, DocumentsPayloadExtras, ExistingEnvelopeSendBody, SendDocumentsPayload, SendEmailPayload, SendInAppAttachment, SendInAppPayload, SendTextPayload, VideoDefaults, VideoLinkOptions };
|
package/types/forgeroute-ui.d.ts
CHANGED
|
@@ -1088,7 +1088,7 @@ export declare class SelectComponent implements ControlValueAccessor, Validator,
|
|
|
1088
1088
|
readonly error: import("@angular/core").InputSignal<string>;
|
|
1089
1089
|
/** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
|
|
1090
1090
|
readonly showErrors: import("@angular/core").InputSignal<boolean>;
|
|
1091
|
-
readonly size: import("@angular/core").InputSignal<"
|
|
1091
|
+
readonly size: import("@angular/core").InputSignal<"default" | "sm">;
|
|
1092
1092
|
readonly _disabledInput: import("@angular/core").InputSignal<boolean>;
|
|
1093
1093
|
private readonly _cvaDisabled;
|
|
1094
1094
|
protected readonly disabled: import("@angular/core").Signal<boolean>;
|
|
@@ -2206,7 +2206,7 @@ export declare class ModalComponent implements OnInit, OnDestroy {
|
|
|
2206
2206
|
readonly title: import("@angular/core").InputSignal<string>;
|
|
2207
2207
|
readonly description: import("@angular/core").InputSignal<string>;
|
|
2208
2208
|
readonly maxWidth: import("@angular/core").InputSignal<string>;
|
|
2209
|
-
readonly bodyOverflow: import("@angular/core").InputSignal<"hidden" | "
|
|
2209
|
+
readonly bodyOverflow: import("@angular/core").InputSignal<"hidden" | "auto" | "visible">;
|
|
2210
2210
|
/** `data-testid` of the dialog element itself (the host `<ui-modal>` is always in the page, the dialog only while open). None when empty. */
|
|
2211
2211
|
readonly dialogTestId: import("@angular/core").InputSignal<string>;
|
|
2212
2212
|
/** Hides the header X button (e.g. while a request is running). Escape and a backdrop click still close unless `closable` is false. */
|
|
@@ -2590,7 +2590,7 @@ export declare class AudioPlayerComponent {
|
|
|
2590
2590
|
/** Accessible name of the player. */
|
|
2591
2591
|
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
2592
2592
|
/** How much to load before play: 'metadata' (default), 'auto' or 'none'. */
|
|
2593
|
-
readonly preload: import("@angular/core").InputSignal<"none" | "
|
|
2593
|
+
readonly preload: import("@angular/core").InputSignal<"none" | "auto" | "metadata">;
|
|
2594
2594
|
/** Fires when the browser can't load or decode the source. */
|
|
2595
2595
|
readonly playbackError: import("@angular/core").OutputEmitterRef<void>;
|
|
2596
2596
|
protected readonly failed: import("@angular/core").WritableSignal<boolean>;
|
|
@@ -2844,7 +2844,7 @@ export declare class CheckboxComponent implements ControlValueAccessor, Validato
|
|
|
2844
2844
|
* clicking it still toggles the box - e.g. a product name that is both the heading of its card and the label of its checkbox.
|
|
2845
2845
|
* Default null: plain label text, exactly as before. Single mode only.
|
|
2846
2846
|
*/
|
|
2847
|
-
readonly headingLevel: import("@angular/core").InputSignal<
|
|
2847
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
|
|
2848
2848
|
readonly indeterminate: import("@angular/core").InputSignal<boolean>;
|
|
2849
2849
|
readonly checked: import("@angular/core").ModelSignal<boolean>;
|
|
2850
2850
|
/**
|
|
@@ -3755,7 +3755,7 @@ export declare class PhoneNumberPickerComponent {
|
|
|
3755
3755
|
protected readonly modeCtl: FormControl<string>;
|
|
3756
3756
|
protected readonly zipCtl: FormControl<string>;
|
|
3757
3757
|
protected readonly areaCtl: FormControl<string>;
|
|
3758
|
-
protected readonly step: import("@angular/core").WritableSignal<
|
|
3758
|
+
protected readonly step: import("@angular/core").WritableSignal<1 | 2 | 3>;
|
|
3759
3759
|
protected readonly mode: import("@angular/core").WritableSignal<PhoneNumberSearchMode>;
|
|
3760
3760
|
private readonly _zip;
|
|
3761
3761
|
private readonly _area;
|
|
@@ -3869,7 +3869,7 @@ export declare class ButtonComponent {
|
|
|
3869
3869
|
* `ghost-start`: a ghost button for list / section toggles - a full-width row with its content aligned to the start, transparent
|
|
3870
3870
|
* background, hover tint and the normal focus ring. Pair it with `ariaExpanded` / `ariaPressed`; the label may contain a heading element.
|
|
3871
3871
|
*/
|
|
3872
|
-
readonly variant: import("@angular/core").InputSignal<"
|
|
3872
|
+
readonly variant: import("@angular/core").InputSignal<"primary" | "secondary" | "danger" | "warning" | "link" | "ghost" | "ghost-start" | "tab" | "icon" | "icon-danger">;
|
|
3873
3873
|
/** Renders an anchor to this route instead of a button (use with `variant="link"` for an inline text link). `['/settings']` or `'/settings'`. While `disabled` or `loading` it renders a non-clickable `<span role="link" aria-disabled>` with no href (like `href`). */
|
|
3874
3874
|
readonly routerLink: import("@angular/core").InputSignal<string | readonly unknown[] | null>;
|
|
3875
3875
|
/** Query params of the `routerLink` (e.g. `{ section: 'deal-defaults' }`). */
|
|
@@ -3890,7 +3890,7 @@ export declare class ButtonComponent {
|
|
|
3890
3890
|
*/
|
|
3891
3891
|
readonly href: import("@angular/core").InputSignal<string | null>;
|
|
3892
3892
|
/** Where to open the `href` (`_blank` = a new tab). */
|
|
3893
|
-
readonly target: import("@angular/core").InputSignal<"
|
|
3893
|
+
readonly target: import("@angular/core").InputSignal<"_self" | "_blank" | "_parent" | "_top" | null>;
|
|
3894
3894
|
/** `rel` of the `href` link. A `_blank` target always gets `noopener noreferrer` added. */
|
|
3895
3895
|
readonly rel: import("@angular/core").InputSignal<string | null>;
|
|
3896
3896
|
/** The href when it is allowed (http, https, mailto, tel, sms or a relative URL), else null. */
|
|
@@ -3915,7 +3915,7 @@ export declare class ButtonComponent {
|
|
|
3915
3915
|
readonly color: import("@angular/core").InputSignal<string | undefined>;
|
|
3916
3916
|
readonly active: import("@angular/core").InputSignal<boolean>;
|
|
3917
3917
|
readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xs">;
|
|
3918
|
-
readonly type: import("@angular/core").InputSignal<"
|
|
3918
|
+
readonly type: import("@angular/core").InputSignal<"reset" | "submit" | "button">;
|
|
3919
3919
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
3920
3920
|
readonly loading: import("@angular/core").InputSignal<boolean>;
|
|
3921
3921
|
readonly fullWidth: import("@angular/core").InputSignal<boolean>;
|
|
@@ -4402,7 +4402,7 @@ export declare class ImportSourceGridComponent {
|
|
|
4402
4402
|
/** The `value` of the picked source (highlighted). `tile` only: the `card` appearance does not keep a selection. */
|
|
4403
4403
|
readonly selected: import("@angular/core").InputSignal<string>;
|
|
4404
4404
|
/** `tile`: the compact buttons of the import window. `card`: one `ui-detail-card` per source with its own select button (used on a page). */
|
|
4405
|
-
readonly appearance: import("@angular/core").InputSignal<"
|
|
4405
|
+
readonly appearance: import("@angular/core").InputSignal<"card" | "tile">;
|
|
4406
4406
|
/** `card`: disables every card's button (for example while the page is saving). */
|
|
4407
4407
|
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
4408
4408
|
/** `card`: the text of each card's button. */
|
|
@@ -4711,7 +4711,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4711
4711
|
readonly passwordRequirements: import("@angular/core").InputSignal<boolean>;
|
|
4712
4712
|
/** Rules for `passwordRequirements`; default = the library's five rules (8+ characters, upper, lower, digit, special). */
|
|
4713
4713
|
readonly passwordRules: import("@angular/core").InputSignal<readonly PasswordRule[] | undefined>;
|
|
4714
|
-
readonly type: import("@angular/core").InputSignal<"number" | "text" | "email" | "
|
|
4714
|
+
readonly type: import("@angular/core").InputSignal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4715
4715
|
readonly maxlength: import("@angular/core").InputSignal<number | undefined>;
|
|
4716
4716
|
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
4717
4717
|
readonly autocomplete: import("@angular/core").InputSignal<string>;
|
|
@@ -4784,7 +4784,7 @@ export declare class TextInputComponent implements ControlValueAccessor, Validat
|
|
|
4784
4784
|
protected readonly _stepAttr: import("@angular/core").Signal<string | null>;
|
|
4785
4785
|
protected readonly _revealable: import("@angular/core").Signal<boolean>;
|
|
4786
4786
|
protected readonly _shown: import("@angular/core").WritableSignal<boolean>;
|
|
4787
|
-
protected readonly _inputType: import("@angular/core").Signal<"number" | "text" | "email" | "
|
|
4787
|
+
protected readonly _inputType: import("@angular/core").Signal<"number" | "text" | "email" | "tel" | "password" | "url">;
|
|
4788
4788
|
protected readonly _eyePath: string;
|
|
4789
4789
|
protected readonly _eyeOffPath: string;
|
|
4790
4790
|
protected readonly _showRequirements: import("@angular/core").Signal<boolean>;
|
|
@@ -6335,7 +6335,7 @@ export declare class FormSectionComponent {
|
|
|
6335
6335
|
}, {}, never, ["*"], true, never>;
|
|
6336
6336
|
}
|
|
6337
6337
|
export declare class FormRowComponent {
|
|
6338
|
-
readonly cols: import("@angular/core").InputSignal<
|
|
6338
|
+
readonly cols: import("@angular/core").InputSignal<1 | 2 | 3 | 4>;
|
|
6339
6339
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormRowComponent, never>;
|
|
6340
6340
|
static ɵcmp: i0.ɵɵComponentDeclaration<FormRowComponent, "ui-form-row", never, {
|
|
6341
6341
|
"cols": {
|
|
@@ -6352,7 +6352,7 @@ export declare class FormRowComponent {
|
|
|
6352
6352
|
* child simply takes the full width. Keep a numeric span within the row's `cols` (use `all` for the whole row).
|
|
6353
6353
|
*/
|
|
6354
6354
|
export declare class FormColSpanDirective {
|
|
6355
|
-
readonly uiColSpan: import("@angular/core").InputSignal<"" |
|
|
6355
|
+
readonly uiColSpan: import("@angular/core").InputSignal<"" | "2" | "3" | 2 | 3 | "all">;
|
|
6356
6356
|
protected readonly _class: import("@angular/core").Signal<string>;
|
|
6357
6357
|
static ɵfac: i0.ɵɵFactoryDeclaration<FormColSpanDirective, never>;
|
|
6358
6358
|
static ɵdir: i0.ɵɵDirectiveDeclaration<FormColSpanDirective, "[uiColSpan]", never, {
|
|
@@ -9293,7 +9293,7 @@ export declare class DetailCardComponent {
|
|
|
9293
9293
|
/** true (default) = the title is displayed in capitals (CSS only); false = shown as written. The text, aria-label and heading name are never changed. */
|
|
9294
9294
|
readonly uppercaseTitle: import("@angular/core").InputSignal<boolean>;
|
|
9295
9295
|
/** 1-6 makes the title a real heading for screen readers (role=heading, aria-level); null keeps it plain text. */
|
|
9296
|
-
readonly headingLevel: import("@angular/core").InputSignal<
|
|
9296
|
+
readonly headingLevel: import("@angular/core").InputSignal<1 | 2 | 3 | 4 | 5 | 6 | null>;
|
|
9297
9297
|
/** Optional id for the title text; the card is then labelled by it. Without it the title is the card's aria-label. */
|
|
9298
9298
|
readonly titleId: import("@angular/core").InputSignal<string>;
|
|
9299
9299
|
/** Accessible name of the card when the header gives none (no header, or no title). A visible title wins; blank = no name. */
|
|
@@ -11463,6 +11463,8 @@ export interface SetupWizardTexts {
|
|
|
11463
11463
|
importMore: string;
|
|
11464
11464
|
/** Shown (and described by the disabled Continue) on an import step with `requireImport` until data came in. */
|
|
11465
11465
|
importRequired: string;
|
|
11466
|
+
/** Shown (and described by the disabled Save & Continue) on an integrations step with `requireConnection` until one integration is connected. */
|
|
11467
|
+
connectRequired: string;
|
|
11466
11468
|
/** An import where some rows were refused: the warning's title and text (rows that failed must be fixed and imported again before Continue) and the button that returns to the sources. */
|
|
11467
11469
|
importErrorsTitle: (errors: number) => string;
|
|
11468
11470
|
importErrorsText: (imported: number, errors: number) => string;
|
|
@@ -11539,6 +11541,8 @@ export interface SetupStep {
|
|
|
11539
11541
|
ownActions?: boolean;
|
|
11540
11542
|
import?: SetupImportStep;
|
|
11541
11543
|
integrations?: SetupIntegration[];
|
|
11544
|
+
/** Integrations steps: Save & Continue stays disabled until at least one of the step's integrations is connected. Skip stays available. */
|
|
11545
|
+
requireConnection?: boolean;
|
|
11542
11546
|
/** `integrations`: runs when the step is left with Continue (e.g. to save sender settings). */
|
|
11543
11547
|
onContinue?: () => Observable<unknown> | Promise<unknown> | void;
|
|
11544
11548
|
/** Called when the step is shown (load data for a custom step). */
|
|
@@ -11646,9 +11650,11 @@ export declare class SetupWizardComponent {
|
|
|
11646
11650
|
protected readonly narrow: import("@angular/core").WritableSignal<boolean>;
|
|
11647
11651
|
/** A step with `splitLayout`: the app's own content gets its own card, side by side with the step card on a wide screen. */
|
|
11648
11652
|
/** An import step with `requireImport` keeps Continue off until something came in (a CSV import or `markCompleted`, e.g. a live sync). */
|
|
11653
|
+
/** An integrations step with `requireConnection` keeps Save & Continue off until at least one of its integrations is connected (Skip stays the way past). */
|
|
11654
|
+
protected readonly connectBlocked: import("@angular/core").Signal<boolean>;
|
|
11649
11655
|
protected readonly importBlocked: import("@angular/core").Signal<boolean>;
|
|
11650
11656
|
/** The step's own two parts (`splitLayout`) show as two tabs, one card at a time; this is the open one (it starts on the app's part on every visit). */
|
|
11651
|
-
protected readonly splitTab: import("@angular/core").WritableSignal<"
|
|
11657
|
+
protected readonly splitTab: import("@angular/core").WritableSignal<"main" | "extra">;
|
|
11652
11658
|
protected readonly splitTabs: import("@angular/core").Signal<{
|
|
11653
11659
|
key: string;
|
|
11654
11660
|
label: string;
|