@elasticias/ui 1.0.6 → 1.0.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elasticias/ui",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.0.0",
6
6
  "@angular/core": "^21.0.0",
@@ -368,13 +368,26 @@
368
368
 
369
369
  .smart-bar {
370
370
  display: grid;
371
- grid-template-columns: 1fr auto;
371
+ grid-template-columns: minmax(0, 1fr) auto;
372
372
  gap: var(--s-3);
373
373
  align-items: stretch;
374
374
  background: transparent;
375
375
  padding: 6px 8px 6px 12px;
376
376
  }
377
377
 
378
+ /* On a phone the search and its buttons cannot share a line: the input
379
+ collapses to nothing or the buttons push the row off-screen. */
380
+ @media (max-width: 767px) {
381
+ .smart-bar {
382
+ grid-template-columns: minmax(0, 1fr);
383
+ padding: 8px;
384
+ }
385
+
386
+ .smart-bar .actions {
387
+ justify-content: flex-end;
388
+ }
389
+ }
390
+
378
391
  .smart-bar .search {
379
392
  position: relative;
380
393
  display: flex;
@@ -694,6 +707,22 @@
694
707
  position: relative;
695
708
  }
696
709
 
710
+ /* ──────────── ROUTED SCREEN HOSTS ───────────────────────────────
711
+ Screens are single-column grids by convention, and a grid item's
712
+ default min-width is auto — so the screen's column sized itself to
713
+ its widest child (a filter bar, a table) and every sibling stretched
714
+ to match, which on a phone meant a 726px page inside a 390px window.
715
+
716
+ This lives in the global sheet rather than ef-app-main's own styles:
717
+ the screen is projected content, so a component-scoped rule there
718
+ never matches it. A screen that genuinely wants its own columns
719
+ declares them in its component styles, which win on specificity. */
720
+
721
+ .ef-app-main__content > * {
722
+ min-width: 0;
723
+ grid-template-columns: minmax(0, 1fr);
724
+ }
725
+
697
726
  /* ──────────── RESULTS BAR + TABLE WRAPPER ──────────────────────── */
698
727
 
699
728
  .tbl-wrap {
@@ -1039,6 +1068,7 @@
1039
1068
  flex-wrap: wrap;
1040
1069
  }
1041
1070
 
1071
+
1042
1072
  .detail-toolbar .ref {
1043
1073
  font-family: 'JetBrains Mono', ui-monospace, monospace;
1044
1074
  font-size: 14px;
@@ -1120,6 +1150,11 @@
1120
1150
  .card-body {
1121
1151
  padding: 16px;
1122
1152
  display: grid;
1153
+ /* minmax(0, 1fr): a grid item's default min-width is auto, so a wide child
1154
+ — a table, a nested data card — sized this column and pushed the card
1155
+ past its own container. Same trap as the content area and the screen
1156
+ host; this is the third place it bites. */
1157
+ grid-template-columns: minmax(0, 1fr);
1123
1158
  gap: var(--s-3);
1124
1159
  }
1125
1160
 
@@ -1160,8 +1195,8 @@
1160
1195
  grid-column: span 12;
1161
1196
  }
1162
1197
 
