@elasticias/ui 1.0.5 → 1.0.7

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.5",
3
+ "version": "1.0.7",
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
  }
@@ -2691,6 +2726,11 @@
2691
2726
  .card-body {
2692
2727
  padding: 16px;
2693
2728
  display: grid;
2729
+ /* minmax(0, 1fr): a grid item's default min-width is auto, so a wide child
2730
+ — a table, a nested data card — sized this column and pushed the card
2731
+ past its own container. Same trap as the content area and the screen
2732
+ host; this is the third place it bites. */
2733
+ grid-template-columns: minmax(0, 1fr);
2694
2734
  gap: var(--s-3);
2695
2735
  }
2696
2736
 
@@ -2733,8 +2773,8 @@
2733
2773
  grid-column: span 12;
2734
2774
  }
2735
2775
 
2736
- @media (max-width: 720px) {
2737
- .ef-form-grid > [class^='col-'] {
2776
+ @media (max-width: 767px) {
2777
+ .ef-form-grid > [class*='col-'] {
2738
2778
  grid-column: span 12;
2739
2779
  }
2740
2780
  }
@@ -4304,3 +4344,19 @@ input.ef-input[type='number'] {
4304
4344
  transform: rotate(360deg);
4305
4345
  }
4306
4346
  }
4347
+
4348
+ /* ──────────── SMALL-SCREEN OVERRIDES ────────────────────────────
4349
+ Last in the file on purpose: a media query adds no specificity, so a
4350
+ rule declared later in the sheet beats it regardless of viewport.
4351
+ Anything that overrides a base rule for small screens belongs here. */
4352
+
4353
+ /* The detail toolbar is full-bleed — it cancels the content gutter with a
4354
+ negative margin. That gutter is 16px on a phone, not 24px, so the bleed
4355
+ has to match or the band hangs 16px off the right edge. */
4356
+ @media (max-width: 767px) {
4357
+ .detail-toolbar {
4358
+ top: calc(-1 * var(--s-4));
4359
+ margin: calc(-1 * var(--s-4)) calc(-1 * var(--s-4)) 0;
4360
+ padding: 10px var(--s-4);
4361
+ }
4362
+ }
@@ -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
5
  import { EfModule, EfModuleId, EfNavSection, EfNavItem, 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';
@@ -966,8 +966,16 @@ declare class EfBuildStampComponent {
966
966
  readonly owner: _angular_core.InputSignal<string>;
967
967
  protected readonly info: _elasticias_core.EfBuildInfo;
968
968
  protected readonly year: number;
969
- /** Commit and branch always identify a build; a version only appears when
970
- * the app actually maintains one, so an unversioned app shows no `v`. */
969
+ /**
970
+ * A released build is known by its version; an unreleased one has no
971
+ * version to be known by, so it shows what actually identifies it.
972
+ *
973
+ * That is not a cosmetic split. Only production is cut from a tag, so
974
+ * only production has a number a person can repeat back to you. On
975
+ * develop and staging the honest answer is where it came from and when.
976
+ */
977
+ protected readonly label: _angular_core.Signal<string>;
978
+ /** The rest of the identity, for when the label is only a version. */
971
979
  protected readonly detail: _angular_core.Signal<string>;
972
980
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfBuildStampComponent, never>;
973
981
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<EfBuildStampComponent, "ef-build-stamp", never, { "owner": { "alias": "owner"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
@@ -1362,13 +1370,24 @@ declare class EfToolbarComponent {
1362
1370
  */
1363
1371
  declare class EfAppShellComponent {
1364
1372
  private readonly vp;
1373
+ private readonly perms;
1374
+ private readonly active;
1375
+ private readonly router;
1365
1376
  /** Show the 3px module-color stripe at the top of the content area. */
1366
1377
  stripe: boolean;
1367
1378
  readonly viewport: _angular_core.Signal<_elasticias_core.EfViewport>;
1368
1379
  readonly isMobile: _angular_core.Signal<boolean>;
1369
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
+ openSwitcher(): void;
1387
+ onSwitcherChange(open: boolean): void;
1388
+ onSelect(module: EfModule): void;
1370
1389
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfAppShellComponent, never>;
1371
- 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>;
1390
+ 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>;
1372
1391
  }
1373
1392
 
1374
1393
  /**
@@ -3902,6 +3921,31 @@ declare class EfDatatableActionBarComponent {
3902
3921
  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>;
3903
3922
  }
3904
3923
 
3924
+ /**
3925
+ * How `ef-data-card` presents a row once the table becomes a list.
3926
+ *
3927
+ * - `row` — a dense two-line row: the primary field, a muted secondary line,
3928
+ * a status badge and the actions menu. Roughly eight to a screen,
3929
+ * which is what a list of thousands needs.
3930
+ * - `card` — one card per record, every field on its own labelled line.
3931
+ * Easier to read a single record, at about a record and a half
3932
+ * per screen.
3933
+ *
3934
+ * Both expand to the same labelled detail; they differ only in the collapsed
3935
+ * state.
3936
+ */
3937
+ type EfDataCardMobileLayout = 'row' | 'card';
3938
+ /**
3939
+ * App-wide default, so screens don't drift apart. Provide it once at the
3940
+ * application root; a screen that genuinely needs the other shape overrides
3941
+ * it with `[mobileLayout]`.
3942
+ *
3943
+ * ```ts
3944
+ * { provide: EF_DATA_CARD_MOBILE_LAYOUT, useValue: 'card' }
3945
+ * ```
3946
+ */
3947
+ declare const EF_DATA_CARD_MOBILE_LAYOUT: InjectionToken<EfDataCardMobileLayout>;
3948
+
3905
3949
  /**
3906
3950
  * Declarative row-action item consumed by `ef-row-actions`.
3907
3951
  *
@@ -3982,6 +4026,63 @@ type EfTableDensity = 'compact' | 'default' | 'comfortable';
3982
4026
  * ```
3983
4027
  */
3984
4028
  declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
4029
+ private readonly viewport;
4030
+ private readonly configuredMobileLayout;
4031
+ readonly isMobile: _angular_core.Signal<boolean>;
4032
+ /** Per-screen override of the app-wide default. */
4033
+ readonly mobileLayout: _angular_core.InputSignal<EfDataCardMobileLayout>;
4034
+ protected readonly effectiveMobileLayout: _angular_core.Signal<EfDataCardMobileLayout>;
4035
+ /** Rows currently showing their detail, keyed the same way as trackByRow. */
4036
+ private readonly expandedRows;
4037
+ protected isExpanded(row: unknown, index: number): boolean;
4038
+ /**
4039
+ * The row head is the expander, but the actions menu lives inside it.
4040
+ * Filtering here rather than stopping propagation on a wrapper keeps the
4041
+ * wrapper a plain span — a click handler on one would need a keyboard
4042
+ * equivalent and a tabindex to be usable, which a decorative box should
4043
+ * not have.
4044
+ */
4045
+ protected onRowHeadActivate(row: unknown, index: number, event: Event): void;
4046
+ protected toggleExpanded(row: unknown, index: number): void;
4047
+ private rowKey;
4048
+ /**
4049
+ * Columns that carry data on mobile, in role order. Structural columns
4050
+ * (select, actions) are handled by the row chrome, not as fields.
4051
+ */
4052
+ private readonly mobileColumns;
4053
+ /**
4054
+ * The role a column plays on mobile. An explicit `mobile` wins; otherwise
4055
+ * it is derived so every existing screen gets a sensible list without
4056
+ * touching its column definitions: the first text-ish column is what you
4057
+ * scan for, a status chip is a badge, money and dates sit on the muted
4058
+ * line, and the rest waits behind the expander.
4059
+ */
4060
+ protected roleOf(col: {
4061
+ id: string;
4062
+ mobile?: string;
4063
+ type?: string;
4064
+ }): string;
4065
+ private readonly derivedPrimaryId;
4066
+ protected readonly primaryColumn: _angular_core.Signal<EfDataCardColumn>;
4067
+ protected readonly statusColumn: _angular_core.Signal<EfDataCardColumn>;
4068
+ protected readonly secondaryColumns: _angular_core.Signal<EfDataCardColumn[]>;
4069
+ /**
4070
+ * Fields shown once a row opens. The primary column is excluded: the
4071
+ * header already carries it, and repeating it is the first thing you
4072
+ * notice. Status is excluded for the same reason.
4073
+ */
4074
+ protected readonly detailColumns: _angular_core.Signal<EfDataCardColumn[]>;
4075
+ /** How many fields a card shows before "view more". */
4076
+ private static readonly CARD_PREVIEW_FIELDS;
4077
+ /** Fields a collapsed card shows. A row shows none until it opens. */
4078
+ protected readonly cardPreviewColumns: _angular_core.Signal<EfDataCardColumn[]>;
4079
+ protected readonly hasDetail: _angular_core.Signal<boolean>;
4080
+ /** Only worth a toggle when opening actually reveals something. */
4081
+ protected readonly hasMoreThanPreview: _angular_core.Signal<boolean>;
4082
+ /** Fields visible for a row right now, given layout and open state. */
4083
+ protected visibleDetail(row: unknown, index: number): ReadonlyArray<{
4084
+ id: string;
4085
+ }>;
3985
4086
  private readonly refDataService;
3986
4087
  readonly columns: _angular_core.InputSignal<readonly EfDataCardColumn[]>;
3987
4088
  readonly rows: _angular_core.InputSignal<readonly TRow[]>;
@@ -4105,7 +4206,7 @@ declare class EfDataCardComponent<TRow = any> implements AfterContentInit {
4105
4206
  trackByRow: (_: number, row: TRow) => unknown;
4106
4207
  trackByColumn: (_: number, col: EfDataCardColumn) => string;
4107
4208
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<EfDataCardComponent<any>, never>;
4108
- 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>;
4209
+ 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>;
4109
4210
  }
4110
4211
 
4111
4212
  /**
@@ -5119,5 +5220,5 @@ declare class EfEmailMetricsCardComponent {
5119
5220
  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>;
5120
5221
  }
5121
5222
 
5122
- 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 };
5123
- 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 };
5223
+ 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 };
5224
+ 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 };