@bravobit/bb-foundation 0.51.0 → 0.51.1

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.
Files changed (49) hide show
  1. package/collections/lib/collections.config.d.ts +3 -0
  2. package/collections/lib/collections.interfaces.d.ts +10 -0
  3. package/collections/lib/components/collections-actions/collections-actions.component.d.ts +3 -0
  4. package/collections/lib/components/collections-pager/collections-pager.component.d.ts +3 -0
  5. package/collections/public_api.d.ts +2 -0
  6. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +3 -5
  7. package/dialog/lib/dialog-header/dialog-header.component.d.ts +7 -1
  8. package/dialog/lib/dialog-modal/dialog-modal.component.d.ts +4 -7
  9. package/dialog/lib/dialog-overlay/dialog-overlay.component.d.ts +3 -2
  10. package/dialog/lib/dialog.insertion.d.ts +1 -2
  11. package/dialog/lib/dialog.interfaces.d.ts +5 -0
  12. package/dialog/lib/dialog.module.d.ts +5 -6
  13. package/dialog/lib/dialog.service.d.ts +4 -4
  14. package/dialog/lib/directives/confirm.directive.d.ts +2 -1
  15. package/dialog/public_api.d.ts +0 -1
  16. package/elements/lib/checkbox/checkbox.component.d.ts +3 -1
  17. package/elements/lib/elements.module.d.ts +22 -23
  18. package/elements/lib/radio-button/radio-button.component.d.ts +1 -3
  19. package/elements/public_api.d.ts +0 -1
  20. package/fesm2022/bravobit-bb-foundation-collections.mjs +27 -9
  21. package/fesm2022/bravobit-bb-foundation-collections.mjs.map +1 -1
  22. package/fesm2022/bravobit-bb-foundation-dashboard.mjs +4 -4
  23. package/fesm2022/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  24. package/fesm2022/bravobit-bb-foundation-dialog.mjs +75 -85
  25. package/fesm2022/bravobit-bb-foundation-dialog.mjs.map +1 -1
  26. package/fesm2022/bravobit-bb-foundation-elements.mjs +17 -44
  27. package/fesm2022/bravobit-bb-foundation-elements.mjs.map +1 -1
  28. package/fesm2022/bravobit-bb-foundation-localize.mjs +24 -0
  29. package/fesm2022/bravobit-bb-foundation-localize.mjs.map +1 -1
  30. package/fesm2022/bravobit-bb-foundation-notifications.mjs +2 -2
  31. package/fesm2022/bravobit-bb-foundation-notifications.mjs.map +1 -1
  32. package/fesm2022/bravobit-bb-foundation-table.mjs +26 -8
  33. package/fesm2022/bravobit-bb-foundation-table.mjs.map +1 -1
  34. package/localize/lib/localizations/dutch.localization.d.ts +6 -0
  35. package/localize/lib/localizations/english.localization.d.ts +6 -0
  36. package/localize/lib/localizations/papiamento.localization.d.ts +6 -0
  37. package/localize/lib/localizations/spanish.localization.d.ts +6 -0
  38. package/localize/lib/transforms/interpolate.transform.d.ts +1 -1
  39. package/localize/lib/transforms/plural.transform.d.ts +1 -1
  40. package/localize/lib/transforms/reference.transform.d.ts +1 -1
  41. package/package.json +5 -5
  42. package/styles/theme.scss +7 -1
  43. package/table/lib/components/table/table.component.d.ts +3 -0
  44. package/table/lib/components/table-pager/table-pager.component.d.ts +3 -0
  45. package/table/lib/interfaces/table.interfaces.d.ts +10 -0
  46. package/table/lib/table.config.d.ts +3 -0
  47. package/table/public_api.d.ts +1 -0
  48. package/dialog/lib/dialog-link/dialog-link.component.d.ts +0 -5
  49. package/elements/lib/directives/addon.directive.d.ts +0 -9