1163
- @media (max-width: 720px) {
1164
- .form-grid > [class^='col-'] {
1198
+ @media (max-width: 767px) {
1199
+ .form-grid > [class*='col-'] {
1165
1200
  grid-column: span 12;
1166
1201
  }
1167
1202
  }
@@ -1666,6 +1701,13 @@
1666
1701
  display: inline-flex;
1667
1702
  align-items: center;
1668
1703
  gap: 10px;
1704
+ /* A pill radius on a box that wraps to five lines is a circle, which is
1705
+ what a long range ("15 jan. 2021 — 7 fév. 2026") did in a narrow
1706
+ column. One line, truncated if it must be. */
1707
+ white-space: nowrap;
1708
+ overflow: hidden;
1709
+ min-width: 0;
1710
+ max-width: 100%;
1669
1711
  cursor: pointer;
1670
1712
  transition: all var(--t-fast) var(--ease-out);
1671
1713
  min-height: 38px;
@@ -2691,6 +2733,11 @@
2691
2733
  .card-body {
2692
2734
  padding: 16px;
2693
2735
  display: grid;
2736
+ /* minmax(0, 1fr): a grid item's default min-width is auto, so a wide child
2737
+ — a table, a nested data card — sized this column and pushed the card
2738
+ past its own container. Same trap as the content area and the screen
2739
+ host; this is the third place it bites. */
2740
+ grid-template-columns: minmax(0, 1fr);
2694
2741
  gap: var(--s-3);
2695
2742
  }
2696
2743
 
@@ -2733,8 +2780,8 @@
2733
2780
  grid-column: span 12;
2734
2781
  }
2735
2782
 
2736
- @media (max-width: 720px) {
2737
- .ef-form-grid > [class^='col-'] {
2783
+ @media (max-width: 767px) {
2784
+ .ef-form-grid > [class*='col-'] {
2738
2785
  grid-column: span 12;
2739
2786
  }
2740
2787
  }
@@ -4304,3 +4351,33 @@ input.ef-input[type='number'] {
4304
4351
  transform: rotate(360deg);
4305
4352
  }
4306
4353
  }
4354
+
4355
+ /* ──────────── SMALL-SCREEN OVERRIDES ────────────────────────────
4356
+ Last in the file on purpose: a media query adds no specificity, so a
4357
+ rule declared later in the sheet beats it regardless of viewport.
4358
+ Anything that overrides a base rule for small screens belongs here. */
4359
+
4360
+ /* The detail toolbar is full-bleed — it cancels the content gutter with a
4361
+ negative margin. That gutter is 16px on a phone, not 24px, so the bleed
4362
+ has to match or the band hangs 16px off the right edge. */
4363
+ @media (max-width: 767px) {
4364
+ .detail-toolbar {
4365
+ top: calc(-1 * var(--s-4));
4366
+ margin: calc(-1 * var(--s-4)) calc(-1 * var(--s-4)) 0;
4367
+ padding: 10px var(--s-4);
4368
+ }
4369
+ }
4370
+
4371
+ /* The date trigger's value can be long; on a phone it takes the room it has
4372
+ and truncates rather than wrapping the pill out of shape. */
4373
+ @media (max-width: 767px) {
4374
+ .dp__trigger {
4375
+ width: 100%;
4376
+ justify-content: flex-start;
4377
+ }
4378
+
4379
+ .dp__trigger .dp__value {
4380
+ overflow: hidden;
4381
+ text-overflow: ellipsis;
4382
+ }
4383
+ }
@@ -1,12 +1,12 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { PipeTransform, OnInit, OnChanges, TemplateRef, EventEmitter, AfterContentInit, OnDestroy, SimpleChanges, AfterViewInit } from '@angular/core';
2
+ import { PipeTransform, OnInit, OnChanges, TemplateRef, EventEmitter, AfterContentInit, OnDestroy, SimpleChanges, InjectionToken, AfterViewInit } from '@angular/core';
3
3
  import { Menu } from 'primeng/menu';
4
4
  import * as _elasticias_core from '@elasticias/core';
5
- import { EfModule, EfModuleId, EfNavSection, EfNavItem, EfToast, EfToastAction, EfThemeConfigService } from '@elasticias/core';
5
+ import { EfModule, EfNavSection, EfNavItem, EfModuleId, EfToast, EfToastAction, EfThemeConfigService } from '@elasticias/core';
6
6
  import * as i1 from 'primeng/tooltip';
7
7
  import * as _elasticias_screens from '@elasticias/screens';
8
8
  import { ScreenContext, EfDetailToolbarAction, EfSearchToolbarAction, EfDataCardColumn, EfDataCardSort, EfDateRange, EfDatePresetKey } from '@elasticias/screens';
9
- export { EfDataCardColumn, EfDataCardColumnAlign, EfDataCardColumnType, EfDataCardSort, EfDataCardSortDirection, EfDatePresetKey, EfDateRange, EfDetailToolbarAction, EfSearchToolbarAction } from '@elasticias/screens';
9
+ export { EfDataCardColumn, EfDataCardColumnAlign, EfDataCardColumnMobileRole, EfDataCardColumnType, EfDataCardSort, EfDataCardSortDirection, EfDatePresetKey, EfDateRange, EfDetailToolbarAction, EfSearchToolbarAction } from '@elasticias/screens';
10
10
  import { BlockableUI } from 'primeng/api';
11
11
  import { SafeResourceUrl } from '@angular/platform-browser';
12
12
  import { ChartConfiguration } from 'chart.js';
@@ -1370,13 +1370,34 @@ declare class EfToolbarComponent {
1370
1370
  */
1371
1371
  declare class EfAppShellComponent {
1372
1372
  private readonly vp;
1373
+ private readonly perms;
1374
+ private readonly active;
1375
+ private readonly router;
1373
1376
  /** Show the 3px module-color stripe at the top of the content area. */
1374
1377
  stripe: boolean;
1375
1378
  readonly viewport: _angular_core.Signal<_elasticias_core.EfViewport>;
1376
1379
  readonly isMobile: _angular_core.Signal<boolean>;
1377
1380
  readonly showSide: _angular_core.Signal<boolean>;
1381
+ readonly activeId: _angular_core.Signal<_elasticias_core.EfModuleId>;
1382
+ readonly switcherOpen: _angular_core.WritableSignal<boolean>;
1383
+ /** Five tabs is what fits a phone; the rest live in the sheet. */
1384
+ readonly tabs: _angular_core.Signal<EfModule[]>;
1385
+ readonly allVisible: _angular_core.Signal<readonly EfModule[]>;
1386
+ /**
1387
+ * The screens inside the active module, for the mobile sheet.
1388
+ *
1389
+ * On a phone the side nav is not rendered, and the tab bar switches
1390
+ * modules — so without this there was no way to reach any screen except
1391
+ * the module's default one. Same filtering as `ef-module-side`, because
1392
+ * it answers the same question.
1393
+ */
1394
+ readonly moduleSections: _angular_core.Signal<EfNavSection[]>;
1395
+ onNavigate(item: EfNavItem): void;
1396
+ openSwitcher(): void;
1397
+ onSwitcherChange(open: boolean): void;
1398
+ onSelect(module: EfModule): void;
1378
1399
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfAppShellComponent, never>;
1379
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfAppShellComponent, "ef-app-shell", never, { "stripe": { "alias": "stripe"; "required": false; }; }, {}, never, ["[breadcrumb]", "[search]", "[actions]", "[fab]", "*", "[logo]", "[side-header-meta]", "[side-footer]", "[breadcrumb]", "[actions]", "*"], true, never>;
1400
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfAppShellComponent, "ef-app-shell", never, { "stripe": { "alias": "stripe"; "required": false; }; }, {}, never, ["[logo]", "[side-header-meta]", "[side-footer]", "[breadcrumb]", "[search]", "[actions]", "*", "[fab]"], true, never>;
1380
1401
  }
1381
1402
 
1382
1403
  /**
@@ -3910,6 +3931,31 @@ declare class EfDatatableActionBarComponent {
3910
3931
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfDatatableActionBarComponent, "ef-datatable-actionbar", never, { "context": { "alias": "context"; "required": false; }; "state": { "alias": "state"; "required": false; }; "duplicateButton": { "alias": "duplicateButton"; "required": false; }; "editButton": { "alias": "editButton"; "required": false; }; "deleteButton": { "alias": "deleteButton"; "required": false; }; }, { "duplicate": "duplicate"; "edit": "edit"; "delete": "delete"; }, never, never, true, never>;
3911
3932
  }
3912
3933
 
3934
+ /**
3935
+ * How `ef-data-card` presents a row once the table becomes a list.
3936
+ *
3937
+ * - `row` — a dense two-line row: the primary field, a muted secondary line,
3938
+ * a status badge and the actions menu. Roughly eight to a screen,
3939
+ * which is what a list of thousands needs.
3940
+ * - `card` — one card per record, every field on its own labelled line.
3941
+ * Easier to read a single record, at about a record and a half
3942
+ * per screen.
3943
+ *
3944
+ * Both expand to the same labelled detail; they differ only in the collapsed
3945
+ * state.
3946
+ */
3947
+ type EfDataCardMobileLayout = 'row' | 'card';
3948
+ /**
3949
+ * App-wide default, so screens don't drift apart. Provide it once at the
3950
+ * application root; a screen that genuinely needs the other shape overrides
3951
+ * it with `[mobileLayout]`.
3952
+ *
3953
+ * ```ts
3954
+ * { provide: EF_DATA_CARD_MOBILE_LAYOUT, useValue: 'card' }
3955
+ * ```
3956
+ */
3957
+ declare const EF_DATA_CARD_MOBILE_LAYOUT: InjectionToken<EfDataCardMobileLayout>;
3958
+
3913
3959
  /**
3914
3960
  * Declarative row-action item consumed by `ef-row-actions`.
3915
3961
  *
@@ -3990,6 +4036,63 @@ type EfTableDensity = 'compact' | 'default' | 'comfortable';
3990
4036
  * ```
3991
4037
  */
3992
4038
  declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
4039
+ private readonly viewport;
4040
+ private readonly configuredMobileLayout;
4041
+ readonly isMobile: _angular_core.Signal<boolean>;
4042
+ /** Per-screen override of the app-wide default. */
4043
+ readonly mobileLayout: _angular_core.InputSignal<EfDataCardMobileLayout>;
4044
+ protected readonly effectiveMobileLayout: _angular_core.Signal<EfDataCardMobileLayout>;
4045
+ /** Rows currently showing their detail, keyed the same way as trackByRow. */
4046
+ private readonly expandedRows;
4047
+ protected isExpanded(row: unknown, index: number): boolean;
4048
+ /**
4049
+ * The row head is the expander, but the actions menu lives inside it.
4050
+ * Filtering here rather than stopping propagation on a wrapper keeps the
4051
+ * wrapper a plain span — a click handler on one would need a keyboard
4052
+ * equivalent and a tabindex to be usable, which a decorative box should
4053
+ * not have.
4054
+ */
4055
+ protected onRowHeadActivate(row: unknown, index: number, event: Event): void;
4056
+ protected toggleExpanded(row: unknown, index: number): void;
4057
+ private rowKey;
4058
+ /**
4059
+ * Columns that carry data on mobile, in role order. Structural columns
4060
+ * (select, actions) are handled by the row chrome, not as fields.
4061
+ */
4062
+ private readonly mobileColumns;
4063
+ /**
4064
+ * The role a column plays on mobile. An explicit `mobile` wins; otherwise
4065
+ * it is derived so every existing screen gets a sensible list without
4066
+ * touching its column definitions: the first text-ish column is what you
4067
+ * scan for, a status chip is a badge, money and dates sit on the muted
4068
+ * line, and the rest waits behind the expander.
4069
+ */
4070
+ protected roleOf(col: {
4071
+ id: string;
4072
+ mobile?: string;
4073
+ type?: string;
4074
+ }): string;
4075
+ private readonly derivedPrimaryId;
4076
+ protected readonly primaryColumn: _angular_core.Signal<EfDataCardColumn>;
4077
+ protected readonly statusColumn: _angular_core.Signal<EfDataCardColumn>;
4078
+ protected readonly secondaryColumns: _angular_core.Signal<EfDataCardColumn[]>;
4079
+ /**
4080
+ * Fields shown once a row opens. The primary column is excluded: the
4081
+ * header already carries it, and repeating it is the first thing you
4082
+ * notice. Status is excluded for the same reason.
4083
+ */
4084
+ protected readonly detailColumns: _angular_core.Signal<EfDataCardColumn[]>;
4085
+ /** How many fields a card shows before "view more". */
4086
+ private static readonly CARD_PREVIEW_FIELDS;
4087
+ /** Fields a collapsed card shows. A row shows none until it opens. */
4088
+ protected readonly cardPreviewColumns: _angular_core.Signal<EfDataCardColumn[]>;
4089
+ protected readonly hasDetail: _angular_core.Signal<boolean>;
4090
+ /** Only worth a toggle when opening actually reveals something. */
4091
+ protected readonly hasMoreThanPreview: _angular_core.Signal<boolean>;
4092
+ /** Fields visible for a row right now, given layout and open state. */
4093
+ protected visibleDetail(row: unknown, index: number): ReadonlyArray<{
4094
+ id: string;
4095
+ }>;
3993
4096
  private readonly refDataService;
3994
4097
  readonly columns: _angular_core.InputSignal<readonly EfDataCardColumn[]>;
3995
4098
  readonly rows: _angular_core.InputSignal<readonly TRow[]>;
@@ -4113,7 +4216,7 @@ declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
4113
4216
  trackByRow: (_: number, row: TRow) => unknown;
4114
4217
  trackByColumn: (_: number, col: EfDataCardColumn) => string;
4115
4218
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfDataCardComponent<any>, never>;
4116
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfDataCardComponent<any>, "ef-data-card", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "trackByField": { "alias": "trackByField"; "required": false; "isSignal": true; }; "pageNumber": { "alias": "pageNumber"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "hidePager": { "alias": "hidePager"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "loadingKey": { "alias": "loadingKey"; "required": false; "isSignal": true; }; "rowDoubleClickable": { "alias": "rowDoubleClickable"; "required": false; "isSignal": true; }; "hasActionsColumn": { "alias": "hasActionsColumn"; "required": false; "isSignal": true; }; "rowActionsContext": { "alias": "rowActionsContext"; "required": false; "isSignal": true; }; "showViewAction": { "alias": "showViewAction"; "required": false; "isSignal": true; }; "showEditAction": { "alias": "showEditAction"; "required": false; "isSignal": true; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; "isSignal": true; }; "showDeleteAction": { "alias": "showDeleteAction"; "required": false; "isSignal": true; }; "showDensityControl": { "alias": "showDensityControl"; "required": false; "isSignal": true; }; "showColumnPicker": { "alias": "showColumnPicker"; "required": false; "isSignal": true; }; "tableKey": { "alias": "tableKey"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "sortChange": "sortChange"; "rowDoubleClick": "rowDoubleClick"; "rowAction": "rowAction"; }, ["bodyTemplates", "headerTemplates"], ["[tbl-head-info]", "[tbl-head-actions]", "[empty-state]"], true, never>;
4219
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfDataCardComponent<any>, "ef-data-card", never, { "mobileLayout": { "alias": "mobileLayout"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "trackByField": { "alias": "trackByField"; "required": false; "isSignal": true; }; "pageNumber": { "alias": "pageNumber"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "totalCount": { "alias": "totalCount"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "hidePager": { "alias": "hidePager"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "errorMsg": { "alias": "errorMsg"; "required": false; "isSignal": true; }; "loadingKey": { "alias": "loadingKey"; "required": false; "isSignal": true; }; "rowDoubleClickable": { "alias": "rowDoubleClickable"; "required": false; "isSignal": true; }; "hasActionsColumn": { "alias": "hasActionsColumn"; "required": false; "isSignal": true; }; "rowActionsContext": { "alias": "rowActionsContext"; "required": false; "isSignal": true; }; "showViewAction": { "alias": "showViewAction"; "required": false; "isSignal": true; }; "showEditAction": { "alias": "showEditAction"; "required": false; "isSignal": true; }; "showDuplicateAction": { "alias": "showDuplicateAction"; "required": false; "isSignal": true; }; "showDeleteAction": { "alias": "showDeleteAction"; "required": false; "isSignal": true; }; "showDensityControl": { "alias": "showDensityControl"; "required": false; "isSignal": true; }; "showColumnPicker": { "alias": "showColumnPicker"; "required": false; "isSignal": true; }; "tableKey": { "alias": "tableKey"; "required": false; "isSignal": true; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "sortChange": "sortChange"; "rowDoubleClick": "rowDoubleClick"; "rowAction": "rowAction"; }, ["bodyTemplates", "headerTemplates"], ["[tbl-head-info]", "[tbl-head-actions]", "[empty-state-mobile]", "[empty-state]"], true, never>;
4117
4220
  }
4118
4221
 
4119
4222
  /**
@@ -5127,5 +5230,5 @@ declare class EfEmailMetricsCardComponent {
5127
5230
  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>;
5128
5231
  }
5129
5232
 
5130
- 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_STATUS_COLORS, EF_STATUS_COLOR_ALIASES, EfActivationFilterComponent, EfAppMainComponent, EfAppShellComponent, EfAppShellMobileComponent, EfAppTopComponent, EfBadgeComponent, EfBlockUiComponent, EfBlockableDivComponent, EfBottomSheetComponent, EfBuildStampComponent, EfBulkBarComponent, EfButtonComponent, EfButtonGroupComponent, EfCardComponent, EfChangeHistoryComponent, EfChartComponent, EfCheckboxComponent, EfClearButtonComponent, EfColumnHeaderTemplateDirective, EfColumnTemplateDirective, EfCompactPipe, EfConfirmDialogComponent, EfCurrencyPipe, EfDataCardComponent, EfDatatableActionBarComponent, EfDatatableComponent, EfDatepickerAdvancedComponent, EfDatepickerComponent, EfDetailToolbarComponent, EfDialogComponent, EfEmailMetricsCardComponent, EfEmptyStateComponent, EfFabComponent, EfFieldsetComponent, EfFilterDrawerComponent, EfFilterPillComponent, EfFormGridComponent, EfInputNumberComponent, EfInputTextComponent, EfKpiCardComponent, EfLabelComponent, EfModuleRailComponent, EfModuleSideComponent, EfMultiSelectComponent, EfOrderBuilderComponent, EfOrderSummaryComponent, EfPagerComponent, EfPasswordComponent, EfPdfPreviewComponent, EfPillGroupComponent, EfPresetPillComponent, EfPriceDisplayComponent, EfProductCatalogueComponent, EfProductCatalogueFilterComponent, EfProductTypeaheadComponent, EfProfileChipComponent, EfPulseComponent, EfQuantitySelectorComponent, EfQuantityStepperComponent, EfRankListComponent, EfRowActionsComponent, EfSearchToolbarComponent, EfSelectButtonComponent, EfSelectComponent, EfServerErrorsDirective, EfSkeletonComponent, EfSmartBarComponent, EfStatsComponent, EfStatusChipComponent, EfTabPanelDirective, EfTabsComponent, EfTextareaComponent, EfThemeConfiguratorComponent, EfThemeToggleComponent, EfTimelineComponent, EfToastRegionComponent, EfToggleSwitchComponent, EfToolbarComponent, EfTooltipDirective, EfTotalsComponent, OrderEntityHelper, OrderLineItemHelper, TruncatePipe, buildChartConfig, getColumnAlignment, mergeColumnDefaults, resolveEfStatusColor };
5131
- export type { CatalogueProduct, CatalogueProductVariant, CategoryAssignment, CategoryGroup, CategoryItem, DatatableSearchEntity, DocumentConfig, EfBadgeColor, EfBadgeConfig, EfBadgeSize, EfBadgeVariant, EfButtonComptoirSeverity, EfButtonPrimeNGSeverity, EfButtonSeverity, EfChangeHistoryEntry, EfChangeHistoryFieldChange, EfChartSeries, EfChartType, EfDataCardRowAction, EfDatatableActions, EfDatatableColumn, EfDatatableColumnAlign, EfDatatableColumnType, EfDatatableConfig, EfDateFieldValue, EfDatePreset, EfDialogAction, EfDialogSeverity, EfDialogSize, EfFabPosition, EfKpiDeltaTone, EfKpiSparkline, EfPillItem, EfPresetItem, EfRankRow, EfRowAction, 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 };
5233
+ 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_STATUS_COLORS, EF_STATUS_COLOR_ALIASES, EfActivationFilterComponent, EfAppMainComponent, EfAppShellComponent, EfAppShellMobileComponent, EfAppTopComponent, EfBadgeComponent, EfBlockUiComponent, EfBlockableDivComponent, EfBottomSheetComponent, EfBuildStampComponent, EfBulkBarComponent, EfButtonComponent, EfButtonGroupComponent, EfCardComponent, EfChangeHistoryComponent, EfChartComponent, EfCheckboxComponent, EfClearButtonComponent, EfColumnHeaderTemplateDirective, EfColumnTemplateDirective, EfCompactPipe, EfConfirmDialogComponent, EfCurrencyPipe, EfDataCardComponent, EfDatatableActionBarComponent, EfDatatableComponent, EfDatepickerAdvancedComponent, EfDatepickerComponent, EfDetailToolbarComponent, EfDialogComponent, EfEmailMetricsCardComponent, EfEmptyStateComponent, EfFabComponent, EfFieldsetComponent, EfFilterDrawerComponent, EfFilterPillComponent, EfFormGridComponent, EfInputNumberComponent, EfInputTextComponent, EfKpiCardComponent, EfLabelComponent, EfModuleRailComponent, EfModuleSideComponent, EfMultiSelectComponent, EfOrderBuilderComponent, EfOrderSummaryComponent, EfPagerComponent, EfPasswordComponent, EfPdfPreviewComponent, EfPillGroupComponent, EfPresetPillComponent, EfPriceDisplayComponent, EfProductCatalogueComponent, EfProductCatalogueFilterComponent, EfProductTypeaheadComponent, EfProfileChipComponent, EfPulseComponent, EfQuantitySelectorComponent, EfQuantityStepperComponent, EfRankListComponent, EfRowActionsComponent, EfSearchToolbarComponent, EfSelectButtonComponent, EfSelectComponent, EfServerErrorsDirective, EfSkeletonComponent, EfSmartBarComponent, EfStatsComponent, EfStatusChipComponent, EfTabPanelDirective, EfTabsComponent, EfTextareaComponent, EfThemeConfiguratorComponent, EfThemeToggleComponent, EfTimelineComponent, EfToastRegionComponent, EfToggleSwitchComponent, EfToolbarComponent, EfTooltipDirective, EfTotalsComponent, OrderEntityHelper, OrderLineItemHelper, TruncatePipe, buildChartConfig, getColumnAlignment, mergeColumnDefaults, resolveEfStatusColor };
5234
+ export type { CatalogueProduct, CatalogueProductVariant, CategoryAssignment, CategoryGroup, CategoryItem, DatatableSearchEntity, DocumentConfig, EfBadgeColor, EfBadgeConfig, EfBadgeSize, EfBadgeVariant, EfButtonComptoirSeverity, EfButtonPrimeNGSeverity, EfButtonSeverity, EfChangeHistoryEntry, EfChangeHistoryFieldChange, EfChartSeries, EfChartType, EfDataCardMobileLayout, EfDataCardRowAction, EfDatatableActions, EfDatatableColumn, EfDatatableColumnAlign, EfDatatableColumnType, EfDatatableConfig, EfDateFieldValue, EfDatePreset, EfDialogAction, EfDialogSeverity, EfDialogSize, EfFabPosition, EfKpiDeltaTone, EfKpiSparkline, EfPillItem, EfPresetItem, EfRankRow, EfRowAction, 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 };