@elasticias/ui 1.0.50 → 1.0.52
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/elasticias-ui.mjs +598 -91
- package/fesm2022/elasticias-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/_patterns.scss +241 -9
- package/types/elasticias-ui.d.ts +219 -16
package/types/elasticias-ui.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import * as _elasticias_core from '@elasticias/core';
|
|
|
10
10
|
import { EfBuildPackage, EfSessionIdleService, EfModule, EfNavSection, EfNavItem, EfModuleId, EfToast, EfToastAction, EfThemeConfigService } from '@elasticias/core';
|
|
11
11
|
import * as i1 from 'primeng/tooltip';
|
|
12
12
|
import { BlockableUI } from 'primeng/api';
|
|
13
|
-
import { SafeResourceUrl } from '@angular/platform-browser';
|
|
13
|
+
import { SafeResourceUrl, SafeHtml } from '@angular/platform-browser';
|
|
14
14
|
import { ChartConfiguration } from 'chart.js';
|
|
15
15
|
import { ControlValueAccessor, NgControl } from '@angular/forms';
|
|
16
16
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -385,6 +385,13 @@ interface EfChangeHistoryEntry {
|
|
|
385
385
|
toStatus?: string | null;
|
|
386
386
|
note?: string | null;
|
|
387
387
|
}
|
|
388
|
+
/** A reference-list item used to translate a raw audit value: matched on
|
|
389
|
+
* `code`, shown as `label`. Structurally compatible with the static reference
|
|
390
|
+
* data items screens already load. */
|
|
391
|
+
interface EfChangeHistoryValueItem {
|
|
392
|
+
code: string;
|
|
393
|
+
label?: string | null;
|
|
394
|
+
}
|
|
388
395
|
|
|
389
396
|
/** Emitted when the user picks a product (with its active variant) from the menu. */
|
|
390
397
|
interface ProductTypeaheadSelection {
|
|
@@ -475,6 +482,11 @@ declare class EfOrderBuilderComponent implements OnInit {
|
|
|
475
482
|
* desktop width and inside the drawer below that or in focus mode.
|
|
476
483
|
*/
|
|
477
484
|
auditEntries: _angular_core.InputSignal<EfChangeHistoryEntry[]>;
|
|
485
|
+
/** Passed to the history's `valueLists`: field path to reference items, so
|
|
486
|
+
* raw statuses show as translated labels. */
|
|
487
|
+
auditValueLists: _angular_core.InputSignal<Readonly<Record<string, readonly EfChangeHistoryValueItem[]>> | null>;
|
|
488
|
+
/** Passed to the history's `noteFormatter`: returns the text for a note, or null for the raw note. */
|
|
489
|
+
auditNoteFormatter: _angular_core.InputSignal<((note: string) => string | null) | null>;
|
|
478
490
|
openCatalogue: _angular_core.OutputEmitterRef<void>;
|
|
479
491
|
orderChanged: _angular_core.OutputEmitterRef<OrderChangeInfo>;
|
|
480
492
|
orderValidated: _angular_core.OutputEmitterRef<ValidationResult>;
|
|
@@ -591,7 +603,7 @@ declare class EfOrderBuilderComponent implements OnInit {
|
|
|
591
603
|
*/
|
|
592
604
|
private withTotals;
|
|
593
605
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfOrderBuilderComponent, never>;
|
|
594
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfOrderBuilderComponent, "ef-order-builder", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": true; "isSignal": true; }; "products": { "alias": "products"; "required": true; "isSignal": true; }; "customers": { "alias": "customers"; "required": true; "isSignal": true; }; "recipient": { "alias": "recipient"; "required": false; "isSignal": true; }; "defaultCallingCode": { "alias": "defaultCallingCode"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "countGroupLabels": { "alias": "countGroupLabels"; "required": false; "isSignal": true; }; "productKeyField": { "alias": "productKeyField"; "required": false; "isSignal": true; }; "priceList": { "alias": "priceList"; "required": false; "isSignal": true; }; "backendErrors": { "alias": "backendErrors"; "required": false; "isSignal": true; }; "shippingTotal": { "alias": "shippingTotal"; "required": false; "isSignal": true; }; "auditEntries": { "alias": "auditEntries"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; }, { "order": "orderChange"; "openCatalogue": "openCatalogue"; "orderChanged": "orderChanged"; "orderValidated": "orderValidated"; "productsAdded": "productsAdded"; "focusMode": "focusModeChange"; }, never, ["[obRail]"], true, never>;
|
|
606
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfOrderBuilderComponent, "ef-order-builder", never, { "config": { "alias": "config"; "required": false; "isSignal": true; }; "order": { "alias": "order"; "required": true; "isSignal": true; }; "products": { "alias": "products"; "required": true; "isSignal": true; }; "customers": { "alias": "customers"; "required": true; "isSignal": true; }; "recipient": { "alias": "recipient"; "required": false; "isSignal": true; }; "defaultCallingCode": { "alias": "defaultCallingCode"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "countGroupLabels": { "alias": "countGroupLabels"; "required": false; "isSignal": true; }; "productKeyField": { "alias": "productKeyField"; "required": false; "isSignal": true; }; "priceList": { "alias": "priceList"; "required": false; "isSignal": true; }; "backendErrors": { "alias": "backendErrors"; "required": false; "isSignal": true; }; "shippingTotal": { "alias": "shippingTotal"; "required": false; "isSignal": true; }; "auditEntries": { "alias": "auditEntries"; "required": false; "isSignal": true; }; "auditValueLists": { "alias": "auditValueLists"; "required": false; "isSignal": true; }; "auditNoteFormatter": { "alias": "auditNoteFormatter"; "required": false; "isSignal": true; }; "focusMode": { "alias": "focusMode"; "required": false; "isSignal": true; }; }, { "order": "orderChange"; "openCatalogue": "openCatalogue"; "orderChanged": "orderChanged"; "orderValidated": "orderValidated"; "productsAdded": "productsAdded"; "focusMode": "focusModeChange"; }, never, ["[obRail]"], true, never>;
|
|
595
607
|
}
|
|
596
608
|
|
|
597
609
|
/**
|
|
@@ -1606,6 +1618,8 @@ declare class EfLabelComponent {
|
|
|
1606
1618
|
label?: string;
|
|
1607
1619
|
/** Translation key — preferred. */
|
|
1608
1620
|
labelKey?: string;
|
|
1621
|
+
/** Interpolation params for `labelKey`. */
|
|
1622
|
+
labelParams?: Record<string, unknown>;
|
|
1609
1623
|
/** DOM id of the labelled input. Empty / unset → no `for` attr. */
|
|
1610
1624
|
for?: string;
|
|
1611
1625
|
/** Caller-supplied extra class. The Comptoir `.ef-label` class is
|
|
@@ -1619,7 +1633,7 @@ declare class EfLabelComponent {
|
|
|
1619
1633
|
* binding replaces (doesn't merge) so we do the joining here. */
|
|
1620
1634
|
get resolvedClass(): string;
|
|
1621
1635
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfLabelComponent, never>;
|
|
1622
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfLabelComponent, "ef-label", never, { "label": { "alias": "label"; "required": false; }; "labelKey": { "alias": "labelKey"; "required": false; }; "for": { "alias": "for"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, {}, never, never, true, never>;
|
|
1636
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfLabelComponent, "ef-label", never, { "label": { "alias": "label"; "required": false; }; "labelKey": { "alias": "labelKey"; "required": false; }; "labelParams": { "alias": "labelParams"; "required": false; }; "for": { "alias": "for"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, {}, never, never, true, never>;
|
|
1623
1637
|
static ngAcceptInputType_required: unknown;
|
|
1624
1638
|
}
|
|
1625
1639
|
|
|
@@ -2595,6 +2609,55 @@ declare class EfPdfPreviewComponent {
|
|
|
2595
2609
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfPdfPreviewComponent, "ef-pdf-preview", never, { "blob": { "alias": "blob"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "showDownload": { "alias": "showDownload"; "required": false; "isSignal": true; }; "showPrint": { "alias": "showPrint"; "required": false; "isSignal": true; }; "showOpenInNewTab": { "alias": "showOpenInNewTab"; "required": false; "isSignal": true; }; "showWhatsappShare": { "alias": "showWhatsappShare"; "required": false; "isSignal": true; }; "whatsappPhone": { "alias": "whatsappPhone"; "required": false; "isSignal": true; }; "defaultCallingCode": { "alias": "defaultCallingCode"; "required": false; "isSignal": true; }; }, { "visible": "visibleChange"; }, never, never, true, never>;
|
|
2596
2610
|
}
|
|
2597
2611
|
|
|
2612
|
+
/**
|
|
2613
|
+
* Shows a complete HTML document (an email template, rendered with sample
|
|
2614
|
+
* data) inside a frame that cannot act.
|
|
2615
|
+
*
|
|
2616
|
+
* The frame's `sandbox` attribute is written in the template and empty, and
|
|
2617
|
+
* no input reaches it: the document runs no script, has an opaque origin
|
|
2618
|
+
* (no cookies, no storage, no access to the parent), cannot submit a form,
|
|
2619
|
+
* open a popup or navigate the top window. The document comes from
|
|
2620
|
+
* `srcdoc`, so there is no URL to load and no new origin for the CSP; it
|
|
2621
|
+
* inherits the host page's policy, whose `style-src 'unsafe-inline'` lets
|
|
2622
|
+
* the template's own styles apply.
|
|
2623
|
+
*
|
|
2624
|
+
* The frame always has an accessible name (WCAG 4.1.2): `titleKey`, or the
|
|
2625
|
+
* shared `ef_html_preview_title` key when none is given. Consuming apps define it:
|
|
2626
|
+
* fr "Aperçu", ar "معاينة", en "Preview".
|
|
2627
|
+
*
|
|
2628
|
+
* `width: 100%` and `min-width: 0` keep a 600px email table scrolling inside
|
|
2629
|
+
* the frame on a phone instead of widening the page.
|
|
2630
|
+
*
|
|
2631
|
+
* ```html
|
|
2632
|
+
* <ef-html-preview [html]="previewHtml()" titleKey="email_templates_preview_title" [height]="560" />
|
|
2633
|
+
* ```
|
|
2634
|
+
*/
|
|
2635
|
+
/** The title key the frame falls back to; apps add it to fr.json, ar.json and en.json. */
|
|
2636
|
+
declare const EF_HTML_PREVIEW_DEFAULT_TITLE_KEY = "ef_html_preview_title";
|
|
2637
|
+
declare class EfHtmlPreviewComponent {
|
|
2638
|
+
/** The full document to show. Sanitized by the server before it gets here. */
|
|
2639
|
+
readonly html: _angular_core.InputSignal<string>;
|
|
2640
|
+
/** i18n key of the frame's accessible title; `ef_html_preview_title` when empty. */
|
|
2641
|
+
readonly titleKey: _angular_core.InputSignal<string>;
|
|
2642
|
+
/** Frame height in pixels. */
|
|
2643
|
+
readonly height: _angular_core.InputSignal<number>;
|
|
2644
|
+
private readonly sanitizer;
|
|
2645
|
+
protected readonly effectiveTitleKey: _angular_core.Signal<string>;
|
|
2646
|
+
/**
|
|
2647
|
+
* Angular's sanitizer strips every `style` attribute and `<style>` block
|
|
2648
|
+
* from a bound `srcdoc`, which would preview an email without its
|
|
2649
|
+
* layout, so the HTML is trusted explicitly. The guarantee is the frame's
|
|
2650
|
+
* empty sandbox: nothing in the document can run, submit, open a window
|
|
2651
|
+
* or reach this page, even for raw author HTML of an unsaved edit. The
|
|
2652
|
+
* server's sanitization of stored templates is a second layer, not the
|
|
2653
|
+
* reason this is safe. Never reuse this bypass for markup rendered
|
|
2654
|
+
* outside such a frame.
|
|
2655
|
+
*/
|
|
2656
|
+
protected readonly trustedHtml: _angular_core.Signal<SafeHtml>;
|
|
2657
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfHtmlPreviewComponent, never>;
|
|
2658
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfHtmlPreviewComponent, "ef-html-preview", never, { "html": { "alias": "html"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2659
|
+
}
|
|
2660
|
+
|
|
2598
2661
|
/**
|
|
2599
2662
|
* Comptoir status spectrum — the canonical set of chip tones every
|
|
2600
2663
|
* status reference can map to via `metadata.color`.
|
|
@@ -3310,6 +3373,19 @@ interface OpMeta {
|
|
|
3310
3373
|
* ```html
|
|
3311
3374
|
* <ef-change-history [entries]="auditEntries()" />
|
|
3312
3375
|
* ```
|
|
3376
|
+
*
|
|
3377
|
+
* Values are shown raw by default (`Received → Confirmed`). To show a field's
|
|
3378
|
+
* values translated, pass `valueLists`: a map of field path to the
|
|
3379
|
+
* `{ code, label }` items of a reference list. Each old/new value that matches
|
|
3380
|
+
* an item `code` (case-insensitive) is shown as its `label` (translated when
|
|
3381
|
+
* the label is an i18n key); anything unmatched stays raw. The reserved key
|
|
3382
|
+
* `status` maps the `fromStatus` / `toStatus` of status-change entries.
|
|
3383
|
+
* On a V2 detail screen, `AbstractDetailScreenV2.auditValueLists()` builds this
|
|
3384
|
+
* map from `ScreenConfig.AUDIT_VALUE_LISTS`.
|
|
3385
|
+
*
|
|
3386
|
+
* ```html
|
|
3387
|
+
* <ef-change-history [entries]="auditEntries()" [valueLists]="auditValueLists()" />
|
|
3388
|
+
* ```
|
|
3313
3389
|
*/
|
|
3314
3390
|
declare class EfChangeHistoryComponent {
|
|
3315
3391
|
private readonly translate;
|
|
@@ -3325,6 +3401,14 @@ declare class EfChangeHistoryComponent {
|
|
|
3325
3401
|
readonly collapsible: _angular_core.InputSignal<boolean>;
|
|
3326
3402
|
/** Initial collapsed state — expanded by default. */
|
|
3327
3403
|
readonly startCollapsed: _angular_core.InputSignal<boolean>;
|
|
3404
|
+
/** Optional field path to reference items, used to show a field's raw
|
|
3405
|
+
* old/new values as translated labels. Unmapped fields and unmatched
|
|
3406
|
+
* values stay raw. Key `status` covers `fromStatus` / `toStatus`. */
|
|
3407
|
+
readonly valueLists: _angular_core.InputSignal<Readonly<Record<string, readonly EfChangeHistoryValueItem[]>> | null>;
|
|
3408
|
+
/** Optional formatter for an entry's free-text note. Return the text to show,
|
|
3409
|
+
* or null to keep the raw note. Rendered as plain text (never HTML). A
|
|
3410
|
+
* screen uses it to translate coded notes such as `order_email_resent:order_confirmed`. */
|
|
3411
|
+
readonly noteFormatter: _angular_core.InputSignal<((note: string) => string | null) | null>;
|
|
3328
3412
|
/** "Show more" dialog visibility. */
|
|
3329
3413
|
readonly dialogVisible: _angular_core.WritableSignal<boolean>;
|
|
3330
3414
|
/** First `previewLimit` rows shown inline in the card. */
|
|
@@ -3346,6 +3430,11 @@ declare class EfChangeHistoryComponent {
|
|
|
3346
3430
|
* (`clientCode` → "Client code"), so new entities/fields work with zero
|
|
3347
3431
|
* i18n maintenance. Add a key only for a properly localized (fr/ar) term. */
|
|
3348
3432
|
fieldLabel(field: string | undefined): string;
|
|
3433
|
+
/** The note as shown: the formatter's text, else the raw note. */
|
|
3434
|
+
noteText(note: string | null | undefined): string;
|
|
3435
|
+
/** Display value for a field's raw value: the matching list item's label
|
|
3436
|
+
* (translated when it is an i18n key), else the raw value. */
|
|
3437
|
+
valueLabel(field: string | undefined, value: string | null | undefined): string;
|
|
3349
3438
|
/** Returns the translation when present, otherwise a humanized fallback of
|
|
3350
3439
|
* the source token (ngx-translate echoes the key on a miss). */
|
|
3351
3440
|
private resolveLabel;
|
|
@@ -3355,7 +3444,7 @@ declare class EfChangeHistoryComponent {
|
|
|
3355
3444
|
* registration (the app's default locale is fr-MA). */
|
|
3356
3445
|
formatWhen(value: string | Date | null | undefined): string;
|
|
3357
3446
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfChangeHistoryComponent, never>;
|
|
3358
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfChangeHistoryComponent, "ef-change-history", never, { "entries": { "alias": "entries"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "emptyKey": { "alias": "emptyKey"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "previewLimit": { "alias": "previewLimit"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "startCollapsed": { "alias": "startCollapsed"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3447
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfChangeHistoryComponent, "ef-change-history", never, { "entries": { "alias": "entries"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "emptyKey": { "alias": "emptyKey"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "previewLimit": { "alias": "previewLimit"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "startCollapsed": { "alias": "startCollapsed"; "required": false; "isSignal": true; }; "valueLists": { "alias": "valueLists"; "required": false; "isSignal": true; }; "noteFormatter": { "alias": "noteFormatter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3359
3448
|
}
|
|
3360
3449
|
|
|
3361
3450
|
/**
|
|
@@ -3615,8 +3704,12 @@ declare abstract class AbstractEfFormControl {
|
|
|
3615
3704
|
/** Translation key for the label — preferred (memory:
|
|
3616
3705
|
* feedback_i18n_keys says always use `*Key`). */
|
|
3617
3706
|
readonly labelKey: _angular_core.InputSignal<string>;
|
|
3707
|
+
/** Interpolation params for `labelKey` (`{{name}}` in the translation). */
|
|
3708
|
+
readonly labelParams: _angular_core.InputSignal<Record<string, unknown> | undefined>;
|
|
3618
3709
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
3619
3710
|
readonly placeholderKey: _angular_core.InputSignal<string>;
|
|
3711
|
+
/** Interpolation params for `placeholderKey` (`{{last4}}` and the like). */
|
|
3712
|
+
readonly placeholderParams: _angular_core.InputSignal<Record<string, unknown> | undefined>;
|
|
3620
3713
|
/** Short help text shown under the control. Use `hintKey` for i18n. */
|
|
3621
3714
|
readonly hint: _angular_core.InputSignal<string>;
|
|
3622
3715
|
/** Translation key for the hint, preferred over `hint`. The hint is
|
|
@@ -3625,6 +3718,8 @@ declare abstract class AbstractEfFormControl {
|
|
|
3625
3718
|
* Rendered by ef-input-text, ef-textarea, ef-inputnumber and ef-select;
|
|
3626
3719
|
* the other controls inherit the input but do not render it yet. */
|
|
3627
3720
|
readonly hintKey: _angular_core.InputSignal<string>;
|
|
3721
|
+
/** Interpolation params for `hintKey`. */
|
|
3722
|
+
readonly hintParams: _angular_core.InputSignal<Record<string, unknown> | undefined>;
|
|
3628
3723
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
3629
3724
|
readonly ariaLabelKey: _angular_core.InputSignal<string>;
|
|
3630
3725
|
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -3718,7 +3813,7 @@ declare abstract class AbstractEfFormControl {
|
|
|
3718
3813
|
* the validation message together with the field name. */
|
|
3719
3814
|
get errorsId(): string;
|
|
3720
3815
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AbstractEfFormControl, never>;
|
|
3721
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AbstractEfFormControl, "ng-component", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placeholderKey": { "alias": "placeholderKey"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "hintKey": { "alias": "hintKey"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelKey": { "alias": "ariaLabelKey"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "describedByExtra": { "alias": "describedByExtra"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3816
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AbstractEfFormControl, "ng-component", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": false; "isSignal": true; }; "labelParams": { "alias": "labelParams"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "placeholderKey": { "alias": "placeholderKey"; "required": false; "isSignal": true; }; "placeholderParams": { "alias": "placeholderParams"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "hintKey": { "alias": "hintKey"; "required": false; "isSignal": true; }; "hintParams": { "alias": "hintParams"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelKey": { "alias": "ariaLabelKey"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showClear": { "alias": "showClear"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "describedByExtra": { "alias": "describedByExtra"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3722
3817
|
}
|
|
3723
3818
|
|
|
3724
3819
|
declare class EfInputTextComponent extends AbstractEfFormControl implements ControlValueAccessor {
|
|
@@ -3728,6 +3823,11 @@ declare class EfInputTextComponent extends AbstractEfFormControl implements Cont
|
|
|
3728
3823
|
fluid: boolean;
|
|
3729
3824
|
inline: boolean;
|
|
3730
3825
|
autocomplete?: string;
|
|
3826
|
+
/** Direction of the typed value, applied to the native input. Use
|
|
3827
|
+
* `'ltr'` for IBAN / RIB / phone values on an Arabic screen, `'auto'` to
|
|
3828
|
+
* follow the value's first strong character. The label and messages keep
|
|
3829
|
+
* the page direction. Null or absent leaves the input unchanged. */
|
|
3830
|
+
dir: 'ltr' | 'rtl' | 'auto' | null;
|
|
3731
3831
|
/** Clearable (showClear / canClear) is inherited from AbstractEfFormControl;
|
|
3732
3832
|
* we only supply the value predicate + the reset. */
|
|
3733
3833
|
protected get hasValue(): boolean;
|
|
@@ -3757,6 +3857,7 @@ declare class EfInputTextComponent extends AbstractEfFormControl implements Cont
|
|
|
3757
3857
|
private onChange;
|
|
3758
3858
|
private onTouched;
|
|
3759
3859
|
readonly ngControl: NgControl | null;
|
|
3860
|
+
private readonly hostRef;
|
|
3760
3861
|
constructor();
|
|
3761
3862
|
get showRequired(): boolean;
|
|
3762
3863
|
get serverErrors(): string[] | null;
|
|
@@ -3766,9 +3867,25 @@ declare class EfInputTextComponent extends AbstractEfFormControl implements Cont
|
|
|
3766
3867
|
registerOnTouched(fn: () => void): void;
|
|
3767
3868
|
setDisabledState(isDisabled: boolean): void;
|
|
3768
3869
|
handleInput(value: string): void;
|
|
3870
|
+
/** Set once the field itself has had focus; see {@link insertAtSelection}. */
|
|
3871
|
+
private wasFocused;
|
|
3872
|
+
protected markFocused(event: FocusEvent): void;
|
|
3873
|
+
/**
|
|
3874
|
+
* Inserts `text` at the caret (replacing a selection), or at the end when
|
|
3875
|
+
* the field was never focused, then puts the caret after it. Emits the
|
|
3876
|
+
* change once, exactly as typing would. Does nothing when read-only or
|
|
3877
|
+
* disabled, and refuses the whole insert when the result would pass
|
|
3878
|
+
* `maxlength` (a cut placeholder token is worse than none).
|
|
3879
|
+
*
|
|
3880
|
+
* The value is written programmatically, so the browser's undo history for
|
|
3881
|
+
* the field is reset and no DOM `input` event fires; the form control
|
|
3882
|
+
* (`onChange`) and `valueChangeEvent` are the contract.
|
|
3883
|
+
*/
|
|
3884
|
+
insertAtCursor(text: string): void;
|
|
3885
|
+
private nativeField;
|
|
3769
3886
|
handleBlur(): void;
|
|
3770
3887
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfInputTextComponent, never>;
|
|
3771
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfInputTextComponent, "ef-input-text", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; }, never, never, true, never>;
|
|
3888
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfInputTextComponent, "ef-input-text", never, { "size": { "alias": "size"; "required": false; }; "type": { "alias": "type"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "dir": { "alias": "dir"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "prefix": { "alias": "prefix"; "required": false; }; "suffix": { "alias": "suffix"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; }, never, never, true, never>;
|
|
3772
3889
|
static ngAcceptInputType_fluid: unknown;
|
|
3773
3890
|
static ngAcceptInputType_inline: unknown;
|
|
3774
3891
|
}
|
|
@@ -4356,6 +4473,15 @@ declare class EfPasswordComponent extends AbstractEfFormControl implements Contr
|
|
|
4356
4473
|
toggleMask: boolean;
|
|
4357
4474
|
feedback: boolean;
|
|
4358
4475
|
autocomplete?: string;
|
|
4476
|
+
/**
|
|
4477
|
+
* Rendering variant, as `ef-input-text`. `'comptoir'` skins the PrimeNG
|
|
4478
|
+
* input to the native `.ef-input` look (--hit-field height, --r-md radius,
|
|
4479
|
+
* 12px padding, --paper-alt fill) so it lines up with the comptoir inputs
|
|
4480
|
+
* beside it; the show/hide toggle becomes a --hit-field square target.
|
|
4481
|
+
* `'primeng'` (default) keeps the stock PrimeNG look.
|
|
4482
|
+
*/
|
|
4483
|
+
variant: 'primeng' | 'comptoir';
|
|
4484
|
+
get fieldStyleClass(): string;
|
|
4359
4485
|
/**
|
|
4360
4486
|
* Take focus on load. Bound explicitly rather than left unset: PrimeNG's
|
|
4361
4487
|
* AutoFocus directive tests `autofocus === false`, and the control declares
|
|
@@ -4371,6 +4497,7 @@ declare class EfPasswordComponent extends AbstractEfFormControl implements Contr
|
|
|
4371
4497
|
private onChange;
|
|
4372
4498
|
private onTouched;
|
|
4373
4499
|
readonly ngControl: NgControl | null;
|
|
4500
|
+
private readonly host;
|
|
4374
4501
|
constructor();
|
|
4375
4502
|
get showRequired(): boolean;
|
|
4376
4503
|
get serverErrors(): string[] | null;
|
|
@@ -4385,7 +4512,7 @@ declare class EfPasswordComponent extends AbstractEfFormControl implements Contr
|
|
|
4385
4512
|
handleChange(value: string): void;
|
|
4386
4513
|
handleBlur(): void;
|
|
4387
4514
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfPasswordComponent, never>;
|
|
4388
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfPasswordComponent, "ef-password", never, { "size": { "alias": "size"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "toggleMask": { "alias": "toggleMask"; "required": false; }; "feedback": { "alias": "feedback"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; }, never, never, true, never>;
|
|
4515
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfPasswordComponent, "ef-password", never, { "size": { "alias": "size"; "required": false; }; "fluid": { "alias": "fluid"; "required": false; }; "inline": { "alias": "inline"; "required": false; }; "toggleMask": { "alias": "toggleMask"; "required": false; }; "feedback": { "alias": "feedback"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; }, never, never, true, never>;
|
|
4389
4516
|
static ngAcceptInputType_fluid: unknown;
|
|
4390
4517
|
static ngAcceptInputType_inline: unknown;
|
|
4391
4518
|
static ngAcceptInputType_toggleMask: unknown;
|
|
@@ -5243,6 +5370,14 @@ declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
|
|
|
5243
5370
|
headerTemplate(columnId: string): TemplateRef<unknown> | undefined;
|
|
5244
5371
|
/** Pluck `column.field` (or `column.id`) from a row, dotted-path safe. */
|
|
5245
5372
|
cellValue(row: TRow, col: EfDataCardColumn): unknown;
|
|
5373
|
+
/**
|
|
5374
|
+
* Whether a cell has anything to show. The mobile secondary line joins its
|
|
5375
|
+
* parts with a "·" drawn before every part but the first, so an empty part
|
|
5376
|
+
* left a dangling separator; skipping it keeps separators between present
|
|
5377
|
+
* values only. A column with a custom body template is always present (the
|
|
5378
|
+
* template decides what to render); a boolean always renders a glyph.
|
|
5379
|
+
*/
|
|
5380
|
+
hasCellContent(row: TRow, col: EfDataCardColumn): boolean;
|
|
5246
5381
|
headerAlignClass(col: EfDataCardColumn): string;
|
|
5247
5382
|
cellAlignClass(col: EfDataCardColumn): string;
|
|
5248
5383
|
/** Sort indicator: '↑' / '↓' / '' for the given column. */
|
|
@@ -6187,6 +6322,7 @@ declare class EfTextareaComponent extends AbstractEfFormControl implements Contr
|
|
|
6187
6322
|
private onChange;
|
|
6188
6323
|
private onTouched;
|
|
6189
6324
|
readonly ngControl: NgControl | null;
|
|
6325
|
+
private readonly hostRef;
|
|
6190
6326
|
constructor();
|
|
6191
6327
|
get isInvalid(): boolean;
|
|
6192
6328
|
get serverErrors(): string[] | null;
|
|
@@ -6196,6 +6332,22 @@ declare class EfTextareaComponent extends AbstractEfFormControl implements Contr
|
|
|
6196
6332
|
registerOnTouched(fn: () => void): void;
|
|
6197
6333
|
setDisabledState(isDisabled: boolean): void;
|
|
6198
6334
|
handleInput(value: string): void;
|
|
6335
|
+
/** Set once the field itself has had focus; see {@link insertAtSelection}. */
|
|
6336
|
+
private wasFocused;
|
|
6337
|
+
protected markFocused(event: FocusEvent): void;
|
|
6338
|
+
/**
|
|
6339
|
+
* Inserts `text` at the caret (replacing a selection), or at the end when
|
|
6340
|
+
* the field was never focused, then puts the caret after it. Emits the
|
|
6341
|
+
* change once, exactly as typing would. Does nothing when read-only or
|
|
6342
|
+
* disabled, and refuses the whole insert when the result would pass
|
|
6343
|
+
* `maxlength` (a cut placeholder token is worse than none).
|
|
6344
|
+
*
|
|
6345
|
+
* The value is written programmatically, so the browser's undo history for
|
|
6346
|
+
* the field is reset and no DOM `input` event fires; the form control
|
|
6347
|
+
* (`onChange`) and `valueChangeEvent` are the contract.
|
|
6348
|
+
*/
|
|
6349
|
+
insertAtCursor(text: string): void;
|
|
6350
|
+
private nativeField;
|
|
6199
6351
|
handleBlur(): void;
|
|
6200
6352
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfTextareaComponent, never>;
|
|
6201
6353
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfTextareaComponent, "ef-textarea", never, { "rows": { "alias": "rows"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "mono": { "alias": "mono"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; }, never, never, true, never>;
|
|
@@ -6432,6 +6584,11 @@ declare class EfDatepickerAdvancedComponent extends AbstractEfFormControl implem
|
|
|
6432
6584
|
private readonly vcr;
|
|
6433
6585
|
private readonly destroyRef;
|
|
6434
6586
|
private readonly cdr;
|
|
6587
|
+
private readonly viewport;
|
|
6588
|
+
/** The one picker whose panel is open on the page, if any. A click on
|
|
6589
|
+
* another picker's trigger never reaches the document (the trigger
|
|
6590
|
+
* stops it), so opening a picker closes this one explicitly. */
|
|
6591
|
+
private static openPicker;
|
|
6435
6592
|
/**
|
|
6436
6593
|
* Self-injected form control (present only when the consumer binds
|
|
6437
6594
|
* `[(ngModel)]` / `formControlName` in field mode). We register as its
|
|
@@ -6448,7 +6605,19 @@ declare class EfDatepickerAdvancedComponent extends AbstractEfFormControl implem
|
|
|
6448
6605
|
/** Active embedded view + its root node, while the panel is open. */
|
|
6449
6606
|
private panelView;
|
|
6450
6607
|
private panelRoot;
|
|
6451
|
-
|
|
6608
|
+
/** Every root node the panel template rendered (the sheet backdrop too). */
|
|
6609
|
+
private portalNodes;
|
|
6610
|
+
private repositionListener;
|
|
6611
|
+
private resizeObserver;
|
|
6612
|
+
private repositionFrame;
|
|
6613
|
+
/** Phone width (EfViewportService, <= 767px): the panel opens as a
|
|
6614
|
+
* full-width bottom sheet with 48px targets instead of a popover. */
|
|
6615
|
+
readonly sheet: _angular_core.Signal<boolean>;
|
|
6616
|
+
/** The dialog's accessible name: the field's own label in field mode
|
|
6617
|
+
* (the panel no longer repeats it as a visible title), else the
|
|
6618
|
+
* trigger label. */
|
|
6619
|
+
readonly panelLabelKey: _angular_core.Signal<string>;
|
|
6620
|
+
readonly panelLabel: _angular_core.Signal<string>;
|
|
6452
6621
|
constructor();
|
|
6453
6622
|
ngAfterViewInit(): void;
|
|
6454
6623
|
/** Trigger left-side label (translation key). Default: `'filter_date'`. */
|
|
@@ -6566,6 +6735,19 @@ declare class EfDatepickerAdvancedComponent extends AbstractEfFormControl implem
|
|
|
6566
6735
|
/** Du / Au inputs as DD/MM/YYYY strings (kept in sync with drafts). */
|
|
6567
6736
|
readonly fromText: _angular_core.Signal<string>;
|
|
6568
6737
|
readonly toText: _angular_core.Signal<string>;
|
|
6738
|
+
/** Bumps whenever the language or its translations change, so the
|
|
6739
|
+
* placeholder below re-reads the dictionary. */
|
|
6740
|
+
private readonly i18nTick;
|
|
6741
|
+
/**
|
|
6742
|
+
* Placeholder of the typed-date inputs. The parser takes ASCII digits
|
|
6743
|
+
* only, day first (`\d` and the keydown filter are [0-9/]), so the hint
|
|
6744
|
+
* spells that order in the reader's terms, in Latin letters: `JJ/MM/AAAA`
|
|
6745
|
+
* for French, `DD/MM/YYYY` otherwise, Arabic included. An Arabic-word
|
|
6746
|
+
* pattern (يوم/شهر/سنة) would lay out right to left, the reverse of the
|
|
6747
|
+
* digits the user then types. An app can override it per language with
|
|
6748
|
+
* the `date_input_placeholder` key.
|
|
6749
|
+
*/
|
|
6750
|
+
readonly datePlaceholder: _angular_core.Signal<string>;
|
|
6569
6751
|
/** Committed value pushed in via `writeValue` / day-pick / Apply. */
|
|
6570
6752
|
private readonly fieldValue;
|
|
6571
6753
|
/** Committed start / end derived from `fieldValue`. */
|
|
@@ -6627,8 +6809,19 @@ declare class EfDatepickerAdvancedComponent extends AbstractEfFormControl implem
|
|
|
6627
6809
|
/** Commit a typed `HH:mm` value to the start or end draft time. */
|
|
6628
6810
|
commitTimeInput(which: 'start' | 'end', el: HTMLInputElement): void;
|
|
6629
6811
|
toggle(event: MouseEvent): void;
|
|
6630
|
-
|
|
6812
|
+
/**
|
|
6813
|
+
* Close the panel. `returnFocus` puts focus back on the trigger; Escape
|
|
6814
|
+
* and a commit pass it, so a keyboard user is not dropped on <body>
|
|
6815
|
+
* when the panel's DOM goes. An outside click or another picker opening
|
|
6816
|
+
* does not, since the user has just put focus somewhere else.
|
|
6817
|
+
*/
|
|
6818
|
+
close(returnFocus?: boolean): void;
|
|
6819
|
+
/** The trigger sits behind an `@if` (field box or pill), so find it now. */
|
|
6820
|
+
private focusTrigger;
|
|
6631
6821
|
onDocumentClick(event: MouseEvent): void;
|
|
6822
|
+
/** The phone sheet is aria-modal, so Tab wraps inside it instead of
|
|
6823
|
+
* reaching the page behind the backdrop. */
|
|
6824
|
+
onTab(event: KeyboardEvent): void;
|
|
6632
6825
|
onEscape(): void;
|
|
6633
6826
|
selectPreset(preset: EfDatePreset): void;
|
|
6634
6827
|
isActivePreset(key: EfDatePresetKey): boolean;
|
|
@@ -6652,12 +6845,22 @@ declare class EfDatepickerAdvancedComponent extends AbstractEfFormControl implem
|
|
|
6652
6845
|
commitDateInput(which: 'start' | 'end', el: HTMLInputElement): void;
|
|
6653
6846
|
private attachPortal;
|
|
6654
6847
|
private detachPortal;
|
|
6655
|
-
/**
|
|
6656
|
-
*
|
|
6657
|
-
*
|
|
6658
|
-
*
|
|
6659
|
-
|
|
6848
|
+
/** The sheet is modal and sits at the end of <body>, far from the
|
|
6849
|
+
* trigger in tab order, so focus moves into it: the picked day, else
|
|
6850
|
+
* today, else the first day of the month. A day, not the date input,
|
|
6851
|
+
* which would raise the on-screen keyboard over the calendar. */
|
|
6852
|
+
private focusIntoSheet;
|
|
6853
|
+
private schedulePosition;
|
|
6854
|
+
/** Place the popover against the trigger (see `placeDpPanel`). Sizes
|
|
6855
|
+
* come from offsetWidth / scrollHeight, not getBoundingClientRect:
|
|
6856
|
+
* the entry animation scales the panel, and scrollHeight still tells
|
|
6857
|
+
* the natural height once a previous placement capped it. */
|
|
6660
6858
|
private positionPanel;
|
|
6859
|
+
/** The trigger button's box, not the wrapper's: the wrapper also holds
|
|
6860
|
+
* the label above and the error text below. */
|
|
6861
|
+
private triggerRect;
|
|
6862
|
+
/** The nearest `dir` wins (the app sets it on <html>); computed style covers a page without one. */
|
|
6863
|
+
private isRtl;
|
|
6661
6864
|
/** Click handling: 1st click sets start, 2nd click sets end (or swap).
|
|
6662
6865
|
* Field single-date mode short-circuits — one click commits & closes. */
|
|
6663
6866
|
selectDay(day: Date): void;
|
|
@@ -6900,5 +7103,5 @@ declare class EfEmailMetricsCardComponent {
|
|
|
6900
7103
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfEmailMetricsCardComponent, "ef-email-metrics-card", never, { "metrics": { "alias": "metrics"; "required": false; "isSignal": true; }; "recentEvents": { "alias": "recentEvents"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "rangeChange": "rangeChange"; }, never, never, true, never>;
|
|
6901
7104
|
}
|
|
6902
7105
|
|
|
6903
|
-
export { EF_BADGE_BG_COLORS, EF_BADGE_BG_LIGHT_COLORS, EF_BADGE_BORDER_COLORS, EF_BADGE_DEFAULTS, EF_BADGE_TEXT_COLORS, EF_CHART_PALETTE, EF_DATATABLE_ACTIONS_DEFAULTS, EF_DATATABLE_COLUMN_DEFAULTS, EF_DATATABLE_DEFAULTS, EF_DATA_CARD_MOBILE_LAYOUT, EF_SEO_DEFAULT_LOCALES, EF_STATUS_COLORS, EF_STATUS_COLOR_ALIASES, EfAboutDialogComponent, EfActivationFilterComponent, EfAppMainComponent, EfAppShellComponent, EfAppShellMobileComponent, EfAppTopComponent, EfBadgeComponent, EfBlockUiComponent, EfBlockableDivComponent, EfBottomSheetComponent, EfBuildStampComponent, EfBulkBarComponent, EfButtonComponent, EfButtonGroupComponent, EfCardComponent, EfChangeHistoryComponent, EfChangePasswordComponent, EfChartComponent, EfCheckboxComponent, EfClearButtonComponent, EfColumnHeaderTemplateDirective, EfColumnTemplateDirective, EfCompactPipe, EfConfirmDialogComponent, EfCurrencyPipe, EfDataCardComponent, EfDatatableActionBarComponent, EfDatatableComponent, EfDatepickerAdvancedComponent, EfDatepickerComponent, EfDetailToolbarComponent, EfDialogComponent, EfEmailMetricsCardComponent, EfEmptyStateComponent, EfFabComponent, EfFieldsetComponent, EfFileUploadComponent, EfFilterDrawerComponent, EfFilterPillComponent, EfFormGridComponent, EfIdentityThumbComponent, EfInputNumberComponent, EfInputTextComponent, EfKpiCardComponent, EfLabelComponent, EfModuleRailComponent, EfModuleSideComponent, EfMultiSelectComponent, EfOrderBuilderComponent, EfOrderSummaryComponent, EfOverflowTooltipDirective, EfPagerComponent, EfPasswordComponent, EfPdfPreviewComponent, EfPillGroupComponent, EfPresetPillComponent, EfPriceDisplayComponent, EfProductCatalogueComponent, EfProductCatalogueFilterComponent, EfProductPickerComponent, EfProductTypeaheadComponent, EfProfileChipComponent, EfProfileMenuComponent, EfPulseComponent, EfQuantitySelectorComponent, EfQuantityStepperComponent, EfRadioComponent, EfRankListComponent, EfReadOnlyDirective, EfRowActionsComponent, EfSearchToolbarComponent, EfSelectButtonComponent, EfSelectComponent, EfSeoFieldsComponent, EfSeoPreviewComponent, EfServerErrorsDirective, EfSessionIdleDialogComponent, EfShortcutsDialogComponent, EfSkeletonComponent, EfSmartBarComponent, EfStatsComponent, EfStatusChipComponent, EfTabPanelDirective, EfTabsComponent, EfTextareaComponent, EfThemeConfiguratorComponent, EfThemeToggleComponent, EfTimelineComponent, EfToastRegionComponent, EfToggleSwitchComponent, EfToolbarComponent, EfTooltipDirective, EfTotalsComponent, OrderEntityHelper, OrderLineItemHelper, TruncatePipe, buildChartConfig, defaultUnitPrice, getColumnAlignment, mergeColumnDefaults, resolveEfStatusColor };
|
|
6904
|
-
export type { CatalogueProduct, CatalogueProductVariant, CategoryAssignment, CategoryGroup, CategoryItem, DatatableSearchEntity, DocumentConfig, EfAboutServer, EfBadgeColor, EfBadgeConfig, EfBadgeSize, EfBadgeVariant, EfButtonComptoirSeverity, EfButtonPrimeNGSeverity, EfButtonSeverity, EfChangeHistoryEntry, EfChangeHistoryFieldChange, EfChangePasswordSubmit, EfChartSeries, EfChartType, EfDataCardMobileLayout, EfDataCardRowAction, EfDataCardRowActionState, EfDatatableActions, EfDatatableColumn, EfDatatableColumnAlign, EfDatatableColumnType, EfDatatableConfig, EfDateFieldOutput, EfDateFieldValue, EfDatePreset, EfDialogAction, EfDialogSeverity, EfDialogSize, EfFabPosition, EfFileRejectReason, EfFileRejection, EfIdentityThumbSize, EfKpiDeltaTone, EfKpiSparkline, EfOrderPriceList, EfOrderRecipient, EfPillItem, EfPresetItem, EfProductPickerItem, EfProductPickerQuery, EfProfileMenuItem, EfRankRow, EfRowAction, EfSeoLocale, EfSeoPatch, EfSkeletonVariant, EfStatsRow, EfStatusColor, EfStatusReferenceItem, EfTabItem, EfTabsModule, EfTabsVariant, EfTimelineItem, EfTimelineState, EfToastRegionPosition, EfTotalsGrand, EfTotalsRow, HighlightSegment, OrderChangeInfo, OrderEntity, OrderLineItem, OrderProductsSummary, OrderSummaryItem, ProductCountGroup, ProductCountGroupLabel, ProductTypeaheadRow, ProductTypeaheadSelection, ProductWithCountGroup, SelectedFilter, ValidationResult };
|
|
7106
|
+
export { EF_BADGE_BG_COLORS, EF_BADGE_BG_LIGHT_COLORS, EF_BADGE_BORDER_COLORS, EF_BADGE_DEFAULTS, EF_BADGE_TEXT_COLORS, EF_CHART_PALETTE, EF_DATATABLE_ACTIONS_DEFAULTS, EF_DATATABLE_COLUMN_DEFAULTS, EF_DATATABLE_DEFAULTS, EF_DATA_CARD_MOBILE_LAYOUT, EF_HTML_PREVIEW_DEFAULT_TITLE_KEY, EF_SEO_DEFAULT_LOCALES, EF_STATUS_COLORS, EF_STATUS_COLOR_ALIASES, EfAboutDialogComponent, EfActivationFilterComponent, EfAppMainComponent, EfAppShellComponent, EfAppShellMobileComponent, EfAppTopComponent, EfBadgeComponent, EfBlockUiComponent, EfBlockableDivComponent, EfBottomSheetComponent, EfBuildStampComponent, EfBulkBarComponent, EfButtonComponent, EfButtonGroupComponent, EfCardComponent, EfChangeHistoryComponent, EfChangePasswordComponent, EfChartComponent, EfCheckboxComponent, EfClearButtonComponent, EfColumnHeaderTemplateDirective, EfColumnTemplateDirective, EfCompactPipe, EfConfirmDialogComponent, EfCurrencyPipe, EfDataCardComponent, EfDatatableActionBarComponent, EfDatatableComponent, EfDatepickerAdvancedComponent, EfDatepickerComponent, EfDetailToolbarComponent, EfDialogComponent, EfEmailMetricsCardComponent, EfEmptyStateComponent, EfFabComponent, EfFieldsetComponent, EfFileUploadComponent, EfFilterDrawerComponent, EfFilterPillComponent, EfFormGridComponent, EfHtmlPreviewComponent, EfIdentityThumbComponent, EfInputNumberComponent, EfInputTextComponent, EfKpiCardComponent, EfLabelComponent, EfModuleRailComponent, EfModuleSideComponent, EfMultiSelectComponent, EfOrderBuilderComponent, EfOrderSummaryComponent, EfOverflowTooltipDirective, EfPagerComponent, EfPasswordComponent, EfPdfPreviewComponent, EfPillGroupComponent, EfPresetPillComponent, EfPriceDisplayComponent, EfProductCatalogueComponent, EfProductCatalogueFilterComponent, EfProductPickerComponent, EfProductTypeaheadComponent, EfProfileChipComponent, EfProfileMenuComponent, EfPulseComponent, EfQuantitySelectorComponent, EfQuantityStepperComponent, EfRadioComponent, EfRankListComponent, EfReadOnlyDirective, EfRowActionsComponent, EfSearchToolbarComponent, EfSelectButtonComponent, EfSelectComponent, EfSeoFieldsComponent, EfSeoPreviewComponent, EfServerErrorsDirective, EfSessionIdleDialogComponent, EfShortcutsDialogComponent, EfSkeletonComponent, EfSmartBarComponent, EfStatsComponent, EfStatusChipComponent, EfTabPanelDirective, EfTabsComponent, EfTextareaComponent, EfThemeConfiguratorComponent, EfThemeToggleComponent, EfTimelineComponent, EfToastRegionComponent, EfToggleSwitchComponent, EfToolbarComponent, EfTooltipDirective, EfTotalsComponent, OrderEntityHelper, OrderLineItemHelper, TruncatePipe, buildChartConfig, defaultUnitPrice, getColumnAlignment, mergeColumnDefaults, resolveEfStatusColor };
|
|
7107
|
+
export type { CatalogueProduct, CatalogueProductVariant, CategoryAssignment, CategoryGroup, CategoryItem, DatatableSearchEntity, DocumentConfig, EfAboutServer, EfBadgeColor, EfBadgeConfig, EfBadgeSize, EfBadgeVariant, EfButtonComptoirSeverity, EfButtonPrimeNGSeverity, EfButtonSeverity, EfChangeHistoryEntry, EfChangeHistoryFieldChange, EfChangeHistoryValueItem, EfChangePasswordSubmit, EfChartSeries, EfChartType, EfDataCardMobileLayout, EfDataCardRowAction, EfDataCardRowActionState, EfDatatableActions, EfDatatableColumn, EfDatatableColumnAlign, EfDatatableColumnType, EfDatatableConfig, EfDateFieldOutput, EfDateFieldValue, EfDatePreset, EfDialogAction, EfDialogSeverity, EfDialogSize, EfFabPosition, EfFileRejectReason, EfFileRejection, EfIdentityThumbSize, EfKpiDeltaTone, EfKpiSparkline, EfOrderPriceList, EfOrderRecipient, EfPillItem, EfPresetItem, EfProductPickerItem, EfProductPickerQuery, EfProfileMenuItem, EfRankRow, EfRowAction, EfSeoLocale, EfSeoPatch, EfSkeletonVariant, EfStatsRow, EfStatusColor, EfStatusReferenceItem, EfTabItem, EfTabsModule, EfTabsVariant, EfTimelineItem, EfTimelineState, EfToastRegionPosition, EfTotalsGrand, EfTotalsRow, HighlightSegment, OrderChangeInfo, OrderEntity, OrderLineItem, OrderProductsSummary, OrderSummaryItem, ProductCountGroup, ProductCountGroupLabel, ProductTypeaheadRow, ProductTypeaheadSelection, ProductWithCountGroup, SelectedFilter, ValidationResult };
|