@breadstone/mosaik-elements-angular 0.0.238 → 0.0.242

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/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## 0.0.242 (2026-04-30)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **release:** update release commands to use version from mosaik-themes package ([89c563205d](https://github.com/RueDeRennes/mosaik/commit/89c563205d))
6
+
7
+ ### 🩹 Fixes
8
+
9
+ - **release:** update changelog command to use version from mosaik-themes package ([cbe25acac5](https://github.com/RueDeRennes/mosaik/commit/cbe25acac5))
10
+
11
+ ## 0.0.241 (2026-04-30)
12
+
13
+ ### 🚀 Features
14
+
15
+ - **translate:** enhance provideTranslations for async loading and error handling ([5852fcc519](https://github.com/RueDeRennes/mosaik/commit/5852fcc519))
16
+
1
17
  ## 0.0.238 (2026-04-29)
2
18
 
3
19
  ### 🚀 Features
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ChangeDetectorRef, ElementRef, DestroyRef, input, effect, output, ChangeDetectionStrategy, Component, makeEnvironmentProviders, Injectable, Renderer2, Input, Directive, ViewContainerRef, TemplateRef, isDevMode, EnvironmentInjector, runInInjectionContext, signal, booleanAttribute, forwardRef, ContentChildren, HostListener, untracked, Injector, afterNextRender, ContentChild, computed, DOCUMENT, provideEnvironmentInitializer, Pipe, ViewChild, ViewEncapsulation, Optional, Inject, SkipSelf } from '@angular/core';
2
+ import { InjectionToken, inject, ChangeDetectorRef, ElementRef, DestroyRef, input, effect, output, ChangeDetectionStrategy, Component, makeEnvironmentProviders, Injectable, Renderer2, Input, Directive, ViewContainerRef, TemplateRef, isDevMode, EnvironmentInjector, runInInjectionContext, signal, booleanAttribute, forwardRef, ContentChildren, HostListener, untracked, Injector, afterNextRender, ContentChild, computed, DOCUMENT, provideEnvironmentInitializer, Pipe, ViewChild, ViewEncapsulation, Optional, Inject, SkipSelf, provideAppInitializer } from '@angular/core';
3
3
  import * as i1 from '@breadstone/mosaik-elements-foundation';
4
4
  import { AbsoluteItemElement, AbsoluteElement, ActionbarGroupElement, ActionbarItemElement, ActionbarSeparatorElement, ActionbarElement, AnchorElement, AppHeaderElement, AppElement, AttachmentChatToolElement, AudioElement, AnimationPlayer, Animation, BREAKPOINTS, PerspectiveElement, RippleElement, ScaleElement, ProgressRingElement, FlipElement, TooltipElement, dataListElementValueAccessor, DataListElement, dataTableElementValueAccessor, DataTableElement, StepperElement, WizardElement, Size, Spacing, TextFormatters, DIALOG_STACK_BEHAVIOR_DEFAULT_CONFIG, DialogHeaderElement, DialogHeaderTextElement, DialogHeaderSubTextElement, DialogActionsElement, ButtonElement, DialogElement, DialogFooterElement, EID, Key, DRAWER_STACK_BEHAVIOR_DEFAULT_CONFIG, DrawerElement, DrawerHeaderElement, DrawerHeaderTextElement, DrawerHeaderSubTextElement, DrawerContentElement, DrawerActionsElement, DrawerFooterElement, DismissElement, MessageBoxElement, SheetElement, SheetContentElement, SheetFooterElement, SheetHeaderElement, SheetHeaderSubTextElement, SheetHeaderTextElement, ToastElement, DateAgoIntl, TimeAgoIntl, ThemeService as ThemeService$1, TranslatorService, Translator, TranslatorServiceLocator, autoCompleteBoxElementValueAccessor, AutoCompleteBoxElement, AvatarGroupElement, avatarElementValueAccessor, AvatarElement, BackdropElement, BadgeElement, BannerGroupElement, BannerHeaderElement, BannerSubHeaderElement, BannerElement, BoxElement, BreadcrumbItemElement, BreadcrumbElement, BusyStateElement, ButtonGroupElement, CalendarHeaderElement, CalendarItemElement, CalendarSubHeaderElement, calendarElementValueAccessor, CalendarElement, CameraElement, CardActionsElement, CardContentElement, CardFooterElement, CardHeaderElement, CardSubTitleElement, CardTitleElement, CardElement, Carousel2Element, CarouselItem2Element, CarouselItemElement, CarouselElement, CellGroupElement, CellElement, ChartElement, ChatHeaderElement, ChatInputAttachmentListElement, ChatInputElement, ChatMarkerElement, ChatMessageAvatarElement, ChatMessageDividerElement, ChatMessageReactionElement, ChatMessageElement, ChatElement, checkBoxGroupElementValueAccessor, CheckBoxGroupElement, checkboxElementValueAccessor, CheckboxElement, CheckmarkElement, chipGroupElementValueAccessor, ChipGroupElement, ChipElement, chipBoxElementValueAccessor, ChipBoxElement, ChoiceGroupHeaderElement, choiceGroupElementValueAccessor, ChoiceGroupElement, choiceElementValueAccessor, ChoiceElement, CodeElement, ColorAreaElement, colorEditorAlphaSliderElementValueAccessor, ColorEditorAlphaSliderElement, colorEditorAreaElementValueAccessor, ColorEditorAreaElement, colorEditorHueSliderElementValueAccessor, ColorEditorHueSliderElement, colorEditorInputsElementValueAccessor, ColorEditorInputsElement, colorEditorPaletteElementValueAccessor, ColorEditorPaletteElement, colorEditorShadeSliderElementValueAccessor, ColorEditorShadeSliderElement, colorEditorSwatchElementValueAccessor, ColorEditorSwatchElement, colorEditorElementValueAccessor, ColorEditorElement, ColorPickerElement, ColorSliderElement, ColorSwatchGroupElement, ColorSwatchElement, ColorThumbElement, colorBoxElementValueAccessor, ColorBoxElement, ComboItemElement, comboElementValueAccessor, ComboElement, CommentElement, CompoundButtonElement, CookiesConsentElement, dateBoxElementValueAccessor, DateBoxElement, dateTimeBoxElementValueAccessor, DateTimeBoxElement, DesignerCanvasElement, DesignerContentElement, DesignerFrameElement, DesignerElement, DialogContentElement, DisclosureElement, DividerElement, DockPanelElement, DotGroupElement, DotElement, DrawerContainerElement, DropZoneElement, DropDownButtonElement, DurationBoxElement, ElevationElement, EmojiElement, EmptyStateElement, EpgChannelElement, EpgProgramElement, EpgElement, ErrorStateElement, ErrorElement, ExpandableElement, ExpanderGroupElement, ExpanderHeaderElement, ExpanderSubHeaderElement, ExpanderElement, FloatingActionButtonGroupElement, FloatingActionButtonElement, FilePickerElement, FileUploadItemElement, fileUploadElementValueAccessor, FileUploadElement, FloatingTriggerElement, FloatingElement, FlowBoardColumnComposerElement, FlowBoardColumnItemComposerElement, FlowBoardColumnItemElement, FlowBoardColumnElement, FlowBoardElement, FocusRingElement, FontEditorElement, FooterItemGroupElement, FooterItemElement, FooterElement, FormFieldElement, FormElement, GhostElement, GridItemElement, GridElement, HelmetElement, HintElement, IconElement, ImageElement, IndicatorElement, JumbotronHeaderElement, JumbotronSubHeaderElement, JumbotronElement, KbdShortcutElement, KbdElement, LightChainElement, ListItemGroupElement, ListItemElement, listElementValueAccessor, ListElement, ListingItemMarkerElement, ListingItemElement, ListingElement, MapElement, MarqueeElement, MasonryElement, MenuItemGroupElement, MenuItemElement, MenuElement, MessageContentElement, MessageElement, MeterBarElement, MeterRingElement, NumberCounterElement, NumberElement, numberBoxElementValueAccessor, NumberBoxElement, PageContentElement, PageHeaderElement, PagePreContentElement, PagePreHeaderElement, PageElement, PageMenuElement, PaginatorElement, passwordBoxElementValueAccessor, PasswordBoxElement, PatternElement, PersonaElement, pinBoxElementValueAccessor, PinBoxElement, PipElement, PlaceholderElement, PopupElement, PortalHostElement, PortalProjectionElement, PortalElement, PressButtonElement, ProgressBarElement, QRCodeElement, radioGroupElementValueAccessor, RadioGroupElement, radioElementValueAccessor, RadioElement, RatingElement, ReactionChatToolElement, RegionViewElement, RegionElement, RepeatButtonElement, ResizeAdornerElement, ResizeThumbElement, ResizeElement, RibbonElement, richTextBoxElementValueAccessor, RichTextBoxElement, SchedulerEventElement, SchedulerElement, ScrollElement, scrubSliderElementValueAccessor, ScrubSliderElement, searchBoxElementValueAccessor, SearchBoxElement, SegmentItemElement, SegmentElement, SelectItemGroupElement, SelectItemElement, selectElementValueAccessor, SelectElement, signaturePadElementValueAccessor, SignaturePadElement, SkeletonElement, sliderElementValueAccessor, SliderElement, Slider2ThumbElement, Slider2Element, SpacerElement, SplitButtonElement, SplitElement, StackElement, StepperItemElement, StickyElement, SuccessStateElement, SummaryElement, SwipeElement, TabItemElement, TabPanelElement, TabStripItemElement, TabStripElement, TabElement, TableBodyCellElement, TableBodyRowElement, TableBodyElement, TableColumnEditorElement, TableFooterCellElement, TableFooterRowElement, TableFooterElement, TableHeaderCellElement, TableHeaderRowElement, TableHeaderElement, TableElement, TextFormatElement, TextElement, textBoxElementValueAccessor, TextBoxElement, Theme2Element, ThumbElement, ThumbnailElement, TickBarElement, TileListItemElement, TileListElement, TileManagerTileElement, TileManagerElement, TileElement, timeBoxElementValueAccessor, TimeBoxElement, TimelineContentElement, TimelineItemElement, TimelineMarkerElement, TimelineOppositeElement, TimelineElement, toggleButtonGroupElementValueAccessor, ToggleButtonGroupElement, toggleButtonElementValueAccessor, ToggleButtonElement, toggleSwitchElementValueAccessor, ToggleSwitchElement, ToggleTipElement, ToolbarElement, TourAnchorElement, TourStepElement, TourElement, TreeItemElement, treeElementValueAccessor, TreeElement, UpDownSpinnerElement, VideoElement, VirtualizeElement, VoiceRecorderChatToolElement, WizardStepElement, WrapElement } from '@breadstone/mosaik-elements-foundation';
5
5
  import { AbstractControl, FormGroupDirective, NgControl, TouchedChangeEvent, NG_VALUE_ACCESSOR, FormControl, FormArray, FormGroup } from '@angular/forms';
@@ -5598,6 +5598,9 @@ let DataTableComponent = class DataTableComponent {
5598
5598
  this._accessor = dataTableElementValueAccessor(this._element);
5599
5599
  this._element.addController(this._accessor);
5600
5600
  // Wire up output events from the native element
5601
+ this._element.on('tableSelectionChanged', (e) => this.tableSelectionChanged.emit(e instanceof CustomEvent ? e.detail : undefined));
5602
+ this._element.on('dataTableEditorOpened', (e) => this.dataTableEditorOpened.emit(e instanceof CustomEvent ? e.detail : undefined));
5603
+ this._element.on('dataTableEditorClosed', (e) => this.dataTableEditorClosed.emit(e instanceof CustomEvent ? e.detail : undefined));
5601
5604
  this._element.on('changed', (e) => this.changed.emit(e instanceof CustomEvent ? e.detail : undefined));
5602
5605
  this._element.on('connected', (e) => this.connected.emit(e instanceof CustomEvent ? e.detail : undefined));
5603
5606
  this._element.on('disconnected', (e) => this.disconnected.emit(e instanceof CustomEvent ? e.detail : undefined));
@@ -5858,6 +5861,24 @@ let DataTableComponent = class DataTableComponent {
5858
5861
  }
5859
5862
  // #endregion
5860
5863
  // #region Outputs
5864
+ /**
5865
+ * Output signal for the `tableSelectionChanged` event.
5866
+ *
5867
+ * @public
5868
+ */
5869
+ tableSelectionChanged = output();
5870
+ /**
5871
+ * Output signal for the `dataTableEditorOpened` event.
5872
+ *
5873
+ * @public
5874
+ */
5875
+ dataTableEditorOpened = output();
5876
+ /**
5877
+ * Output signal for the `dataTableEditorClosed` event.
5878
+ *
5879
+ * @public
5880
+ */
5881
+ dataTableEditorClosed = output();
5861
5882
  /**
5862
5883
  * Output signal for the `changed` event.
5863
5884
  *
@@ -5916,7 +5937,7 @@ let DataTableComponent = class DataTableComponent {
5916
5937
  this._element[property] = value;
5917
5938
  }
5918
5939
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5919
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.10", type: DataTableComponent, isStandalone: true, selector: "mosaik-data-table", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, editorOpened: { classPropertyName: "editorOpened", publicName: "editorOpened", isSignal: true, isRequired: false, transformFunction: null }, sorted: { classPropertyName: "sorted", publicName: "sorted", isSignal: true, isRequired: false, transformFunction: null }, sortedSource: { classPropertyName: "sortedSource", publicName: "sortedSource", isSignal: true, isRequired: false, transformFunction: null }, allColumnsHidden: { classPropertyName: "allColumnsHidden", publicName: "allColumnsHidden", isSignal: true, isRequired: false, transformFunction: null }, alternating: { classPropertyName: "alternating", publicName: "alternating", isSignal: true, isRequired: false, transformFunction: null }, autoGenerateColumns: { classPropertyName: "autoGenerateColumns", publicName: "autoGenerateColumns", isSignal: true, isRequired: false, transformFunction: null }, columnDefinitions: { classPropertyName: "columnDefinitions", publicName: "columnDefinitions", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, selectionType: { classPropertyName: "selectionType", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, pinable: { classPropertyName: "pinable", publicName: "pinable", isSignal: true, isRequired: false, transformFunction: null }, hideable: { classPropertyName: "hideable", publicName: "hideable", isSignal: true, isRequired: false, transformFunction: null }, autoSizeable: { classPropertyName: "autoSizeable", publicName: "autoSizeable", isSignal: true, isRequired: false, transformFunction: null }, columnChoosable: { classPropertyName: "columnChoosable", publicName: "columnChoosable", isSignal: true, isRequired: false, transformFunction: null }, reorderable: { classPropertyName: "reorderable", publicName: "reorderable", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, themeName: { classPropertyName: "themeName", publicName: "themeName", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", connected: "connected", disconnected: "disconnected" }, providers: [
5940
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.10", type: DataTableComponent, isStandalone: true, selector: "mosaik-data-table", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, editorOpened: { classPropertyName: "editorOpened", publicName: "editorOpened", isSignal: true, isRequired: false, transformFunction: null }, sorted: { classPropertyName: "sorted", publicName: "sorted", isSignal: true, isRequired: false, transformFunction: null }, sortedSource: { classPropertyName: "sortedSource", publicName: "sortedSource", isSignal: true, isRequired: false, transformFunction: null }, allColumnsHidden: { classPropertyName: "allColumnsHidden", publicName: "allColumnsHidden", isSignal: true, isRequired: false, transformFunction: null }, alternating: { classPropertyName: "alternating", publicName: "alternating", isSignal: true, isRequired: false, transformFunction: null }, autoGenerateColumns: { classPropertyName: "autoGenerateColumns", publicName: "autoGenerateColumns", isSignal: true, isRequired: false, transformFunction: null }, columnDefinitions: { classPropertyName: "columnDefinitions", publicName: "columnDefinitions", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, selectionType: { classPropertyName: "selectionType", publicName: "selectionType", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, sortable: { classPropertyName: "sortable", publicName: "sortable", isSignal: true, isRequired: false, transformFunction: null }, pinable: { classPropertyName: "pinable", publicName: "pinable", isSignal: true, isRequired: false, transformFunction: null }, hideable: { classPropertyName: "hideable", publicName: "hideable", isSignal: true, isRequired: false, transformFunction: null }, autoSizeable: { classPropertyName: "autoSizeable", publicName: "autoSizeable", isSignal: true, isRequired: false, transformFunction: null }, columnChoosable: { classPropertyName: "columnChoosable", publicName: "columnChoosable", isSignal: true, isRequired: false, transformFunction: null }, reorderable: { classPropertyName: "reorderable", publicName: "reorderable", isSignal: true, isRequired: false, transformFunction: null }, sortMode: { classPropertyName: "sortMode", publicName: "sortMode", isSignal: true, isRequired: false, transformFunction: null }, themeName: { classPropertyName: "themeName", publicName: "themeName", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, lang: { classPropertyName: "lang", publicName: "lang", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableSelectionChanged: "tableSelectionChanged", dataTableEditorOpened: "dataTableEditorOpened", dataTableEditorClosed: "dataTableEditorClosed", changed: "changed", connected: "connected", disconnected: "disconnected" }, providers: [
5920
5941
  {
5921
5942
  provide: NG_VALUE_ACCESSOR,
5922
5943
  useExisting: forwardRef(() => DataTableComponent),
@@ -5956,7 +5977,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
5956
5977
  }
5957
5978
  ]
5958
5979
  }]
5959
- }], ctorParameters: () => [], propDecorators: { intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], editorOpened: [{ type: i0.Input, args: [{ isSignal: true, alias: "editorOpened", required: false }] }], sorted: [{ type: i0.Input, args: [{ isSignal: true, alias: "sorted", required: false }] }], sortedSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortedSource", required: false }] }], allColumnsHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumnsHidden", required: false }] }], alternating: [{ type: i0.Input, args: [{ isSignal: true, alias: "alternating", required: false }] }], autoGenerateColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoGenerateColumns", required: false }] }], columnDefinitions: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefinitions", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], selectionType: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionType", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], pinable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinable", required: false }] }], hideable: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideable", required: false }] }], autoSizeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSizeable", required: false }] }], columnChoosable: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnChoosable", required: false }] }], reorderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderable", required: false }] }], sortMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortMode", required: false }] }], themeName: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeName", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], lang: [{ type: i0.Input, args: [{ isSignal: true, alias: "lang", required: false }] }], changed: [{ type: i0.Output, args: ["changed"] }], connected: [{ type: i0.Output, args: ["connected"] }], disconnected: [{ type: i0.Output, args: ["disconnected"] }] } });
5980
+ }], ctorParameters: () => [], propDecorators: { intl: [{ type: i0.Input, args: [{ isSignal: true, alias: "intl", required: false }] }], editorOpened: [{ type: i0.Input, args: [{ isSignal: true, alias: "editorOpened", required: false }] }], sorted: [{ type: i0.Input, args: [{ isSignal: true, alias: "sorted", required: false }] }], sortedSource: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortedSource", required: false }] }], allColumnsHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "allColumnsHidden", required: false }] }], alternating: [{ type: i0.Input, args: [{ isSignal: true, alias: "alternating", required: false }] }], autoGenerateColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoGenerateColumns", required: false }] }], columnDefinitions: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnDefinitions", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], selectionType: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionType", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], resizable: [{ type: i0.Input, args: [{ isSignal: true, alias: "resizable", required: false }] }], sortable: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortable", required: false }] }], pinable: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinable", required: false }] }], hideable: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideable", required: false }] }], autoSizeable: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoSizeable", required: false }] }], columnChoosable: [{ type: i0.Input, args: [{ isSignal: true, alias: "columnChoosable", required: false }] }], reorderable: [{ type: i0.Input, args: [{ isSignal: true, alias: "reorderable", required: false }] }], sortMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "sortMode", required: false }] }], themeName: [{ type: i0.Input, args: [{ isSignal: true, alias: "themeName", required: false }] }], appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], dir: [{ type: i0.Input, args: [{ isSignal: true, alias: "dir", required: false }] }], lang: [{ type: i0.Input, args: [{ isSignal: true, alias: "lang", required: false }] }], tableSelectionChanged: [{ type: i0.Output, args: ["tableSelectionChanged"] }], dataTableEditorOpened: [{ type: i0.Output, args: ["dataTableEditorOpened"] }], dataTableEditorClosed: [{ type: i0.Output, args: ["dataTableEditorClosed"] }], changed: [{ type: i0.Output, args: ["changed"] }], connected: [{ type: i0.Output, args: ["connected"] }], disconnected: [{ type: i0.Output, args: ["disconnected"] }] } });
5960
5981
  /**
5961
5982
  * @public
5962
5983
  */
@@ -18535,12 +18556,45 @@ function provideTranslationRegistry(config) {
18535
18556
  }
18536
18557
  }]);
18537
18558
  }
