@ardium-ui/ui 2.3.2 → 2.4.0

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 (85) hide show
  1. package/esm2022/lib/_internal/boolean-component.mjs +3 -2
  2. package/esm2022/lib/_internal/disablable-component.mjs +9 -5
  3. package/esm2022/lib/_internal/focusable-component.mjs +8 -4
  4. package/esm2022/lib/_internal/models/queue.mjs +59 -0
  5. package/esm2022/lib/_internal/ngmodel-component.mjs +5 -3
  6. package/esm2022/lib/_internal/selectable-list-component.mjs +30 -21
  7. package/esm2022/lib/badge/badge.defaults.mjs +14 -0
  8. package/esm2022/lib/badge/badge.directive.mjs +18 -15
  9. package/esm2022/lib/badge/index.mjs +3 -2
  10. package/esm2022/lib/buttons/_button-base.defaults.mjs +16 -0
  11. package/esm2022/lib/buttons/_button-base.mjs +7 -8
  12. package/esm2022/lib/buttons/button/button.component.mjs +8 -10
  13. package/esm2022/lib/buttons/button/button.defaults.mjs +13 -0
  14. package/esm2022/lib/buttons/button/index.mjs +3 -2
  15. package/esm2022/lib/buttons/fab/fab.component.mjs +5 -5
  16. package/esm2022/lib/buttons/fab/fab.defaults.mjs +11 -0
  17. package/esm2022/lib/buttons/fab/index.mjs +3 -2
  18. package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +8 -7
  19. package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +6 -0
  20. package/esm2022/lib/buttons/icon-button/index.mjs +3 -2
  21. package/esm2022/lib/card/card.children.mjs +13 -13
  22. package/esm2022/lib/card/card.component.mjs +6 -5
  23. package/esm2022/lib/card/card.defaults.mjs +11 -0
  24. package/esm2022/lib/card/index.mjs +4 -3
  25. package/esm2022/lib/checkbox/checkbox.component.mjs +6 -5
  26. package/esm2022/lib/checkbox/checkbox.defaults.mjs +11 -0
  27. package/esm2022/lib/checkbox/index.mjs +3 -2
  28. package/esm2022/lib/checkbox-list/checkbox-list.component.mjs +11 -15
  29. package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +19 -0
  30. package/esm2022/lib/chip/chip.component.mjs +9 -10
  31. package/esm2022/lib/chip/chip.defaults.mjs +17 -0
  32. package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +10 -14
  33. package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +11 -0
  34. package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +13 -15
  35. package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +12 -0
  36. package/esm2022/lib/dialog/dialog.component.mjs +1 -1
  37. package/esm2022/lib/divider/divider.component.mjs +10 -12
  38. package/esm2022/lib/divider/divider.defaults.mjs +7 -0
  39. package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +1 -1
  40. package/esm2022/lib/inputs/number-input/number-input.component.mjs +1 -1
  41. package/esm2022/lib/snackbar/snackbar.component.mjs +2 -2
  42. package/esm2022/lib/snackbar/snackbar.service.mjs +3 -3
  43. package/esm2022/lib/tabber/tabber.component.mjs +6 -4
  44. package/fesm2022/ardium-ui-ui.mjs +307 -175
  45. package/fesm2022/ardium-ui-ui.mjs.map +1 -1
  46. package/lib/_internal/boolean-component.d.ts +5 -1
  47. package/lib/_internal/disablable-component.d.ts +8 -2
  48. package/lib/_internal/focusable-component.d.ts +6 -1
  49. package/lib/_internal/ngmodel-component.d.ts +6 -2
  50. package/lib/_internal/selectable-list-component.d.ts +18 -12
  51. package/lib/badge/badge.defaults.d.ts +12 -0
  52. package/lib/badge/badge.directive.d.ts +4 -4
  53. package/lib/badge/index.d.ts +2 -1
  54. package/lib/buttons/_button-base.d.ts +5 -1
  55. package/lib/buttons/_button-base.defaults.d.ts +15 -0
  56. package/lib/buttons/button/button.component.d.ts +2 -3
  57. package/lib/buttons/button/button.defaults.d.ts +10 -0
  58. package/lib/buttons/button/index.d.ts +2 -1
  59. package/lib/buttons/fab/fab.component.d.ts +2 -3
  60. package/lib/buttons/fab/fab.defaults.d.ts +8 -0
  61. package/lib/buttons/fab/index.d.ts +2 -1
  62. package/lib/buttons/icon-button/icon-button.component.d.ts +1 -0
  63. package/lib/buttons/icon-button/icon-button.defaults.d.ts +5 -0
  64. package/lib/buttons/icon-button/index.d.ts +2 -1
  65. package/lib/card/card.children.d.ts +1 -1
  66. package/lib/card/card.component.d.ts +1 -0
  67. package/lib/card/card.defaults.d.ts +9 -0
  68. package/lib/card/index.d.ts +3 -2
  69. package/lib/checkbox/checkbox.component.d.ts +1 -0
  70. package/lib/checkbox/checkbox.defaults.d.ts +8 -0
  71. package/lib/checkbox/index.d.ts +2 -1
  72. package/lib/checkbox-list/checkbox-list.component.d.ts +2 -5
  73. package/lib/checkbox-list/checkbox-list.defaults.d.ts +18 -0
  74. package/lib/chip/chip.component.d.ts +1 -0
  75. package/lib/chip/chip.defaults.d.ts +22 -0
  76. package/lib/chip/deletable-chip/deletable-chip.component.d.ts +1 -3
  77. package/lib/chip/deletable-chip/deletable-chip.defaults.d.ts +7 -0
  78. package/lib/chip/selectable-chip/selectable-chip.component.d.ts +1 -3
  79. package/lib/chip/selectable-chip/selectable-chip.defaults.d.ts +8 -0
  80. package/lib/divider/divider.component.d.ts +1 -1
  81. package/lib/divider/divider.defaults.d.ts +5 -0
  82. package/lib/tabber/tabber.component.d.ts +2 -1
  83. package/package.json +1 -1
  84. package/esm2022/lib/_internal/queue.mjs +0 -59
  85. /package/lib/_internal/{queue.d.ts → models/queue.d.ts} +0 -0