@@ -0,0 +1,3 @@
1
+ import { CollectionsConfig } from './collections.interfaces';
2
+ import { EnvironmentProviders } from '@angular/core';
3
+ export declare function provideCollectionsConfig(config: CollectionsConfig): EnvironmentProviders;
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const COLLECTIONS_CONFIG: InjectionToken<CollectionsConfig>;
3
+ export interface CollectionsConfig {
4
+ icons?: {
5
+ actionsSearch?: string;
6
+ actionsClose?: string;
7
+ pagerArrowPrevious?: string;
8
+ pagerArrowNext?: string;
9
+ };
10
+ }
@@ -1,6 +1,9 @@
1
1
  import { Collection } from '../../collection';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class BbCollectionsActions<T> {
4
+ private readonly _config?;
5
+ readonly searchIconName: string;
6
+ readonly closeIconName: string;
4
7
  collection: Collection<T> | null;
5
8
  queryPlaceholder: string | null;
6
9
  standalone: boolean;
@@ -3,6 +3,9 @@ import { Observable } from 'rxjs';
3
3
  import { Collection } from '../../collection';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class BbCollectionsPager implements OnInit, OnDestroy {
6
+ private readonly _config?;
7
+ readonly arrowPreviousIconName: string;
8
+ readonly arrowNextIconName: string;
6
9
  set maxAmountOfButtons(value: number);
7
10
  get maxAmountOfButtons(): number;
8
11
  set collection(collection: Collection<unknown> | null);
@@ -19,3 +19,5 @@ export * from './lib/components/collections-actions/collections-actions.componen
19
19
  export * from './lib/classes/array.collection';
20
20
  export * from './lib/collection';
21
21
  export * from './lib/collections.module';
22
+ export * from './lib/collections.interfaces';
23
+ export * from './lib/collections.config';
@@ -1,7 +1,6 @@
1
- import { AfterViewInit, TemplateRef } from '@angular/core';
2
- import { BbButton } from '@bravobit/bb-foundation/elements';
1
+ import { TemplateRef } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
- export declare class BbDialogConfirm implements AfterViewInit {
3
+ export declare class BbDialogConfirm {
5
4
  private readonly _config;
6
5
  private readonly _dialogRef;
7
6
  readonly dialogId: string;
@@ -11,9 +10,8 @@ export declare class BbDialogConfirm implements AfterViewInit {
11
10
  readonly cancelButtonText: string;
12
11
  readonly confirmButtonClass: string;
13
12
  readonly cancelButtonClass: string;
13
+ readonly icon: string;
14
14
  readonly width: string;
15
- confirmButton?: BbButton;
16
- ngAfterViewInit(): void;
17
15
  onClose(result: boolean): void;
18
16
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogConfirm, never>;
19
17
  static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogConfirm, "bb-dialog-confirm", never, {}, {}, never, never, true, never>;
@@ -1,7 +1,13 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class BbDialogHeader {
4
+ private readonly _config;
5
+ readonly closeIconName: string;
6
+ icon: string | null;
7
+ closeRequestedDisabled: boolean;
4
8
  closeRequested: EventEmitter<void>;
9
+ onKeyEvent(event: KeyboardEvent): void;
5
10
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogHeader, never>;
6
- static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogHeader, "[bb-dialog-header]", never, {}, { "closeRequested": "closeRequested"; }, never, ["*", "[bb-dialog-link]"], true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogHeader, "[bb-dialog-header]", never, { "icon": { "alias": "icon"; "required": false; }; "closeRequestedDisabled": { "alias": "closeRequestedDisabled"; "required": false; }; }, { "closeRequested": "closeRequested"; }, never, ["*"], true, never>;
12
+ static ngAcceptInputType_closeRequestedDisabled: unknown;
7
13
  }
@@ -1,18 +1,15 @@
1
- import { OnInit, Renderer2 } from '@angular/core';
2
- import { Patch } from '@bravobit/bb-foundation';
1
+ import { OnInit } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class BbDialogModal implements OnInit {
5
- private _patch;
6
- private _renderer;
7
- private _document?;
4
+ private readonly _renderer;
5
+ private readonly _document;
8
6
  maxWidth: string | null;
9
7
  fullscreen: boolean;
10
8
  withoutBodyPadding: boolean;
11
- constructor(_patch: Patch, _renderer: Renderer2, _document?: Document);
12
9
  ngOnInit(): void;
13
10
  ngOnDestroy(): void;
14
11
  private allowGlobalOverflow;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogModal, [null, null, { optional: true; }]>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogModal, never>;
16
13
  static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogModal, "[bb-dialog-modal]", never, { "maxWidth": { "alias": "maxWidth"; "required": false; }; "fullscreen": { "alias": "fullscreen"; "required": false; }; "withoutBodyPadding": { "alias": "withoutBodyPadding"; "required": false; }; }, {}, never, ["[bb-dialog-header]", "*", "[bb-dialog-actions]"], true, never>;
17
14
  static ngAcceptInputType_fullscreen: unknown;
18
15
  static ngAcceptInputType_withoutBodyPadding: unknown;
@@ -5,14 +5,15 @@ export declare class BbDialogOverlay implements OnInit, OnDestroy {
5
5
  private readonly _renderer;
6
6
  private readonly _elementRef;
7
7
  private readonly _document;
8
+ closeRequestedDisabled: boolean;
8
9
  closeRequested: EventEmitter<void>;
9
10
  private _subscription;
10
11
  ngOnInit(): void;
11
12
  ngOnDestroy(): void;
12
- onKeyEvent(event: KeyboardEvent): void;
13
13
  close(): Promise<0>;
14
14
  private handleOverlayClicks;
15
15
  private getMoveDistance;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogOverlay, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogOverlay, "bb-dialog-overlay", never, {}, { "closeRequested": "closeRequested"; }, never, ["[bb-dialog-modal]"], true, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<BbDialogOverlay, "bb-dialog-overlay", never, { "closeRequestedDisabled": { "alias": "closeRequestedDisabled"; "required": false; }; }, { "closeRequested": "closeRequested"; }, never, ["[bb-dialog-modal]"], true, never>;
18
+ static ngAcceptInputType_closeRequestedDisabled: unknown;
18
19
  }
@@ -1,8 +1,7 @@
1
1
  import { ViewContainerRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class BbDialogInsertion {
4
- viewContainerRef: ViewContainerRef;
5
- constructor(viewContainerRef: ViewContainerRef);
4
+ readonly viewContainerRef: ViewContainerRef;
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<BbDialogInsertion, never>;
7
6
  static ɵdir: i0.ɵɵDirectiveDeclaration<BbDialogInsertion, "[bbDialogInsertion]", never, {}, {}, never, never, true, never>;
8
7
  }
@@ -7,9 +7,14 @@ export interface DialogConfirmOptions {
7
7
  cancelButtonText: string;
8
8
  confirmButtonText: string;
9
9
  confirmButtonClass: string;
10
+ confirmIconName: string;
10
11
  width: string;
11
12
  }
12
13
  export declare class DialogConfig {
13
14
  animationMs?: number;
15
+ icons?: {
16
+ closeIcon?: string;
17
+ confirmIcon?: string;
18
+ };
14
19
  }
15
20
  export declare const DIALOG_CONFIG: InjectionToken<DialogConfig>;
@@ -5,14 +5,13 @@ import * as i1 from "./dialog-container/dialog-container.component";
5
5
  import * as i2 from "./dialog-overlay/dialog-overlay.component";
6
6
  import * as i3 from "./dialog-modal/dialog-modal.component";
7
7
  import * as i4 from "./dialog-header/dialog-header.component";
8
- import * as i5 from "./dialog-link/dialog-link.component";
9
- import * as i6 from "./dialog-actions/dialog-actions.component";
10
- import * as i7 from "./dialog-confirm/dialog-confirm.component";
11
- import * as i8 from "./dialog.insertion";
12
- import * as i9 from "./directives/confirm.directive";
8
+ import * as i5 from "./dialog-actions/dialog-actions.component";
9
+ import * as i6 from "./dialog-confirm/dialog-confirm.component";
10
+ import * as i7 from "./dialog.insertion";
11
+ import * as i8 from "./directives/confirm.directive";
13
12
  export declare class DialogModule {
14
13
  static forRoot(config?: DialogConfig): ModuleWithProviders<DialogModule>;
15
14
  static ɵfac: i0.ɵɵFactoryDeclaration<DialogModule, never>;
16
- static ɵmod: i0.ɵɵNgModuleDeclaration<DialogModule, never, [typeof i1.BbDialogContainer, typeof i2.BbDialogOverlay, typeof i3.BbDialogModal, typeof i4.BbDialogHeader, typeof i5.BbDialogLink, typeof i6.BbDialogActions, typeof i7.BbDialogConfirm, typeof i8.BbDialogInsertion, typeof i9.BbConfirm], [typeof i2.BbDialogOverlay, typeof i3.BbDialogModal, typeof i4.BbDialogHeader, typeof i5.BbDialogLink, typeof i6.BbDialogActions, typeof i9.BbConfirm]>;
15
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DialogModule, never, [typeof i1.BbDialogContainer, typeof i2.BbDialogOverlay, typeof i3.BbDialogModal, typeof i4.BbDialogHeader, typeof i5.BbDialogActions, typeof i6.BbDialogConfirm, typeof i7.BbDialogInsertion, typeof i8.BbConfirm], [typeof i2.BbDialogOverlay, typeof i3.BbDialogModal, typeof i4.BbDialogHeader, typeof i5.BbDialogActions, typeof i8.BbConfirm]>;
17
16
  static ɵinj: i0.ɵɵInjectorDeclaration<DialogModule>;
18
17
  }
@@ -1,11 +1,11 @@
1
- import { ApplicationRef, EnvironmentInjector, TemplateRef, Type } from '@angular/core';
1
+ import { TemplateRef, Type } from '@angular/core';
2
2
  import { BbDialogConfig, DialogConfirmOptions } from './dialog.interfaces';
3
3
  import { BbDialogRef } from './dialog.ref';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class Dialog {
6
- private _applicationRef;
7
- private _environmentInjector;
8
- constructor(_applicationRef: ApplicationRef, _environmentInjector: EnvironmentInjector);
6
+ private readonly _config?;
7
+ private readonly _applicationRef;
8
+ private readonly _environmentInjector;
9
9
  open<T = any>(componentType: Type<any>, config?: BbDialogConfig): BbDialogRef<T>;
10
10
  confirm(title: string | TemplateRef<any>, description: string | TemplateRef<any>, options?: Partial<DialogConfirmOptions>): Promise<boolean>;
11
11
  private createDialog;
@@ -4,10 +4,11 @@ export declare class BbConfirm {
4
4
  private _dialog;
5
5
  bbConfirmTitle: string;
6
6
  bbConfirmDescription: string;
7
+ bbConfirmIconName: string | null;
7
8
  bbConfirmButtonText: string | null;
8
9
  bbCancelButtonText: string | null;
9
10
  confirm: EventEmitter<MouseEvent>;
10
11
  onClick(event: MouseEvent): Promise<void>;
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<BbConfirm, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<BbConfirm, "[bbConfirm]", never, { "bbConfirmTitle": { "alias": "bbConfirmTitle"; "required": false; }; "bbConfirmDescription": { "alias": "bbConfirmDescription"; "required": false; }; "bbConfirmButtonText": { "alias": "bbConfirmButtonText"; "required": false; }; "bbCancelButtonText": { "alias": "bbCancelButtonText"; "required": false; }; }, { "confirm": "bbConfirm"; }, never, never, true, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BbConfirm, "[bbConfirm]", never, { "bbConfirmTitle": { "alias": "bbConfirmTitle"; "required": false; }; "bbConfirmDescription": { "alias": "bbConfirmDescription"; "required": false; }; "bbConfirmIconName": { "alias": "bbConfirmIconName"; "required": false; }; "bbConfirmButtonText": { "alias": "bbConfirmButtonText"; "required": false; }; "bbCancelButtonText": { "alias": "bbCancelButtonText"; "required": false; }; }, { "confirm": "bbConfirm"; }, never, never, true, never>;
13
14
  }
@@ -3,7 +3,6 @@ export * from './lib/dialog.interfaces';
3
3
  export * from './lib/dialog-overlay/dialog-overlay.component';
4
4
  export * from './lib/dialog-modal/dialog-modal.component';
5
5
  export * from './lib/dialog-header/dialog-header.component';
6
- export * from './lib/dialog-link/dialog-link.component';
7
6
  export * from './lib/dialog-actions/dialog-actions.component';
8
7
  export * from './lib/directives/confirm.directive';
9
8
  export * from './lib/dialog.service';
@@ -10,6 +10,7 @@ export declare class BbCheckbox implements AfterViewInit, ControlValueAccessor {
10
10
  indeterminate: boolean;
11
11
  disabled: boolean;
12
12
  grouped: boolean;
13
+ hideText: boolean;
13
14
  checkedChange: EventEmitter<boolean>;
14
15
  indeterminateChange: EventEmitter<boolean>;
15
16
  onTouchedCallback: () => void;
@@ -26,9 +27,10 @@ export declare class BbCheckbox implements AfterViewInit, ControlValueAccessor {
26
27
  private emitChangeEvent;
27
28
  private syncField;
28
29
  static ɵfac: i0.ɵɵFactoryDeclaration<BbCheckbox, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<BbCheckbox, "bb-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "grouped": { "alias": "grouped"; "required": false; }; }, { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; }, never, ["*"], true, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<BbCheckbox, "bb-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "grouped": { "alias": "grouped"; "required": false; }; "hideText": { "alias": "hideText"; "required": false; }; }, { "checkedChange": "checkedChange"; "indeterminateChange": "indeterminateChange"; }, never, ["*"], true, never>;
30
31
  static ngAcceptInputType_checked: unknown;
31
32
  static ngAcceptInputType_indeterminate: unknown;
32
33
  static ngAcceptInputType_disabled: unknown;
33
34
  static ngAcceptInputType_grouped: unknown;
35
+ static ngAcceptInputType_hideText: unknown;
34
36
  }
@@ -5,31 +5,30 @@ import * as i1 from "./form-error/form-error.component";
5
5
  import * as i2 from "./directives/form-submit.directive";
6
6
  import * as i3 from "./directives/form-submitter.directive";
7
7
  import * as i4 from "./directives/input.directive";
8
- import * as i5 from "./directives/addon.directive";
9
- import * as i6 from "./directives/image-upload.directive";
10
- import * as i7 from "./directives/extra-error-controls.directive";
11
- import * as i8 from "./directives/file-drop.directive";
12
- import * as i9 from "./pipes/file-size.pipe";
13
- import * as i10 from "./pipes/file-image.pipe";
14
- import * as i11 from "./pipes/relative-time.pipe";
15
- import * as i12 from "./pipes/date.pipe";
16
- import * as i13 from "./button/button.component";
17
- import * as i14 from "./spinner/spinner.component";
18
- import * as i15 from "./icon/icon.component";
19
- import * as i16 from "./form-control/form-control.component";
20
- import * as i17 from "./form-group/form-group.component";
21
- import * as i18 from "./checkbox/checkbox.component";
22
- import * as i19 from "./checkbox-group/checkbox-group.component";
23
- import * as i20 from "./radio-group/radio-group.component";
24
- import * as i21 from "./radio-button/radio-button.component";
25
- import * as i22 from "./avatar/avatar.component";
26
- import * as i23 from "./multi-file-control/multi-file-control.component";
27
- import * as i24 from "./file-picker/file-picker.component";
28
- import * as i25 from "./image-picker/image-picker.component";
29
- import * as i26 from "./date-picker/date-picker.component";
8
+ import * as i5 from "./directives/image-upload.directive";
9
+ import * as i6 from "./directives/extra-error-controls.directive";
10
+ import * as i7 from "./directives/file-drop.directive";
11
+ import * as i8 from "./pipes/file-size.pipe";
12
+ import * as i9 from "./pipes/file-image.pipe";
13
+ import * as i10 from "./pipes/relative-time.pipe";
14
+ import * as i11 from "./pipes/date.pipe";
15
+ import * as i12 from "./button/button.component";
16
+ import * as i13 from "./spinner/spinner.component";
17
+ import * as i14 from "./icon/icon.component";
18
+ import * as i15 from "./form-control/form-control.component";
19
+ import * as i16 from "./form-group/form-group.component";
20
+ import * as i17 from "./checkbox/checkbox.component";
21
+ import * as i18 from "./checkbox-group/checkbox-group.component";
22
+ import * as i19 from "./radio-group/radio-group.component";
23
+ import * as i20 from "./radio-button/radio-button.component";
24
+ import * as i21 from "./avatar/avatar.component";
25
+ import * as i22 from "./multi-file-control/multi-file-control.component";
26
+ import * as i23 from "./file-picker/file-picker.component";
27
+ import * as i24 from "./image-picker/image-picker.component";
28
+ import * as i25 from "./date-picker/date-picker.component";
30
29
  export declare class ElementsModule {
31
30
  static forRoot(config?: ElementsConfig): ModuleWithProviders<ElementsModule>;
32
31
  static ɵfac: i0.ɵɵFactoryDeclaration<ElementsModule, never>;
33
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElementsModule, never, [typeof i1.BbFormError, typeof i2.BbFormSubmit, typeof i3.BbFormSubmitter, typeof i4.BbInput, typeof i5.BbPrefix, typeof i5.BbSuffix, typeof i6.BbImageUpload, typeof i7.BbExtraErrorControls, typeof i8.BbFileDrop, typeof i9.BbFileSize, typeof i10.BbFileImage, typeof i11.BbRelativeTime, typeof i12.BbDate, typeof i13.BbButton, typeof i13.BbAnchor, typeof i14.BbSpinner, typeof i15.BbIcon, typeof i16.BbFormControl, typeof i17.BbFormGroup, typeof i18.BbCheckbox, typeof i19.BbCheckboxGroup, typeof i20.BbRadioGroup, typeof i21.BbRadioButton, typeof i22.BbAvatar, typeof i23.BbMultiFileControl, typeof i24.BbFilePicker, typeof i25.BbImagePicker, typeof i26.BbDatePicker], [typeof i1.BbFormError, typeof i2.BbFormSubmit, typeof i3.BbFormSubmitter, typeof i4.BbInput, typeof i5.BbPrefix, typeof i5.BbSuffix, typeof i6.BbImageUpload, typeof i7.BbExtraErrorControls, typeof i8.BbFileDrop, typeof i9.BbFileSize, typeof i10.BbFileImage, typeof i11.BbRelativeTime, typeof i12.BbDate, typeof i13.BbButton, typeof i13.BbAnchor, typeof i14.BbSpinner, typeof i15.BbIcon, typeof i16.BbFormControl, typeof i17.BbFormGroup, typeof i18.BbCheckbox, typeof i19.BbCheckboxGroup, typeof i20.BbRadioGroup, typeof i21.BbRadioButton, typeof i22.BbAvatar, typeof i23.BbMultiFileControl, typeof i24.BbFilePicker, typeof i25.BbImagePicker, typeof i26.BbDatePicker]>;
32
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElementsModule, never, [typeof i1.BbFormError, typeof i2.BbFormSubmit, typeof i3.BbFormSubmitter, typeof i4.BbInput, typeof i5.BbImageUpload, typeof i6.BbExtraErrorControls, typeof i7.BbFileDrop, typeof i8.BbFileSize, typeof i9.BbFileImage, typeof i10.BbRelativeTime, typeof i11.BbDate, typeof i12.BbButton, typeof i12.BbAnchor, typeof i13.BbSpinner, typeof i14.BbIcon, typeof i15.BbFormControl, typeof i16.BbFormGroup, typeof i17.BbCheckbox, typeof i18.BbCheckboxGroup, typeof i19.BbRadioGroup, typeof i20.BbRadioButton, typeof i21.BbAvatar, typeof i22.BbMultiFileControl, typeof i23.BbFilePicker, typeof i24.BbImagePicker, typeof i25.BbDatePicker], [typeof i1.BbFormError, typeof i2.BbFormSubmit, typeof i3.BbFormSubmitter, typeof i4.BbInput, typeof i5.BbImageUpload, typeof i6.BbExtraErrorControls, typeof i7.BbFileDrop, typeof i8.BbFileSize, typeof i9.BbFileImage, typeof i10.BbRelativeTime, typeof i11.BbDate, typeof i12.BbButton, typeof i12.BbAnchor, typeof i13.BbSpinner, typeof i14.BbIcon, typeof i15.BbFormControl, typeof i16.BbFormGroup, typeof i17.BbCheckbox, typeof i18.BbCheckboxGroup, typeof i19.BbRadioGroup, typeof i20.BbRadioButton, typeof i21.BbAvatar, typeof i22.BbMultiFileControl, typeof i23.BbFilePicker, typeof i24.BbImagePicker, typeof i25.BbDatePicker]>;
34
33
  static ɵinj: i0.ɵɵInjectorDeclaration<ElementsModule>;
35
34
  }
@@ -1,7 +1,6 @@
1
- import { BbRadioGroup } from '../radio-group/radio-group.component';
2
1
  import * as i0 from "@angular/core";
3
2
  export declare class BbRadioButton<T> {
4
- private _radioGroup;
3
+ private readonly _radioGroup?;
5
4
  value: T | null;
6
5
  hideText: boolean;
7
6
  set disabled(value: boolean);
@@ -10,7 +9,6 @@ export declare class BbRadioButton<T> {
10
9
  onClick(): void;
11
10
  onSpacePressed(): void;
12
11
  get selected(): boolean;
13
- constructor(_radioGroup: BbRadioGroup<T>);
14
12
  static ɵfac: i0.ɵɵFactoryDeclaration<BbRadioButton<any>, never>;
15
13
  static ɵcmp: i0.ɵɵComponentDeclaration<BbRadioButton<any>, "bb-radio-button", never, { "value": { "alias": "value"; "required": false; }; "hideText": { "alias": "hideText"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
16
14
  static ngAcceptInputType_hideText: unknown;
@@ -1,7 +1,6 @@
1
1
  export * from './lib/directives/form-submit.directive';
2
2
  export * from './lib/directives/form-submitter.directive';
3
3
  export * from './lib/directives/input.directive';
4
- export * from './lib/directives/addon.directive';
5
4
  export * from './lib/directives/image-upload.directive';
6
5
  export * from './lib/directives/extra-error-controls.directive';
7
6
  export * from './lib/directives/file-drop.directive';
@@ -1,11 +1,11 @@
1
1
  import { isObservable, of, combineLatest, BehaviorSubject, Subscription, merge, defer } from 'rxjs';
2
2
  import { tap, switchMap, map, delay, shareReplay, distinctUntilChanged, catchError, startWith, debounceTime } from 'rxjs/operators';
3
3
  import * as i0 from '@angular/core';
4
- import { Directive, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Input, numberAttribute, booleanAttribute, Attribute, Optional, HostListener, NgModule } from '@angular/core';
4
+ import { Directive, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Input, InjectionToken, inject, numberAttribute, booleanAttribute, Attribute, Optional, HostListener, NgModule, makeEnvironmentProviders } from '@angular/core';
5
5
  import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
6
6
  import { BbLocalizeString, BbLocalize, BbLocalizeTemplate } from '@bravobit/bb-foundation/localize';
7
7
  import { combineLatestMap, getControlValue } from '@bravobit/bb-foundation/rxjs';
8
- import { BbInput, BbIcon, BbFormControl, BbPrefix, BbSuffix, BbSpinner, BbAvatar } from '@bravobit/bb-foundation/elements';
8
+ import { BbIcon, BbInput, BbFormControl, BbSpinner, BbAvatar } from '@bravobit/bb-foundation/elements';
9
9
  import * as i1 from '@angular/forms';
10
10
  import { ReactiveFormsModule, FormControl } from '@angular/forms';
11
11
  import { BbTemplate } from '@bravobit/bb-foundation/utils';
@@ -435,7 +435,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
435
435
  type: Input
436
436
  }] } });
437
437
 
438
+ const COLLECTIONS_CONFIG = new InjectionToken('collections config');
439
+
438
440
  class BbCollectionsPager {
441
+ // Dependencies.
442
+ _config = inject(COLLECTIONS_CONFIG, { optional: true });
443
+ // Readonly data.
444
+ arrowPreviousIconName = this._config?.icons?.pagerArrowPrevious ?? 'material:arrow_back';
445
+ arrowNextIconName = this._config?.icons?.pagerArrowNext ?? 'material:arrow_forward';
439
446
  set maxAmountOfButtons(value) {
440
447
  this._maxAmountOfButtons$.next(Math.max(1, value));
441
448
  }
@@ -529,11 +536,11 @@ class BbCollectionsPager {
529
536
  .map(page => ({ page, active: pageNumber === page }));
530
537
  }
531
538
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsPager, deps: [], target: i0.ɵɵFactoryTarget.Component });
532
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BbCollectionsPager, isStandalone: true, selector: "bb-collections-pager", inputs: { maxAmountOfButtons: ["maxAmountOfButtons", "maxAmountOfButtons", numberAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid var(--bb-collections-pager-border-color);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid var(--bb-collections-pager-border-color)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "ng-template[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
539
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BbCollectionsPager, isStandalone: true, selector: "bb-collections-pager", inputs: { maxAmountOfButtons: ["maxAmountOfButtons", "maxAmountOfButtons", numberAttribute], collection: "collection" }, host: { classAttribute: "bb-collections-pager" }, ngImport: i0, template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n <bb-icon [src]=\"arrowPreviousIconName\"\n size=\"1.125\"></bb-icon>\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n <bb-icon [src]=\"arrowNextIconName\"\n size=\"1.125\"></bb-icon>\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid var(--bb-collections-pager-border-color);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid var(--bb-collections-pager-border-color)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: BbLocalizeString, selector: "[bb-localize-string]", inputs: ["substitutions", "bb-localize-string"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "directive", type: BbLocalizeTemplate, selector: "ng-template[bbLocalizeTemplate]", inputs: ["bbLocalizeTemplate"] }, { kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "unit", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
533
540
  }
534
541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsPager, decorators: [{
535
542
  type: Component,
536
- args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, imports: [AsyncPipe, BbLocalizeString, BbLocalize, BbLocalizeTemplate], template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n &#8592;\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n &#8594;\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid var(--bb-collections-pager-border-color);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid var(--bb-collections-pager-border-color)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"] }]
543
+ args: [{ selector: 'bb-collections-pager', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-collections-pager' }, imports: [AsyncPipe, BbLocalizeString, BbLocalize, BbLocalizeTemplate, BbIcon], template: "@if (data$ | async; as data) {\n <div [bb-localize-string]=\"'collection.showing_label' | bbLocalize\"\n class=\"bb-collections-pager-text\">\n <strong *bbLocalizeTemplate=\"'start'\">{{ data?.start }}</strong>\n <strong *bbLocalizeTemplate=\"'end'\">{{ data?.end }}</strong>\n <strong *bbLocalizeTemplate=\"'total'\">{{ data?.totalEntries }}</strong>\n </div>\n\n <div class=\"bb-collections-pager-container\">\n <ul class=\"bb-collections-pager-list\">\n <li class=\"bb-collections-pager-item\"\n title=\"Previous page\">\n <button [disabled]=\"data?.pageNumber <= 1\"\n (click)=\"setPage(data?.pageNumber - 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow first\"\n type=\"button\">\n <bb-icon [src]=\"arrowPreviousIconName\"\n size=\"1.125\"></bb-icon>\n </button>\n </li>\n @for (item of data?.pages; track item?.page) {\n <li [title]=\"'Page ' + item?.page\"\n class=\"bb-collections-pager-item\">\n <button [class.active]=\"item?.active\"\n (click)=\"setPage(item?.page, data?.totalPages)\"\n class=\"bb-collections-pager-button\"\n type=\"button\">\n {{ item?.page }}\n </button>\n </li>\n }\n <li class=\"bb-collections-pager-item\"\n title=\"Next page\">\n <button [disabled]=\"data?.pageNumber >= data?.totalPages\"\n (click)=\"setPage(data?.pageNumber + 1, data?.totalPages)\"\n class=\"bb-collections-pager-button arrow last\"\n type=\"button\">\n <bb-icon [src]=\"arrowNextIconName\"\n size=\"1.125\"></bb-icon>\n </button>\n </li>\n </ul>\n </div>\n}\n", styles: [".bb-collections-pager{display:flex;align-items:center;font-size:.875rem;flex-direction:column-reverse}.bb-collections-pager-text{display:block;margin-top:.75rem}.bb-collections-pager-text>strong{font-weight:500}.bb-collections-pager-container{width:100%;display:flex;overflow-x:auto;align-items:center;justify-content:center}.bb-collections-pager-list{display:flex;align-items:center;border-radius:.5rem;background-color:#fff;border:1px solid var(--bb-collections-pager-border-color);box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-pager-item:not(:last-child){border-right:1px solid var(--bb-collections-pager-border-color)}.bb-collections-pager-button{height:2rem;border:none;display:flex;appearance:none;min-height:2rem;min-width:2.5rem;-webkit-user-select:none;user-select:none;padding:0 .25rem;align-items:center;justify-content:center;background-color:transparent;transition:color .2s cubic-bezier(0,0,.2,1),background-color .2s cubic-bezier(0,0,.2,1)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus,.bb-collections-pager-button:active,.bb-collections-pager-button.active{font-weight:400;color:var(--bb-collections-pager-color)}.bb-collections-pager-button:hover,.bb-collections-pager-button:focus{background-color:var(--bb-collections-pager-hover-background-color)}.bb-collections-pager-button:active,.bb-collections-pager-button.active{background-color:var(--bb-collections-pager-active-background-color)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active{box-shadow:var(--bb-collections-pager-focus-box-shadow)}.bb-collections-pager-button:not(.arrow):focus,.bb-collections-pager-button:not(.arrow):active,.bb-collections-pager-button:not(.arrow).active{outline:1px solid var(--bb-collections-pager-outline-color)}.bb-collections-pager-button.arrow{font-weight:500}.bb-collections-pager-button.arrow.first{border-top-left-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}.bb-collections-pager-button.arrow.last{border-top-right-radius:calc(.5rem - 1px);border-bottom-right-radius:calc(.5rem - 1px)}.bb-collections-pager-button:disabled{color:#111;outline:none;opacity:.25;cursor:default;pointer-events:none;background-color:transparent}@media only screen and (min-width: 768px){.bb-collections-pager{flex-wrap:wrap;align-items:center;flex-direction:row;justify-content:space-between}.bb-collections-pager-text{margin-top:0}.bb-collections-pager-container{width:auto;overflow-x:unset}}\n"] }]
537
544
  }], propDecorators: { maxAmountOfButtons: [{
538
545
  type: Input,
539
546
  args: [{ transform: numberAttribute }]
@@ -543,19 +550,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
543
550
  }] } });
544
551
 
545
552
  class BbCollectionsActions {
553
+ // Dependencies.
554
+ _config = inject(COLLECTIONS_CONFIG, { optional: true });
555
+ // Readonly data.
556
+ searchIconName = this._config?.icons?.actionsSearch ?? 'material:search';
557
+ closeIconName = this._config?.icons?.actionsClose ?? 'material:close';
546
558
  // Inputs.
547
559
  collection = null;
548
560
  queryPlaceholder = null;
549
561
  standalone = false;
550
562
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsActions, deps: [], target: i0.ɵɵFactoryTarget.Component });
551
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BbCollectionsActions, isStandalone: true, selector: "bb-collections-actions", inputs: { collection: "collection", queryPlaceholder: "queryPlaceholder", standalone: ["standalone", "standalone", booleanAttribute] }, host: { properties: { "class.standalone": "standalone" }, classAttribute: "bb-collections-actions" }, ngImport: i0, template: "<div class=\"bb-collections-actions-row\">\n @if (collection?.queryFieldsControl?.value?.length > 0) {\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon bbPrefix\n src=\"material:search\"></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n @if (collection?.queryControl?.value?.length > 0) {\n <button (click)=\"collection?.queryControl?.setValue('')\"\n bbSuffix\n data-button\n type=\"button\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n }\n </bb-form-control>\n }\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: BbInput, selector: "input[bbInput],textarea[bbInput],select[bbInput]", inputs: ["required"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "unit", "src"] }, { kind: "component", type: BbFormControl, selector: "bb-form-control", inputs: ["label", "hint", "grouped", "hideErrors"] }, { kind: "directive", type: BbPrefix, selector: "[bbPrefix]" }, { kind: "directive", type: BbSuffix, selector: "[bbSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
563
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: BbCollectionsActions, isStandalone: true, selector: "bb-collections-actions", inputs: { collection: "collection", queryPlaceholder: "queryPlaceholder", standalone: ["standalone", "standalone", booleanAttribute] }, host: { properties: { "class.standalone": "standalone" }, classAttribute: "bb-collections-actions" }, ngImport: i0, template: "<div class=\"bb-collections-actions-row\">\n @if (collection?.queryFieldsControl?.value?.length > 0) {\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon [src]=\"searchIconName\"\n bbPrefix></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n @if (collection?.queryControl?.value?.length > 0) {\n <button (click)=\"collection?.queryControl?.setValue('')\"\n bbSuffix\n data-button\n type=\"button\">\n <bb-icon [src]=\"closeIconName\"></bb-icon>\n </button>\n }\n </bb-form-control>\n }\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: BbInput, selector: "input[bbInput],textarea[bbInput],select[bbInput]", inputs: ["required"] }, { kind: "pipe", type: BbLocalize, name: "bbLocalize" }, { kind: "component", type: BbIcon, selector: "bb-icon", inputs: ["alt", "size", "ariaHidden", "unit", "src"] }, { kind: "component", type: BbFormControl, selector: "bb-form-control", inputs: ["label", "hint", "grouped", "hideErrors"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
552
564
  }
553
565
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsActions, decorators: [{
554
566
  type: Component,
555
567
  args: [{ selector: 'bb-collections-actions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
556
568
  'class': 'bb-collections-actions',
557
569
  '[class.standalone]': 'standalone'
558
- }, imports: [ReactiveFormsModule, BbInput, BbLocalize, BbIcon, BbFormControl, BbPrefix, BbSuffix], template: "<div class=\"bb-collections-actions-row\">\n @if (collection?.queryFieldsControl?.value?.length > 0) {\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon bbPrefix\n src=\"material:search\"></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n @if (collection?.queryControl?.value?.length > 0) {\n <button (click)=\"collection?.queryControl?.setValue('')\"\n bbSuffix\n data-button\n type=\"button\">\n <bb-icon src=\"material:close\"></bb-icon>\n </button>\n }\n </bb-form-control>\n }\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"] }]
570
+ }, imports: [ReactiveFormsModule, BbInput, BbLocalize, BbIcon, BbFormControl], template: "<div class=\"bb-collections-actions-row\">\n @if (collection?.queryFieldsControl?.value?.length > 0) {\n <bb-form-control class=\"bb-collections-actions-search\">\n <bb-icon [src]=\"searchIconName\"\n bbPrefix></bb-icon>\n <input [formControl]=\"collection?.queryControl\"\n [placeholder]=\"queryPlaceholder ?? ('collection.search_label' | bbLocalize)\"\n bbInput\n autocomplete=\"off\"\n type=\"search\">\n @if (collection?.queryControl?.value?.length > 0) {\n <button (click)=\"collection?.queryControl?.setValue('')\"\n bbSuffix\n data-button\n type=\"button\">\n <bb-icon [src]=\"closeIconName\"></bb-icon>\n </button>\n }\n </bb-form-control>\n }\n <ng-content select=\"[data-collections-action]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".bb-collections-actions{gap:.75rem;display:flex;color:#111;font-size:.875rem;padding:.75rem 1rem;flex-direction:column;border-bottom:1px solid hsl(213,8%,90%)}.bb-collections-actions.standalone{border-bottom:none;border-radius:.5rem;margin-bottom:1.5rem;background-color:#fff;box-shadow:0 .375rem .375rem -.375rem #0000001a}.bb-collections-actions-row,[data-collections-row]{gap:.75rem;display:flex;flex-direction:column}.bb-collections-actions-search{flex:1}@media only screen and (min-width: 768px){.bb-collections-actions-row,[data-collections-row]{flex-direction:row}.bb-collections-actions-row.end,[data-collections-row].end{justify-content:flex-end}}\n"] }]
559
571
  }], propDecorators: { collection: [{
560
572
  type: Input,
561
573
  args: [{ required: true }]
@@ -681,7 +693,7 @@ class BbCollectionsTableSorting {
681
693
  return this.orderedOptions?.[newIndex] ?? null;
682
694
  }
683
695
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsTableSorting, deps: [{ token: 'bb-collections-table-sorting', attribute: true }, { token: i0.ChangeDetectorRef }, { token: BbCollectionsTable, optional: true }], target: i0.ɵɵFactoryTarget.Component });
684
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: BbCollectionsTableSorting, isStandalone: true, selector: "th[bb-collections-table-sorting]", host: { listeners: { "click": "onClick()" }, properties: { "class.asc": "direction === 'asc'", "class.desc": "direction === 'desc'" }, classAttribute: "bb-collections-table-sorting" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .12s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
696
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: BbCollectionsTableSorting, isStandalone: true, selector: "th[bb-collections-table-sorting]", host: { listeners: { "click": "onClick()" }, properties: { "class.asc": "direction === 'asc'", "class.desc": "direction === 'desc'" }, classAttribute: "bb-collections-table-sorting" }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .2s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
685
697
  }
686
698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BbCollectionsTableSorting, decorators: [{
687
699
  type: Component,
@@ -689,7 +701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
689
701
  'class': 'bb-collections-table-sorting',
690
702
  '[class.asc]': 'direction === \'asc\'',
691
703
  '[class.desc]': 'direction === \'desc\''
692
- }, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .12s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"] }]
704
+ }, template: "<ng-content></ng-content>\n", styles: [".bb-collections-table-sorting{cursor:pointer;-webkit-user-select:none;user-select:none;background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E');background-repeat:no-repeat;padding-right:2.5rem!important;background-size:.5625rem .9375rem;background-position:center right 1rem;transition:background-color .2s cubic-bezier(0,0,.2,1)}.bb-collections-table-sorting:hover,.bb-collections-table-sorting:focus{background-color:#f4f0f0}.bb-collections-table-sorting:active{background-color:#f0ebeb}.bb-collections-table-sorting.asc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"black\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}.bb-collections-table-sorting.desc{background-image:url('data:image/svg+xml,%3Csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 9 15\" width=\"9\" height=\"15\"%3E%3Cpath fill=\"%23dcdcdc\" d=\"M4.5 0L0 7h9z\"%3E%3C/path%3E%3Cpath fill=\"black\" d=\"M4.5 15L9 8H0z\"%3E%3C/path%3E%3C/svg%3E')}\n"] }]
693
705
  }], ctorParameters: () => [{ type: undefined, decorators: [{
694
706
  type: Attribute,
695
707
  args: ['bb-collections-table-sorting']
@@ -939,9 +951,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
939
951
  }]
940
952
  }] });
941
953
 
954
+ function provideCollectionsConfig(config) {
955
+ return makeEnvironmentProviders([
956
+ { provide: COLLECTIONS_CONFIG, useValue: config }
957
+ ]);
958
+ }
959
+
942
960
  /**
943
961
  * Generated bundle index. Do not edit.
944
962
  */
945
963
 
946
- export { ApiCollectionProvider, ArrayCollection, BbCollectionsActions, BbCollectionsData, BbCollectionsDataContext, BbCollectionsDataRow, BbCollectionsDataRowContext, BbCollectionsEmpty, BbCollectionsEmptyContext, BbCollectionsError, BbCollectionsErrorContext, BbCollectionsGrid, BbCollectionsInitial, BbCollectionsInitialContext, BbCollectionsItem, BbCollectionsItemContext, BbCollectionsPager, BbCollectionsTable, BbCollectionsTableLabel, BbCollectionsTableSorting, BbCollectionsViewer, Collection, CollectionProvider, CollectionState, CollectionsModule, LocalCollectionProvider };
964
+ export { ApiCollectionProvider, ArrayCollection, BbCollectionsActions, BbCollectionsData, BbCollectionsDataContext, BbCollectionsDataRow, BbCollectionsDataRowContext, BbCollectionsEmpty, BbCollectionsEmptyContext, BbCollectionsError, BbCollectionsErrorContext, BbCollectionsGrid, BbCollectionsInitial, BbCollectionsInitialContext, BbCollectionsItem, BbCollectionsItemContext, BbCollectionsPager, BbCollectionsTable, BbCollectionsTableLabel, BbCollectionsTableSorting, BbCollectionsViewer, COLLECTIONS_CONFIG, Collection, CollectionProvider, CollectionState, CollectionsModule, LocalCollectionProvider, provideCollectionsConfig };
947
965
  //# sourceMappingURL=bravobit-bb-foundation-collections.mjs.map