18559
+ /**
18560
+ * Provides translations for the application.
18561
+ *
18562
+ * Accepts either synchronous `Record<string, string>` values per language,
18563
+ * or `Promise<Record<string, string>>` for lazy-loaded translations (e.g. via dynamic `import()`).
18564
+ *
18565
+ * When promises are detected, an `APP_INITIALIZER` is used to ensure translations are
18566
+ * available before the application renders. If a promise rejects, the translation key
18567
+ * itself is used as fallback (no app crash).
18568
+ *
18569
+ * @public
18570
+ */
18538
18571
  function provideTranslations(translations) {
18572
+ const entries = Object.entries(translations ?? {});
18573
+ const hasAsync = entries.some(([, value]) => value != null && typeof value.then === 'function');
18574
+ if (!hasAsync) {
18575
+ return makeEnvironmentProviders([
18576
+ provideEnvironmentInitializer(() => {
18577
+ const translate = inject(TranslateService);
18578
+ entries.forEach(([lang, data]) => {
18579
+ translate.addTranslations(lang, data);
18580
+ });
18581
+ })
18582
+ ]);
18583
+ }
18539
18584
  return makeEnvironmentProviders([
18540
- provideEnvironmentInitializer(() => {
18585
+ provideAppInitializer(async () => {
18541
18586
  const translate = inject(TranslateService);
18542
- Object.entries(translations ?? {}).forEach(([l, t]) => {
18543
- translate.addTranslations(l, t);
18587
+ const resolved = await Promise.all(entries.map(async ([lang, data]) => {
18588
+ try {
18589
+ const result = await data;
18590
+ return [lang, result];
18591
+ }
18592
+ catch {
18593
+ return [lang, {}];
18594
+ }
18595
+ }));
18596
+ resolved.forEach(([lang, data]) => {
18597
+ translate.addTranslations(lang, data);
18544
18598
  });
18545
18599
  })
18546
18600
  ]);