@@ -1,10 +1,14 @@
1
1
  import { ControlValueAccessor } from '@angular/forms';
2
- import { _NgModelComponentBase } from './ngmodel-component';
2
+ import { _NgModelComponentBase, _NgModelComponentDefaults } from './ngmodel-component';
3
3
  import * as i0 from "@angular/core";
4
+ export interface _BooleanComponentDefaults extends _NgModelComponentDefaults {
5
+ }
6
+ export declare const _booleanComponentDefaults: _BooleanComponentDefaults;
4
7
  /**
5
8
  * Common code for components, which only operate on the "selected" state.
6
9
  */
7
10
  export declare abstract class _BooleanComponentBase extends _NgModelComponentBase implements ControlValueAccessor {
11
+ protected readonly _DEFAULTS: _BooleanComponentDefaults;
8
12
  writeValue(v: any): void;
9
13
  /**
10
14
  * Emits all select-state-related events.
@@ -1,11 +1,17 @@
1
1
  import * as i0 from "@angular/core";
2
+ export interface _DisablableComponentDefaults {
3
+ readonly: boolean;
4
+ disabled: boolean;
5
+ }
6
+ export declare const _disablableComponentDefaults: _DisablableComponentDefaults;
2
7
  export declare abstract class _DisablableComponentBase {
8
+ protected readonly _DEFAULTS: _DisablableComponentDefaults;
3
9
  /**
4
- * Whether the component is read-only. Defines the `readonly` host attribute and `ard-readonly` host class. Coearcible into a boolean.
10
+ * Whether the component is read-only. Defines the `readonly` host attribute and `ard-readonly` host class. Coercible into a boolean.
5
11
  */
6
12
  readonly readonly: import("@angular/core").InputSignalWithTransform<any, boolean>;
7
13
  /**
8
- * Whether the component is disabled. Defines the `disabled` host attribute and `ard-disabled` host class. Coearcible into a boolean.
14
+ * Whether the component is disabled. Defines the `disabled` host attribute and `ard-disabled` host class. Coercible into a boolean.
9
15
  */
10
16
  readonly disabled: import("@angular/core").WritableSignal<boolean>;
11
17
  set _disabled(v: any);
@@ -1,6 +1,11 @@
1
- import { _DisablableComponentBase } from './disablable-component';
1
+ import { _DisablableComponentBase, _DisablableComponentDefaults } from './disablable-component';
2
2
  import * as i0 from "@angular/core";
3
+ export interface _FocusableComponentDefaults extends _DisablableComponentDefaults {
4
+ tabIndex: number;
5
+ }
6
+ export declare const _focusableComponentDefaults: _FocusableComponentDefaults;
3
7
  export declare abstract class _FocusableComponentBase extends _DisablableComponentBase {
8
+ protected readonly _DEFAULTS: _FocusableComponentDefaults;
4
9
  private readonly _focusableElement;
5
10
  /**
6
11
  * Focuses the correct element in the component.
@@ -1,12 +1,16 @@
1
1
  import { ControlValueAccessor } from '@angular/forms';
2
- import { _FocusableComponentBase } from './focusable-component';
2
+ import { _FocusableComponentBase, _FocusableComponentDefaults } from './focusable-component';
3
3
  import * as i0 from "@angular/core";
4
+ export interface _NgModelComponentDefaults extends _FocusableComponentDefaults {
5
+ }
6
+ export declare const _ngModelComponentDefaults: _NgModelComponentDefaults;
4
7
  /**
5
- * Common code for components, which implement the ControlValueAccessor.
8
+ * Common code for components which implement the ControlValueAccessor.
6
9
  *
7
10
  * **Warning**: `writeValue` function should be implemented on the child component!
8
11
  */
9
12
  export declare abstract class _NgModelComponentBase extends _FocusableComponentBase implements ControlValueAccessor {
13
+ protected readonly _DEFAULTS: _NgModelComponentDefaults;
10
14
  protected _onChangeRegistered: (_: any) => void;
11
15
  protected _onTouchedRegistered: () => void;
12
16
  /**
@@ -1,26 +1,32 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
1
  import { ControlValueAccessor } from '@angular/forms';
3
2
  import { ArdOptionSimple, CompareWithFn, OptionContext } from '../types/item-storage.types';
4
3
  import { Nullable } from '../types/utility.types';
5
4
  import { SimpleItemStorage, SimpleItemStorageHost } from './item-storages/simple-item-storage';
6
- import { _NgModelComponentBase } from './ngmodel-component';
5
+ import { _NgModelComponentBase, _NgModelComponentDefaults } from './ngmodel-component';
7
6
  import * as i0 from "@angular/core";
7
+ export interface _SelectableListComponentDefaults extends _NgModelComponentDefaults {
8
+ valueFrom: string;
9
+ labelFrom: string;
10
+ disabledFrom: string;
11
+ compareWith: Nullable<CompareWithFn>;
12
+ multiselectable: boolean;
13
+ requireValue: boolean;
14
+ invertDisabled: boolean;
15
+ maxSelectedItems: Nullable<number>;
16
+ }
17
+ export declare const _selectableListComponentDefaults: _SelectableListComponentDefaults;
8
18
  export declare abstract class _SelectableListComponentBase extends _NgModelComponentBase implements ControlValueAccessor, SimpleItemStorageHost {
9
- private _cd;
19
+ protected readonly _DEFAULTS: _SelectableListComponentDefaults;
10
20
  readonly itemStorage: SimpleItemStorage;
11
21
  readonly htmlId: `${string}-${string}-${string}-${string}-${string}`;
12
22
  readonly element: HTMLElement;
13
- readonly DEFAULTS: {
14
- valueFrom: string;
15
- labelFrom: string;
16
- disabledFrom: string;
17
- };
23
+ readonly DEFAULTS: _SelectableListComponentDefaults;
18
24
  abstract readonly _componentId: string;
19
25
  abstract readonly _componentName: string;
20
- constructor(_cd: ChangeDetectorRef);
21
- readonly valueFrom: import("@angular/core").InputSignal<Nullable<string>>;
22
- readonly labelFrom: import("@angular/core").InputSignal<Nullable<string>>;
23
- readonly disabledFrom: import("@angular/core").InputSignal<Nullable<string>>;
26
+ private readonly _cd;
27
+ readonly valueFrom: import("@angular/core").InputSignal<string>;
28
+ readonly labelFrom: import("@angular/core").InputSignal<string>;
29
+ readonly disabledFrom: import("@angular/core").InputSignal<string>;
24
30
  readonly compareWith: import("@angular/core").InputSignal<Nullable<CompareWithFn>>;
25
31
  get items(): any[];
26
32
  set items(value: any);
@@ -0,0 +1,12 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { ComponentColor } from './../types/colors.types';
3
+ import { FormElementVariant } from './../types/theming.types';
4
+ import { BadgePosition, BadgeSize } from './badge.types';
5
+ export interface ArdBadgeDefaults {
6
+ color: ComponentColor;
7
+ variant: FormElementVariant;
8
+ size: BadgeSize;
9
+ position: BadgePosition;
10
+ overlap: boolean;
11
+ }
12
+ export declare const ARD_BADGE_DEFAULTS: InjectionToken<ArdBadgeDefaults>;
@@ -1,12 +1,12 @@
1
- import { AfterViewInit, ElementRef, OnChanges, OnDestroy, Renderer2 } from '@angular/core';
1
+ import { AfterViewInit, OnChanges, OnDestroy } from '@angular/core';
2
2
  import { ComponentColor } from '../types/colors.types';
3
3
  import { FormElementVariant } from '../types/theming.types';
4
4
  import { BadgePosition, BadgeSize } from './badge.types';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ArdiumBadgeDirective implements OnChanges, AfterViewInit, OnDestroy {
7
- private _elRef;
8
- private _renderer;
9
- constructor(_elRef: ElementRef, _renderer: Renderer2);
7
+ private readonly _elRef;
8
+ private readonly _renderer;
9
+ private readonly _DEFAULTS;
10
10
  readonly text: import("@angular/core").InputSignal<string>;
11
11
  readonly color: import("@angular/core").InputSignal<ComponentColor>;
12
12
  readonly variant: import("@angular/core").InputSignal<FormElementVariant>;
@@ -1,3 +1,4 @@
1
- export * from './badge.module';
1
+ export * from './badge.defaults';
2
2
  export * from './badge.directive';
3
+ export * from './badge.module';
3
4
  export * from './badge.types';
@@ -1,15 +1,19 @@
1
1
  import { Signal } from '@angular/core';
2
2
  import { _FocusableComponentBase } from '../_internal/focusable-component';
3
+ import { ButtonType } from '../types/button.types';
3
4
  import { ComponentColor } from '../types/colors.types';
5
+ import { _ButtonBaseDefaults } from './_button-base.defaults';
4
6
  import { ButtonAppearance } from './general-button.types';
5
7
  import * as i0 from "@angular/core";
6
8
  export declare abstract class _ButtonBase extends _FocusableComponentBase {
7
9
  readonly wrapperClasses: import("@angular/core").InputSignal<string>;
10
+ protected readonly _DEFAULTS: _ButtonBaseDefaults;
11
+ readonly type: import("@angular/core").InputSignal<ButtonType>;
8
12
  readonly appearance: import("@angular/core").InputSignal<ButtonAppearance>;
9
13
  readonly color: import("@angular/core").InputSignal<ComponentColor>;
10
14
  readonly lightColoring: import("@angular/core").InputSignalWithTransform<boolean, any>;
11
15
  readonly compact: import("@angular/core").InputSignalWithTransform<boolean, any>;
12
16
  abstract readonly ngClasses: Signal<string>;
13
17
  static ɵfac: i0.ɵɵFactoryDeclaration<_ButtonBase, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<_ButtonBase, never, never, { "wrapperClasses": { "alias": "wrapperClasses"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "lightColoring": { "alias": "lightColoring"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<_ButtonBase, never, never, { "wrapperClasses": { "alias": "wrapperClasses"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "lightColoring": { "alias": "lightColoring"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
15
19
  }
@@ -0,0 +1,15 @@
1
+ import { _FocusableComponentDefaults } from '../_internal/focusable-component';
2
+ import { ButtonType } from '../types/button.types';
3
+ import { ComponentColor } from './../types/colors.types';
4
+ import { ButtonAppearance } from './general-button.types';
5
+ export interface _SimpleButtonDefaults extends _FocusableComponentDefaults {
6
+ color: ComponentColor;
7
+ lightColoring: boolean;
8
+ compact: boolean;
9
+ type: ButtonType;
10
+ }
11
+ export declare const _simpleButtonDefaults: _SimpleButtonDefaults;
12
+ export interface _ButtonBaseDefaults extends _SimpleButtonDefaults {
13
+ appearance: ButtonAppearance;
14
+ }
15
+ export declare const _buttonBaseDefaults: _ButtonBaseDefaults;
@@ -1,15 +1,14 @@
1
1
  import { SimpleOneAxisAlignment } from '../../types/alignment.types';
2
- import { ButtonType } from '../../types/button.types';
3
2
  import { _ButtonBase } from '../_button-base';
4
3
  import { ButtonVariant } from '../general-button.types';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class ArdiumButtonComponent extends _ButtonBase {
6
+ protected readonly _DEFAULTS: import("./button.defaults").ArdButtonDefaults;
7
7
  readonly icon: import("@angular/core").InputSignal<string>;
8
- readonly type: import("@angular/core").InputSignal<ButtonType>;
9
8
  readonly variant: import("@angular/core").InputSignal<ButtonVariant>;
10
9
  readonly alignIcon: import("@angular/core").InputSignal<SimpleOneAxisAlignment>;
11
10
  readonly vertical: import("@angular/core").InputSignalWithTransform<boolean, any>;
12
11
  readonly ngClasses: import("@angular/core").Signal<string>;
13
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ArdiumButtonComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumButtonComponent, "ard-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "alignIcon": { "alias": "alignIcon"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumButtonComponent, "ard-button", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "alignIcon": { "alias": "alignIcon"; "required": false; "isSignal": true; }; "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
15
14
  }
@@ -0,0 +1,10 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _ButtonBaseDefaults } from '../_button-base.defaults';
3
+ import { ButtonVariant } from '../general-button.types';
4
+ import { SimpleOneAxisAlignment } from './../../types/alignment.types';
5
+ export interface ArdButtonDefaults extends _ButtonBaseDefaults {
6
+ variant: ButtonVariant;
7
+ alignIcon: SimpleOneAxisAlignment;
8
+ vertical: boolean;
9
+ }
10
+ export declare const ARD_BUTTON_DEFAULTS: InjectionToken<ArdButtonDefaults>;
@@ -1,2 +1,3 @@
1
- export * from './button.module';
2
1
  export * from './button.component';
2
+ export * from './button.defaults';
3
+ export * from './button.module';
@@ -1,12 +1,11 @@
1
- import { ButtonType } from '../../types/button.types';
2
1
  import { _ButtonBase } from '../_button-base';
3
2
  import { FABSize } from '../general-button.types';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class ArdiumFabComponent extends _ButtonBase {
6
- readonly type: import("@angular/core").InputSignal<ButtonType>;
5
+ protected readonly _DEFAULTS: import("./fab.defaults").ArdFabDefaults;
7
6
  readonly size: import("@angular/core").InputSignal<FABSize>;
8
7
  readonly extended: import("@angular/core").InputSignalWithTransform<boolean, any>;
9
8
  readonly ngClasses: import("@angular/core").Signal<string>;
10
9
  static ɵfac: i0.ɵɵFactoryDeclaration<ArdiumFabComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumFabComponent, "ard-fab", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumFabComponent, "ard-fab", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "required": false; "isSignal": true; }; }, {}, never, ["*"], false, never>;
12
11
  }
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _ButtonBaseDefaults } from '../_button-base.defaults';
3
+ import { FABSize } from '../general-button.types';
4
+ export interface ArdFabDefaults extends _ButtonBaseDefaults {
5
+ size: FABSize;
6
+ extended: boolean;
7
+ }
8
+ export declare const ARD_FAB_DEFAULTS: InjectionToken<ArdFabDefaults>;
@@ -1,2 +1,3 @@
1
- export * from './fab.module';
2
1
  export * from './fab.component';
2
+ export * from './fab.defaults';
3
+ export * from './fab.module';
@@ -4,6 +4,7 @@ import { ComponentColor } from '../../types/colors.types';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ArdiumIconButtonComponent extends _FocusableComponentBase {
6
6
  readonly wrapperClasses: import("@angular/core").InputSignal<string>;
7
+ protected readonly _DEFAULTS: import("./icon-button.defaults").ArdIconButtonDefaults;
7
8
  readonly type: import("@angular/core").InputSignal<ButtonType>;
8
9
  readonly color: import("@angular/core").InputSignal<ComponentColor>;
9
10
  readonly lightColoring: import("@angular/core").InputSignalWithTransform<boolean, any>;
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _SimpleButtonDefaults } from '../_button-base.defaults';
3
+ export interface ArdIconButtonDefaults extends _SimpleButtonDefaults {
4
+ }
5
+ export declare const ARD_ICON_BUTTON_DEFAULTS: InjectionToken<ArdIconButtonDefaults>;
@@ -1,2 +1,3 @@
1
- export * from './icon-button.module';
2
1
  export * from './icon-button.component';
2
+ export * from './icon-button.defaults';
3
+ export * from './icon-button.module';
@@ -31,9 +31,9 @@ export declare class ArdiumCardImageDirective {
31
31
  static ɵdir: i0.ɵɵDirectiveDeclaration<ArdiumCardImageDirective, "[ard-card-image]", never, {}, {}, never, never, false, never>;
32
32
  }
33
33
  export declare class ArdiumCardActionButtonsDirective {
34
+ private readonly _DEFAULTS;
34
35
  readonly align: import("@angular/core").InputSignal<OneAxisAlignment>;
35
36
  readonly alignClass: import("@angular/core").Signal<string>;
36
- get _alignClassHostAttribute(): string;
37
37
  static ɵfac: i0.ɵɵFactoryDeclaration<ArdiumCardActionButtonsDirective, never>;
38
38
  static ɵdir: i0.ɵɵDirectiveDeclaration<ArdiumCardActionButtonsDirective, "ard-card-action-buttons, [ard-card-action-buttons]", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
39
39
  }
@@ -1,6 +1,7 @@
1
1
  import { CardAppearance, CardVariant } from './card.types';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class ArdiumCardDirective {
4
+ private readonly _DEFAULTS;
4
5
  readonly appearance: import("@angular/core").InputSignal<CardAppearance>;
5
6
  readonly variant: import("@angular/core").InputSignal<CardVariant>;
6
7
  readonly ngClasses: import("@angular/core").Signal<string>;
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { OneAxisAlignment } from './../types/alignment.types';
3
+ import { CardAppearance, CardVariant } from './card.types';
4
+ export interface ArdCardDefaults {
5
+ appearance: CardAppearance;
6
+ variant: CardVariant;
7
+ actionButtonsAlign: OneAxisAlignment;
8
+ }
9
+ export declare const ARD_CARD_DEFAULTS: InjectionToken<ArdCardDefaults>;
@@ -1,4 +1,5 @@
1
- export * from './card.module';
1
+ export * from './card.children';
2
2
  export * from './card.component';
3
+ export * from './card.defaults';
4
+ export * from './card.module';
3
5
  export * from './card.types';
4
- export * from './card.children';
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
6
6
  export declare class ArdiumCheckboxComponent extends _BooleanComponentBase implements ControlValueAccessor {
7
7
  readonly wrapperClasses: import("@angular/core").InputSignal<string>;
8
8
  readonly htmlId: import("@angular/core").InputSignal<string>;
9
+ protected readonly _DEFAULTS: import("./checkbox.defaults").ArdCheckboxDefaults;
9
10
  readonly color: import("@angular/core").InputSignal<SimpleComponentColor>;
10
11
  readonly unselectedColor: import("@angular/core").InputSignal<SimpleComponentColor>;
11
12
  readonly ngClasses: import("@angular/core").Signal<string>;
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _BooleanComponentDefaults } from '../_internal/boolean-component';
3
+ import { SimpleComponentColor } from './../types/colors.types';
4
+ export interface ArdCheckboxDefaults extends _BooleanComponentDefaults {
5
+ color: SimpleComponentColor;
6
+ unselectedColor: SimpleComponentColor;
7
+ }
8
+ export declare const ARD_CHECKBOX_DEFAULTS: InjectionToken<ArdCheckboxDefaults>;
@@ -1,3 +1,4 @@
1
- export * from './checkbox.module';
2
1
  export * from './checkbox.component';
2
+ export * from './checkbox.defaults';
3
+ export * from './checkbox.module';
3
4
  export * from './checkbox.types';
@@ -9,11 +9,8 @@ import * as i0 from "@angular/core";
9
9
  export declare class ArdiumCheckboxListComponent extends _NgModelComponentBase implements SimpleItemStorageHost, AfterViewInit {
10
10
  readonly htmlId: import("@angular/core").InputSignal<string>;
11
11
  get _htmlIdHostAttribute(): string;
12
- readonly DEFAULTS: {
13
- valueFrom: string;
14
- labelFrom: string;
15
- disabledFrom: string;
16
- };
12
+ protected readonly _DEFAULTS: import("./checkbox-list.defaults").ArdCheckboxListDefaults;
13
+ readonly DEFAULTS: import("./checkbox-list.defaults").ArdCheckboxListDefaults;
17
14
  readonly multiselectable: import("@angular/core").WritableSignal<true>;
18
15
  readonly isValueRequired: import("@angular/core").WritableSignal<false>;
19
16
  readonly _componentId = "300";
@@ -0,0 +1,18 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _NgModelComponentDefaults } from '../_internal/ngmodel-component';
3
+ import { CompareWithFn } from '../types/item-storage.types';
4
+ import { Nullable } from '../types/utility.types';
5
+ import { ComponentColor } from './../types/colors.types';
6
+ import { CheckboxListAlignType } from './checkbox-list.types';
7
+ export interface ArdCheckboxListDefaults extends _NgModelComponentDefaults {
8
+ valueFrom: string;
9
+ labelFrom: string;
10
+ disabledFrom: string;
11
+ compareWith: Nullable<CompareWithFn>;
12
+ invertDisabled: boolean;
13
+ maxSelectedItems: number;
14
+ color: ComponentColor;
15
+ align: CheckboxListAlignType;
16
+ compact: boolean;
17
+ }
18
+ export declare const ARD_CHECKBOX_LIST_DEFAULTS: InjectionToken<ArdCheckboxListDefaults>;
@@ -4,6 +4,7 @@ import { DecorationElementAppearance, FormElementVariant } from '../types/themin
4
4
  import { _DisablableComponentBase } from './../_internal/disablable-component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ArdiumChipComponent extends _DisablableComponentBase {
7
+ protected readonly _DEFAULTS: import("./chip.defaults").ArdChipDefaults;
7
8
  readonly contentAlignment: import("@angular/core").InputSignal<SimpleOneAxisAlignment>;
8
9
  readonly appearance: import("@angular/core").InputSignal<DecorationElementAppearance>;
9
10
  readonly variant: import("@angular/core").InputSignal<FormElementVariant>;
@@ -0,0 +1,22 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _DisablableComponentDefaults } from '../_internal/disablable-component';
3
+ import { SimpleOneAxisAlignment } from '../types/alignment.types';
4
+ import { ComponentColor } from '../types/colors.types';
5
+ import { DecorationElementAppearance, FormElementVariant } from '../types/theming.types';
6
+ export interface ArdChipDefaults extends _DisablableComponentDefaults {
7
+ contentAlignment: SimpleOneAxisAlignment;
8
+ appearance: DecorationElementAppearance;
9
+ variant: FormElementVariant;
10
+ color: ComponentColor;
11
+ compact: boolean;
12
+ }
13
+ export declare const _chipDefaults: {
14
+ contentAlignment: "left";
15
+ appearance: "outlined";
16
+ variant: "rounded";
17
+ color: "primary";
18
+ compact: boolean;
19
+ readonly: boolean;
20
+ disabled: boolean;
21
+ };
22
+ export declare const ARD_CHIP_DEFAULTS: InjectionToken<ArdChipDefaults>;
@@ -4,9 +4,7 @@ import { ComponentColor } from '../../types/colors.types';
4
4
  import { DecorationElementAppearance, FormElementVariant } from '../../types/theming.types';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ArdiumDeletableChipComponent extends _FocusableComponentBase {
7
- readonly DEFAULTS: {
8
- deleteButtonTitle: string;
9
- };
7
+ protected readonly _DEFAULTS: import("./deletable-chip.defaults").ArdDeletableChipDefaults;
10
8
  readonly deleteButtonTitle: import("@angular/core").InputSignal<string>;
11
9
  readonly contentAlignment: import("@angular/core").InputSignal<SimpleOneAxisAlignment>;
12
10
  readonly appearance: import("@angular/core").InputSignal<DecorationElementAppearance>;
@@ -0,0 +1,7 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _FocusableComponentDefaults } from '../../_internal/focusable-component';
3
+ import { ArdChipDefaults } from '../chip.defaults';
4
+ export interface ArdDeletableChipDefaults extends ArdChipDefaults, _FocusableComponentDefaults {
5
+ deleteButtonTitle: string;
6
+ }
7
+ export declare const ARD_DELETABLE_CHIP_DEFAULTS: InjectionToken<ArdDeletableChipDefaults>;
@@ -5,9 +5,7 @@ import { DecorationElementAppearance, FormElementVariant } from '../../types/the
5
5
  import { _BooleanComponentBase } from './../../_internal/boolean-component';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ArdiumSelectableChipComponent extends _BooleanComponentBase implements ControlValueAccessor {
8
- readonly DEFAULTS: {
9
- chipTitle: string;
10
- };
8
+ protected readonly _DEFAULTS: import("./selectable-chip.defaults").ArdSelectableChipDefaults;
11
9
  readonly chipTitle: import("@angular/core").InputSignal<string>;
12
10
  readonly hideSelectionIcon: import("@angular/core").InputSignalWithTransform<boolean, any>;
13
11
  readonly contentAlignment: import("@angular/core").InputSignal<SimpleOneAxisAlignment>;
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { _BooleanComponentDefaults } from '../../_internal/boolean-component';
3
+ import { ArdChipDefaults } from '../chip.defaults';
4
+ export interface ArdSelectableChipDefaults extends ArdChipDefaults, _BooleanComponentDefaults {
5
+ chipTitle: string;
6
+ hideSelectionIcon: boolean;
7
+ }
8
+ export declare const ARD_SELECTABLE_CHIP_DEFAULTS: InjectionToken<ArdSelectableChipDefaults>;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class ArdiumDividerComponent {
3
+ protected readonly _DEFAULTS: import("./divider.defaults").ArdDividerDefaults;
3
4
  readonly vertical: import("@angular/core").InputSignalWithTransform<boolean, any>;
4
- get _verticalHostAttribute(): boolean;
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<ArdiumDividerComponent, never>;
6
6
  static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumDividerComponent, "ard-divider", never, { "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
7
7
  }
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export interface ArdDividerDefaults {
3
+ vertical: boolean;
4
+ }
5
+ export declare const ARD_DIVIDER_DEFAULTS: InjectionToken<ArdDividerDefaults>;
@@ -7,6 +7,7 @@ export declare class ArdiumTabberComponent implements AfterContentInit {
7
7
  readonly tabs: import("@angular/core").Signal<readonly ArdiumTabComponent[]>;
8
8
  readonly currentTab: import("@angular/core").WritableSignal<ArdiumTabComponent | null>;
9
9
  readonly currentFocusedTab: import("@angular/core").WritableSignal<ArdiumTabComponent | null>;
10
+ readonly initialTab: import("@angular/core").InputSignal<string | undefined>;
10
11
  ngAfterContentInit(): void;
11
12
  onTabClick(tab: ArdiumTabComponent): void;
12
13
  onTabFocus(tab: ArdiumTabComponent): void;
@@ -22,5 +23,5 @@ export declare class ArdiumTabberComponent implements AfterContentInit {
22
23
  readonly tabContainerClasses: import("@angular/core").Signal<string>;
23
24
  readonly tabIndex: import("@angular/core").InputSignal<string | number>;
24
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ArdiumTabberComponent, never>;
25
- static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumTabberComponent, "ard-tabber", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; "isSignal": true; }; "uniformTabWidths": { "alias": "uniformTabWidths"; "required": false; "isSignal": true; }; "tabAlignment": { "alias": "tabAlignment"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; }, { "focusEvent": "focus"; "blurEvent": "blur"; "changeTab": "changeTab"; }, ["tabs"], ["*"], false, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<ArdiumTabberComponent, "ard-tabber", never, { "initialTab": { "alias": "initialTab"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "stretchTabs": { "alias": "stretchTabs"; "required": false; "isSignal": true; }; "uniformTabWidths": { "alias": "uniformTabWidths"; "required": false; "isSignal": true; }; "tabAlignment": { "alias": "tabAlignment"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; }, { "focusEvent": "focus"; "blurEvent": "blur"; "changeTab": "changeTab"; }, ["tabs"], ["*"], false, never>;
26
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ardium-ui/ui",
3
- "version": "2.3.2",
3
+ "version": "2.4.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
@@ -1,59 +0,0 @@
1
- export class Queue {
2
- push(item) {
3
- if (!this.tail)
4
- return this.pushFront(item);
5
- this.tail.next = new QueueItem(item);
6
- this.tail = this.tail.next;
7
- }
8
- pushFront(item) {
9
- this.head = new QueueItem(item, this.head);
10
- if (!this.tail)
11
- this.tail = this.head;
12
- }
13
- pop() {
14
- const head = this.head;
15
- if (!head)
16
- return;
17
- //replace head with the next item
18
- this.head = head.next;
19
- //delete the tail if there are no next items
20
- if (!this.head)
21
- this.tail = undefined;
22
- return head.value;
23
- }
24
- peek() {
25
- return this.head?.value;
26
- }
27
- clear() {
28
- this.head = undefined;
29
- this.tail = undefined;
30
- }
31
- get length() {
32
- let length = 0;
33
- let currentNode = this.head;
34
- while (currentNode) {
35
- length++;
36
- currentNode = currentNode.next;
37
- }
38
- return length;
39
- }
40
- isEmpty() {
41
- return !this.head;
42
- }
43
- toArray() {
44
- const array = [];
45
- let currentNode = this.head;
46
- while (currentNode) {
47
- array.push(currentNode.value);
48
- currentNode = currentNode.next;
49
- }
50
- return array;
51
- }
52
- }
53
- export class QueueItem {
54
- constructor(value, next) {
55
- this.value = value;
56
- this.next = next;
57
- }
58
- }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL19pbnRlcm5hbC9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sS0FBSztJQUloQixJQUFJLENBQUMsSUFBTztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsSUFBSyxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFLLENBQUMsSUFBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBTztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUNELEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTyxXQUFXLEVBQUUsQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPO1FBQ0wsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsT0FBTyxXQUFXLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixXQUFXLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sU0FBUztJQUNwQixZQUNTLEtBQVEsRUFDUixJQUFtQjtRQURuQixVQUFLLEdBQUwsS0FBSyxDQUFHO1FBQ1IsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUN6QixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbnRlcmZhY2UgSVF1ZXVlIHtcbiAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBRdWV1ZTxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBJUXVldWUge1xuICBwcml2YXRlIGhlYWQ/OiBRdWV1ZUl0ZW08VD47XG4gIHByaXZhdGUgdGFpbD86IFF1ZXVlSXRlbTxUPjtcblxuICBwdXNoKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGFpbCkgcmV0dXJuIHRoaXMucHVzaEZyb250KGl0ZW0pO1xuICAgIHRoaXMudGFpbCEubmV4dCA9IG5ldyBRdWV1ZUl0ZW0oaXRlbSk7XG4gICAgdGhpcy50YWlsID0gdGhpcy50YWlsIS5uZXh0ITtcbiAgfVxuICBwdXNoRnJvbnQoaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZCA9IG5ldyBRdWV1ZUl0ZW0oaXRlbSwgdGhpcy5oZWFkKTtcbiAgICBpZiAoIXRoaXMudGFpbCkgdGhpcy50YWlsID0gdGhpcy5oZWFkO1xuICB9XG4gIHBvcCgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBoZWFkID0gdGhpcy5oZWFkO1xuICAgIGlmICghaGVhZCkgcmV0dXJuO1xuICAgIC8vcmVwbGFjZSBoZWFkIHdpdGggdGhlIG5leHQgaXRlbVxuICAgIHRoaXMuaGVhZCA9IGhlYWQubmV4dDtcbiAgICAvL2RlbGV0ZSB0aGUgdGFpbCBpZiB0aGVyZSBhcmUgbm8gbmV4dCBpdGVtc1xuICAgIGlmICghdGhpcy5oZWFkKSB0aGlzLnRhaWwgPSB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gaGVhZC52YWx1ZTtcbiAgfVxuICBwZWVrKCk6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmhlYWQ/LnZhbHVlO1xuICB9XG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaGVhZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRhaWwgPSB1bmRlZmluZWQ7XG4gIH1cbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xuICAgIGxldCBsZW5ndGggPSAwO1xuICAgIGxldCBjdXJyZW50Tm9kZSA9IHRoaXMuaGVhZDtcbiAgICB3aGlsZSAoY3VycmVudE5vZGUpIHtcbiAgICAgIGxlbmd0aCsrO1xuICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS5uZXh0O1xuICAgIH1cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmhlYWQ7XG4gIH1cbiAgdG9BcnJheSgpOiBUW10ge1xuICAgIGNvbnN0IGFycmF5OiBUW10gPSBbXTtcbiAgICBsZXQgY3VycmVudE5vZGUgPSB0aGlzLmhlYWQ7XG4gICAgd2hpbGUgKGN1cnJlbnROb2RlKSB7XG4gICAgICBhcnJheS5wdXNoKGN1cnJlbnROb2RlLnZhbHVlKTtcbiAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUubmV4dDtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBRdWV1ZUl0ZW08VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdmFsdWU6IFQsXG4gICAgcHVibGljIG5leHQ/OiBRdWV1ZUl0ZW08VD5cbiAgKSB7fVxufVxuIl19
File without changes